What is a Client-Server Model

Client-Server Model – The client-server model describes the communication between two computing entities over a network. Clients are the ones requesting a resource or service and Servers are the ones providing that resource or service. Note, the server can be running one or more programs and involved in multiple communications with multiple clients at the same time. The client initiates the communication and awaits a response from the server. This model was developed in the ‘70s at Xerox Palo Alto Research Center (PARC).

Categories of Client-Server Computing

There are four main categories of the client-server model:

  • One-Tier architecture: consists of a simple program running on a single computer without requiring access to the network. User requests don’t manage any network protocols, therefore the code is simple and the network is relieved of the extra traffic.
  • Two-Tier architecture: consists of the client, the server, and the protocol that links the two tiers. The Graphical User Interface code resides on the client host and the domain logic resides on the server host. The client-server GUI is written in high-level languages such as C++ and Java.
  • Three-Tier architecture: consists of a presentation tier, which is the User Interface layer, the application tier, which is the service layer that performs detailed processing, and the data tier, which consists of a database server that stores information.
  • N-Tier architecture: divides an application into logical layers, which separate responsibilities and manage dependencies, and physical tiers, which run on separate machines, improve scalability, and add latency from the additional network communication. N-Tier architecture can be closed-layer, in which a layer can only communicate with the next layer down, or open-layer, in which a layer can communicate with any layers below it.

Benefits of the Client-Server Model

There are numerous advantages of the client-server model:

  • A single server hosting all the required data in a single place facilitates easy protection of data and management of user authorization and authentication.
  • Resources such as network segments, servers and computers can be added to a client-server network without any significant interruptions.
  • Data can be accessed efficiently without requiring clients and the server to be in close proximity.
  • All nodes in the client-server system are independent, requesting data only from the server, which facilitates easy upgrades, replacements, and relocation of the nodes.
  • Data that is transferred through client-server protocols are platform-agnostic.