Motivation ThingsJS Scheduling Code Migration Communications ThingsJS: Towards a Flexible and Self-Adaptable Middleware for Dynamic and Heterogeneous IoT Environments Middleware for IoT – m4iot@Middleware 2017 Julien Gascon-Samson, Mohammad Rafiuzzaman, Karthik Pattabiraman University of British Columbia Department of Electrical and Computer Engineering Vancouver, Canada December 11, 2017
Motivation ThingsJS Scheduling Code Migration Communications Motivation 2 World of IoT growing at a very fast pace!
Motivation ThingsJS Scheduling Code Migration Communications Motivation 2 World of IoT growing at a very fast pace! Traditionaly, processing was done in the cloud
Motivation ThingsJS Scheduling Code Migration Communications Motivation 2 World of IoT growing at a very fast pace! Traditionaly, processing was done in the cloud Emerging trend: running applications on the IoT devices themselves (edge) Performance, costs, reliability
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 3 ThingsJS: a framework for developing and deploying high-level applications on IoT devices (edge computing)
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 4 Programmers are typically more productive in higher-level languages JavaScript: strong user base ThingsJS: a framework for developing and deploying high-level applications on IoT devices (edge computing)
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 4 Programmers are typically more productive in higher-level languages JavaScript: strong user base ThingsJS: a framework for developing and deploying high-level applications on IoT devices (edge computing)
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 4 Programmers are typically more productive in higher-level languages JavaScript: strong user base ThingsJS: a framework for JavaScript VMs on IoT developing and deploying Samsung IoT.js high-level applications on IoT devices (edge computing) Intel XDK DukServer Smart.js Node.js on IoT devices
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 4 Programmers are typically Constraints more productive in IoT world is highly higher-level languages heterogeneous! JavaScript: strong user base Different hardware platforms JavaScript VMs on IoT OSes Environments Samsung IoT.js ThingsJS: Declarative Intel XDK language for expressing DukServer constraints Smart.js Over the devices Over the applications Node.js on IoT devices
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 5 Scheduling Given a set of IoT applications (“components”) Given a set of constraints ThingsJS: a framework for ⇓ developing and deploying high-level applications on IoT devices (edge computing) Scheduling Applications 1 on IoT Devices
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 5 Scheduling Given a set of IoT applications (“components”) Given a set of constraints ThingsJS: a framework for ⇓ developing and deploying high-level applications on IoT devices (edge computing) What is the optimal mapping Scheduling Applications 1 of components to devices? on IoT Devices Significant work on scheduling applications in the cloud – idea of scheduling applications in the edge is relatively novel
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 6 Example: motion detection video_camera: tied to ThingsJS: a framework for hardware developing and deploying high-level applications on IoT motion_detect: detects devices (edge computing) motion Scheduling Applications 1 on IoT Devices
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 6 Example: motion detection video_camera: tied to ThingsJS: a framework for hardware developing and deploying high-level applications on IoT motion_detect: detects devices (edge computing) motion Scheduling Applications 1 Some components on IoT Devices can/should be run in the cloud
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 7 Migration ThingsJS: a framework for Conditions change over time developing and deploying IoT devices are high-level applications on IoT resource-constrained devices (edge computing) Scheduling Applications on 1 IoT Devices Migrating IoT 2 Applications
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 7 Migration ThingsJS: a framework for Conditions change over time developing and deploying IoT devices are high-level applications on IoT resource-constrained devices (edge computing) Scheduling Applications on 1 It might be necessary to IoT Devices migrate components Migrating IoT 2 Applications
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 7 Migration ThingsJS: a framework for Conditions change over time developing and deploying IoT devices are high-level applications on IoT resource-constrained devices (edge computing) Scheduling Applications on 1 It might be necessary to IoT Devices migrate components Migrating IoT 2 Prior work: migrating web Applications applications across browsers
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 8 ThingsJS: a framework for Publish/Subcribe - MQTT developing and deploying Publish/subscribe maps well high-level applications on IoT to IoT (MQTT: iso standard) devices (edge computing) Scheduling Applications on 1 IoT Devices Migrating IoT Applications 2 Optimizing the 3 Communications
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 8 ThingsJS: a framework for Publish/Subcribe - MQTT developing and deploying Publish/subscribe maps well high-level applications on IoT to IoT (MQTT: iso standard) devices (edge computing) Scheduling Applications on Significant work in 1 IoT Devices cloud/p2p pub/sub Migrating IoT Applications 2 Optimizing the 3 Communications
Motivation ThingsJS Scheduling Code Migration Communications Goals and Motivation 8 ThingsJS: a framework for Publish/Subcribe - MQTT developing and deploying Publish/subscribe maps well high-level applications on IoT to IoT (MQTT: iso standard) devices (edge computing) Scheduling Applications on Significant work in 1 IoT Devices cloud/p2p pub/sub Migrating IoT Applications 2 Adapting pub/sub Optimizing the 3 architectures for IoT Communications
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS: IoT Runtime Middleware 9 Goals and Motivation 1 ThingsJS: IoT Runtime Middleware 2 Dynamic Scheduling 3 JavaScript Code Migration 4 Inter-Component Communications 5
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS 10
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS Application 11 Source Code: High-Level Language (i.e., Javascript - Node.js) Code written in terms of “components” Constraints: Physical: device-related Logical: component-related
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS Application 11 Source Code: High-Level Language (i.e., Javascript - Node.js) Code written in terms of “components” Constraints: CPU (workload units) Physical: device-related RAM Logical: Available incoming & component-related outgoing bandwidth
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS Application 11 Source Code: High-Level Language (i.e., Javascript - Node.js) Code written in terms of “components” Workload units Constraints: RAM Physical: device-related Incoming & outgoing bandwidth Logical: component-related Inter-component constraints: latency, bandwidth
Motivation ThingsJS Scheduling Code Migration Communications ThingsJS Middleware 12
Motivation ThingsJS Scheduling Code Migration Communications Dynamic Scheduling 13 Goals and Motivation 1 ThingsJS: IoT Runtime Middleware 2 Dynamic Scheduling 3 JavaScript Code Migration 4 Inter-Component Communications 5
Motivation ThingsJS Scheduling Code Migration Communications Scheduling Applications on Things (1) 14 1 Predicting the workload of components Machine-learning Training: Several devices, different load profiles Monitoring performance (execution time) Construction of a model Predicting: Execution time on device With a specific load level 2 Scheduling the placement of components to devices
Motivation ThingsJS Scheduling Code Migration Communications Scheduling Applications on Things (2) 15 1 Predicting the workload of components 2 Scheduling the placement of components to devices Given a set of constraints ...and the prediction model What is the optimal arrangement of components-to-devices? Respecting all constraints SMT Solver Most suitable global solution Rescheduling?
Motivation ThingsJS Scheduling Code Migration Communications ThingsMigrate: Migrating JavaScript IoT Applications 16 Goals and Motivation 1 ThingsJS: IoT Runtime Middleware 2 Dynamic Scheduling 3 JavaScript Code Migration 4 Inter-Component Communications 5
Recommend
More recommend