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 to build a bungalow on a 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 the paper. If requirements are fulfilled then builder starts construction work. In the same way, a software architect prepare 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 deliver 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 layer:
- Presentation Layer: This layer is responsible to display the user interface and manage user interaction.
- Application Layer: 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. Service layer communicates with the application layer
1. One-tier Architecture:
One-tier architecture has Presentation layer, Business layer and Data layers at the same tier i.e. at Client Tier. As the name suggested, all the layers and components are available on the same machine. MP3 player, MS Office etc. are some of the examples of one-tier architecture. To store the data (as a function of 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. 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. Presentation layer resides at Client Tier, Application layer acts as middle-ware and lies at Business Tier and Data layer is available at Data Tier. This is a very common architecture.
4. N-tier Architecture:
N-tier architecture is also called a 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: