The application server category is one of the more confusing markets to understand. In addition, the market changed rapidly during 1998, with a number of companies being acquired. This article aims to clarify the situation.
Software: A History of Consolidating Services on New Platforms
Looking back at the major shifts that have taken place in the software industry, a trend emerges that is a helpful indicator of what is likely to happen in the evolution of the application server market. As new platforms emerge, there are generally a number of players providing point products that address a specific niche area. As the market matures, leaders emerge who tend to incorporate most of the point products' functionality into their primary product. An example of this is the relational database area where data warehousing, object databases, full text retrieval, transaction processing and bitmapped indexing have been consolidated into market-leading products such as Oracle8. In another example, we see SAP take a leadership position by integrating functionality that was previously available only in multiple point products. On the client side we see Microsoft integrating all of the standard office products into a single suite, and in the process eliminating players that have led a single product category. I predict that a similar consolidation of services is about to take place in the middle tier.
The Next Consolidation: The Middle Tier Becomes Essential, Driven by Thin Client
The driving force for the shift to the next computing platform is clearly thin client and Web-based computing. Organizations frequently need to deploy e-commerce applications that are both consumer and business-to-business focused. Furthermore, there is strong pressure to provide ubiquitous access to applications at a low cost.
Supporting Web and thin client applications automatically implies a shift toward placing most of the processing in the middle tier.
The Middle Tier Before the Web
Prior to Web-based and thin client computing, we saw a number of point product areas in the middle tier:
These products didn't provide facilities to support the generation of a user interface or what we refer to as "Presentation Services."
- Distributed object services (ORBs, OTMs, etc.)
- TP monitors, transaction managers
- Connectivity products providing application access to, and integration between, legacy data, ERP applications, RDBMSs, etc.
Web Application Servers
Starting around 1994, the major drive to create dynamic interactive Web applications spawned a new kind of middle-tier product: the Web application server. The first generation of this kind of product was simply a Web server running CGI scripts. The second generation focused on making it easier to develop and deploy dynamically generated HTML pages, taking over where CGI scripts left off. In this generation the primary purpose of these products was to provide presentation services (see Figure 1). A major limitation of this architecture was that business logic was being embedded in scripts inside Web pages.
- Presentation services: Dynamic HTML generation, state and session management
- Integrated tools: Servers that come with integrated development tools to help build the HTML-based applications
The Next Step
As Web application servers evolved, they added important facilities to increase their usefulness (see Figure 2).
- Limited object services: As developers realized the limitations of placing business logic in scripts on Web pages, facilities were added to partition this logic into reusable middle-tier objects. Most vendors added RMI and CORBA support to allow distributed access to these objects. Some vendors also allowed access to COM objects.
- Connectivity services: In addition to robust, server-grade drivers for the main relational databases, connectivity is provided to access data in the major ERP applications and legacy systems.
- Enterprise deployment services: As scalability and reliability became paramount to supporting the large numbers of users accessing e-commerce Web sites with 24x7 availability, features such as load balancing and failover became important. Security and application manageability are the other key deployment services.
- Java clients: While HTML Web-based clients are satisfactory for many applications, heads-down production users working at a system eight hours a day need a richer UI. Java at the client meets the need while still retaining thin-client deployment advantages. Well-designed servers support Java clients over secure HTTP and provide a three-tier data architecture (queries executed at the server, with result sets remotely accessible via objects at the client). Facilities should be provided for automatic distribution and updating of the client-side application for applications deployed outside the browser.
Enterprise JavaBeans (EJB)
EJB is an important specification in a number of ways:
It's worth noting that EJB is a long-term vision. In version 1.0 the specification is immature and leaves many key areas undefined. Most players expect that the standard won't reach the level of maturity that will make it widely usable until version 2.0.
- It defines a standard, vendor-independent way of writing middle-tier objects and provides standard interfaces for bean writers to access services for naming, security, transactions, etc.
- It makes the bean writers' job much easier as they do not need to be aware of distributed object/remote protocols, transactions, threads, security and state.
- It clearly separates the roles of the bean writer, application developer, container/server developer and the bean deployer/administrator. Standard interfaces govern the interaction between the different roles.
Web Application Servers Meet Distributed Objects
So far we've described two separate markets, the first consisting of object, transaction and connectivity services with no presentation services; the second, a market driven primarily by the need to deliver thin-client presentation support.
In mid-1998 these two worlds collided, resulting in major market confusion (see Figure 3). Leading up to the collision was increasing industry recognition that middle-tier distributed objects provided the right architecture for the creation of larger-scale sophisticated applications. Sun's Enterprise JavaBeans (EJB) specification was the catalyst for the collision. It provided a standard specification for how these middle-tier objects should be written, and made them far easier for the developer to write (the hard work would be done by the EJB container and server vendors).
A Market Thrown into Confusion
Both the application server vendors and the vendors of object and transaction services realized that they needed to support the EJB standard; at this time a variety of different products changed their name to application server. All of a sudden there were 40 application server vendors, each offering widely different types of functionality. Some were focused on Web applications, offering strong presentation services; many others were pure object servers with no presentation services at all.
What Does It Take to Be an Application Server?
As a result of the two markets converging, it is clear that we need a new definition of what is required to be an application server. Are presentation services important? Are connectivity services a requirement? Should the server come with integrated development tools?
The following section outlines where I believe the market is headed and explains the different component parts.
Where the Market Is Headed
I believe that customers are looking for an application server that combines all the services shown in Figure 4.
The rationale for each of the components follows:
- Presentation services: Since it is the Web and thin client applications that are driving application logic into the middle tier, it is clear that application servers require presentation services to generate dynamic HTML pages; provide HTTP services or interface to an existing Web server, and state and session management; and support thin Java clients, including providing application destribution and updating for applications that are deployed outside of a browser.
- Distributed object services: These are clearly required in the form of EJB support to allow the easy wrapping of business logic and other components in a reusable, remotely accessible, secure object. This will include naming services and an ORB to allow IIOP-based communications.
- Distributed transaction services: These are required to coordinate transactions across EJB objects. For example, if you create an order form that is using an order object and an order detail object, you will need to use a transaction that wraps both objects when saving a new order. This service should also support transactions across heterogeneous databases (e.g., simultaneously update tables in both Oracle and DB/2).
- Application services: These should provide additional services to make creation of rich Web applications far easier. Examples of what should be provided here include e-mail send and receive with triggers for incoming e-mail, full text retrieval, content management and dynamic publishing for Web pages and applications such as product catalogs and online research, workflow and push capabilities.
- Connectivity services: These are clearly required to allow the newer Web or thin client applications to leverage existing data and applications. They should provide an open architecture for adding user-defined data connectors as well as off-the-shelf connectors to SAP, PeopleSoft, Lotus Notes, CICS, MQ Series, Tuxedo, etc.
- Enterprise deployment services: These are required for scalability, reliability, manageability and security. Features are load balancing, both server- and session-level failover, a management console and APIs, an SNMP agent to allow inclusion in third-party management systems and a complete security system including authentication against existing directories (LDAP, NT, certificates, etc.), encryption and access control.
- Integrated development tools: At a minimum, these are required to help developers create HTML applications that fully utilize the runtime features of the presentation services, and to deploy EJBs. However, customers are looking to simplify their development of these more sophisticated, multitier distributed applications. That requires a toolset that covers all of the services and that can be used by both expert Java programmers and 4GL programmers who know products such as PowerBuilder, Delphi and Visual Basic.
Where the Players Are Today
Figure 5 shows three different types of players.
Examples of pure presentation servers are Allaire's ColdFusion and Microsoft's Active Server Pages (ASP). Examples of pure object servers are products like Iona, Oracle and WebLogic. Few products combine both presentation and object services in an integrated package. SilverStream and NetDynamics are examples.
It should be pointed out that no vendor has all the attributes required today, particularly as it will most likely require version 2.0 of the EJB spec to achieve this, and that is not yet available. Clearly, the right-hand group shown in Figure 5 is nearest to where the market is headed.
The Importance of Neutrality
Application servers are expected to integrate with the wide variety of existing architectures and standards that exist in today's typical customer environment. These include:
Based on the foregoing, customers are looking for application server vendors that are neutral and don't have a particular bias toward an operating system, data source, etc. Several of the application server vendors don't meet this requirement and consequently don't provide the necessary level of support for other competing products. This is generally considered a major drawback.
- Multiple platforms: UNIX and Windows NT
- Multiple relational databases: Oracle, DB/2, Microsoft SQL Server, Sybase, Informix
- Multiple distributed object standards: CORBA, DCOM, EJB, RMI
- Multiple applications and legacy environments: SAP, PeopleSoft, Lotus Notes, CICS, MQ Series, Tuxedo, etc.
This market has undergone substantial change in the last 12 months. It is still maturing and will probably take another 12 to 18 months to sort itself out. Most
companies will be evaluating and deciding on their standards during 1999 and 2000 as this is a time-critical technology that must be used now to remain competitive. Although a single winner has not yet emerged, the leaders are clearly separating from the pack based on vision, technology, ability to execute, support services and strength of installed base. A clear requirement is that the product must integrate all of the above services, in particular offering strong presentation services combined with strong distributed object and transaction services.
About the Author
David Skok, the chairman and founder of SilverStream Software, Inc., a company he formed
in June of 1996, holds a bachelor of science honors degree from the University of Sussex, England. He can be reached for questions and comments at
Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.