1.2 N-Tier Architectures


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.

1.2 N-Tier Architectures


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.

1.2 N-Tier Architectures


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.

Figure 1.2: 1-tier architecture

1.2 N-Tier Architectures


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.

Figure 1.3: 2-tier architecture

1.2 N-Tier Architectures


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.


1.2 N-Tier Architectures


Figure 1.4: 3-tier architecture
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).

1.2 N-Tier Architectures


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).