3-Tier Architecture
Chandrasekaran RajagopalanCs6704
11/01/99
Emergence
File Sharing Architecture Client/Server architecture Two-Tier Architecture Three-Tier Architecture
File Sharing Architecture Server downloads files from shared
location to Desktop environment Job is run at the desktop environment Works if
Shared usage is low Data transferred is low Contention is low
File-Server Architecture
Client/Server Architecture Database server to replace File server Query based approach Reduced traffic, since required content is
only transferred Improves multi-user updating RPC or SQL typically used
Two-Tier Architecture Example of C/S Architecture Improves scalability over File Sharing
Architecture Consists of 3 components
User system interface Processing Management Database Management
Two Tier Architecture
Two-Tier Architecture Limitations
Performance deteriorates if number of users is greater than 100
Restricted flexibility and choice of DBMS, since data language used in server is proprietary to each vendor
Limited functionality in moving program functionality across servers
Three-Tier Architecture To overcome the limitations of Two-Tier
Architecture Middle tier between UI and DB Ways of incorporating Middle-Tier
Transaction processing Monitors Application Servers Message Servers
3-Tier with a TP Monitor Online access through
Time sharing or Transaction Processing Client connects to TP instead of DB Monitor accepts transaction, queues it and
takes responsibility until it is completed Asynchrony is achieved
3-Tier with a TP Monitor
Key services provided by the monitor ability to update multiple different DBMS in a single
transaction connectivity to a variety of data sources, including
flat files non relational DBMS mainframe
more scaleable than a 2-tier approach ability to attach priorities to transactions robust security For large (e.g., 1,000 user) applications, a TP monitor is
one of the most effective solutions.
3-Tier With a Messaging Server A message is a self-contained element
(treated as objects) Message knows what it is,where to go,
what to do (Intelligent) Contains two parts
Message header Address, id and priority
Body of the Message
Messaging Systems Designed for robustness Independent from underlying technologies
(wired or wireless protocols) Use store& forward logic and provide
message delivery after and around failures Don’t require persistent connection
between Client and Server Easier to move to ORB-based 3TAs
Differences between monitor based and message based architectures
Transactions Dumb Vs Intelligent
Middle Tier Less flexible Vs More flexible
Portability Less portable Vs More portable (Reason: middle
layer not abstract from other layers)
3 Tier with an Application Server Most of Application’s business logic is
moved to Shared host server PC is used only for presentation services Approach is similar to X Architecture
Both aim at pulling the main body of application logic off the desktop and running it on a shared host.
3 Tier with an Application Server
Advantages to Application Designer Less software on client, hence less to worry
about security Application is more scalable Less software maintenance cost Easier to design the application to be
DBMS-agnostic Allows “after the fact” application
partitioning
3-Tier With an Object DBMS Using ODBMS as Middle layer ODBMS acts as “hot Cache” Retrieve, assemble and Store persistent until
required For Generalized form of storage in DBMS (server)
may be inadequate for specific application E.g: Voice or Video not supported by RDBMS
Distributed/Collaborative Enterprise Architectures
Based on ORB technology Goes beyond CORBA by using shared,
reusable business models(not just objects) Applications built with “plug &
play”components Performance tuning can be made, by
transferring processes
Distributed/Collaborative Enterprise Architectures
same interface can be used for building a desktop, single location application or a fully distributed application
application can be developed and tested locally
technical issues like queuing, timing and protocols aren't an issue for the application developer
Future ?
References http://news.dci.com/geos/ http://javaexchange.com/dcb_white.html http://www.sei.cmu.edu/str/descriptions/
Distributed/Collaborative Enterprise Architectures Two Tier Software Architectures Three Tier Software Architectures Middleware Client Server Software Architectures