Application Servers: The Future of Software
Application servers are the latest fad in systems software. Like all fads, they've been the subject of a good deal of hype, most of which suggests that application servers are the most important thing to happen in system software for the last several years.
I don't know about you, but I am incredibly sick of hype. Yet for once, remarkably, the hype is correct. Application servers really are the most important things to happen in system software for the last several years. Furthermore, the technology you choose in this area may be the most important decision you make for the next several years.
To explain why, I must first define "application server," which is not an easy task. Perspectives differ, but in general an application server is a set of supporting services for building server applications. These applications are often constructed from components, and they can be accessed by both browsers and other clients. To allow this, an application server must support HTTP and perhaps other protocols, too, such as IIOP or DCOM. Furthermore, since application servers imply a centralized computing model, services for application scalability are typically provided, such as pooling threads and database connections. Since multiuser, scalable server applications commonly use transactions, some kind of transaction support is usually part of the package.
The flock of app server vendors includes Netscape, Oracle, NetDynamics (recently purchased by Sun), WebLogic (recently purchased by BEA), IBM, and several others. Microsoft is a strong player in the game, although the company has been slow to position its offerings as application servers.
Why are app servers so important? The answer is simple: they represent the next great paradigm for building enterprise applications. The first phase, dominant from the 1960s until the mid-1980s, was mainframe-based applications, accessed via dumb terminals and built on top of supporting services, such as CICS. Phase two, dominant from the 1980s until quite recently, was client/server applications. Here, business logic gets spread between a fat client and stored procedures in a database. In the client/server era, plenty of people talked a good game about building three-tier applications and getting away from the well-known limits of conventional two-tier client/server. But the supporting services to make this happen were hard to come by.
Application servers provide those supporting services. An app built on top of any application server is unquestionably three-tier. In fact, one can argue that the requirement for browser access is the final push that has made us all want to build three-tier apps. Looking ahead, three-tier applications built on top of an app server will soon be the norm.
This is why the application server technology you choose is so important -- it will likely become the foundation for the next generation of mission-critical applications. While the market appears complicated, there are in fact only two choices.
For building application logic on Windows NT, or Windows 2000, the default choice is the application server technologies that ship with the system. These technologies include IIS and Active Server Pages for building Web applications, MTS for scalability and transaction support and COM as the component model running through everything. Microsoft hasn't historically called any of this an application server, but the services match what its competitors in this market are providing.
Even though the competitors each provide somewhat different offerings today, they're all converging on a single set of technologies based on Java and CORBA. Those technologies include JavaServer Pages (which are quite similar to Microsoft's ASPs), Enterprise JavaBeans (which is much like MTS), and a few more.
Which choice is best for you: a Microsoft or a Java/CORBA product? It depends because the requirements differ. Microsoft's application server technologies come free with NT, which is an advantage, but many Java/CORBA competitors offer excellent products. At the moment, Microsoft has a relatively weak story concerning clustering and load balancing -- an area that some of the competition credibly argues is critical.
But is Microsoft's technology likely to become the most widely used application server? I think the answer is yes. People tend to use the resources that come with their systems, which is why nobody can make any money selling TCP/IP stacks for Windows anymore. If you have NT servers, the default choice for an application server is already installed on your machine. Many organizations will look no further. --David Chappell is principal of Chappell & Associates (Minneapolis), an education and consulting firm. Contact him at firstname.lastname@example.org.