Client–server model

Client–server model

The client–server model of computing is a distributed application that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.[1] 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.



Schematic clients-server interaction.

The client–server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services.

Functions such as email exchange, web access and database access, are built on the client–server model. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information. The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user. 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, and DNS.

The interaction between client and server is often described using sequence diagrams. The Unified Modeling Language has support for sequence diagrams.

Specific types of clients include web browsers, email clients, and online chat clients.

Specific types of servers include web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.

Comparison to peer-to-peer architecture

A client-server network involves multiple clients connecting to a single, central server. The file server on a client-server network is a high capacity, high speed computer with a large hard disk capacity.

By contrast, peer-to-peer networks involve two or more computers pooling individual resources such as disk drives, CD-ROMs and printers[2]. These shared resources are available to every computer in the network, while each two of them communicate in a session. Each computer acts as both the client and the server which means all the computers on the network are equals, that is where the term peer-to-peer comes from. The advantage of peer-to-peer networking is the easier control concept not requiring any additional coordination entity and not delaying transfers by routing via server entities. However, the collision of session may be larger than with routing via server nodes.

In the peer to peer network, software applications can be installed on the single computer and shared by every computer in the network. They are also cheaper to set up because most desktop operating systems have the software required for the network installed by default. On the other hand, the client-server model works with any size or physical layout of LAN and doesn't tend to slow down with a heavy use. [3].

Peer-to-peer networks are typically less secure than a client-server networks because security is handled by the individual computers, not controlled and supervised on the network as a whole. The resources of the computers in the network can become congested as they have to support not only the workstation user, but also the requests from network users. It may be difficult to provide systemwide services when the client operating system typically used in this type of network is incapable of hosting the service.

Client-server networks with their additional capacities have a higher initial setup cost for networking than peer to peer networks. The long-term aspect of administering a client-server network with applications largely server-hosted surely saves administering effort compared to administering the application settings per each client. In addition the concentration of functions in performant servers allows for lower grade performance qualification of the clients.

It is possible to set up a server on a modern desktop computer, but it is recommended to consider investment in enterprise-wide server facilities with standardised choice of hardware and software and with a systematic and remotely operable administering strategy. It is easier to configure and manage the server hardware and software compared to the distributed administering requirements with a flock of computers[4][5].


Generally a server may be challenged beyond its capabilities. Then a single server may cause a bottleneck or constraints problem. However, servers may be cloned and networked to fulfill all known capacity and performance requirements. Limitations include network load, network address volume, and transaction recovery time.

Aspects of comparison for other architectural concepts today include cloud computing as well. Possible design decision considerations might be:

  • As soon as the total 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. However, this simple model ends with the bandwidth of the network: Then congestion comes on the network and not with the peers.
  • Any single entity paradigm lacks the robustness of a redundant configuration. Under client–server, should a critical server fail, clients’ requests cannot be fulfilled by this very entity, but may be taken by another server, as long as required data is accessible. In P2P networks, resources are usually distributed among many nodes which generate as many locations to fail. If dynamic re-routing is established, even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download.
  • Mainframe networks use dumb terminals. All processing is completed on few central computers. This is a method of running a network with different limitations compared to fully fashioned clients.
  • Using intelligent client terminals increases the maintenance and repair effort. Lesser complete netbook clients allow for reduction of hardware entities that have limited life cycles.

See also


  1. ^ "Distributed Application Architecture". Sun Microsystem. Retrieved 2009-06-16. 
  2. ^ Understanding peer-to-peer networking
  3. ^ [Peer-to-Peer Networking and Applications]
  4. ^ Book: Computers are your future
  5. ^ Peer to Peer vs. Client/Server Networks

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Client-server — The client server software architecture model distinguishes client systems from server systems, which communicate over a computer network. A client server application is a distributed system comprising of both client and server software. A client …   Wikipedia

  • client-server architecture — Architecture of a computer network in which many clients (remote processors) request and receive service from a centralized server (host computer). Client computers provide an interface to allow a computer user to request services of the server… …   Universalium

  • client server architecture — model for a system in which most of the data processing is performed by a server …   English contemporary dictionary

  • BOINC client-server technology — refers to the model under which BOINC works. The BOINC framework consists of two layers which operate under the client server architecture. Once the BOINC software is installed in a machine, the server starts sending tasks to the client. The… …   Wikipedia

  • Client (computing) — A client is an application or system that accesses a service made available by a server. The server is often (but not always) on another computer system, in which case the client accesses the service by way of a network. The term was first… …   Wikipedia

  • Server (computing) — For other uses, see Server (disambiguation). Servers in a data center. Several servers are mounted on a rack and connected to a display …   Wikipedia

  • Client-side prediction — is a network programming technique used in video games intended to conceal negative effects of high latency connections. The technique attempts to make the player s input feel more instantaneous while governing the player s actions on a remote… …   Wikipedia

  • Client-side JavaScript — (CSJS) is JavaScript that runs on the client side. While JavaScript was originally created to run this way, the term was coined because the language is no longer limited to just client side, since server side JavaScript (SSJS) is now available.… …   Wikipedia

  • Model View Controller — Konzept. Hinweis: die durchgezogene Linie symbolisiert eine direkte Assoziation, die gestrichelte eine indirekte Assoziation (zum Beispiel über einen Beobachter). Model View Controller (englisch  model view controller (MVC), deutsch auch: M …   Deutsch Wikipedia

  • Client honeypot — Honeypots are security devices whose value lie in being probed and compromised. Traditional honeypots are servers (or devices that expose server services) that wait passively to be attacked. Client Honeypots are active security devices in search… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.