2-3 Tier Architecture

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

2.4 What is a Two-Tier Architecture?

A two-tier architecture is where a client talks directly to a server,


with no intervening server. It is typically used in small environments
(less than 50 users).

A common error in client/server development is to prototype an


application in a small, two-tier environment, and then scale up by
simply adding more users to the server. This approach will usually
result in an ineffective system, as the server becomes overwhelmed. To
properly scale to hundreds or thousands of users, it is usually
necessary to move to a three-tier architecture.

Two Tier Architecture


Two tier client-server software architectures improve usability and scalability. Usability
is increased though user-friendly, form-based interfaces. Scalability is improved because
two tiered systems can hold up to 100 users, whereas file server architectures can only
accommodate 12. Two tiered architecture is best suited to homogeneous environments
processing non-complex, non-time sensitive information.

Two tier architectures consist of three components: user system interfaces,


processing management, and database management. User system interface (USI) is
a component of an organization’s decision support system, which includes human
decision-makers. It provides a user friendly layer of communication to
make requests of the server and offers multiple forms of input and output. USIs
include features like display management services, sessions, text input, and dialog.
Processing management includes process development, process implementation,
process monitoring, and process resources services. Database management includes
database and file services.

Two tier client-server design derives its name from how it distributes work between
client and server. Clients access databases through the user system interface. Database
management, on the server side, distributes processing between both client and server.
Both tiers, the client and the server, are responsible for some of the processing
management. Simply put, the client uses the user interface to make requests through
database management on the server side.

The whole point of client-server architecture is to distribute components of an application


between a client and a server so that, for example, a database can reside on a server machine
(for example a UNIX box or mainframe), a user interface can reside on a client machine (a
desktop PC), and the business logic can reside in either or both components.

The client-server architecture, outlined here, is known as two-tier client-server architecture.

A Simple Example
The UNIX print spooler is an example of a two-tier client-server architecture. The client (the
UNIX lp command) reads a file to be printed and passes the file's contents to the server. The
server performs a service by printing the file. All the basic characteristics of client-server
computing are present in this example.

Problems with Two-Tier Architecture

Two-tier client-server architecture has a number of problems. For example, if database


access functionality (such as embedded database queries) and business logic are
contained in the client component, any changes to the business logic, database access, or
even the database itself often requires a new client component to be deployed for all users
of the application. Usually, the effects of such changes would break earlier versions of
the client component, resulting in a fragile system. The problems of two-tier client-server
architecture led to the development of three-tier client-server architecture.

2.5 What is a Three-Tier Architecture?


A three-tier architecture introduces a server (or an "agent") between
the client and the server. The role of the agent is manyfold. It can
provide translation services (as in adapting a legacy application on a
mainframe to a client/server environment), metering services (as in
acting as a transaction monitor to limit the number of simultaneous
requests to a given server), or intellegent agent services (as in
mapping a request to a number of different servers, collating the
results, and returning a single response to the client.

The Three-Tier Model

The most popular type of n-tier client-server architecture to evolve from two-tier architecture
was three-tier architecture, which separated application components into three logical tiers:
the user interface tier, the business logic tier, and the database access tier. In this type of
system, the user interface tier communicates only with the business logic tier, never directly
with the database access tier. The business logic tier communicates both with the user
interface tier and the database access tier. For this model:

• The user interface tier is a client only, in that it only makes requests to the business
logic tier.
• The database access tier is a server only, in that it only responds to requests from the
business logic tier.
• The business logic tier acts as both a client and a server: a server relative to the user
interface tier, because it process its request, and a client to the database access tier,
because it sends a request to it.

Characteristics of Three-Tier Applications

Three-tier client-server architecture has the following characteristics:

• Three-tier applications partition an application logically into three components.


• Communication between each logical tier can be tightly controlled.
Advantages of Three-Tier Architecture

Three-tier client-server architecture has the following advantages over a typical mainframe
architecture:

• The ability to separate logical components of an application ensures that applications


are easy to manage.
• Because communication can be controlled between each logical tier of an application,
changes in one tier, for example, the database access tier, do not have to affect the
client component tier, which would have to be redistributed if any changes are made
to it.

You might also like