3 Software Stacks for IoT Solutions - TMCnet€¦ · 3 Software Stacks for IoT Solutions Ian...

Preview:

Citation preview

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

IoT?

ApplicationsCollect, exchange

& analyze data

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

IoT?

Applications

Sensing / ActuatingInteract with the physical world

Collect, exchange & analyze data

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

IoT?

Applications

Networking & Data Communications

Sensing / ActuatingInteract with the physical world

Bridge the physical worldto the Internet

Collect, exchange & analyze data

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

Eclipse IoT?

Eclipse IoT is an open source community aimed at

building and promoting

open source software, open standards

& open collaboration models

needed to create an Open Internet of Things

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Our members

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

Eclipse Edje

Hardware Abstraction Java API for IoT embedded systems

Peripheral managementController Communication Interfaces (Serial connection,

CAN, SPI, I²C)Digital and Analog I/O (GPIO, ADC, DAC)

ScopeTarget resource-constrained micro-controllersProvide ready-to-use software packages for target hardwareDefine a modular and easy to port framework

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Eclipse Edje requirements

Processor: 32-bits (e.g. Cortex-M0)Frequency: 16 MHzRAM: 32 KBFlash: 128 KB

Example: STM32F4 Discovery Processor: 32-bits Cortex-M4 (STM32F407VGT6)

Frequency: 168 MHz

RAM: 192 KB

Flash: 1 MB

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

Java VM

OSGi Application Container

Device Abstraction

Gateway Basic Services

Network ConfigurationNetwork Management Field Protocols

Connectivity and Delivery

Ad

min

istr

atio

n G

UI

Op

era

tio

n &

M

anag

em

en

t

Linux

Hardware

App 1 App 2 App n. . . . Applications

Eclipse Kura

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

Eclipse SmartHome

Extension Points

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

OS Stack for IoT Cloud

IOT CLOUD PLATFORM

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

OS Stack for IoT Cloud

Device Management

Device Registry

IOT CLOUD PLATFORM

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 Leshan

Java implementation of OMA LWM2MSandbox hosted at http://leshan.eclipse.org

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

Eclipse Hono

Eclipse Hono provides a uniform API for interacting with millions of devices connected to the cloud via arbitrary protocolsExample:

<<Protocol Adapter>>

MQTT<<Application>>

‘Track my Tools’

BT LE

AMQP 1.0AMQP 1.0MQTT

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Eclipse Kapua

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 Keti (proposed)

Ability to maintain access-decision data as policies and attributes

Exclusive security for multiple clients using the service (ACS services are tenant-aware)

Support for fine-grained authorization policies

Contributed by GE, from the Predix platformSee http://tinyurl.com/eclipse-acs-proposal

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

Eclipse Paho – mqtt-spy

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Eclipse Paho – mqtt-spy

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Eclipse IoT Community

2.2 26* 210+ 110Kmillion

lines of codeprojects developers monthly

visitors

* and counting!

Copyright © 2016 The Eclipse Foundation. All Rights Reserved

Join us!

2.2 26* 210+ 110Kmillion

lines of codeprojects developers monthly

visitors

* and counting!

http://iot.eclipse.org

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?↳…

Recommended