Client-server
Appearance
Clients characteristics
- Always initiates requests to servers.
- Waits for replies.
- Receives replies.
- Usually connects to a small number of servers at one time.
- Usually interacts directly with end-users using any user interface such as graphical user interface.
Server characteristics
- Always wait for a request from one of the clients.
- Serves clients' requests then replies to the clients with the requested data.
- A server may communicate with other servers in order to serve a client request.
- If additional information is required to process a request (or security is implemented), a server may request additional data (passwords) from a client before processing a request.
- End users typically do not interact directly with a server, but use a client.
Advantages
- In most cases, a client-server architecture enables the worsening of roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network, so one of advantages of this model is greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. This independence from change is also referred to as encapsulation.
- All the data is stored on the servers, which generally have better security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data.
- Since data storage is centralized, updates to that data are much easier to administrators than what would be possible under a P2P architecture. Under a P2P architecture, data updates may need to be distributed and applied to each "peer" in the network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers.
- Many advanced client-server technologies are already available which were designed to ensure security, user friendly interfaces, and ease of use.
- It works with multiple different clients of different specifications.
Examples
- Specific types of clients include: web browsers, E-mail clients, and online chat clients.
- Specific types of servers include: web servers, FTP servers, database servers, E-mail servers, file servers, print servers. Most web services are also types of servers.