![Page 1: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/1.jpg)
Layered Architectures: the Layers
Architecture Pattern
Douglas C. Schmidt
www.dre.vanderbilt.edu/~schmidt
Professor of Computer Science
Institute for Software Integrated Systems
Vanderbilt University Nashville, Tennessee, USA
![Page 2: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/2.jpg)
2
Layer C
Layer B
Layer A
Layer interface
Layer implementation
Learning Objectives in this Part of the Lesson• Know what layered
architectures are
• Understand the Layersarchitectural pattern
![Page 3: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/3.jpg)
3
Overview of the Layers Architectural Pattern
![Page 4: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/4.jpg)
4
• The concept of layering has been expressed as an architectural pattern
An Overview of the Layers Architectural Pattern
See www.dre.vanderbilt.edu/~schmidt/POSA
![Page 5: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/5.jpg)
5See en.wikipedia.org/wiki/Architectural_pattern
• The concept of layering has been expressed as an architectural pattern
“a structural organization schema for software systems that
• provides a set of predefined subsystems
• specifies their responsibilities &
• includes rules & guidelines for organizing the relationships between these roles”
An Overview of the Layers Architectural Pattern
![Page 6: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/6.jpg)
6
• The concept of layering has been expressed as an architectural pattern
See en.wikipedia.org/wiki/Architectural_pattern
“a structural organization schema for software systems that
• provides a set of predefined subsystems
• specifies their responsibilities &
• includes rules & guidelines for organizing the relationships between these roles”
An Overview of the Layers Architectural Pattern
![Page 7: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/7.jpg)
7
• The concept of layering has been expressed as an architectural pattern
See en.wikipedia.org/wiki/Architectural_pattern
“a structural organization schema for software systems that
• provides a set of predefined subsystems
• specifies their responsibilities &
• includes rules & guidelines for organizing the relationships between these roles”
An Overview of the Layers Architectural Pattern
![Page 8: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/8.jpg)
8
• The concept of layering has been expressed as an architectural pattern
See en.wikipedia.org/wiki/Architectural_pattern
“a structural organization schema for software systems that
• provides a set of predefined subsystems
• specifies their responsibilities &
• includes rules & guidelines for organizing the relationships between these roles”
An Overview of the Layers Architectural Pattern
![Page 9: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/9.jpg)
9
• The Layers architectural pattern has been described in various publications
See en.wikipedia.org/wiki/Multilayered_architecture
An Overview of the Layers Architectural Pattern
![Page 10: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/10.jpg)
10
• The Layers pattern structures software apps & infrastructure in several ways
See posa1.blogspot.com/2008/05/layered-architecture-pattern.html
Layer C
Layer B
Layer A
Layer interface
Layer implementation
An Overview of the Layers Architectural Pattern
![Page 11: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/11.jpg)
11
• The Layers pattern structures software apps & infrastructure in several ways
a. Partitions an overall system architecture into groups of subtasks
Layer C
Layer B
Layer A
Layer interface
Layer implementation
An Overview of the Layers Architectural Pattern
![Page 12: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/12.jpg)
12
• The Layers pattern structures software apps & infrastructure in several ways
a. Partitions an overall system architecture into groups of subtasks
b. Decomposes groups of subtasks into levels of abstraction
Layer C
Layer B
Layer A
Layer interface
Layer implementation
An Overview of the Layers Architectural Pattern
![Page 13: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/13.jpg)
13
• The Layers pattern helps to simplify software development & evolution
An Overview of the Layers Architectural Pattern
![Page 14: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/14.jpg)
14
Function 1
Function 2
Function 3
Function A
Function B
Function C
Function X
Function Y
Function Z
• The Layers pattern helps to simplify software development & evolution
• e.g., it replaces tightly coupled “big balls of mud”…
See en.wikipedia.org/wiki/Big_ball_of_mud
An Overview of the Layers Architectural Pattern
![Page 15: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/15.jpg)
15
• The Layers pattern helps to simplify software development & evolution
• e.g., it replaces tightly coupled “big balls of mud”… with modular solutions that can be extended & contracted more easily
Layer C
Layer B
Layer A
Layer interface
Layer implementation
See www.dre.vanderbilt.edu/~schmidt/family.pdf
An Overview of the Layers Architectural Pattern
![Page 16: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/16.jpg)
16
• Be careful when implementing a layered architecture to avoid unnecessary overhead when exchanging data between the layers
Layer C
Layer B
Layer A
Layer interface
Layer implementation
See www.dre.vanderbilt.edu/~schmidt/PDF/p96-van_renesse.pdf
An Overview of the Layers Architectural Pattern
![Page 17: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/17.jpg)
17
• Be careful when implementing a layered architecture to avoid unnecessary overhead when exchanging data between the layers
• e.g., minimize context switching, synchronization, & data copying overhead
Layer C
Layer B
Layer A
Layer interface
Layer implementation
See www.cs.wustl.edu/~schmidt/PDF/dissertation.pdf
An Overview of the Layers Architectural Pattern
![Page 18: Layered Architectures: the Layers Architecture Pattern · 2 Layer C Layer B Layer A Layer interface Layer implementation Learning Objectives in this Part of the Lesson •Know what](https://reader033.vdocuments.us/reader033/viewer/2022051511/6016a230b1f8b74f49409f6d/html5/thumbnails/18.jpg)
18
End of Layered Architectures: The Layers Architecture
Pattern