Post on 22-Jan-2018
3 Software Stacks for IoT Solutions
Ian SkerrettEclipse Foundation
@ianskerrett
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse Foundation
• Not-for-profit open source foundation responsible for the Eclipse community
• 320+ open source projects• Working groups for Geo-spatial tech, IoT,
System engineering and embedded dev., Science, Automotive, …
• 250+ members
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Typical IoT Architecture
Devices(sensors & actuators)
Applications
telemetry
commands
telemetry
commands
IoT Cloud Platform
Gateways
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Role & Characteristics
DEVICE GATEWAY / SMART OBJECT CLOUD PLATFORM
constrained
low-power
specialized
connectivity
messaging
edge computing
scale out
integration
data analytics
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software StacksTOOLS & SDKsONTOLOGIESSECURITY
CONSTRAINED DEVICES
Hardware Abstraction Layer (HAL)
OS / RTOS
Communication
Re
mo
te
Man
age
me
ntField protocols IoT protocols
IOT CLOUD PLATFORM
Co
nn
ect
ivit
y
Me
ssag
e R
ou
tin
g
OS / PaaS
Device Management
Data Management
Event Management, Analytics & UI
Device Registry
Application Enablement
GATEWAYS AND SMART DEVICES
Re
mo
te M
anag
em
en
t
Application Runtime
Data Management & Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Communication
IoT Device Stack
OS / RTOS** optional
timers, tasks, file system, …
API enabling access to memory, GPIOs, MEMS, serial interfaces ,…
Protocols such as Bluetooth, Z-Wave, Thread, CAN bus, MQTT, CoAP, …
over-the-air firmware upgrade, health monitoring, factory reset, …
OS / RTOS
Hardware Abstraction Layer (HAL)
RemoteManagement
Hardware Abstraction Layer (HAL)
OS / RTOS
CommunicationR
em
ote
M
anag
em
en
tField protocols IoT protocols
CONSTRAINED DEVICES
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Application Runtime
Network Management
Data Management& Messaging
IoT Gateway Stack
connect to different types of networks
ensure reliability, security (VPN, firewall, …)
local persistence (network latency)
offline mode
data analytics at the edge
Virtual Machine / Application container
GATEWAYS AND SMART DEVICES
Re
mo
te M
anag
em
en
t
Application Runtime
Data Management & Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
IoT Cloud Platform Stack
ingest and normalize huge amounts of data into an enterprise backend
identify devices, allow for over-the-air software provisioning, configuration changes, …
scalable data store, time series
IOT CLOUD PLATFORM
Co
nn
ect
ivit
y
Me
ssag
e R
ou
tin
g
OS / PaaS
Device Management
Data Management
Event Management, Analytics & UI
Device Registry
Application Enablement
Connectivity Message Routing
Device Registry
Device Management
Data Management
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
IoT Cloud Platform Stack (cont’d)
scalable event processing
create reports, graphs, dashboards, …
make decisions based on the data
expose API for application integration
Event Management, Analytics & UI
Application Enablement
IOT CLOUD PLATFORM
Co
nn
ect
ivit
y
Me
ssag
e R
ou
tin
g
OS / PaaS
Device Management
Data Management
Event Management, Analytics & UI
Device Registry
Application Enablement
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Characteristics of Open IoT Stacks
loosely coupled
modular
platform-independant
based on open standards
API
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse IoT Community
2.2 29* 210+ 110Kmillion
lines of codeprojects developers monthly
visitors
* and counting!
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse IoT…
from building blocks … to stacks
…
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Hardware Abstraction Layer (HAL)
OS / RTOS
CommunicationR
em
ote
M
anag
em
en
tField protocols IoT protocols
CONSTRAINED DEVICES
OS Stack for IoT Devices
WakaamaC implementation of OMA LWM2M
Portable on any POSIX-compliant system
C implementation of MQTT 3.1.1
< 2,000 lines of C ANSI code
JAVA API for MCUs
“Android for IoT”
Hardware Abstraction Layer (HAL)
OS / RTOS
CommunicationR
em
ote
M
anag
em
en
tField protocols IoT protocols
CONSTRAINED DEVICES
OS Stack for IoT Devices
WakaamaC implementation of OMA LWM2M
Portable on any POSIX-compliant system
C implementation of MQTT 3.1.1
< 2,000 lines of C ANSI code
JAVA API for MCUs
“Android for IoT”
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Gateways
OSGi implementation
Native support for MQTT
Serial, RS-485, BLE, MODBUS, OPC-UA, CAN Bus, …
NAT, firewall, modem configuration, …
Remote Management over MQTT
Milo
GATEWAYS AND SMART DEVICES
Re
mo
te M
anag
em
en
t
Application Runtime
Data Management & Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
GATEWAYS AND SMART DEVICES
Re
mo
te M
anag
em
en
t
Application Runtime
Data Management & Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
OS Stack for Home Automation
OSGi implementation
Rule engine to orchestrate “things”
Home automation protocols such asBelkin WeMo, LIFX, Philips Hue, …
Remote firmware update through the GW
Web UI and API for remote control
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Device Management
Device Registry
OS Stack for IoT Cloud
OMA LWM2M implementation in Javabuilt on top of Eclipse Californium (CoAP)
Manage software upgrade campaignsindependently of the actual DM protocol
IOT CLOUD PLATFORM
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse hawkBit
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
IOT CLOUD PLATFORM
Co
nn
ect
ivit
yOS Stack for IoT Cloud
C implementation of an MQTT server
MQTT 3.1.1 compliant
Scalable (1000 clients = 3MB RAM)
Extensible (e.g authentication plug-ins)
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
IOT CLOUD PLATFORM
Co
nn
ect
ivit
y
Me
ssag
e R
ou
tin
g
OS / PaaS
Device Management
Data Management
Event Management, Analytics & UI
Device Registry
Application Enablement
OS Stack for IoT Cloud Platform
Abstract the actual communication protocols via “protocol adapters”
Deploy on:
An Integration Platform for IoT Services
NoSQL data store
REST API
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse Vorto
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Cross-layer concerns
SECURITY ONTOLOGIES TOOLS
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
> Focus on an industry solution> Showcase a technical solution + vendor ecosystem
Examples:
IoT Testbeds?
Smart manufacturingWaste management Asset tracking
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
First testbed: Asset Tracking
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Architecture
https://iot.eclipse.org/testbeds/asset-tracking
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Our community
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Join us!
http://iot.eclipse.org
Booth 844 @ IoT World
Thank you!
@ianskerrettian.skerrett@eclipse.org
Backup slides
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software StacksTOOLS & SDKsONTOLOGIESSECURITY
CONSTRAINED DEVICES
Hardware Abstraction Layer (HAL)
OS / RTOS
Communication
Re
mo
te
Man
age
me
ntField protocols IoT protocols
IOT CLOUD PLATFORM
Co
nn
ect
ivit
y
Me
ssag
e R
ou
tin
g
OS / PaaS
Device Management
Data Management
Event Management, Analytics & UI
Device Registry
Application Enablement
GATEWAYS AND SMART DEVICES
Re
mo
te M
anag
em
en
t
Application Runtime
Data Management & Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
Eclipse IoT stack on Cloud FoundryR
ou
ter
Eclipse ACS
<<Hono Adapter>>
<<Hono Adapter>>
Kapua Web Console
Kapua
UAA
Copyright © 2016 The Eclipse Foundation. All Rights Reserved
OS Stack for IoT Cloud
Great! But… what if:
↳I want my platform to archive the data?↳I want to support more than just MQTT?↳I want a multi-tenant solution?↳…