In the short history of the Web, the key decision has often been which Web server to pick.
Today, for large corporations, the big decision has become which Java application server to choose. Selecting an application server is much more complicated than picking a Web server, but the experiences of early adopters provide some practical guidelines.
You can think of application servers as bridges, connecting the Web with existing back-end databases, transaction systems and business applications.
More technically, an application server gives you three things: tools to build applications as a set of software components; server-based programs to host, run and manage these components; and interfaces so the components work with an array of existing systems.
Java products are hosts, or "containers," for Enterprise JavaBeans, which are software components written to one of the APIs in the Java2 Enterprise Edition (J2EE) specification. J2EE, which will be released formally later this month, is being viewed by many corporate IT managers as the key to deploying larger-scale Java applications on the Web because of the additional services it describes, as well as its Enterprise JavaBeans programming model. This specification already is being implemented in application servers from an array of vendors.
A new report from Ovum, a London technology research company, predicts dramatic growth in the application server market during the next five years. Ovum analyst Gary Barnett predicts the high-end products will become "integration hubs" that will let corporations selectively grant access to internal business processes to certain outsiders, including suppliers, customers and partners.
Most corporate IT groups assess application servers as they do any other key part of the enterprise net: They perform a needs analysis; create a comparative features checklist; factor in prices; evaluate the vendor; and conduct testing.
But those who've deployed application servers say their experience shows some other key areas to take into account during evaluation and production.
Because the Java application server is being chosen for online transaction-oriented Web applications, it has to behave like the Energizer bunny: It must keep going and going and going.
"We decided on PowerTier [from Persistence Software] for a simple reason," says Larry O'Brien, a project manager at i-mind Education Systems in Mill Valley, Calif., which markets its Internet portals to public school systems. "They have battle-proven code in their applications server. Their PowerTier product grew out of an existing C++ product that we knew worked.
"When creating a server-side Java system, you rely on the Enterprise JavaBeans container [that is, the application server] to provide scalable reliability under load and during failover," O'Brien continues. "It's not a place for rookie code."
Scaling, or the ability to run the application server on a growing number of processors and computers, is almost equally important, says Frank Greco, president of Crossroads Technologies, a New York systems integrator that specializes in building application server-based systems for Wall Street companies. "An application server that does not scale is useless," he says.
Greco recommends you make sure the application server can handle "at leeast triple your load estimates."
Closely tied to scaling, is performance. The application server should have a multithreaded design for optimal power, Greco says. The IT group should know the number of transactions that have to execute in a given time and ensure that the server can handle that figure.
After the application server is running in production, the IT group needs to monitor performance continuously. "Be sure to quantify your requirements and constantly measure the product's performance against your target metrics," Greco says.
The application server's security features need to be documented and evaluated, too. "Have a competent security firm audit the vendor's security architecture, your own system architecture and your applications," Greco says.
Development tools for building the components hosted by the application server are still evolving, especially those that claim to be Integrated Development Environments (IDE). These tool sets are intended to give developers everything they need to build applications, with all the tools working smoothly with each other. The reality at this stage is quite different.
"The quality of the 'enterprise' versions of the Java IDEs has been a continual disappointment to me," i-mind's O'Brien says. "You pay a huge performance penalty to have access to visual form-builders that are of no use to server-side development."
An analysis of 11 Web development tools and their included application servers by TechMetrix Research of Burlington, Mass., found the servers differed widely in the completeness of their feature sets. The report cited a handful of vendors that combined viable application servers with application tools in a single package. Such offerings include Apple's WebObjects, Bluestone Software's Sapphire/Web, Haht Software's HahtSite and Pervasive's Tango. Others highlighted included Netscape's Netscape Application Server (formerly Kiva), SilverStream's SilverStream Application Server and Oracle's Oracle Application Server.
Nearly all of these vendors have announced plans to support J2EE and Enterprise JavaBeans, in particular.
But remember, Java application servers are complex, and you'll need to do your homework before choosing and implementing these still-evolving products.