Server Infrastructure
Servers require a sophisticated infrastructure. Building a network application server from scratch is a complex task. Implementing the business function is a small fraction of the work. In fact, most of the work involves building a sophisticated infrastructure to attain acceptable levels of performance and scale.
Application server developers usually must develop much of the infrastructure themselves. For example, even with the rich services provided by remote procedure call (RPC) systems, developers must:
- Develop server-process executables to host the business function.
- Register servers with the directory system.
- Manage server process pools and thread pools. Ultimately, rather than dedicating a thread to work on behalf of a single client, servers must manage thread pools for servicing multiple client requests.
- Synchronize access to shared data and resources across concurrent requests from clients. This requires sophisticated locking protocols that must account for deadlocks, race conditions, starvation, and other performance issues.
- Manage client context, including database connections and per-user data structures (or objects).
- Cache state on the client for improved latency across slow networks.
- Implement security to ensure that business functions and objects are available only to those authorized to use them.
- Implement management and configuration tools to allow remote installation and administration of the servers.
MTS provides the application-server infrastructure that satisfies these requirements and allows the developer to focus on creating the business logic.