Linux as an Application Server -- The Tomcat Way
Chris Bush
With the birth of the World Wide Web, systems administrators suddenly found themselves with another kind of specialized system to manage -- the Web server. In those early days, the Web server was almost always a UNIX-based system. With the attention being paid today to Open Source software like Linux and Apache, and despite the market muscle of Microsoft, Web servers are still predominantly UNIX-based. Previously, Web servers didn't always get the same attention in the corporate data center as the mainframe, the database servers, or even the file and print servers. However, Web servers are here to stay and have added their own complexities to the job of the systems administrator.
Early Web servers typically hosted "brochure-ware" corporate Web sites or intranets whose most sophisticated functionality was job-posting systems or corporate phone directories, implemented using CGI (Common Gateway Interface) programs. As the Web grew, and the technologies driving it matured and expanded, more Web servers became host to increasingly critical applications, like e-storefronts, information portals, customer service applications, B2B (business-to-business) portals, and others. As these applications became more prevalent, it became important to segregate application architecture into more than just a front-office tier and a back-office tier. A third layer in the client-server architecture -- a middle-office tier to implement business-logic separate from the database and the user interface was necessary
CGI seemed to offer a reasonable option for this middle-office tier for Web-based applications, but the presentation code (HTML), was always interspersed throughout the code that implemented the business rules and data access central to the application's functionality. This did not provide the clean separation between application layers desirable in a multi-tiered client-server architecture. Furthermore, Web servers and CGI scripts did not offer a number of other features required for building scalable, robust, and secure applications.
|