Mulit-tier architecture or n-tier architecture is an architecture style in which various responsibilities of an application are divided into separate Tiers, usually:
- Presentation level layer for user interface creation and lightweight verification.
- business layer for heavy processing, validation, business rules, workflow and interfaces for external systems.
- Integration level for data transformation and storage services.
Rationale for n-tier architecture is better Separation of Problems (SoC) and low grip. This allows you to increase scalability, since each level can be divided into different computer systems that distribute the processing load.
Please note that a level can have different meanings for different people: one is hardware-oriented (physical), the other is software-oriented (logical). Personally, I think there is really a difference and prefer to use the term βlayerβ for a logical representation. This is recalled in multi-level wikipedia architecture :
The concepts of layer and level are often used interchangeably. However, one rather general point of view is that there really is a difference and that the layer is the logical structuring mechanism for the elements that make up the software solution, while the level is a physical structuring mechanism for the system infrastructure .
In fact, tiered architecture has been praised by equipment vendors (Sun, I look at you) because more levels = more machines, despite the consequences for complexity and performance. Therefore, please do not follow the Core J2EE patterns in letter, you do not need all the patterns if you do not want to create a Rouba Goldberg Machine .
source share