What is a 3-Tier Architecture?

A 3-tier architecture is an architecture pattern used in applications as a specific type of client-server system. It divides the architecture into three tiers: data layer, application layer, and presentation layer. 

The 3-tier architecture refers to the logical 3-tier system rather than the physical ones. It adds a “middle tier” between the client and the database. The main functions and business logic of the system are processed in the middle layer, which is the application layer.



The Three Tiers in a 3-Tier Architecture

Presentation Tier

The presentation tier occupies the top level of the application. It sends content to browsers in the web development frameworks, such as CSS, HTML, or JavaScript, and displays information in the form of a graphical user interface (GUI), which allows users to can access directly. It communicates with other layers by putting out the results to the browser and other tiers through API calls. 



Application Tier

The application tier is also called the business logic, logic tier, or middle tier. By processing the business logic for the application, it builds a bridge between the presentation layer and the data layer to make communication faster between the presentation and data layer.

The application tier is usually coded in C#, Java, C++, Python, Ruby, etc.



Data Tier

Data-tier is composed of persistent storage mechanism and the data access layer. It supports connecting with the database and to perform insert, update, delete, get data from the database based on our input data. 



Rules in the 3-Tier Architecture

1.The core rule: the presentation layer is only a shell and cannot contain any processing of BizLogic.

2. The design should from the application layer rather than the presentation layer. And the API of the application layer should implement all BizLogic on the API in an object-oriented manner.

3. Whether the data layer is a simple SqlHelper or a class with Mapping, make sure it is independent of the abstract system layer.

4. Whether you’re using COM+(EnterpriseService), Remoting, or a remote object technology like WebService, whether you’re deploying it on a server or not, you have to consider clustering multiple servers through load balancing in your design

To sum up, when considering whether a project conforms to the application of a three-tier or multi-tier design, it is necessary to find whether it conforms to the requirements of the project.



What Are the Advantages and Disadvantages of Using a 3-Tier Architecture?

Advantages:

  • It reduces dependencies between layers. Therefore, As long as follow the interface standards and use the same entity classes of the object model, it allows different developers to work on each layer, which can significantly improve the development speed of the system.
  • Each layer can be redeveloped or modernized without affecting other layers in a 3-tier architecture. Therefore, shortens time to market and reduces the cost to integrate new features into software as a service (SaaS), Cloud, and on-premise applications.
  • It provides ease of maintenance, won’t affect other modules, which dramatically reduces maintenance costs and maintenance time.
  • Instead of directly accessing the data layer, the presentation layer only connects with the business logic layer, which improves data security.

Disadvantages:

  • It reduces system performance. Without a hierarchical structure, the businesses could go directly to the database to get the data, but now they have to go through the middle tier.
  • The 3-tier architecture sometimes results in cascading changes, especially happens in the top-down direction. If you need to add a feature in the presentation layer, you may need to add code in both the business logic layer and the data access layer to ensure that the design is layered.


3-Tier Architecture Example 

Take FineReport as an example to help you better understand the 3-tier architecture. FineReport is reporting software adopted the 3-tier architecture. 

3-tier architecture of FineReport

The data layer of FineReport is responsible for data management, including data collection, ETL, building a data warehouse, etc. It supports multiple data sources and data integration

The application layer of FineReport is responsible for the main functions and business logic. In this part, as an enterprise reporting tool, it supports report design, reports generation, and reports management. 

In the presentation layer, FineReport can adaptively display reports and dashboards on the PC, mobile, and TV screens because the charts in FineReport are developed by HTML5, which can be used cross-platform, adaptive to web design, and support instant update.

For example, when you want to create a sales report based on the sales data stored in the CRM, the presentation layers send API calls to the data layer, the data layer of the FineReport runs the query and returns the results to the application layer, which formats it into a web page. The page is then sent back to the browser, where the presentation layer displays the reports on a laptop or other device.

With the 3-tier architecture, you only need to install the designer on the report designer’s computer, and then deploy the project to the server. Other users can directly access the report as long as there is a browser on the computer. 

3-tier architecture

Once the report requirements change, it is very convenient to design locally and then publish to the remote server by switching the working directory or directly edit the report files on the remote server.

In this way, for companies, it only needs to deploy the project once, and then it can be designed directly and remotely, which makes migrating reports conveniently and improves efficiency.

[AuthorRecommendedPosts post-id="10053"]