Client and Server Architecture:
In the days of mainframes, the-central server used to be a powerful machine. The software and the data both were stored on the main frame. There used to be a set of terminals that people used to connect to the server. This simple architecture is known as host-based architecture. Along the passage of time, the terminals were replaced by computers, which were not as powerful as the servers but were more powerful than the terminals. The server became the file and database server, which stored the data, but the application software ran on the client computers. As the applications became complicated, the network traffic increased and people started looking for an alternative. The client/server architecture was then proposed and it became very popular.
In the Client/server model, a machine that provides a service is called a Server. The machine.that makes use of the service is called a Client. For instance, server may store the database of an organization. A client connects to the database server for its needs. The client and the server work independently in a co-operative manner. The architecture facilitates the addition of a new client or server to the network. A server usually can handle many clients simultaneously. Therefore, most servers are powerful machines such as mainframes, minicomputers, workstations etc.
The clients need not be as powerful as the servers and they usually are not. The clients and servers are on the network. But each server is assigned one or more specific tasks. For instance, a file server is used to manage user data files, a network server may control network connections. A database server stores the data of the organization and provides different levels of access to different clients. The servers provide their services through human readable names and well-known ports. When the client makes a request, it is not aware of the physical location of the server, or the processes of the server. The server details are hidden, but services are transparent. This is known as “service transparency”. It is an important feature of client/server architecture.
A request made by a client may involve data access, data processing, and result rendering to the client. The data access, the processing, and the presentation can all be done by the server or they can be shared between the server and client. The client/server implementation is called “distributed presentation” when all three components are on the server, and the client has part of presentation logic. In remote presentation, the data storage and management and application logic is handled by the sewer, but the presentation logic is handled by the client. In distributed logic arrangement, the data storage and management is handled by the server, the presentation is handled by the client and the application logic is shared between the sewer and the, client.
In remote data management model, the data storage and management is the responsibility of the server and the other two functions are handled by the client. In distributed database model of the client/server architecture, the client handles part of the data storage and management of application logic and presentation. The server compliments data storage and management job of the client. A client is called a thin client if it only handles the presentation job. A client is a fat client if it supports data storage, application processing, and presentation.
Client/server architecture is scale-able. A new server can be added to the network, an application or part of it can be moved to another machine. The architecture supports heterogeneous hardware and software. One system may run NT operating system and another one can run Linux and they can form a client/server pair. The failure of a network segment or a computer does not bring the entire system down. The client/server architecture reduces the unnecessary network traffic. The required part of the data stored on the server is transmitted to the client over the network. The file and data management is easier because only a single copy of data is stored at the server. The server controls the access and usually different people have different level of access.