Describe the architectural layering in a two-tier approach.
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.
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.
Developers also learned that every time they split the system they had to provide a new way for the separate pieces to communicate.
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:
Assign specific responsibility.
Re-establish communication through an interface.
View the Image below to see an example of simple partitioning.