Appendix F. Application Development
Application servers are software systems that act as containers for deploying applications. They are typically implemented as virtual machines (VMs), which make it easier to manage running applications, and they coordinate an application’s interactions with other server systems such as databases and web servers. An application server is a software framework that consists of APIs to coordinate and facilitate integration with other servers. They are typically deployed between a web server and a database server in a two- or three-system configuration.
The history of application servers and Internet technology is short but full of rapid innovations. During the early days, the Internet was full of static HTML documents and only web servers were required. With the growth of dynamic content, the Common Gateway Interface (CGI) protocol was invented and it quickly saw widespread use. This protocol was supposed to provide a standard way for web servers to interface with other servers. Nevertheless, it proved to be inadequate for supporting various complex interactions. To support the explosive growth of e-commerce and content-based web sites, three-tiered architecture approaches were quickly adopted as a best implementation practice.
Enterprise-class application servers are available for all major technology stacks—J2EE, .NET, LAMP, etc.--and have kept up with the technology trends by providing facilities to implement Service Oriented Architectures (SOAs) ...