Client-Server

The Client-Server architecture is a distributed computing model where tasks or services are divided between two entities:

  1. Client: A device or application that requests resources, services, or data from a server.
  2. Server: A central system or application that processes client requests and provides the requested resources or services.

Key Characteristics:

Two-Tier Model:

  • The client and server communicate over a network.
  • Clients handle the user interface, while servers manage data and processing.

Centralised Server:

  • The server acts as a hub, handling multiple client requests.

Communication Protocols:

  • Clients and servers communicate using standardised protocols such as HTTP, FTP, or TCP/IP.

Examples:

  • Web Applications: A browser (client) communicates with a web server to fetch website content.
  • Email Systems: An email client (e.g., Outlook) connects to a mail server to send and receive emails.
  • Database Systems: A client application queries a database server to retrieve or update data.

Advantages:

  • Centralised Management: Easier to update, maintain, and secure the server.
  • Resource Sharing: Multiple clients can access shared resources efficiently.
  • Scalability: Servers can be scaled to handle more clients as needed.

Disadvantages:

  • Single Point of Failure: If the server fails, connected clients may lose access to resources.
  • Network Dependency: Requires reliable network connectivity for communication.
  • Performance Bottlenecks: High traffic or poor server performance can impact clients.