You are on page 1of 7

IT Architecture Design Patterns

Layers

Chris Dunne

Wednesday, September 14, 2011

Architecture Patterns
Architecture patterns express fundamental structured schemas. They provide a set of predefined subsystems, defining responsibilities, rules and guidelines among them. They can be grouped into four categories:
From chaos to structure Distributed systems Interactive systems Adaptable systems

The Layers design patterns falls into the first category


Wednesday, September 14, 2011

Layers
The Layers architecture pattern is helpful when structuring applications that can be divided in sets of subtasks, each one being at a particular level of abstraction.
Most famous architecture subdivision principle Many of block diagrams that appear in books implement this pattern. The most common layers in a logic architecture of a system appear as follows:
More abstraction

Layer 4 User interface Layer 3 - Application Layer 2 - domain Layer 1 - Infrastructure


Less abstraction

Layering offers some advantages, as separating development in teams, as well as testing, or even new future enhancements.

Wednesday, September 14, 2011

Layers
Implementation
1. Define a proper abstraction criteria in order to group tasks into layers 2. Determine number of layers, according to the criteria used 3. Identify layers and assign tasks to each of them 4. Specify any reusable service 5. Refine layers (step 1 to 4) 6. Specify interfaces for each layer 7. Internally structure each layer 8. Specify adjacent layer communication 9. Make adjacent layers loosely coupled 10. Design an error management strategy

Wednesday, September 14, 2011

Layers
Advantages
Layer re-use Standardization support Dependencies are stored locally Exchange element ready

Disadvantages
Behavior change Low efficiency Unnecessary work Difficulty when establishing layer granularity

Wednesday, September 14, 2011

Layers - Examples
Network Protocol (OSI)
Networks protocols are among the best examples for layered architecture. Distinct levels of abstraction are specified, from bit transmission, until a high level application logic.

Windows NT
This operating system is structured according to the Microkernel pattern, with a loosely coupled layered system1. Its layers can be shown as follows:

System services Application Presentation Session Transport Network Data link Physic Resource management Kernel HAL Hardware

1. Loosely Coupled Layered system is a variant of the traditional Layer

principle, being less strict in terms of inter-layer communication. In a Loosely Coupled Layered system each layer can use the services of every other layer. The flexibility gained can be of high cost in terms of support.

Wednesday, September 14, 2011

References
Patterns of Enterprise Application Architecture, by Martin Fowler, Addison-Wesley Professional; 1 edition (November 15, 2002) Service Layer, by Martin Fowler, http://martinfowler.com/ eaaCatalog/serviceLayer.html Design Pattern: Layers, by Steven Black, http:// stevenblack.com/PTN-Layers.html

Wednesday, September 14, 2011