Evolution of Software Engineering

Ramsunthar Sivasankar
May 17 · 6 min read
(image: https://medium.com/@bfil/evolution-of-a-software-engineer-a9f88531084)

In this article I am going talk about Evolution of software Architecture from standalone to micro-services.

One-Tier Architecture

(image: https://www.softwaretestingmaterial.com/software-architecture/)

On a single device, this type of design incorporates a variety of options.
Configuration, data, and marketing logic are all part of the setup. Since of the services, 1 Tier architecture is one of the most trustworthy sources; nevertheless, managing such an architecture is a bit challenging because data is stored in multiple variations. The layers that makeup 1 tier architecture are listed below.

Two-Tier Architecture

(image: https://www.softwaretestingmaterial.com/software-architecture/)

The best client/server environment is provided by a two-tier design, which allows the user interface to be stored on the client system while the whole database is saved on the server computer.Although business logic and database logic sits on the client rather than the server and they must be maintained. This became possible because of the LAN (Local Area Network).

This diveded into two parts such as,

This method offers some advantages, including superior performance, ease of application design for the 2-tier architecture, and users’ satisfaction with the architecture’s responsiveness. It also creates a homogeneous environment. This system has some drawbacks, including a lack of security, the possibility of expanding users to impair the architectural performance, and a lack of portability.

Three-Tier Architecture

(image: https://www.softwaretestingmaterial.com/software-architecture/)

In a three-tier architecture, a middleware sits between the client and server machines.
If a user requires specific information from the server, the user will submit a request, which will be received by the intermediate layer before being sent to the server for processing.
The response will be delivered to the user in the same manner. That is first received by the intermediate layer, which then dispatches the data received from the server to the user’s end. The data logics and business logic may be controlled and stored via middleware.
The use of middleware in a three-tier architecture improves the design’s flexibility and performance. When it comes to advantage, it performs data integrity and security is improved more that the two-tier and at the same time this hides the database structure.

N-Tier Architecture

A Multi-tier Architecture is a software architecture in which different software components, organized in tiers (layers), provide dedicated functionality and this is also known as the “Multitier Architecture”. It is comparable to a three-tier design, except that the number of application servers is expanded and represented in distinct tiers to disperse business logic.

Java EE Architecture is also comes under N-tier architecture.

Developers want to spread out their system even more and that is where internet comes in. Through that Web server, Web container and Application server were introduced.

Web Server

The web server’s role is to store, process, and distribute web pages to clients. The HTTP protocol is used to communicate between the client and the server. The most common type of page supplied is an HTML document, which may include graphics, style sheets, and scripts in addition to the text.

Lets see how the web server works,

when you type an web address, the browser will search the IP address corresponding to that address in the cache file of computer (Because of cookies). If not, then the browser will send the web address to the DNS server to get the IP address.

Apache HTTP Server, Nginx, IIS, LiteSpeed Web Server and, GWS are some of the common web servers out there.

Web Container

This knows how to run the life cycle of server side Java programs like Servlets (java classes executed on the server and are used to generate dynamic web pages), JSP (Java Server Pages), JSF (Java Server Faces) and also web services. After that it will send the responses back to the browser. Apache Tomcat is one of the common example for web container.

Application Server

As the name itself says, it is a type of server designed to install, operate and host applications and associated services for end users and they will provide services for the application such as transactions, security, dependency injection and concurrency. In the hierarchy Application server is the top position and web server is the last position. The main advantages is application server are,

JBoss, Weblogic, Websphere and, Glassfish are some of the common application servers out there.

Enterprise Java Beans (EJB) is a development architecture for building highly scalable and robust enterprise level applications to be deployed on J2EE compliant Application Server such as JBOSS, Web Logic etc.

Microservice Architecture

Microservice architecture, often known as microservices, is a technique for structuring a single application as a series of loosely linked services. Applications usually start as a monolithic architecture (more on that later) and then evolve into a collection of linked microservices over time.

Microservices’ primary notion is that breaking down some types of programs into many little components that operate together makes them easier to design and maintain.
Despite the increasing complexity of the design, microservices still provide several advantages over monolithic structures.

(image: https://microservices.io/)

Microservices are currently used in many big firms’ architectures. Netflix was one of the first and most well-known adopters of the technology. Other well-known examples are eBay, Amazon, Twitter and so on.

Advantages of microservices

So this is how it goes from standalone to microservice. Actually there lot more to say in details which will be discussed in the future articles.

References

Nerd For Tech

From Confusion to Clarification

Nerd For Tech

NFT is an Educational Media House. Our mission is to bring the invaluable knowledge and experiences of experts from all over the world to the novice. To know more about us, visit https://www.nerdfortech.org/. Don’t forget to check out Ask-NFT, a mentorship ecosystem we’ve started

Ramsunthar Sivasankar

Written by

Associate Software Engineer at Virtusa

Nerd For Tech

NFT is an Educational Media House. Our mission is to bring the invaluable knowledge and experiences of experts from all over the world to the novice. To know more about us, visit https://www.nerdfortech.org/. Don’t forget to check out Ask-NFT, a mentorship ecosystem we’ve started

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store