From Soup to Nuts With IBM WebSphere
IBM WebSphere: J2EE 1.3 compliant app server capable of scaling from a single mobile installation to complex, distributed enterprise systems
An application server has many masters, often in the guise of architectures: client/server, Web applications, Web services, and (certainly in the case of IBM) services for various mainframe systems. They busy themselves with plugging holes in the architecture of the Web (session and state preservation, anyone?), connecting with voluminous far-flung data, and, to a certain extent, performing the services of a security cop.
Is it any wonder then that application servers themselves are complicated pieces of software or that they may require a virtual army of support software?
This preamble is relevant to reviewing IBM WebSphere Application Server because it is a particularly BIG piece of software, or more accurately, a conglomeration of software. At its most basic, WebSphere is a J2EE 1.3 compliant application server that handles the key Java containers (i.e., EJB, Web, Application, and Applet), monitors and preserves Web status, performs transaction control, and provides the necessary administrative tools.
However, such a description is like saying a house is a cubic structure with doors and windows. For IBM, WebSphere Application Server is a cornerstone, not only of the WebSphere brand but also of its entire Java-Web (e-business) line. On top of the application server is an enormous stack of support and related software, and that is what puts WebSphere Application Server at the top of its class.
It's in the Stack ...
By convention, products are reviewed on their own merits and more or less in isolation. We feel that with application servers this is misleading. Application servers are designed to serve many masters, so the "stack" of supporting software is at least as important as the application server itself. While IBM's server can slug it out with any similar product in terms of performance, basic features, and general polish -- its integration with other software is what most distinguishes it.
The supporting cast for WebSphere Application Server is very large, for starters: an integrated HTTP Server (alternatively, plug-ins are available for a variety of Web servers), IBM eServer iSeries, pSeries, and zSeries support; WebSphere Application Server Network Deployment for network management; WebSphere Edge Server for load balancing and caching proxy services; Programming Model Extensions for the Enterprise Edition; WebSphere MQ for MQ series messaging; and, of particular importance, teaming up with IBM WebSphere Studio Application Developer (one of the best IDEs) and the newly acquired (but not quite integrated) IBM Rational Rapid Developer.
We tested a basic WebSphere Application Server coupled with the Network Deployment component on a Windows 2000 Server (SP3+) with three workstations. IBM makes it very attractive for developers to download the basic server (with a six month limit and 60 days of free support) and experiment.
Disco Tech Setup
Thumbing through the pile of CDs just prior to setting up WebSphere is disconcerting. However, installing the basic WebSphere package takes only a matter of minutes and requires very little user input. IBM has obviously gone to some length to simplify the basic process with the Installation Wizard. Notice the word "basic." If an installation goes on to include network deployment software, programming extensions, and other elements of the massive WebSphere stack -- they too may install easily, but the overall setup and configuration requires preparation, knowledge (experience being even better), and tenacity.
In some cases, IBM's documentation hasn't quite caught up to all the elements -- especially with the tricks of integration. This is not an unusual complaint, as among the major application server systems, only BEA WebLogic has a slightly better grip on the complexity of setup for a full-blown enterprise-level application server system.
Cluster or No Cluster
Like crossing the Rubicon, stepping over the line from a single application server to a cluster of application servers defines the user (if not the market). So much of the firepower in the major application server products (i.e., those from IBM, Microsoft, Oracle, Sun Microsystems, and BEA) is directed at managing a cluster of servers that for an enterprise needing only a single server the packages may be akin to killing a fly with a howitzer. However, how many companies these days have (or will ever need) more than one server?
This is another way of saying that planning for multiple application servers is a smart way to go. By adding the Deployment for Networks package, which installs the cluster manager, WebSphere automatically connects to a node stub that exists in all instances of the application server. We found this approach to be nearly seamless to install, and it neatly bridges the lengthy upgrade path from the stripped-down (and mobile) WebSphere Application Server Express, through the basic package, and up to the Enterprise package.
Whether developing or deploying through WebSphere, its support for Java is leading edge. In fact, IBM generally competes with BEA and Sun in developing its own J2EE components, Virtual Machine, and enhancements to the Java "stack." This is particularly true of support for the latest Web services standards, where the integration with WebSphere Studio is a standout feature.
For obvious reasons WebSphere is fully optimized to work with IBM's own DB2 Universal Database; however, database support is broad and not IBM-centric. (It should be noted that WebSphere no longer requires DB2 for configuration storage; it now uses standard XML and XMI files.) IBM has generally been conscious that support for other database managers (e.g., Oracle, Microsoft SQL Server, and Sybase) is important in the heterogeneous application server environment.
As anyone who has been through the process knows, deploying a major application through application servers is complicated and (more often than not) finicky. Included in most deployments are security processes, performance monitoring, and some debugging to the usual array of configuration issues, such as session management. While WebSphere does provide tools (e.g., Application Assembly Tool, Deploy Tool, and Ant Utilities) and a solid Administrative Console from which to shepherd the deployment, this is another area where the services of WebSphere Studio (and perhaps of specific support SDKs, such as for Web Services) are critical.
A few words about the performance of deployed application in general: It depends ... While there are a few brave benchmark tests for application servers, even if we believed them (more or less), they may be misleading. Nowhere would this be more evident than with comparing how the major application server products assemble their stack of supporting software to accomplish a particular function. The actual throughput of an application server is so dependent on the environment of an application that the use of sophisticated monitoring software (e.g., Tivoli running under JMX) may well be more important than an application server's putative speed.
WebSphere's Administration Console is a top-notch tool, which has a simplified user interface belying the depth of control it provides. Novice users can access the many wizards to step them through common configuration tasks. Power users will find almost innumerable ways to monitor and tweak the system (command line alternatives also exist). The console is particularly good at providing information for various user roles (e.g., Administrator, Monitor, and Operator) concerning configuration, operating conditions, and the runtime state of an application.
Otherwise It Wouldn't Be IBM
Support for large computer systems and longstanding IBM software (e.g., the MQ Series) is, of course, expected, and if these are part of the planning for an application server, then an enterprise need look no further than WebSphere.
Of greater general interest is whether an organization (not previously committed to IBM) seeking an application server for enterprise-level use should look to WebSphere or its major competitors. Where multiple servers are expected, price may be an issue, as WebSphere Application Server is the most expensive of the lot. However, especially for the enterprise for which handling a complex and heterogeneous environment involves much more than simply installing application servers, the breadth of related products, training, and experience provided by IBM is hard to match.Pros: By itself a mature and robust application server managed by one of the best administration tools out there; in more-typical configurations, WebSphere's greatest strength is support for other products, such as IBM WebSphere Studio.
Cons: High price tag
Reviewed by: Nelson King
Original Review Date: 10/30/2003
Original Review Version: 5.0.2