Software architecture is a way of organizing components that work together to complete a single function or a set of related functions. The foundation of an architecture on which software can be developed can consist of one or more components. An architectural design for software helps define and illustrate the components and the connections between them. Using an example, we can understand the architecture of the software. Consider the need for a civil engineer or architect to build a cabin on level ground. Collect information from our side in various forms and draw a map on paper. If the conditions are met, the contractor gets to work. A software architect similarly creates a plan based on the requirements. Create a structure that meets the operational and technical needs of the software. The development team creates the software through the software architecture and delivers it to the customer.
You must first understand the different levels that form the basis of software architecture before you can discuss the many forms of architecture. There are four different types of layers:
- Presentation Layer: This layer is responsible for handling user interaction and displaying the user interface.
- Application Layer: Business logic, rules, and policies are contained in the application layer, also known as the business layer. Between the display layer and the data layer is the application layer.
- Data Layer: This layer is responsible for data storage.
- Service Layer: This layer is responsible for defining and executing the data contracts and the service interface. The application layer and the service layer exchange information.
Tier Architecture
1. One-level architecture:
In a single-tier architecture, the presentation, business, and data layers are all in the same layer, or client layer. As the name implies, every layer and component can be accessed on the same system. The one-tier architecture is used in MP3 players and Microsoft Office, among others. Local systems or shared disks are used to store the data (depending on the data tier).
Figure 01: Software Architecture Type – 1 Layer
2. Two-tier architecture:
In this type of design, the database layer is handled by the server, and both the presentation and application layers are handled by the client layer. ‘Client-Server Application’ is another name for the two-tier architecture. Communication takes place between the client and the server in a two-tier architecture. The client system sends the request to the server system, which processes it and returns the response to the client system.
Figure 02: Software Architecture Type – 2 Tiers
3. Three-tier architecture:
There is a gap between the three main levels. The data tier can be accessed at the data tier, while the application tier, which serves as the middleware, resides at the client tier. This architecture is quite popular.
Figure 03: Software Architecture Type – 3 Layers
4. N-tier architecture:
Multi-tier architecture or distributed architecture are other names for N-tier architecture. It is similar to a three-tier design, but more application servers are used and are represented in separate layers, allowing for distributed business logic.
Figure 04: Software Architecture Type – Layer N
This essay covers the only aspects of software architecture and the types that are fundamentally necessary for a performance tester and performance engineer.