Client-Server Architecture

Anirudh Rajmohan
4 min readSep 11, 2018

--

INTRODUCTION

  • Client — Server architecture forms the basis of all of the internet and its associated services.
  • It is a seemingly easy design allowing us to accomplish tasks to a distributed user base from a single point of origin.
  • Cloud service providers such as AWS, Azure etc and IoT devices are modern day examples that primarily utilize the client-server architecture.
  • Consists of two entities — Servers and Clients.

SERVER

  • A server is the entity offering the service.
  • It could be any service — ranging in web hosting, processing, storage etc.

CLIENT

  • A client is the one receiving the service.
  • A client is usually a recipient connected to the service over the internet.

LAYERED/ TIERED ARCHITECTURE

  • The Client — Server architecture adds several layers on both the server side as well as the client side to achieve adequate business complexity and security.
  • Such layered architecture refers to “tiers” and depending on the business requirements there can be any number of tiers, the most common being “2-tier architecture” and “3-tier architecture”.

THREE — TIERED ARCHITECTURE

  • Quite often, the server side functionalities are distributed based on the tasks they perform.
  1. Web servers
  2. Application servers
  3. Database servers
  • A web server is a server that hosts a website on the internet. A web server is usually associated with front end activities of a service/product. All related front end logic such as how a website should look, feel and behave and login validations etc. are handled in the web server.

For example, when some end client(a Facebook user on a PC for example) logs into www.facebook.com, the request generated by the client is served by a web server.

  • The Application tier usually consists of servers which host the server-side application. The Application server contains all the business/functional logic of an application.

Using the same www.facebook.com as an example, the business logic related to what content should be displayed to the users like you who login to Facebook, which one of your friend’s posts/pics should be prioritized, what ads to be served to the use etc. are all handled in the application server.

  • The Database server stores the actual data and there exist a variety of database/storage products depending on the type of data that needs to be stored.

In the Facebook example, all the users data such as pictures, videos, posts, login credentials, user information etc are stored on database servers.

CLIENT — SERVER ARCHITECTURE

ADVANTAGES:

  • In this case, the web servers, application servers and the database servers are enclosed in their own layer and operate independent of each other.
  • Having a separate cluster(groups of servers are called clusters) has the advantage of being failure -proof. A database server crashing won’t affect the web servers or application servers and vice-versa.

MULTI – TIERED ARCHITECTURE

  • Large enterprises utilize multi-tier architecture to separate functionalities(services) for each task.
  • Examples of such tiered services include DNS(Domain Naming Service), DHCP(Dynamic Host Configuration Protocol), storage tier etc., apart from the web tier, application tier and database tier already mentioned.
  • The need for such a complex layered approach might be due to global scale of operations, high network traffic, securing individual tasks etc.

CLIENT ARCHITECTURE IN REAL WORLD:

Client architecture is essentially the basis of how internet works. Social networking sites like Facebook, e-commerce sites(like Amazon), mobile apps like Instagram, IoT devices like Alexa or Apple watch all function on the basis of client- server architecture.

Take the Apple watch for example, the Apple watch is pretty dumb by itself, it is just a device fitted with a bunch of sensors that pick up vital info like your heart rate etc.

The Apple watch(IoT device) then transmits these info to servers in Apple’s datacenters via the internet and it is on these servers(web, app and database servers) that the actual processing of information takes place into a format that is meaningful(your pulse or blood oxygen levels etc).

CONCLUSION

Understanding client-server architecture is essential for any role in IT environments – whether one is a developer, IT infrastructure architect or an IT support professional.

It also helps optimize implementation, troubleshoot IT issues, identify security flaws in IT environments, and ensure high availability of IT infrastructure to end users and is a pre-requisite to understand any cloud-based service.

--

--