CS 318 - Week 1 Lecture - 1-23-13
Intro to n-tiered architectures for interactive applications
* *traditional* components of an interactive application:
* presentation - what the user sees and interacts with
* application - the business logic -- implementing
business rules
* database software - Oracle, SQLServer, mySQL, etc.
* you can structure these components in different ways,
using different architectures;
* 1-tier architecture -
* monolithic!
* all components combined, typically on a single
processor;
* 2-tier architecture -
* classic client-server!
* in this classic client-server,
there's a client, and there's a server;
the presentation components tend to be put,
pretty obviously, on the client-side;
the database components tend to be put,
pretty obviously, on the server-side
is a classic 2-tier, client-server
architecture, it ISN'T obvious where
the APPLICATION components go;
* this does have some weaknesses; a few include:
* often the application components
were put on the client side,
(fat client), harder/more expensive
to maintain;
* can lead to increased network load;
* can lead to security issues;
* seeking a better approach leads to
3- and n-tier architectures;
* MOVE the application components to one
or more servers DISTINCT from the database server?
THAT's 3- or 3+- or n-tier architecture;
* (and, yes, even with this n-tier approach,
sometimes application components will STILL
creep onto the client or database server
...but discussing the pros and cons of this
will be a course topic, also)
* BASICALLY then (with some creeping in practice),
CLIENT tier - presentation components typically go here
...but actual business logic is moved to a SEPARATE
tier (mostly)
APPLICATION tier (or tiers)
* business rule implementation/business logic
(mostly)
* these tend to SEPARATE the presentation parts
FROM direct access to the database tier;
* there can be MULTIPLE servers here;
DATABASE tier (or data tier or data-server tier)
* the data storage tier -- your DBMS is here
* these are actually LOGICAL rather than necessarily
physical boundaries;
* MIDDLEWARE, in an n-tier architecture sense,
software or products that glue the applications
on these different tiers together;