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

Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

Overview of Layered Architectures

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: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

2

Learning Objectives in this Lesson1. Know what layered

architectures are

Physical Layer

Presentation Layer

Session Layer

Transport Layer

InternetLayer

Data Link Layer

Application Layer

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

Page 3: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

3

Layer C

Layer B

Layer A

Layer interface

Layer implementation

Learning Objectives in this Lesson1. Know what layered

architectures are

2. Understand the Layersarchitectural pattern

Page 4: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

4

Learning Objectives in this Lesson1. Know what layered

architectures are

2. Understand the Layersarchitectural pattern

3. Recognize the layers inAndroid’s software stack

ART|Dalvik Virtual Machine

Page 5: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

5

Learning Objectives in this Lesson1. Know what layered

architectures are

2. Understand the Layersarchitectural pattern

3. Recognize the layers inAndroid’s software stack

4. Realize why layeringis used in Android

ART|Dalvik Virtual Machine

Page 6: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

6

Overview of Layered Architectures

Page 7: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

7

• Layering is applied in many domains

An Overview of Layered Architectures

Page 8: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

8

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

An Overview of Layered Architectures

Physical Layer

PresentationLayer

SessionLayer

TransportLayer

InternetLayer

Data LinkLayer

Application Layer

See en.wikipedia.org/wiki/Protocol_stack

Enables end-to-end communication by specifying how data should be

(un)packetized, addressed, transmitted, routed, & received

Page 9: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

9

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Lower layers handle interactions with the hardware

• e.g., GSM, DSL, & Ethernet

An Overview of Layered Architectures

Physical Layer

PresentationLayer

SessionLayer

TransportLayer

InternetLayer

Data LinkLayer

Application Layer

See en.wikipedia.org/wiki/Link_layer & en.wikipedia.org/wiki/Physical_layer

Page 10: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

10

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Lower layers handle interactions with the hardware

• Middle layers exchange packets across hosts & routers

• e.g., IP, TCP, & UDP

An Overview of Layered Architectures

Physical Layer

PresentationLayer

SessionLayer

TransportLayer

InternetLayer

Data LinkLayer

Application Layer

See en.wikipedia.org/wiki/Internet_layer & en.wikipedia.org/wiki/Transport_layer

Page 11: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

11

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Lower layers handle interactions with the hardware

• Middle layers exchange packets across hosts & routers

• Upper layers implement & interact with applications

• e.g., PPTP, XDR, CDR, JSON

An Overview of Layered Architectures

Physical Layer

PresentationLayer

SessionLayer

TransportLayer

InternetLayer

Data LinkLayer

Application Layer

See en.wikipedia.org/wiki/Session_layer & en.wikipedia.org/wiki/Presentation_layer

Page 12: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

12

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Lower layers handle interactions with the hardware

• Middle layers exchange packets across hosts & routers

• Upper layers implement & interact with applications

• Applications (& middleware) mostly just deal with the upper layer(s)

• e.g., FTP, TELNET, SMTP, & SNMP

An Overview of Layered Architectures

Physical Layer

PresentationLayer

SessionLayer

TransportLayer

InternetLayer

Data LinkLayer

Application Layer

See en.wikipedia.org/wiki/Application_layer

Page 13: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

13

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Communication middleware in multi-tier enterprise IT systems

An Overview of Layered Architectures

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

See en.wikipedia.org/wiki/Middleware_(distributed_applications)

Provides services beyond the operating system & protocol stacks to enable

components in a distributed system to communicate & manage data

Page 14: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

14

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Communication middleware in multi-tier enterprise IT systems

• Lower layers provide portableAPIs for accessing hardware& system resources

• e.g., Linux, Windows, JVM, & ACE

An Overview of Layered Architectures

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

See www.dre.vanderbilt.edu/~schmidt/PDF/middleware-encyclopedia.pdf

Page 15: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

15

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Communication middleware in multi-tier enterprise IT systems

• Lower layers provide portableAPIs for accessing hardware& system resources

• Middle layers shield applicationsfrom network programming details

• e.g., DDS, Web Services, MQTT, Spring, CORBA, etc.

An Overview of Layered Architectures

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

See www.dre.vanderbilt.edu/~schmidt/PDF/middleware-encyclopedia.pdf

Page 16: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

16

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Communication middleware in multi-tier enterprise IT systems

• Lower layers provide portableAPIs for accessing hardware& system resources

• Middle layers shield applicationsfrom network programming details

• Upper layers enable domain-specificreuse of capabilities

• e.g., MD-PnP, IIC, & FACE

An Overview of Layered Architectures

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

See www.dre.vanderbilt.edu/~schmidt/PDF/middleware-encyclopedia.pdf

Page 17: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

17

• Layering is applied in many domains, e.g.

• Computer networking protocol stacks

• Communication middleware in multi-tier enterprise IT systems

• Lower layers provide portableAPIs for accessing hardware& system resources

• Middle layers shield applicationsfrom network programming details

• Upper layers enable domain-specificreuse of capabilities

• Applications may deal w/multiple layers

