![]() |
The N-tier architecture (often referred to as multi-tier architecture), is an architectural deployment style in which |
| presentation, application processing, and data management functions of application are separated into different | |
| tiers (layers). |
![]() |
The term tier is used when we mean a physical separation, while layer term is used when we mean a logical |
| separation. We will use the two terms interchangeably. |
![]() |
The N-tier architecture components are: |
![]() |
Presentation. |
![]() |
Logic (application processing). |
![]() |
Data. |
![]() |
Presentation tier: (also known as "client" layer) this is the topmost level of the application. It consists of those |
| parts that are used to display data to user in meaningful format. It involves using of Graphical User Interface | |
| (GUI) and Web based technologies to provide dynamic, interactive, and custom-tailored content. |
![]() |
Examples of GUI components: |
![]() |
List boxes. |
![]() |
Text boxes. |
![]() |
Buttons. |
![]() |
Forms. |
![]() |
Example of web based technologies: |
![]() |
JavaScript. |
![]() |
Ajax. |
![]() |
JQuery. |
![]() |
JSON. |
![]() |
Logic Tier: (also known as "application processing", "business logic" or "middle tier"), is where the critical |
| business problems are solved. This layer coordinates the application, process commands, and makes logical | |
| decisions and evaluations. It also acts as a link between the other two layers. |
![]() |
Data Tier: (also known as "data store tier"), is where information is stored and retrieved. This layer keeps data |
| neutral and independent from application servers or business logic. Data store tier and can be implemented | |
| using the DAO design pattern or object-relational mapping solutions such as Hibernate, OJB or iBATIS. |
![]() |
1-tier architecture |
![]() |
In this architecture, all three layers are on the same machine and tightly connected. |

![]() |
Disadvantages as stated by (Stepp and Miller n.d.): |
![]() |
Single processor means hard to increase volume of processing. |
![]() |
Moving to a new machine may mean rewriting everything. |
![]() |
Changing one layer requires changing other layers. |
![]() |
2-tier architecture |
![]() |
In 2-tier architecture (also known as Client-server architecture), database runs on server separated from | |
| client, but presentation and logic layers still tightly connected. The problem with two tier architecture is the | ||
| server cannot respond to multiple requests at the same time. |

![]() |
Advantages: Easy to switch from one database to another. |
![]() |
Disadvantages: |
![]() |
Presentation and logic layers still tightly connected. |
![]() |
Heavy load on server. |
![]() |
Potential congestion on network. |
![]() |
N-tier/3-tier architecture |
![]() |
In this architecture each layer runs on a different machine, client request is sent to the server, the server in | |
| turn forward the request to the database. The database sends back the data required to the server which in | ||
| turn sends it back to the client. |

![]() |
In N-tier and 3-tier, each tier is completely independent from all other tiers, except for those immediately | |
| above and below it. |
![]() |
The nth tier only has to know how to handle a request from the n+1th tier, how to forward that request on to | |
| the n-1th tier (if there is one), and how to handle the results of the request. |
![]() |
Communication between tiers is typically asynchronous in order to support better scalability.N-tier | |
| architectures usually have at least three separate logical parts, each located on a separate physical server. | ||
| Each part is responsible for specific functionality (Team 2009). |
![]() |
The main benefits of the N-tier/3-tier architecture are as stated by (Team 2009): |
![]() |
Maintainability. Because each tier is independent of the other tiers, updates or changes can be carried | ||
| out without affecting the application as a whole. |
![]() |
Scalability. Because tiers are based on the deployment of layers, scaling out an application is | ||
| reasonably straightforward. |
![]() |
Flexibility. Because each tier can be managed or scaled independently, flexibility is increased. |
![]() |
Availability. Applications can exploit the modular architecture of enabling systems using easily scalable | ||
| components, which increases availability. |
![]() |
Consider using just three tiers if you are developing an intranet application where all servers are located within |
| the private network; or an Internet application where security requirements do not restrict the deployment of | |
| business logic on the public facing Web or application server. |
![]() |
Consider using more than three tiers if security requirements dictate that business logic cannot be deployed to |
| the perimeter network, or the application makes heavy use of resources and you want to offload that | |
| functionality to another server (Team 2009). |