![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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/1.jpg)
Overview of Layered Architectures
Douglas C. Schmidt
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022041923/5e6ce201cf478c37530eba5e/html5/thumbnails/48.jpg)
48
End of Overview of Layered Architectures