N-Tier Architecture

Relevant categories: Software Architecture

Choosing an appropriate architecture is a critical moment for all application development projects. Multi-layered architectures, called N-Tier, have earned vast acceptance in the software development industry during the last decade due to its flexibility and reusability. In n-Tier architecture, the application structure is broken up into different tiers – also called layers. This architecture should have at least three layers where each layer has its own responsibility. Every layer could only interact directly with the layer underneath.

N-Tier architecture has a number of advantages. First of all, each layer could be placed on a different server. This will reduce the server load and increases the application security. Another important characteristic of n-Tier architecture is that, what happens inside each layer is hidden from other layers; as a result, updating and making any changes to one layer can be done separately without involving other layers. So, we can apply any changes to the application without changing the whole application.

Among many, the three-tier model has become a very popular software design pattern for creating web applications for small to medium-size projects. The layers are as follows:

  1. Presentation Tier: The top-most layer is called presentation layer which is responsible for providing tools to interact with the application users including humans or other applications. For instance, User controls, server controls and ASPX pages are included in ASP.NET presentation tier.
  2. Business-Logic Tier: This layer is responsible for the most important and detailed functionalities in the application. It processes data taken from the data tier and update, delete, add and retrieve data and sends the result to the presentation tier.
  3. Data Tier: Here is where the actual data is stored. For example, data stored in SQL Server or Access database.

The components which logically belong to each tier can be physically hosted on different servers. For example, if we have different presentation tiers according to our customers we can place the business logic tier on a separate host. So we can define different versions for each tier.


Links: