Client-Server

Client-Server Definition

Client-server denotes a relationship between cooperating programs in an application, composed of clients initiating requests for services and servers providing that function or service.

 

What is the Client-Server Model?

The client-server model, or client-server architecture, is a distributed application framework dividing tasks between servers and clients, which either reside in the same system or communicate through a computer network or the Internet. The client relies on sending a request to another program in order to access a service made available by a server. The server runs one or more programs that share resources with and distribute work among clients.

 

The client server relationship communicates in a request–response messaging pattern and must adhere to a common communications protocol, which formally defines the rules, language, and dialog patterns to be used. Client-server communication typically adheres to the TCP/IP protocol suite.

 

TCP protocol maintains a connection until the client and server have completed the message exchange. TCP protocol determines the best way to distribute application data into packets that networks can deliver, transfers packets to and receives packets from the network, and manages flow control and retransmission of dropped or garbled packets. IP is a connectionless protocol in which each packet traveling through the Internet is an independent unit of data unrelated to any other data units.

 

Client requests are organized and prioritized in a scheduling system, which helps servers cope in the instance of receiving requests from many distinct clients in a short space of time. The client-server approach enables any general-purpose computer to expand its capabilities by utilizing the shared resources of other hosts. Popular client-server applications include email, the World Wide Web, and network printing.

 

Categories of Client-Server Computing

There are four main categories of client-server computing:

 

One-Tier architecture: consists of a simple program running on a single computer without requiring access to the network. User requests do not 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.

Microsoft MySQL Server is a popular example of a three-tier architecture, consisting of three major components: a protocol layer, a relational engine, and a storage engine. Any client machines that connect directly to SQL Server must have a SQL Server client installed. Microsoft’s Client-Server Runtime Process helps manage the majority of the graphical instruction sets on Windows operating system.

 

References

Client-Server Model. (n.d.). Retrieved December 02, 2020, from https://techterms.com/definition/client-server_model

Definition of client/server. (n.d.). Retrieved December 02, 2020, from https://www.pcmag.com/encyclopedia/term/clientserver

More Article's For You

Tag: mobile-development

What is Universal Windows Platform apps (UWP)?



Tag: web-development

What is a Single Page Application? Pros and Cons of SPAs



Tag: web-development

The 5 Most Important Skills a Web Developer Needs



Tag: server-domain

Websockets and SSE (Server Sent Events)



Tag: web-development

Principles of modern web application development



Start A Project
Start A Project With Us
Your message has been sent. Thank you!