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;