Simple Introduction to Client-Server Architecture Concept

Nimesha Dilini
3 min readDec 10, 2019

--

This architecture is mainly found among web applications. Server, Client are the 2 parties included in this architecture. The main role of server is to provide services and main role of client is to consume services.

Ex: Web Application

Client-server Architecture example

The main drawbacks appear in this system is , The server contain only a limited no of resources(Ram, CPU,..etc;). When no of users increases its hard to handle all client requests with single server. sometimes the server processor utilized and unable to give the service.

In early days , when user connects to the server, the server will create a process per each user. So that limited no of clients able to connect to server. As a solution for this server create threads for each user. So that more no of clients can access the server than in previous scenario.

Ex: If web server has 100 processors, then 100 users can access the server.But with threads (assume 1 process has 10 threads) , then 1000 users can access the server.

Using thread is also not effective when no of users grow rapidly. So we can increase the resources capacities of the server. But that also not practical. Due to these reasons a new new method is introduced as Load Balancing.

Load Balancing

Why we need this?

When one single server is not enough to handle the load. If the server goes down then nobody will be able to get the service.

What?

Load Balancing server(LB) is a middle ware service between client and server. When clients request from the server , the request first send through the LB. It can internally redirect to appropriate web sever. No web app installed in LB but it has some application to handle requests. LB algorithms are defined to handle request and redirect to servers in an efficient way.

LB Algorithm: defined in LB server. It can decide which server will handle which request. Ex: Round Robin Algorithms.

There has one or more standby LB servers that are useful when one of the LB server goes down.

Load Balancing used in Client-server Network

When no of users grows more we can use,

Scaling up: adding new servers to the network.

Scaling down: removing the servers in use when those servers are not working.

In peak time network needs more servers and in non-peak time it needs less no of servers. To handle this scaling introduced the Auto Scaling. This is handled by another application in the network.

advantages?

Without restarting other servers we can add new servers

what happen if one server goes down? Still some servers are running. So some users will able to access the application

What if LB Server goes down? then nobody can access the application. Therefore use a stand by LB

There are some methods to deploy a server as follows,

On-premise : servers deployed within the organization. but maintenance is hard in these severs

Cloud : mainly used in these days. Act as IAAS- Infrastructure As A Service. Ex: AWS, Microsoft Azure , Google Cloud.

--

--

Nimesha Dilini

Former Software Engineer at Sysco LABS | Bsc.(hons) in Software Engineering Graduate from university of Kelaniya (www.kln.ac.lk)