Three-Tier Architecture

Professor Ortiz presents a little of the theory behind the three-tier architecture and shows how it may be applied using Linux, Java and MiniSQL.

In the beginning, there were mainframes.
Every program and piece of data was stored in a single almighty
machine. Users could access this centralized computer only by means
of dumb terminals. (See Figure 1.)

Figure 1. Mainframe Architecture

In the 1980s, the arrival of inexpensive network-connected
PCs produced the popular two-tier client-server architecture. In
this architecture, there is an application running in the client
machine which interacts with the server—most commonly, a database
management system (see Figure 2). Typically, the client
application, also known as a fat client, contained some or all of
the presentation logic (user interface), the application
navigation, the business rules and the database access. Every time
the business rules were modified, the client application had to be
changed, tested and redistributed, even when the user interface
remained intact. In order to minimize the impact of business logic
alteration within client applications, the presentation logic must
be separated from the business rules. This separation becomes the
fundamental principle in the three-tier architecture.

Figure 2. Two-Tier Client-Server Architecture

In a three-tier architecture (also known as a multi-tier
architecture), there are three or more interacting tiers, each with
its own specific responsibilities (see Figure 3):

Figure 3. Three-Tier Architecture

Tier 1: the client contains the presentation logic,
including simple control and user input validation. This
application is also known as a thin client.

Tier 2: the middle tier is also known as the
application server, which provides the business processes logic and
the data access.

Tier 3: the data server provides the business
data.

These are some of the advantages of a three-tier
architecture:

It is easier to modify or replace any tier without
affecting the other tiers.

Adequate security policies can be enforced within
the server tiers without hindering the clients.

Putting the Theory into Practice

In order to demonstrate these design concepts, the general
outline of a simple three-tier “Hangman” game will be presented
(check the source code in the archive file). The purpose of this
game, just in case the reader isn't familiar with it, is to try to
guess a mystery word, one letter at a time, before making a certain
number of mistakes.

Figure 4. Hangman Client Running in Windows
98

The data server is a Linux box running the MiniSQL database
management system. The database is used to store the mystery words.
At the beginning of each game, one of these words is randomly
selected.

At the client side, a Java applet contained in a web page
(originally obtained from a web server) is responsible for the
application's graphical user interface (see Figure 4). The client
platform may be any computer with a web browser that supports
applets. The game's logic is not controlled by the applet; that's
the middle tier's job. The client only takes care of the
presentation logic: getting the user's input, performing some
simple checking and drawing the resulting output.

The server in the middle tier is a Java application, also
running within a Linux box. The rules of the “Hangman” game (the
business rules) are coded in this tier. Sockets and JDBC,
respectively, are used to communicate with the client and the data
server through TCP/IP.

Figure 5. Diagram of Hardware Nodes

Figure 5 presents a UML (Unified Modeling Language)
deployment diagram that shows the physical relationship among the
hardware nodes of the system.

Even though the design described gives the impression of
requiring a different machine for each tier, all tiers (each one
running on a different process) can be run in the same computer.
This means the complete application is able to run in a single
Linux system with a graphical desktop, and it doesn't even have to
be connected to the Net!

Comments

Comment viewing options

This is quite simple and completed, understandable awesome article.
thanks for publishing. I have removed my one of my misunderstanding about 3 tier architecture reading this. (actually this article + wikipedia done that)
Thanks again and keep it up

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.