The role of a server program is to server multiple clients who have an interest in a shared resource owned by the server. This section des...
The role of a server program is to server multiple clients who have an interest in a shared resource owned by the server. This section describes a day in the life of a typical server as follows:
1. Waits for client-initiated requests:
The server program spends most of the time passively waiting for client’s requests, in the form of messages. Some servers assign a dedicated session to every client. Others create a dynamic pool of reusable sessions. And some servers provide a combination of the both. Of course to be successful, the servers must be responsive to its clients and be prepared for rush hour traffic.
2. Executes many instructions at the same time:
The server program must do the work requested by the client promptly. A client should not have to wait for a single threaded process. A server program that does not provide multitasking will have the risk of having a client hog all resources and starve its fellow clients. Hence the server must be able to concurrently service multiple clients while protecting the integrity of shared resources.
3. Takes care of VIP clients first:
The server program must be able to provide different levels of service priority to its clients. For example, a server can service a request for a report or batch job in low priority while maintaining OLTP-type responsiveness for high-priority clients.
4. Initiates and runs background task activity:
The server program must be able to run background tasks triggered to perform tasks unrelated to the main program. For example, it can trigger a task to download records from a host database during non-peak hours.
5. Keeps Running:
The server program is typically a mission-critical application. If the server goes down, it impacts all the clients that depend on its services. The server program and the environment on which it runs must be very robust.
6. Grows bigger and fatter:
Server programs seem to have an insatiable appetite for memory and processing power. The server environment must be upwardly scalable and modular.
1. Waits for client-initiated requests:
The server program spends most of the time passively waiting for client’s requests, in the form of messages. Some servers assign a dedicated session to every client. Others create a dynamic pool of reusable sessions. And some servers provide a combination of the both. Of course to be successful, the servers must be responsive to its clients and be prepared for rush hour traffic.
2. Executes many instructions at the same time:
The server program must do the work requested by the client promptly. A client should not have to wait for a single threaded process. A server program that does not provide multitasking will have the risk of having a client hog all resources and starve its fellow clients. Hence the server must be able to concurrently service multiple clients while protecting the integrity of shared resources.
3. Takes care of VIP clients first:
The server program must be able to provide different levels of service priority to its clients. For example, a server can service a request for a report or batch job in low priority while maintaining OLTP-type responsiveness for high-priority clients.
4. Initiates and runs background task activity:
The server program must be able to run background tasks triggered to perform tasks unrelated to the main program. For example, it can trigger a task to download records from a host database during non-peak hours.
5. Keeps Running:
The server program is typically a mission-critical application. If the server goes down, it impacts all the clients that depend on its services. The server program and the environment on which it runs must be very robust.
6. Grows bigger and fatter:
Server programs seem to have an insatiable appetite for memory and processing power. The server environment must be upwardly scalable and modular.