In: Computer Science
What is the most important advantage and at least two disadvantages of a client-server architecture?
Client-Server Architecture:
It is a producer/consumer based architecture in which, multiples systems, referred as clients, are connected to a centralized server. In this architecture style, centralized server is responsible for the consumption of all the data by the clients.
Most important advantage of Client-Server Architecture Style are:
1. Scalability: Any number of clients can be connected to the centralized server, which helps the network to scale and hosts multiple clients at the same time.
2. Cost Effective: As there is one major centralized server, and its high scalability property, client-server architecture style is highly cost effective.
Disadvantages of Client-Server Architecture:
1. Bottleneck problem: Bottleneck problem states when there are multiple requests but very limited requested can be handled simultaneously. In easier words, the inflow of request far precedes the outflow of request. Due to the availability of only one centralized server which is responsible for handling all the requests from every client, bottleneck problem arises in client-server architecture style.
2. Server shutdown: As all the clients are connected to only one centralized server, there may be possibility that if the servers faces down-time, it effects all the clients, which is very major issue. For example, social media server contains login credentials for multiple social-media account, and if that server is shutdown, none of the users or clients will be able to login to there account, as the server handling all the request is currently unavailable due to shutdown.