Evolution of Software Engineering

Photo by israel palacio on Unsplash

Evolution is the most important aspect of human life. Evolution meaning is the growth of something but the growth will be gradually increased. Evolution happens in any area.

For that, we have to see what and how evolution happens in Software Engineering based on the Tier-Architecture.

Tier is referred to as a layer. So here we will see the layered architectural evolution. So in evolutionary, there are :
● 1 tier Architecture
● 2 tier Architecture
● 3 tier Architecture
● N-tier Architecture

of evolution would happen. Let’s clearly viewed every layered Architecture. There are three layers involved in the application namely Presentation Layer, Business Layer, and Data Layer.

Presentation Layer:

It’s also called as Client layer. By using this layer we can access the web pages. The main function of this layer is to communicate with the application layer. For that this layer passes the data inputs whether it’s passed a mouse click, keyboard actions, and so on.

In other words to say that it is to view the application.

Business Layer:

It’s also known as an Application layer or the Logical layer. This layer will decide what to do with the inputs that it receives from the presentation layer. This layer performs as a mediator between the Presentation layer and the Data layer. Complete business logic will write in this layer.

Data Layer:

Data that is stored in this layer. The application layer is connected with this layer to retrieve the data as wanted. For retrieving it contains several methods that connect the database and perform the required action. For example; insert, delete,update,create.

Now let’s see how these layers are used to build the Architecture.

1 tier Architecture

This is the simplest one it’s equivalent to running the application on the personal computer. it’s a stand-alone application.

This means the Presentation Layer, Business Layer, and Data Layer application are under the same local drive(Machine). Both the client and server reside in the same machine. It is the simplest application architecture used. these layers are tightly connected. . As for the reason;

● Hard to increase the volume of processing because it’s a single processor.
● moving a new machine it needs to rewrite everything
● Changing one layer is requires changing another layer

Examples of One-tier applications are MP3 player, MS Office

1 tier Architecture

2 tier Architecture

It’s a client-server application. The communication takes place between the client and the servers. This architecture is divided into two parts:

1. Client Application (Client Tier)
2. Database (Data Tier)

The client system handles both the presentation layer and the application layer and the server system handles the data access layer. For that client, the system sends the request to the server system and server system process to send a response to a client system.

Here the advantage over the one-tier is:

● making direct communication
● run fast

But there are having some drawbacks are occurs:

● tight coupled also
● Heavy load on the server
● Potential congestion on the network

An example of client-server architecture is ATM machine.

2 tier Architecture

3 tier Architecture

It’s also called a web-based Application. The Three-tier architecture is divided into three parts:

1. Presentation layer (Client Tier)
2. Application layer (Business Tier)
3. Database layer (Data Tier)

Client system handles Presentation layer, Application server handles Application layer, and Server system handles Database layer.

Each layer has potentially run into a different machine. Each tier should be independent and should not be exposed dependencies related to the implementations.

Mostly this architecture can be used to build a web application for that

Presentation layer given a function of static and dynamically generated content rendered by the browser(front-end).

The logic layer is given a dynamic content processing and generation level application server. Example Java.EE, ASP.NET.(Middleware)

The data layer comprises both the dataset and the database management system. That provides manages and access to the data ( Back-end)

3 tier Architecture

N tier Architecture

It’s also called a Distributed application. This architecture has the same component layers. It is similar to three-tier architecture but the number of application servers is increased and represented in individual tiers in order to distribute the business logic so that the logic will be distributed. It separates these three layers into two tiers.

1. Tier: Physical separation
2. Layer: Logical separation

3 tier architecture is also an example of n tier architecture.

Internet

With the help of the above architecture to build an application via Local Area Network. But the internet was introducing developers who faced challenges for how to access the internet. For this reason, there are 3 different web servers are introduced to access the internet easily.

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

Web Server

It’s a computer system that stores, processes, and delivers web pages to clients. The client is always the web browser or mobile application. These types of servers only delivered static HTML content on the internet. These HTML content such as documents, images, fonts, videos. The HTTP protocol and serves only used as the only web-based application.

Example: Apache Tomcat, Resin, Jetty

Web Container

It’s a component of webservers that interact with java servlet. It can manage the life cycle of the servlet. Web container sends the static content so need to send dynamic content also. So that Web container also contains a web server within it. In order to send dynamic content, the web container will work with the servlet component.

Life Cycle Management, Object Pooling, Security, Multithreaded Support are the main tasks of the web containers.

Application Servers

It’s a kind of software framework that delivers content and assets for a client(web-based, mobile-based, browsers)application. It provides the client with access to business logic. So with the help of business logic, an application server transforms data into dynamic content and enables the functionality of the application. This dynamic content is A transaction result, Decision support, Real-time analytics.

This is also handled processes such as clustering, fail-over, and load-balancing.

Microservices Architecture

“Gather together those things that change for the same reason, and separate those things that change for different reasons”

The traditional way to build an application is using these three layers of combining Applications. But in the late decade, the traditional way becomes complicated because it’s very hard to maintain and scale. Therefore Engineers needed to find another way to make applications more modular and easy to maintain. For that, they introduced a Microservice Architecture.

So in microservices are work with loosely coupled services, each service is small. These services can communicate with each other using a lightweight mechanism such as an HTTP resource API.

Microservices having provided some advantages tremendously.

  1. Once developed, these services can also be deployed independently of each other, and therefore it’s easy to identify services and scale them independent of the whole application.
  2. Microservices architecture brings to the table is making it easier to choose the technology stack.
Microservice architecture pattern

Software Engineer at Virtusa (Pvt) Ltd.