The CTDP Application Server Guide Version 0.2.0 February 25, 2001
Application servers manage the flow of data and the presentation of the data as it flows between the clients and the database server. They also can do much more to enhance efficiency, management, and the ability to expand client services. A simple example of an application server is a web server. It makes data available to the clients by processing it for the client. One purpose of application servers is to allow application program capabilities to be shared in an efficient and well structured manner. It makes the following functions easier.
- Writing applications
- Managing applications
- Maintaining applications
Application Server Model
The application server may be the same computer as the web server or it may be separate from the web server. The application server (also called an information server) supports a distributed computing three tier model operating in the middle layer (also called middleware). It operates between the client and the database. The application server may also provide some subset of the following services, or provide program APIs to these services which include:
- Directory and naming services.
- Distributed transactions.
- Trading services which provide a list of classes of services which enhances scalibility.
- Database connection services.
These services along with security, fault tolerance, load balancing, and clustering features are considered technical infastructure services.
Application servers should have the ability to allow systems administrators rather than developers to deal with capacity management capabilities. In addition to program development and serving web pages to clients, application servers address the following issues which include deployment issues:
- Scalability - Involves capacity management so increasing user demand may be met and managed efficiently. The server may supply performance information allowing administrators to change configuration to enhance performance for increased demand.
- Database connectivity - Efficient data flow - The application server can manage the requests to the database server along with caching requests for the same data when appropriate, thereby relieving and managing some of the load on the database server.
- Security - There may be requirements to secure or encrypt information between the database server and the application server and/or the application server and the client computers. Also file permissions for developers and clients must be controlled.
- Integration - Provides support to integrate with other or older systems. Toolkits may be provided to allow development of modules for integrating other business applications into the application server.
- Management - May provide for more efficient management of development allowing teams to work simultaneously on code. A version control system may be included. Encourages the use of modular and reusable code procedures.
- Programming language support - A sophisticated application development environment with or without application to HTML integration may be offered.
- Load balancing - The web server may distribute its client processing requests to one of several application servers. There are many different algorithms depending on requirements to allow for distribution of the load.
- Transaction Management - Allows e-commerce by being sure a transaction is only registered when it is really complete.
- Failure management
- Additional Features:
- Site searching
- Messaging - Includes mail passing and queuing. Also message replication may be implemented to provide for message recovery in the event of a machine failure.
- RPC - Remote Procedure Call allows an application server to run programs on another machine.
- Database Replication - Can replicate the main database.