The Client Server Architecture is one of the most popular architectures used. It’s best used when security aspects are an important part of the problem, and when multiple users need to access common information and common applications.
It is a distributed architecture that allows us to partition workloads between the providers of the service and service requestors. The service provider is called a server, and the service consumer is called a client. A server listens for requests and services them as clients request them.
The client has to be relatively smart to know how to send and receive requests – they are essentially linked to the server by request/reply connectors.
The client server architecture is usually used best when there’s a need for a cohesive end-to-end process that all users need to use and access. For the most part, everything needs to be centralized on a server.
The biggest disadvantage of this architecture is that servers are expensive to purchase and manage and they are difficult to scale up to a large enough size if growth is expected. Layered Architecture or n-Tier is often a better long-term choice.
The client server architecture is often used for online applications like email, file sharing, or even banking.