Client-server is a computer model that separates client and server, and usually interlinked using a computer network. Each instance of a client can send data requests to one of the servers online and expect a response. In turn, some of the available servers can accept these requests, process them and return the result to the client. Although the concept be applied to various uses and applications, the architecture is almost the same.
Often clients and servers communicate through a computer network with separate hardware, but the client and server can reside on the same system. The machine is a host server that is running one or more server programs that share their resources with clients.
A client does not share its resources, but requests content from a server or service function. Clients, therefore, initiate communication sessions with the servers that wait for incoming requests.
Client-server – Description
The character of client-server describes the relationship of programs in an application. The server component provides a function or service to one or many clents, who start their service requests.
Functions such as exchanging e-mail, Internet access and database access, are built based on client-server model. For example, a web browser is a client program running on a user’s computer that can access information stored on a web server on the Internet. Users accessing banking services from your computer using a Web browser client to send a request to a web server in a bank. That program may in turn forward the request to its own program database client that sends a request to a server database on another computer to retrieve bank account information. The balance is returned to the client database of the bank, which in turn serves it back to the client browser and displays 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. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the “computing” monolithic centralized mainframe computers.
Each instance of client software can send data requests to one or more servers connected. In turn, the servers can accept these requests, process them and return the requested information to the client. Although this concept can be applied to a variety of reasons for different types of applications, the architecture remains fundamentally the same.
Features of the Client
- Always start applications servers;
- Waits for responses;
- Get answers;
- Usually connects to a small number of servers at once;
- Normally, interacts directly with end users through any user interface, such as graphical user interface.
- Always wait for a request from a client;
- Serves clients’ requests, then responds with the requested data to clients;
- A server can communicate with other servers in order to meet a client’s request.
Client-server Architecture – Advantages
- In most cases, the client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to itself through a network. This creates an additional advantage to this architecture: greater ease of maintenance. For example, you can replace, repair, upgrade or even relocate a server clients, while continuing to be the conscience and not affected by this change;
- All data is stored on servers, which typically have far greater security controls than most clients. Servers can better control access and resources to ensure that only clients with appropriate permissions can access and change data;
- Since data storage is centralized, updates the data are much easier to administer, compared to the P2P paradigm, where a P2P architecture, data updates may need to be distributed and applied to each point in the network, which is the is time-consuming error-prone, as there may be thousands or even millions of peers;
- Many advanced technologies for client-server are now available that are designed to ensure safety, ease of user interface and ease of use;
- Works with many different clients of different capabilities.
Client-server Architecture – Disadvantages
- Network traffic blocking is one of the problems related to client-server model. As the number of simultaneous requests the client to a particular server, the server may become overloaded;
- The client-server paradigm lacks the robustness of a P2P network. Under client-server, if a critical server fails, the clients’ requests can not be met. In P2P networks, resources are usually distributed among multiple nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data necessary to complete the download.
Transport protocols and network applications
The level protocols provide transport services to ensure a reliable transfer of data and applications between computers (or other equipment) remote. The programs at the application layer transport protocols use to contact other applications. For this, the application interacts with the protocol software before making contact. The application waits for a connection that tells the local software protocol that is ready to accept the message. The application that establishes the connection uses the network and transport protocols to contact the system waits. The messages between the two applications are exchanged over the resulting connection.
There are two ways to establish a client-server connection: while one is connection-oriented, the other is not. TCP, for example, is a protocol for connection-oriented transport that the client establishes a connection to the server and they exchange multiple messages of varying sizes, with whom the client application terminates the session. Since UDP is not connection-oriented, the client it builds a message and sends a UDP packet to the server, which responds without establishing a permanent connection to the client.
Study: From Wikipedia, the free encyclopedia. The text is available under the Creative Commons.
- Cloud Computing: The Concept and Examples of its Virtual Services | Part 1 - July 23, 2012
- Why Rapidly Growing Companies Need Cloud Computing | Part 1 - July 22, 2012
- Web Designing Process | Strategic Planning | Part 1 - August 7, 2011