Web App Architectures
MULTI-TIER (2-TIER, 3-TIER)
Significance of “Tiers”
● N-tier architectures have the same components
○ Presentation
○ Business/Logic
○ Data
● N-tier architectures try to separate the components into different
tiers/layers
○ Tier: physical separation
○ Layer: logical separation
1-Tier Architecture
● All 3 layers are on the same machine
○ All code and processing kept on a single machine
● Presentation, Logic, Data layers are tightly connected
○ Scalability: Single processor means hard to increase volume of processing
○ Portability: Moving to a new machine may mean rewriting everything
○ Maintenance: Changing one layer requires changing other layers
2-Tier Architecture
● Database runs on Server
○ Separated from client
○ Easy to switch to a different database
● Presentation and logic layers still tightly connected
○ Heavy load on server
○ Potential congestion on network
○ Presentation still tied to business logic
3-Tier Architecture
● Each layer can potentially run on a different machine
● Presentation, logic, data layers disconnected
A Typical 3-tier Architecture
Architecture Principles
● Client-server architecture
● Each tier (Presentation, Logic, Data)
should be independent and should
not expose dependencies related
to the implementation
● Unconnected tiers should not
communicate
● Change in platform affects only the
layer running on that particular
platform
A Typical 3-tier Architecture
Presentation Layer
● Provides user interface
● Handles the interaction with
the user
● Sometimes called the GUI or
client view or front-end
● Should not contain business
logic or data access code
A Typical 3-tier Architecture
Logic/Business Layer
● The set of rules for processing
information
● Can accommodate many
users
● Sometimes called
middleware/back-end
● Should not contain
presentation or data access
code
A Typical 3-tier Architecture
Data Layer
● The physical storage layer for
data persistence
● Manages access to DB or file
system
● Sometimes called back-end
● Should not contain
presentation or business logic
code
The 3-Tier Architecture for Web Apps (Summary)
● Presentation
○ Layer Static or dynamically generated content rendered by the browser
(front-end)
● Logic/Business Layer
○ A dynamic content processing and generation level application server, e.g.,
Java EE, ASP.NET, PHP, ColdFusion platform (middleware)
● Data Layer
○ A database, comprising both data sets and the database management system
or RDBMS software that manages and provides access to the data (back-end)
The 3-Tier Architecture - Advantages
● Independence of Layers
○ Easier to maintain
○ Components are reusable
○ Faster development (division of work)
■ Web designer does presentation
■ Software engineer does logic
■ DB admin does data model