An Overview of Layered Architectures

Hardware

Domain-Specific

Middleware Services

Common

Middleware Services

Distribution

Middleware

Host Infrastructure

Middleware

Operating Systems

& Protocols

Applications

See www.dre.vanderbilt.edu/~schmidt/PDF/middleware-encyclopedia.pdf

Page 18: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

18

Overview of the Layers Architectural Pattern

Page 19: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

19

• 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 20: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

20See en.wikipedia.org/wiki/Architectural_pattern

• The concept of layering has been expressed as an architectural pattern

An Overview of the Layers 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”

Page 21: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

21

• The concept of layering has been expressed as an architectural pattern

An Overview of the Layers 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”

Page 22: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

22

• The concept of layering has been expressed as an architectural pattern

An Overview of the Layers 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”

Page 23: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

23

• The concept of layering has been expressed as an architectural pattern

An Overview of the Layers 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”

Page 24: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

24

• The Layers architectural pattern has been described in various publications

An Overview of the Layers Architectural Pattern

See en.wikipedia.org/wiki/Multilayered_architecture

Page 25: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

25

• The Layers pattern structures software apps & infrastructure in several ways

See posa1.blogspot.com/2008/05/layered-architecture-pattern.html

An Overview of the Layers Architectural Pattern

Layer C

Layer B

Layer A

Layer interface

Layer implementation

Page 26: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

26

• The Layers pattern structures software apps & infrastructure in several ways

a. Partitions an overall system architecture into groups of subtasks

An Overview of the Layers Architectural Pattern

Layer C

Layer B

Layer A

Layer interface

Layer implementation

Page 27: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

27

• 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

An Overview of the Layers Architectural Pattern

Layer C

Layer B

Layer A

Layer interface

Layer implementation

Page 28: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

28

• The Layers pattern helps to simplify software development & evolution

An Overview of the Layers Architectural Pattern

Page 29: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

29

An Overview of the Layers Architectural Pattern

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

Page 30: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

30

An Overview of the Layers Architectural Pattern• 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

Page 31: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

31

An Overview of the Layers Architectural Pattern• 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

Page 32: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

32

An Overview of the Layers Architectural Pattern• 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

Page 33: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

33

An Overview of Android’s Layered

Architecture

Page 34: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

34

• Android’s architecture is structured in accordanceto multiple layers

An Overview of Android’s Layered Architecture

ART|Dalvik Virtual Machine

Page 35: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

35

• Android’s architecture is structured in accordanceto multiple layers

An Overview of Android’s Layered Architecture

ART|Dalvik Virtual Machine

The Android Linux kernel controls hardware & manages system resources

Page 36: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

36

• Android’s architecture is structured in accordanceto multiple layers

An Overview of Android’s Layered Architecture

ART|Dalvik Virtual Machine

Several layers of middleware provide higher-level reusable services to apps

Page 37: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

37

• Android’s architecture is structured in accordanceto multiple layers

An Overview of Android’s Layered Architecture

ART|Dalvik Virtual Machine

The application layer provides packaged functionality to end-users

Page 38: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

38

• Layering is applied in complex systems like Android for several reasons

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Page 39: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

39

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

Applications

NativeLibraries

VM &Runtime

See en.wikipedia.org/wiki/Code_reuse#Systematic_software_reuse

An intentional strategy for increasing productivity & improving software quality

Page 40: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

40

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

Applications

NativeLibraries

VM &Runtime

libC provides a common API for accessing OS kernel capabilities

Page 41: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

41

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

Applications

NativeLibraries

VM &Runtime

Enable apps to run concurrently over various types of multi-core hardware

Page 42: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

42

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Page 43: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

43

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Shield apps from inconsistent

hardware APIs

Page 44: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

44

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

An Overview of Android’s Layered Architecture

Effects of updates can be confined to the layer whose implementation changes

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Page 45: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

45

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

• Reduce the complexity of APIs thatapp developers must understand

An Overview of Android’s Layered Architecture

See en.wikipedia.org/wiki/Facade_pattern

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Page 46: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

46

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

• Reduce the complexity of APIs thatapp developers must understand

• Enable use of popular protocols, APIs,& programming languages

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

Applications

Page 47: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

47

• Layering is applied in complex systems like Android for several reasons, e.g.

• Enhance systematic software reuse

• Enable “plug & play” replacement ofcertain layer implementations

• Reduce the complexity of APIs thatapp developers must understand

• Enable use of popular protocols, APIs,& programming languages

• These popular protocols & APIs are available in open-source form

An Overview of Android’s Layered Architecture

Hardware

ApplicationFrameworks

Hardware AbstractionLayer

Operating System

Kernel

NativeLibraries

VM &Runtime

See source.android.com & source.android.com/source/building-kernels.html

Applications

Page 48: Overview of Layered Architectures - Vanderbilt Universityschmidt/cs891f/2018-PDFs/L2-overview-of-layers.pdf · 12 •Layering is applied in many domains, e.g. •Computer networking

48

End of Overview of Layered Architectures