0% found this document useful (0 votes)
93 views16 pages

3 Tier

3-Tier Architectures (or 3-Tier Applications) involve separating an application into three logical tiers - a client tier, a middle tier, and a database tier. The database tier manages the database. The middle tier contains most of the logic and communicates between the other tiers. The client tier is the interface between the user and the system. Common examples include thin-client models with a web browser front-end, and thick-client models requiring installed software. Key considerations in designing n-tier architectures include the number of tiers, tasks assigned to each tier, client/server choices, database selection, and programming languages.

Uploaded by

gholmorad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views16 pages

3 Tier

3-Tier Architectures (or 3-Tier Applications) involve separating an application into three logical tiers - a client tier, a middle tier, and a database tier. The database tier manages the database. The middle tier contains most of the logic and communicates between the other tiers. The client tier is the interface between the user and the system. Common examples include thin-client models with a web browser front-end, and thick-client models requiring installed software. Key considerations in designing n-tier architectures include the number of tiers, tasks assigned to each tier, client/server choices, database selection, and programming languages.

Uploaded by

gholmorad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

3-Tier Architectures

(or 3-Tier Applications)

Chuck Cusack
Spring 2004
Simple Programs
• The programs you have written so far have
probably had the following properties:
– Input/output was text-based, GUI, and/or with files
– Ran locally—that is, they had to be downloaded to the
machine on which you (or your T.A.) ran them
– The data had to be on the same machine as your
program
– Were not able to be run simultaneously by more than
one person.
– Had no interaction with other programs
• In the real world, most software is much more
complicated than this
Databases and the Web
• Many real applications are different than what you have
programmed in two important ways
– They make extensive use of databases to store data
– They are accessible from anywhere by multiple people
simultaneously via the World Wide Web
• Sites like amazon.com and ebay.com are entirely database
driven—that is, each time you go to the site, what you see
is determined by data in their database
• As we will see, applications that use databases and are web
accessible can be implemented using a 3-tier architectural
model
3-Tier Architectures
• Definition: A 3-tier architecture is one which has
a client tier, a middle tier, and a database tier.
– The database tier manages the database
– The middle tier contains most of the logic and
communicates between the other tiers
– The client tier is the interface between the user and the
system
• Definition: An n-tier architecture is one which
has n tiers, usually including a database tier, a
client tier, and n-2 tiers in between.
Thin-Client 3-Tier Models
• The thin-client 3-tier model has these tiers:
– The database management system (DBMS)
– The main application software
– A web browser
• Examples
– http://www.cs.hope.edu/~cusack/Teaching
– http://ebay.com*
– http://amazon.com*
– Many other websites.
(*These may actually be n-tier)
Thick-Client 3-Tier Models
• The thick-client 3-tier model has these tiers:
– The database management system (DBMS)
– The main application software
– Some sort of interface software which must be installed
on each client machine
• Examples:
– BD4 (http://bd4.amristar.com.au/)
– World of Warcraft
– Desktop applets that display weather, etc.
– RealPlayer and other applications that download CD
information from the Web
Another 3-Tier Model
• Another common model has these tiers:
– The database management system (DBMS) and a persistence
manager which controls all data flow into and out of the database
– The main application software
– A GUI (thin or thick)
• The main difference here is that the main application
software is not allowed to interact directly with the
database
• You could also think of this as a 4-tier architecture:
– The database management system (DBMS)
– A persistence manager
– The main application software
– A GUI (thin or thick)
2- and n-Tier Models
• The 2-tier model is more simple, but more limited, than a
3-tier model, and often includes
– The database management system (DBMS)
– The main application software, including GUI
• Here, the entire application is generally run on the client
machine (Certainly a thick-client)
• In some contexts, the 2-tier model is also know as the
client-server model, where the server can be something
other than a database
• In general an n-tier model will have
– The database management system (DBMS)
– (n-2) application layers
– A GUI (thin or thick)
n-Tier Questions
• The following are important questions one must
ask when thinking about n-tier architectures
– How many tiers should be used?
– What tasks should be done by each tier? In other words,
how exactly should the layers be divided?
– Should I use thin or thick clients?
– Should the application be web-accessible?
– How should connections to the database be managed?
– What database management system (DBMS) should be
used?
– What languages(s), platform(s), and software should
the system use?
n-Tier Answers
• The purpose of these notes is not to
– Present clear answers to all of the questions on the
previous slide
– Be the authoritative source for information about n-tier
architectures
– Make you an expert in n-tier architectures
• Rather, the purpose is to
– Introduce you to the concept of n-tier architectures
– Get you to start thinking about the issues involved
– Give you partial answers to some of the question
Database Choices
• There are many popular database management systems
(DBMSs), including
– IBM DB2
– Oracle
– Microsoft SQL Server
– Microsoft Access
– MySQL
– PostgreSQL
• Which one you should use depends on many factors,
including number of expected users, size of the application
and/or the database, budget, etc.
• Fortunately, the interfaces to these DBMSs have a lot in
common, so if you learn to use one, much of what you
learn is transferable to the others
Middle Tier Choices
• Almost anything is possible, with some common choices
being
– Java – Visual Basic
– JSP – C#
– PHP – .NET
– C++ – ASP
– Perl
• However, whether or not the client will be thin or thick
will influence this choice
• For a thin client, the obvious middle tier choices are
– Java applets, JSP, PHP, ASP, and Perl
– Of course with all of these, HTML is involved as well
Client Choices
• Thin clients are generally web browsers, so the important
choice was made in the middle tier
• For thick clients, we might use
– Java application
– C++ application with GUI provided by
• MFC (Microsoft Foundation Classes)
• Tcl/Tk (Tool command language)
• GTK (Gimp ToolKit)
• Qt
– Visual Basic (I suppose…)
Examples
• You could build a 3-tier application which has
– Oracle DBMS, C++ middle, and C++/MFC client
– MySQL DBMS, PHP middle, and web browser client
(http://www.cs.hope.edu/~cusack/Teaching uses these choices)
– IBM DB2 DBMS, JSP middle, and Java applet client
– MySQL DBMS, Java Applet middle, and web browser client
(Algoraph uses these choices)
– MySQL DBMS, JSP middle, and web browser client
(http://graph.computinggames.org uses these choices)
– Microsoft SQL Server DBMS with ASP access control, ASP
middle, and web browser client
Common Choices
• The following is a very common way to make very
powerful websites:
– Thin-client 3-tier architecture model
– Database tier: MySQL
– Middle tier: PHP/HTML and Java applets
– Client tier: Your favorite web browser
• It is important that you realize that
– Thin clients are not always the best choice
– Three is not always the best number of tiers
– These database and language choices are not the best or only
choices, but are reasonable for many applications
– The approach we take to design and implement 3-tier applications
is not the only, and not necessarily the best way
References

• Hugh E. Williams & David Lane, Web Database


Applications with PHP and MySQL, O’Reilly, 2002
• Stephen McHenry, 3-Tier Architecture– An Introduction,
Advanced Software Technologies, Ltd.
(http://www.softi.com), 1997

You might also like