Client-server computing or networking is a
distributed application architecture that partitions tasks or work loads between service
providers (servers) and service requesters, called clients.
The term client-server refers to a popular model for
computer networking that utilizes client and server devices each designed for specific
purposes. The client-server model can be used on the Internet as well as local area
networks (LANs). Examples of client-server systems on the Internet include Web browsers
and Web servers, FTP clients and servers, and DNS.
Client and server device:
Client devices are typically PCs with network software
applications installed that request and receive information over the network. Mobile
devices as well as desktop computers can both function as clients.
A server device typically stores files and databases
including more complex applications like Web sites. Server devices often feature
higher-powered central processors, more memory, and larger disk drives than clients.
Client and server Application:
Client-server describes the relationship between two
computer programs in which one program, the client program, makes a service request to
another, the server program. Standard networked functions such as email exchange, web
access and database access, are based on the client-server model.
The client-server model has become one of the central ideas
of network computing. Many business applications being written today use the client-server
model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet, DNS.
A client computer and a server computer are usually two
separate devices, each customized for their designed purpose. For example, a Web client
works best with a large screen display, while a Web server does not need any display at
all and can be located anywhere in the world. However, in some cases a given device can
function both as a client and a server for the same application. Likewise, a device that
is a server for one application can simultaneously act as a client to other servers, for
different applications.
The most basic type of client-server architecture employs
only two types of hosts: clients and servers. This type of architecture is sometimes
referred to as two-tier. It allows devices to share files and resources. The two tier
architecture means that the client acts as one tier and application in combination with
server acts as another tier.
Comparison to peer-to-peer architecture:
Another type of network architecture is known as
peer-to-peer, because each host or instance of the program can simultaneously act as both
a client and a server, and because each has equivalent responsibilities and status.
Client-server is just one approach to managing network
applications The primary alternative, peer-to-peer networking, models all devices as
having equivalent capability rather than specialized client or server roles. Compared to
client-server, peer to peer networks offer some advantages such as more flexibility in
growing the system to handle large number of clients. Client-server networks generally
offer advantages in keeping data secure.
Advantages:
All the data is stored on the servers, which generally have
far greater security controls than most clients. Servers can better control access and
resources, to guarantee that only those clients with the appropriate permissions may
access and change data.
Since data storage is centralized, updates to that data are
far easier to administer than what would be possible under a P2P paradigm. Under a P2P
architecture, data updates may need to be distributed and applied to each peer in the
network, which is both time-consuming and error-prone, as there can be thousands or even
millions of peers.
Disadvantages:
Traffic congestion on the network has been an issue since
the inception of the client-server paradigm. As the number of simultaneous client requests
to a given server increases, the server can become overloaded. Contrast that to a P2P
network, where its aggregated bandwidth actually increases as nodes are added, since the
P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of
every node in that network. |