Client/Server Architecture
The client/server architecture defines specific responsibilities for both the client and the server. By assigning specific responsibilities to both the client and the server, the program becomes a client/server application that uses distributed processing.
Figure 6.5 A client communicating with a server over a network Distributed processing occurs when a back-end server fulfills requests made by a front-end client. The back-end server provides both data storage and processing capabilities. The front-end client makes requests to the server to perform processing actions and to return data that it is storing.
Advantages of Client/Server Systems
Advantages of a client/server system include:
- The client/server approach is modular, and the server-based software components are small and self-contained.
- Because each component runs in its own protected, user -mode process, a server can fail without interfering with the rest of the operating system.
- The self-contained nature of the components makes it possible to distribute them across multiple processors on a single computer (symmetric multiprocessing) or across multiple computers on a network (distributed computing).
- The client provides user services consisting mainly of the user interface. This service receives, displays, and edits data from the user. The client can use this data to send requests to the server. In addition, clients can be programmed to perform some processing, when appropriate, to use fewer server resources.