Architectural Partitioning  «Prev  Next»
Lesson 3Two-tier Architecture
ObjectiveDescribe the architectural layering in a two-tier approach.

Two-tier Architecture

Two Tier versus Client Server
The term “two-tier architecture” describes an architecture that consists of remote PC-based applications and large corporate legacy systems. The client applications running on remote PCs have evolved to handle more and more of the processing, and the legacy systems running on the mainframes have primarily become transaction managers and database access services.

Presentation, Logic, Data

Lessons learned from two-tier architectures

When developers partitioned systems in a two-tier arrangement they learned some very important things. They learned that functionally different system responsibilities can be isolated and managed independently. What they had done, essentially, was split the spectrum of responsibilities somewhere between the areas of data and logic, assigning each responsibility to entirely different technological environments.

Presentation, Logic, Data
Developers also learned that every time they split the system they had to provide a new way for the separate pieces to communicate.

Domain Driven Design
Communication Partition

Cohesion and coupling

The key to simple partitioning is deciding precisely what responsibilities will be assigned to each partition. The basis for this decision is found in the principles of high cohesion and loose coupling. High cohesion stresses the need to have a single, very clear purpose for each partition. Loose coupling stresses the importance of reducing the dependencies between the partitions as much as possible. Now the principles of cohesion and coupling are being applied to entire blocks of functionality within systems and not just to program modules. This practice has opened the door to further partitioning and specialization following a simple pattern:
  1. Separate
  2. Assign specific responsibility.
  3. Re-establish communication through an interface.

View the Image below to see an example of simple partitioning.
Original Spectrum of system behaviors: 1) Separate the system behaviors, 2) Assign the system behaviors to different partitions, 3) Re-establish communication between the 2 new partitions

Two Tier Architecture - Quiz

Click the Quiz link below to test your knowledge of architectural partitioning.
Two Tier Architecture - Quiz