Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
OneOS: IoT Platformbased on POSIX and Actors
Kumseok Jung, UBCJulien Gascon-Samson, ÉTS MontréalKarthik Pattabiraman, UBC
Motivation
Near-future IoT Project
City of Vancouver
2
Motivation
Near-future IoT Project
City of Vancouver
Public Infrastructure3
Motivation
Near-future IoT Project
City of Vancouver
Public Infrastructure4
Motivation
Near-future IoT Project
City of Vancouver
Public Infrastructure5
Motivation
Near-future IoT Project
City of Vancouver
3rd Party Service
Public Infrastructure6
Motivation
AliceEngineer
City of Vancouver
7
Motivation
AliceEngineer
City of Vancouver
8
Motivation
AliceEngineer
City of Vancouver
Magic
9
Motivation
AliceEngineer
City of Vancouver
Magic
10
Motivation
AliceEngineer
City of Vancouver
Magic
11
Motivation
AliceEngineer
City of Vancouver
Magic
12
Challenges
AliceEngineer
Magic
Example Problem:
Collect GPS data from the 2 subsystems (Bus & Bike),compute an optimal scheduling policy for another subsystem (Subway)
13
Challenges: Heterogeneity
Company A
Company B
14
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Heterogeneity in Hardware and Operating Systems
15
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Heterogeneity in Languages and Frameworks
16
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Solution
Software within a specific framework isnot portable across different frameworks
17
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Solution
Solution
Software within a specific framework isnot portable across different frameworks
18
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Solution
Solution_1
Need to rewrite the same application logicfor different frameworks
19
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Solution
Solution_1
Difference in application semanticsresolved by more glue software
20
Challenges: Heterogeneity
Company A
Company B
Windows 64bit
Linux 32bit
Azure IoT Edge Runtime
AWS IoT Greengrass
Solution
Solution_1
We end up with: Heterogeneity in Application Software
21
Challenges: Scale & Dynamicity
Company A
Company B
22
Challenges: Scale & Dynamicity
Company A
Company B
23
Challenges: Scale & Dynamicity
Company A
Company B
24
Challenges: Scale & Dynamicity
Company A
Company B
25
Challenges: Scale & Dynamicity
Company A
Company B
26
Challenges: Scale & Dynamicity
Company A
Company B
27
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
28
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Device IndependenceInterface Transparency
29
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Cluster PlatformMesosphere DC/OS
KubernetesDocker Swarm
OpenHPC
30
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Cluster PlatformMesosphere DC/OS
KubernetesDocker Swarm
OpenHPC
Interface TransparencyTopology Independence
Failure Tolerance
31
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Distributed OSAmoeba
SpritePlan 9Inferno
Barrelfish
Cluster PlatformMesosphere DC/OS
KubernetesDocker Swarm
OpenHPC
32
Related Work
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Distributed OSAmoeba
SpritePlan 9Inferno
Barrelfish
Cluster PlatformMesosphere DC/OS
KubernetesDocker Swarm
OpenHPC
Interface TransparencyApplication PortabilityTopology Independence
Failure Tolerance
33
Our Goal: OneOS
Distributed Computing Platforms
Device Independence
App
licat
ion
Por
tabi
lity
OneOS
IoT PlatformAWS GreengrassAzure IoT Edge
Google Cloud IoT
Distributed OSAmoeba
SpritePlan 9Inferno
Barrelfish
Cluster PlatformMesosphere DC/OS
KubernetesDocker Swarm
OpenHPC
34
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
Chain of Programming Interfaces
35
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
LanguageLow-Level
High-Level
Application Programming
Systems Programming
36
Chain of Programming Interfaces
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
37
Low-Level
High-Level
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
armv7
Linux
Runtime
x64
Windows
Runtime
38
High-Level
Low-Level
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
armv7
Linux
Runtime
x64
Windows
Runtime
Platform-Independenceby using High-level Language
39
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
armv7
Linux
Runtime
x64
Windows
Runtime
Platform-Independenceby using High-level Language,not by using Framework API
Framework Framework
40
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
armv7
Linux
Runtime
x64
Windows
Runtime
Platform-Independenceby using High-level Language,not by using Framework API
Platform
41
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
Platform
42
OneOS: Approach
Hardware
OS
API/ABI (system call)
Framework A
yourApp
API A
Framework C
herApp
API C
Framework B
User App
API B
Runtime
Language
PlatformHeterogeneity in Softwareunresolved by frameworks
43
Framework A
yourApp
API A
Framework C
herApp
API C
OneOS: Approach
Hardware
OS
Framework B
User App
API B
Runtime
API/ABI (system call)
Language
PlatformHeterogeneity in Softwareunresolved by frameworks
Application Portabilityworsens with more frameworks
44
OneOS: Approach
Adding Abstraction Layers on top
45
OneOS: Approach
Adding Abstraction Layers on topleads to “API hell”
46
OneOS: Approach
Adding Abstraction Layers on topleads to “API hell”
47
Our approach:Not a high-level framework
OneOS: Approach
Hardware
OS
Framework
User App
API
Runtime
API/ABI (system call)
Language
48
OneOS: Approach
Hardware
OS
Runtime
API/ABI (system call)
Language
User App
49
Our approach:Not a high-level framework
OneOS: Approach
Hardware
OS
Runtime
API/ABI (system call)
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
50
Embrace heterogeneity in softwareallow existing technology to work together
OneOS: Approach
Hardware
OS
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
High-level Language VMs share a common interface to the underlying abstract machine
51
OneOS: Approach
Hardware
OS
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
High-level Applications are agnostic about the underlying abstract machine
52
?
OneOS: Approach
Hardware
OS
Runtime
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
High-level Applications are agnostic about the underlying abstract machineSystem call modeled as message between Actors
POSIX API
Actor.js Actor.py
Actor(kernel)
53
OneOS: Approach
Hardware
OS
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
Applications make system callsto interact with other agents
54
OneOS: Approach
Hardware
OS
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
Hijack low-level Abstraction Layeralter the operational semanticsof high-level software
55
OneOS Middleware
OneOS: Approach
Hardware
OS
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
Hijack low-level Abstraction Layeralter the operational semanticsof high-level software
Intercept system callsredirect to various distributed services
56
OneOS Middleware
OneOS: Approach
Runtime
POSIX API
Language
Node.js CPython
PythonJavaScript
User App herAppyourApp
File SystemNetwork Interfaces
I/O Streams
57
IPC ServiceFile System Service
Scheduler Service
OneOS Middleware
OneOS: Design
x64 armv7x86
Windows MacOS Linux
OneOS
App 1 App 2 App 3
Network
OneOS Middleware
OneOS Middleware
OneOS Middleware
IPC FileSystem Scheduler Storage Session
58
OneOS: Design
x64 armv7x86
Windows MacOS Linux
App 1 App 2 App 3
Network
OneOS
OneOS Middleware
OneOS Middleware
OneOS Middleware
IPC FileSystem Scheduler Storage Session
fs.writeFile
59
OneOS: Design
x64 armv7x86
Windows MacOS Linux
OneOS
App 1 App 2 App 3
Network
OneOS Middleware
OneOS Middleware
OneOS Middleware
IPC FileSystem Scheduler Storage Session
fs.writeFile
60
OneOS: Design
x64 armv7x86
Windows MacOS Linux
OneOS
App 1 App 2 App 3
Network
OneOS Middleware
OneOS Middleware
OneOS Middleware
IPC FileSystem Scheduler Storage Session
process.stdout.write
61
OneOS: Design
x64 armv7x86
Windows MacOS Linux
OneOS
App 1 App 2 App 3
Network
OneOS Middleware
OneOS Middleware
OneOS Middleware
IPC FileSystem Scheduler Storage Session
62
POSIX Machine
OneOS: Proof-of-Concept Demo
DependableSystemsLab/OneOS63
OneOS: Discussion
Feedback Wanted:● Evaluation strategies● Practicality of Actor-based micro-kernel● Suitability of high-level language for
systems programming
Controversial Points:● Single system image appropriate for a
geographically distributed grid?● Mapping POSIX interface over an
inherently distributed and concurrent architecture?
● Limiting application space to high-level languages?
Open Issues & Future Work:● Security and Privacy model● Failure handling● Semantics of cyber-physical resources
Potential Drawbacks:● Fundamental tension between
cyber-physical resources and their abstract representations
● Reasoning about security concerns within high-level programming space
● Inability to make low-level optimizations
DependableSystemsLab/[email protected]