|In this article:|
|Web app servers: performance issues|
|The future of Web application servers|
A year or two ago, only a handful of vendors offered Web application servers. Today, dozens of vendors offer them, including major players like Apple Computer Inc., Microsoft Corp., Sybase Inc., and the Sun Microsystems Inc./Netscape Communications Corp. alliance--iPlanet. This shift underscores the fact that the technology is so critical for today's businesses that organizations are now dedicating major dollars in their IT budgets to Web application servers. Any company that needs to support industrial-strength Web applications, and wants to simplify the process of building and maintaining those applications, needs Web application server software. Web application servers are important for two major reasons. First, they provide integrated development environments (IDEs): graphical development tools that simplify application building and the integration of disparate back-end data sources and applications. Second, Web application servers provide low-level services such as security, thread pooling, connection pooling, state and session management, and caching. Such services are critical for providing security and scalability, and these services can be easily leveraged by any application that is built to run on the Web application server. And the technology is maturing: Vendors are adding all sorts of differentiating features and are making huge leaps in product capabilities and performance. For IT managers evaluating different Web application server products, the key is to understand how to leverage the development and architectural capabilities of these tools. From there, look for a specific solution that offers the necessary development capabilities and performance to handle a site's anticipated loads and transaction volumes. Development and data integration As mentioned, one of the most important components of Web application servers is their integrated development environments. IDEs provide a way to build business applications specifically designed for execution within the Web application server environment. These tools usually provide a graphical interface that allows for point-and-click application building. IDEs reduce the amount of programming required, insulating developers from the complexities of leveraging the low-level services provided by the Web application server--services such as load balancing, connection and thread pooling, message queuing, transaction monitoring, and fault tolerance. This approach allows developers to focus on business logic. IDEs also simplify the process of tying into outside data sources and applications such as enterprise resource planning (ERP) systems, legacy systems, and other line-of-business applications. Because IDEs are simple to use, less technical personnel, such as business analysts, can be involved in the development process. This means that the people with the most application knowledge or customer knowledge, such as line-of-business managers and marketing staff, can get involved in development. Some IDEs, such as those from HAHT Software Inc. and Silverstream Software Inc., provide intuitive wizards that step developers through the application building process. Other IDEs, such as Allaire Corp.'s ColdFusion, allow developers who need more freedom to write simple scripts to execute more complex logic. Finally, any good IDE should allow developers to go into the code itself and enhance applications with direct programming. IDEs generate browser-based interfaces as well as code that can be executed on the Web application server. Many IDEs are now generating code in Java, so the applications can theoretically be deployed on any platform. Interfaces may be in HTML, or may leverage more advanced technologies such as Java, ActiveX, and eXtensible Markup Language (XML). Built for performance For many companies, the bottom line is performance. For an e-commerce site, poor performance and downtime translate into lost revenues, customers who won't come back, and negative perceptions that can hurt the company's valuation or stock price. One of the criticisms of early Web applications was the difficulty in ensuring reliable performance, scalability, and fault tolerance. With today's Web application servers, these low-level services are provided in the middle tier. Any applications that run on the server inherit these reusable services, which means integrators or in-house developers do not need to develop such services from scratch for every application. Thus, Web application servers enable organizations to run Web applications that support thousands of simultaneous users and millions of rows of data. They allow multiple computers to be seen as a single, logical application unit, and they can automatically respond to peaks in user levels. Finally, Web application servers can manage fail-over situations where transaction integrity is required. But just knowing that a Web application server offers back-end services for throughput performance, scalability, and fault tolerance is not enough. Systematic testing of these capabilities can help IT managers get a more realistic picture of just how well a given Web application server will perform in production. Throughput performance testing is important because it shows how quickly a Web application server can serve up pages and process requests. It also shows the user loads at which a server's throughput and response times level off. After that point, adding more servers is necessary if additional throughput is needed. Among the application servers tested by Doculabs, products from Sun/Netscape (Netdynamics), Bluestone Software Inc. (Sapphire/Web), and Apple (WebObjects) have shown excellent throughput in a UNIX-based test environment, with performance as high as 1,000 pages per second. Doculabs has also tested Microsoft's combination of Microsoft Visual Studio 6.0, Microsoft Internet Information Server 4.0, and Microsoft Windows NT Enterprise 4.0, which achieved throughput rates of 3,400 pages per second. Clearly, any of these servers can handle the demands of high-volume Web applications if configured properly--and Microsoft's results show that UNIX isn't necessarily the only choice for industrial-strength environments. Scalability testing is important because it shows how much performance or capacity can be gained by adding additional processors or machines to a Web application server environment. Web application servers that scale well will require less hardware to achieve the maximum performance gains. Ideally, there should be a linear scaling relationship between capacity and the number of processors or machines--that is, doubling the number of processors should double the capacity. In Doculabs' testing experience, the industry as a whole is excelling in this area, as most of the Web application servers tested can achieve near-linear scalability. This shows that, in general, scaling a Web application server environment to address growing loads is really as simple as adding hardware, which is good news for IT groups that are wrestling with capacity-sizing issues and the hardware implications of specific volume levels. Reliability testing is important because of the drastic impact of downtime that can result from failure situations such as loss of power, loss of network connection, and loss of database connection. As most environments will be configured with multiple application servers for load-balancing purposes, the environment should also have the ability to recover from a failure to one of the servers. Look for a server that can still handle incoming requests during a failure, and that can ensure user sessions on the failed server are picked up by another server. In addition, look for servers that can automatically recover and rejoin the server pool after failing, without operator intervention. One notable standout in these areas is the Sapphire/Web server from Bluestone. In Doculabs' "pull-the-plug" fail-over test completed in July 1999, the server lost no user sessions, incoming requests were still handled, and the downed server was recovered automatically. What's next? Because today's Web application servers are proving to be so fast and so scalable, these servers are not likely to create a performance bottleneck in most Web-based applications. More likely, the culprits are found within a company's infrastructure and include such factors as available bandwidth, network-traffic latency, and responsiveness of back-end data sources (especially legacy systems). In fact, all of the Web application servers tested by Doculabs can achieve throughput speeds in excess of 400 pages per second, which will be enough to saturate most organizations' Internet connections. (Supporting even this level of performance would require at least a 7.8Mbps connection, or about six T1 lines.) Doculabs' results also demonstrate that taking the time to optimize an application server for a company's specific environment (hardware, operating system, database, etc.) will pay big dividends. In Doculabs' tests, the vendors that took the extra time to tailor their configurations for the test environment showed significant improvements in performance and response time. Optimizing the architecture of the application itself is also critical, because over-engineering through excessive use of component technology can cause performance bottlenecks, such as unnecessary interobject calls that can cause network or bandwidth issues. Therefore, it is critical that users conduct performance benchmarks with their own applications and environments to gain a realistic picture of a system's suitability for their needs. One of the most significant technology trends Doculabs sees is a move to component object models (COMs). For Web application servers, the object technology of choice today is clearly the common object request broker architecture (CORBA). Nearly all of the Web application servers Doculabs tested support CORBA, and vendors such as Progress Software Corp. and Sun/Netscape (with Netdynamics) have made CORBA an integral part of their products' architectures. Obviously, the COM technology developed by Microsoft is its object model of choice. And while object models are not considered to provide performance benefits, since they provide an extra layer of abstraction, they did nothing to slow down the application servers Doculabs tested. Lowering the cost of ownership remains another big trend. Many Web application servers are expensive in terms of software costs and maintenance fees. Software costs can range from $7,000 up to $50,000 per processor, with additional fees for development licenses and maintenance. Then there are hardware costs and related software costs--the platforms, databases, hardware, and networks used in an implementation will have a major impact on total cost of ownership (for example, Doculabs' UNIX-based test bed was approximately $430,000, and the NT-based environment was approximately $180,000). Finally, there are personnel costs, as the level of expertise and effort required to develop and maintain applications will vary from application server to application server. Ultimately, the value of performance benchmarking is that it provides a baseline understanding of the products' capabilities within a given environment. But the fact is, there is no substitute for testing a solution in users' own environments, with their own hardware, using their own application and their own resources. The variety of conditions and factors that can be encountered in user environments is mind-numbing; no standardized benchmark could ever be expected to accurately measure it all. // Gautam Desai is a senior analyst, Jeetu Patel is VP of Research, and Joe Fenner is a senior technical writer with Doculabs. Based in Chicago, Doculabs is an independent advisory firm specializing in helping organizations choose the right technologies for Internet, knowledge management, document management, and document delivery applications.