The client–server model is a computing model that acts as distributed application which 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 machine is a host that is running one or more server programs which share their resources with clients. A client does not share any of its resources, but requests a server's content or service function. Clients therefore initiate communication sessions with servers which await incoming requests.
Client/Server Architecture
Client server network architecture consists of two kinds of computers: clients and servers. Clients are the computers that that do not share any of its resources but requests data and other services from the server computers and server computers provide services to the client computers by responding to client computers requests. Normally servers are powerful computers and clients are less powerful personal computers.
Distinct Features of Client-Server Architecture
1: Shared resources
A server serves multiple clients at a time and regulates access of the clients to all the share resources.
2: Service
A server provides services that the client consumes. This happens through many different processes that run on different machines termed as servers and clients.
3: Functional Modules
The client-server architecture has well-designed interfaces and functions that are performed by the client and server use software modules, hardware components, or both. Sometimes these are located on dedicated machine systems.
4: Location Transparency
The server process can be located on the same machine as the client or on a different system across a network. The software is designed to veil the location of the server from the clients and only the service calls are directed as per requirements. A program can be a server, client or both.
5: Asymmetrical Protocols
The clients and servers have an m:1 relationship. That is, a server waits passively for initiation service dialog from many clients.
6: Mix-and-Match
The software that is designed for a client-server setup works independently of both the hardware and the operating system platforms. This allows for mix and match of both client and server programs.
7: Service Encapsulation
The server acts as a specialist in that it decides the action be taken after a request is received from the client. The server can be upgraded to execute any request, if need be, without affecting the client if the message interface is not affected.
8: Message-based Exchange
The main function of any client-server system relies on the message passing system between the client and the server. The message is the delivery system that is employed for both the service requests and the corresponding replied.
9: Scalability
By horizontal scaling, the action involves the addition of more clients. The impact will be minimal. Vertical scaling involves migration to a larger or a more powerful server and the action is more complex. Multi-server systems are also possible.
10: Integrity of Systems
The server data and code is maintained centrally and this helps to guard the integrity of the data that is shared. Clients are however independent.
11: Time Limits
Servers are expected to work or respond within specific time limits to keep up the quality of service. Problems may, however, occur when the load is high.
Internet as client/server Technology
Internet is massive network of networks and world wide web is a system of interlinked hypertext documents accessed via the internet. To complete the flow of accessing information over the web there is need of client/server architecture.
Client/server describes the flow of information between two computer programs in which one computer program (client) makes a service request to another computer program (the server), which provide service requested by the client.
Clients rely on servers for required resources. It is network architecture in which each computer or process on the network is either a client or a server. Hence, we could describe internet as client/server technology.