layered architectures: the layers architecture pattern · 2 layer c layer b layer a layer interface...

18
Layered Architectures: the Layers Architecture Pattern Douglas C. Schmidt [email protected] www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA

Upload: others

Post on 28-Sep-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

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

Layered Architectures: the Layers

Architecture Pattern

Douglas C. Schmidt

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18

End of Layered Architectures: The Layers Architecture

Pattern