Software Architecture is a system to represent the collection of components that accomplish a specific function or set of functions. There may be one or multiple components in the foundation of an architecture on which software can be built. A software architecture helps to define and represent the component(s) and their relationship. We can understand software architecture with an example. Let’s consider building a bungalow on plain land there is a need for a civil engineer or architecture. He gathers different types of input from our side and prepares a floor plan on paper. If requirements are fulfilled then the builder starts construction work. In the same way, a software architect prepares a plan of as per the requirement. He draws a structure that meets all technical and operational requirements of the software. The developer team builds the software as per software architecture and delivers it to the client.
Before going to explain the types of architecture firstly you need to understand the different layers which are the foundation of software architecture. There are four types of layers:
- Presentation Layer: This layer is responsible to display the user interface and manage user interaction.
- Application Layer: The application layer (also known as Business Layer) has all the business logic, rules and policies. The application layer is a bridge between the presentation layer and the data layer.
- Data Layer: This layer is responsible for storing the data.
- Service Layer: This layer is responsible to define and implement the service interface and the data contracts. The service layer communicates with the application layer
1. One-tier Architecture:
One-tier architecture has a Presentation layer, Business layer and Data layers at the same tier i.e. at the Client Tier. As the name suggested, all the layers and components are available on the same machine. MP3 players, MS Office etc. are some examples of one-tier architecture. To store the data (as a function of the Data Layer) local system or a shared drive is used.
2. Two-tier Architecture:
In such type of architecture, the client tier handles both Presentation and Application layers and the server handles the Database layer. The two-tier architecture is also known as a ‘Client-Server Application’. In two-tier architecture, communication takes place between the Client and the Server. The client system sends the request to the server system and the server system processes the request and sends the response back to the client system.
3. Three-tier Architecture:
All three major layers are separated from each other. The presentation layer resides at Client Tier, the Application layer acts as middleware and lies at Business Tier and the Data layer is available at Data Tier. This is a very common architecture.
4. N-tier Architecture:
N-tier architecture is also called Distributed Architecture or Multi-tier Architecture. It is similar to three-tier architecture but the number of the application server is increased and represented in individual tiers in order to distribute the business logic so that the logic can be distributed.
This post covers only basic and important points of software architecture and its types which are really needful for a performance tester and performance engineer.
You may be interested: