Client-Server Architecture
Client-Server Architecture
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.
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.
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.
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.
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.