Anyone who has been around the computer world for a while knows that application servers are not a new idea.
Today’s definitions (and there are pages that can be found through a simple Google search) boil down to “”an application server is a computer that serves applications to users.””
Looking
back, using the simple definition, the first multi-user systems were application servers. They were known as mainframes. They held the data, ran the software and provided output in the form of printouts or punched cards. They accepted input from extremely “”thin”” clients — first punched cards, then dumb terminals.
When we segue to the application server of the current century we see that it, too, performs those three functions. The differences are in the input and output; now, most often, input comes from keyboards or disk files, and output goes to a file or to a screen through a Web browser. It’s a far cry from the green screens and punched cards of yore.
Once the kid in the middle in the multi-tier client/server architecture, the application server has grown to be much more than simply the engine that ran the business logic and handed the answers to its sexier front-end components. Every vendor who plays in this market is working to put its own twist on the concept to lure customers into its fold.
Microsoft, for example, has created an application server “”role”” for its Windows Server 2003. When an administrator configures the server for this role, it automatically installs Internet Information Services (IIS), the Application Server console, COM+, and Distributed Transaction Coordinator (DTC).
IBM provides a full-functioned product, but also brings application servers to the entry-level market with its WebSphere Application Server Express. Both Express and the full version of WebSphere are evolving to a single Web services-enabled, Java 2 Enterprise Edition (J2EE) application server that targets IBM’s on-demand computing vision.
BEA chose to produce an enhanced version as well as its basic application server. It added business process management to its WebLogic Server Process Edition.
Macromedia ColdFusion MX’s claim to fame is that it supports, and is supported by, Macromedia’s other products, such as Dreamweaver (for authoring) and Flash.
Oracle’s Application Server 10g raises the bar even higher, not only providing all of the normal functions one would expect of an application server, but adding an information portal, identity management, business intelligence and other goodies.
However, all of these products have price tags that may give some would-be users pause. Thanks to the open source movement, even companies of more modest means can still acquire quite usable application servers.
Zope, for example, is an open source Web application server primarily written in the Python programming language. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine and relational database (RDBMS) connections and code. It features a development model that allows administrators to update their Web sites from anywhere in the world.
All of these products are busily extending the definition of the application server for one reason. A basic application server is, well, a basic application server: not sexy at all, and certainly not unique. Vendors need to differentiate themselves and their products to make them enticing to customers.
The danger, however, is that a hodge-podge of features can take away from the primary functionality of the product. That said, if a good application server is coupled with suitable companion software, it can build a robust solution with the added benefit that users need only make one call for support. But it is incumbent on customers to do their homework and ensure that the functions they need work as claimed and satisfy their requirements.