Evolution of Client-Server Architecture

It is an architecture that shares computer network. Client sends a request to the server through the internet, and the server accepts the request and deliver the data packets back to the client. Clients will not share their resources. Eg. Email, World Wide Web, etc. First we want to know what is client and server.

  • Client: In the digital world, it is a computer(Host) . i.e. Ability to receive information or using a particular service from the service providers(Servers).
  • Servers: In this digital world it is a remote computer which provides information(data) or access to a particular services.

Ideally, a server provides a standardized transparent interface to clients so that clients need not be aware of the specifics of the system (i.e., the hardware and software) that is providing the service. Clients are workstations or personal computers, But Servers are more powerful machines located on network. This is effective when clients and the server each have distinct tasks that they routinely perform.

Types of Client-Server Architecture

  1. 1-tier Architecture

Client-server configuration setting, user interface environment, data logic, and marketing logic system are existed on the same system. It is reliable but difficult to handle complex tasks. All the datas are saved on the local machine.

Eg. MP3 player, MS Office

2. 2-tier Architecture

It is a best client-server architecture to store user interface on the client and all database is saved on the server. Business logic and database logic are existed either on client or server, but they are required to be maintained. When data logic and business are gathered on the client terminal then it is known as “fat client thin server architecture”. But if Business Logic and Data Logic are controlled at the server machine then it is known as “thin client fat server architecture”.

Eg. Online ticket reservations program

Advantages of using this :- Easy to design all applications, Maximum user satisfaction, Implementation of Homogeneous Environment, Best performance.

Drawbacks of using this :- Poor performance due to grow number of connections of each user, Less security, All clients are totally dependent upon the manufacturer’s database, Less portability means this architecture is totally dependent upon the particular database.

3. 3-tier Architecture

3-tier architecture

It has 3 layers.

  1. Presentation layer (Client Tier) :- Client handles this layer
  2. Application layer (Business Tier):- Controls the Application
  3. Database layer (Data Tier) :- Server takes care of this layer.

Advantages of using this :-Best performed data integrity, Improved security to 2-tier architecture, Hide database structure.

4. N-tier Architecture

It is a multitier architecture, It is a scaled form of 3-tier architecture. Entire presentations, application processing, and data management functions are isolated from each other in this tier.

Advantages of using this :- Delivers the flexible and reusable applications.

Drawbacks of using this :- Harder to implement because it uses the complex structure (componentization of tiers)

Other than above mentioned architectures, there are 3 types of service architectures are used for development purposes.

Service Architecture
  1. Web Server
  2. Web Container
  3. Application Server

Web Servers

It is a Http server, that can host multiples websites. It is handling client HTTP requests, and respond back with a HTTP response. They are linked with internet through higher speed connection that delivers ultra data transmission rates. Web Applications are mostly deployed on this Server. This may work with an EJB server to provide some of those services. But it is not needed to be located on the same machine as an EJB server. Some Web servers provide additional services i.e security and concurrency control. EX: NGINX, LightHTTPD

Web Server = Web Container + HTTP request handling

It can respond to the client in either of the following ways:

  • Generating response by using the script and communicating with database.
  • Sending file to the client associated with the requested URL.

If the requested page is found then the server will send HTTP response with the page. Otherwise it will send ‘Error 404 Not found’ response. But the client requests some other resources, then server will contact to application server and data is stored for constructing the HTTP response.

Web Container

It is a Servlet Container or Servlet Engine is used to manage the components(Eg. Servlets, JSP). It is a part of the web server. A web container runs only WARs. Maintains Servlet Object life cycle. It provides a runtime environment through components(Eg. Naming context and life cycle management) Eg. Apache Tomcat

Application Server

It handles all the application operations between users and an organization’s back end business applications or databases. It is a part of a 3-tier application lies in the middle layer. It can be used for servlet, jsp, struts, jsf, ejb etc. This server runs EARs. It is a heavy weight server. Ex: WebSphere, JBoss, Glassfish, Weblogic.

ApplicaitonServer = Web Server + EJB + (Messaging + Transactions+ etc)

It provides services for state maintenance and security, along with persistence and data access. It is designed to “install, operate and host associated services and applications for the IT services, end users and organizations”.

Application server workflow
WebServer vs Application Server

I hope you all got an idea of Client computing architectures.

Happy Learning.