Client-Server Model
Overview
The client-server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs, which share their resources with clients. A client does not share any of its resources, but it requests content or service from a server. Clients, therefore, initiate communication sessions with servers, which await incoming requests.
Architecture
The client-server model is a core network computing concept also building functionality for emailing, hosting websites, and running web applications. The model partitions tasks or workloads between servers, powerful computers dedicated to managing disk drives (file servers), printers (print servers), or network traffic (network servers), and clients, PCs or workstations on which users run applications. Centralizing access to resources through servers in a network reduces the chances of inconsistent data.
Client
In the client-server model, a client is usually a computer that accesses shared network resources provided by another computer (a server). In the simplest form, a desktop computer, laptop, or even a cell phone can be considered as a client. When you connect to a web server, an email server, or a file server, your computer is the client as it is receiving a service from these servers.
Server
A server is a physical computer dedicated to running one or more services (as a host) to serve the needs of the users of other computers on the network. Depending on the service that is running, it could be a file server, a mail server, a web server, a game server, or a print server. Usually, a server is a high-powered machine that can handle many clients at once. It also has the ability to run services that are designed to serve the client's requests.
Communication
Communication between the client and the server is done by sending request messages by the client to the server to perform some action, such as reading, inserting, updating, or deleting data. The server processes the request and returns a response message to the client. The response contains the status of the request and any applicable data requested by the client.
Advantages and Disadvantages
The client-server model has several advantages, including centralization of control, scalability, and ease of maintenance. However, it also has some disadvantages, such as potential for single point of failure, heavy reliance on the server, and potential for overloading the server.