You could say there are two worlds of Web development enterprise Web development and everything else. In the enterprise camp are technologies like Microsoft ASP.NET and Java, while "everything else" includes PHP, Perl, and now Ruby on Rails.
Of course, in practice the "everything else" technologies can and are used in enterprise Web development. But the distinction speaks to the different origins of these Web application environments. Enterprise technologies have evolved from the corporate space with a distinct emphasis on business logic and componentization, while the "everything else" technologies have grown "in the wild," driven largely by enthusiast developers with task-specific needs.IBM WebSphere firmly occupies the enterprise ground. WebSphere Application Server (WAS) is the core, flagship product of a brand IBM has extended to a variety of middleware technologies consolidated under the WebSphere name.
Birth of a Servlet
In the beginning aka the early 1990s in Web-speak Web servers did little more than retrieve static documents and deliver them to browsers. New technology was needed to enable servers to cook up data on the fly, delivering dynamic results to users. At first, Web developers wrote their dynamic code in existing languages like Perl, or even C, and concocted bridge technologies like CGI to hook them into the Web server.
In 1997, Sun released the first specification for Java Servlets, designed as a native server-side programming language. In addition to robust processing facilities, servlets brought state to Web-based applications, using cookies and session variables to enable Web applications to track information across multiple page interactions. In doing so, servlets helped push the Web from a being document delivery system toward being an application environment.
Among the first Web servers to implement support for Java Servlets was IBM WebSphere, introduced in 1998 under the name "Servlet Express."
|Read our review of Websphere Application Server|
As the Java language evolved under the auspices of Sun, it became increasingly sophisticated, particularly with regard to modular architectural elements like frameworks and classes. The JavaBeans specification also enabled Java developers to package objects into a single class for increased portability.This kind of component-based architecture is especially attractive to enterprise developers who value the ability to re-use programming structures spanning a wide range of environments and deploy them across large numbers of servers, potentially on different platforms.
Leveraged by IBM's established enterprise presence, WAS and its support for the evolving Java language became a de facto leader among Java-based Web application servers.
By the time WAS 3.5 was released in 2000, IBM was expanding its application in several major directions.
Support for the then-new Java Platform Enterprise Edition, or J2EE 1.0, included distributed and high-availability modules for larger scale enterprise deployments. IBM also expanded WebSphere to a wider range of platforms, including Linux, OS/400 and z/OS. This made WebSphere attractive to enterprises with large investments in legacy infrastructure.
At this time, IBM began dividing WebSphere Application Server into multiple editions with different feature and price targets. These divisions became even more pronounced in WAS 4.0, which had three variations of Advanced Edition: Full, Single-Server Without Cluster Support, and a Single-Server Development Edition.
Besides the server itself, IBM had been producing programmer tools to support application development for WebSphere. In its earliest incarnation, WebSphere Studio supported only HTML development, but later gave way to WebSphere Studio Application Developer, or WSAD, an integrated development and testing environment with Java support.
Despite its increasingly wide enterprise usage, developers were not always thrilled with WebSphere, particularly the releases prior to version 5.
Common complaints accused WebSphere of being resource-heavy, requiring higher-end server hardware to run competitively compared to alternative J2EE application servers. Others accused IBM of providing weak server management tools and unreliable extensions to the Java specification.
Among dissenters, popular alternatives to WebSphere have been the open source products Tomcat and JBoss. Like the earliest releases of WebSphere, Tomcat is a Java Servlet engine and lacks support for Enterprise JavaBeans (EJB), which some developers find makes for a preferable, more lightweight Java server solution.
JBoss, however, is more comparable to WebSphere. It is a J2EE server built on Tomcat. Again, those who favor JBoss point to its open source nature and free price tag along with its lower resource requirements.
But to WebSphere advocates, these open source solutions lack the value-added management and development tools IBM built specifically for WebSphere, as well as the numerous tightly integrated middleware modules available under the WebSphere brand.
WebSphere Grows Up
To address the criticisms of early-generation WAS developers, IBM went back to the drawing board for version 5, rewriting its codebase. In doing so, Big Blue unified the code across all WebSphere platforms, substantially reducing architectural differences between WAS deployments.
In addition to support for the J2EE 1.3 specification, IBM redefined the various WebSphere editions for version 5.
The Express Edition was targeted at small and midsize businesses that wanted the core J2EE functionality but did not need large-scale deployment functionality. In contrast, the Network Deployment edition enabled WebSphere to run across a cluster with proxy, load-balancing and routing capabilities.
When version 6 was released in late 2004, IBM acknowledged its competition from open source alternatives and launched the new Community Edition. Unlike the proprietary codebase for previous WAS editions, the Community Edition is IBM's packaged version of Apache Geronimo.
Geronimo, like WebSphere 6, supports JEE 5.0, the successor to J2EE 1.4. (In the transition, Sun dropped the "2" from Java Enterprise Edition.) Unlike proprietary editions of WAS, however, the Community Edition is open source code that the end user can modify.
Although users of the free WAS Community Edition could just as well obtain its components directly from Apache, IBM sells WebSphere support to Community Edition customers.The Future of JEE
For now, WebSphere is tightly tied to its core technology, Java Enterprise Edition. But some have wondered aloud whether Java continues to have a vital future in Web servers.Many Web developers particularly those who come from backgrounds outside of the enterprise avoid Java. Since the development of servlets, numerous other server-side architectures have appeared and matured, including PHP and Ruby on Rails. They are perceived are more accessible and less complex than Java.
Seasoned Java developers sometimes scoff at these lightweight alternatives, which lack Java's enterprise-grade credentials. But with sophistication comes complexity. Java's critics say it is overengineered for many of the applications where it is used, costing additional resources and development time.
One Java developer asks, for example, why Facebook one of the most widely used sites on the Internet with quickly evolving application functionality has opted not to be built on the Java platform.
The Java EE 5.0 specification is seen by some as having added even more complexity to Java when it had promised less, prompting one analyst to call its release "the beginning of the end."
Realistically, Java servers aren't going to disappear. The concern among businesses that rely on Java development is that the number of deployments could shrink and end up marginalized on only the heaviest of Web applications. Meanwhile, the new, lighter technologies claim the large middle-weight territory.
But is WebSphere's future destined to go wherever Java goes? With the release of the Community Edition, IBM has demonstrated a willingness to be flexible in its conception of WebSphere, allowing it to embrace an open source product beside its own proprietary editions. Whether this flexibility will extend outside of its Java core remains to be seen.
As it is, IBM has extended the WebSphere brand to an entire ecosystem of products that integrate with WAS. These include Web services, messaging and commerce applications. The value these add to the core WAS product may well help it resist a shift in Java's fortunes.