A client-server architecture is a collective concept consisting of two complementary components: a server and a client.
A client is a local computer on the side of a virtual user who sends a request to a server to get some data or conduct some system actions.
A server is a high-capacity computer or special system equipment that is aimed to solve particular tasks on program code execution. It deals with client requests, provides access to specific system resources, and saves data or databases.
A particular characteristic of this model is the fact that a user sends a request to a server where it is processed and the final result is sent back to a user. Moreover, the server can serve several clients simultaneously.
If there is more than one request at the same time, then these requests are lined up and processed by a server one after another. Sometimes, requests can have their priorities. Some requests with higher priority will be processed as a matter of urgency.
Parameters that can be realized on a server’s side:
- Storage, security, and access to data;
- Work with income client requests;
- Sending response to a client.
Parameters that can be realized on a client’s side:
- A platform for providing user graphical interface;
- Making a request to a server and its further sending;
- Getting results of a request and sending an additional group of commands (request for adding, updating information, deleting a group of data).
The architecture of a client-server system makes principles of virtual communication between local computers. All the rules and principles of interaction can be found inside the protocol.
A communication protocol is a special set of rules, the basis for direct interaction between computers inside the virtual network.
Types of Communication Protocols
TCP/IP a set of protocols for transferring information. TCP/IP is a special designation of the whole network that is functioning based on TCP and IP protocols.
TCP is a type of protocol, a link for establishing a good connection between 2 devices, data transferring, and verification that it was received.
IP is a protocol which functions include the correct delivery of messages to the selected address. In this case, the information is divided into packages that can be supplied in different ways.
MAC is a type of protocol that is the basis for the process of verifying network devices. All devices that are connected to the Internet contain their original MAC address.
ICMP is a protocol that is responsible for the exchange of data, but it is not used for the process of transferring information.
UDP is the protocol that controls the transmission of data, but the data is not verified upon receipt. This protocol is faster than TCP.
HTTP is a protocol for transmitting information (hypertext). All of today’s sites operate on its basis. Its capabilities include the process of requesting the necessary data from a virtually remote system (files, web pages, etc.).
FTP is a protocol for transferring information from a special file server to an end user’s PC.
POP3 is a classic simple mail connection protocol that is responsible for the transfer of mail.
SMTP is a type of protocol that can set rules for the transfer of virtual mail. Also, it is responsible for the transmission and verification of delivery as well as notification of possible errors.
Concepts of Making the Client-Server System
A weak client – productive server
With such a model, the entire process of information processing is transferred to the server’s capacity, and the user has very strictly limited access rights. The server starts sending a response that doesn’t require any additional processing work at all. Hence, the client interacts with the user: creates and submits a request, accepts incoming results, and displays the data on the user’s screen.
A concept, where a client can process some part of the data. In such a situation, a server is simple storage of information, and all activities for processing and providing data are transferred to the user’s PC.
A product or system saying that part of the processing information is provided to the user
In such a situation, the server becomes special storage of information, and all activities for processing and providing data can be transferred to the user’s PC.
There Are 2 Types of Client-Server Architectures:
1. Two-level, consisting of 2 nodes:
- the server, which is responsible for receiving incoming requests and sending a response to the user, using its system resources;
- a client who can provide a custom graphical interface.
The peculiarities of the work are that a specific request comes to the server, and then it is processed and given directly, without the additional use of a group of external resources.
2. The three-level system consists of the following components usage:
- provision of information – graphical user, application object in the form of an application server;
- resource management – a database server that can provide data.
The peculiarity of the work is that several servers can simultaneously process client requests. The distribution process can significantly reduce the load on the used server.
The three-level architecture can become a multi-level one, with the ability to install a group of additional servers. Such a virtual architecture makes it possible to significantly increase the efficiency of the functioning of information systems, as well as to perform an optimized distribution of part of its software and hardware resources.
The peculiarities of the client-server system interaction allow users to share certain functionality and computational load between connected client web products and server applications during a variety of testing processes (from database testing to measuring overall system performance).
If programmers and testers understand the internal architecture of the application, they not only create a product better but also test it, perform comprehensive checks from cross-browser compliance to regression tests.