based on posix and actors oneos: iot platform · iot platform aws greengrass azure iot edge google...

Post on 21-Jun-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/OneOSkumseok@ece.ubc.ca64

top related