Client Server Architecture in System Design

Basic Client Server Architecture

A basic 2-tier client-server architecture

A basic client-server architecture consists of a client requesting data(an example can be an image or some text) from the server and the server responding with the data.

Now there are cases where some logical manipulation has to be done on the server.

In a basic client-server architecture, either it can simply respond to data or logical manipulation can also be there and it is done on the server side. Also, the logic and the data both sit on the server.

2-tier, 3-tier, n-tier

The 2-tier architecture is the simplest model, in which a client directly communicates with a server. The client sends a request to the server, and the server responds by sending the data or information requested by the client. This architecture is sometimes called a "client-server" architecture.

3-tier architecture adds an intermediate layer between the client and the server. This intermediate layer called the application server, provides additional functionality such as security, data processing, and business logic. The client sends a request to the application server, which processes the request and then sends a request to the database server. The database server responds to the application server, which then sends the response back to the client.

n-tier architecture is an extension of the 3-tier architecture. It allows for even more layers between the client and server, with each layer providing additional functionality. The layers can include web servers, application servers, database servers, and other servers as needed.

Thick Client vs Thin client

A thick client and a thin client are two different types of clients in a client-server architecture.

A thick client is a client that has a significant amount of application logic and processing power installed locally on the client machine. This means that the client can perform many tasks without requiring interaction with a server. Thick clients typically require more powerful hardware and software resources, and they can be more expensive to develop and maintain.

A thin client, on the other hand, is a client that relies heavily on the server for processing and application logic. Thin clients typically have minimal software installed locally and rely on the server to perform many tasks. This makes thin clients less expensive to develop and maintain, and they can run on less powerful hardware.

The choice between a thick client and a thin client depends on the specific requirements of the application. Thick clients are generally preferred when there is a need for high-performance and local processing power, such as in video editing or gaming applications. Thin clients are generally preferred when there is a need for low cost, easy maintenance, and scalability, such as in web-based applications.

Reference

I am learning system design basics from SudoCODE.

Connect with me

If this blog helped you in some way, drop me a 'Hi' on Twitter and connect with me.