Defining an Open IoT Stack - Presented at IoT World 2015

34
Defining the Open Stack for IoT Ian Skerrett Eclipse Foundation @ianskerrett [email protected]

Transcript of Defining an Open IoT Stack - Presented at IoT World 2015

Defining the Open Stack for IoT

Ian SkerrettEclipse Foundation

@[email protected]

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

2

Open Wins

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

3

Start-up led by Tim Berners-Lee Launched to take on AOL and Compuserve Giants

May 1990

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

4

Open Wins

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

5

MQTT – Open Wins

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

6

IoT Developer Enablement

04/15/2023 Copyright (c) 2013, Eclipse Foundation, Inc. Made available under the Eclipse Public License 1.0

8

Developers Build Cool Stuff

04/15/2023 IoT Developer Survey 2015 - Copyright Eclipse Foundation

9

Individual Experience with IoT

Development of IoT solutions for my company

33%

Researching IoT for company14%Develop IoT solutions in my

personal time15%

Learning about IoT in my personal time

22%

No experience9%

Other (please specify)7%

04/15/2023 IoT Developer Survey 2015 - Copyright Eclipse Foundation

10

Majority Using Open Source TodayOpen source is not allowed in any part of

our IoT solution, 2.4% Open source is not allowed on the device, but allowed on the server-side; 2.4%

Other (please specify); 2.7%

Don’t know; 11.5%

Open source is used, and we contribute bug fixes to open

source projects, 21.7%

Open source is used, but we do not partic-ipate or contribute to open source

projects, 26.8%

Open source is used, and we have developers who work on open

source projects, 32.5%

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.0

11

Connecting and Managing Things

IoT Architectures

New and Existing Devices

IoT Gateways Network/Wireless Services

Backend Systems

Open Solutions

New and Existing Devices

IoT Gateways Network/Wireless Services

Backend Systems

Open Standards and Open Source to Connect and Manage

Connect and Manage with Open Standards

New and Existing Devices

CoAP

LWM2M

Many Open Standards

MQTT

- Simple Publish/Subscribe protocol

- Small footprint- Minimal on-the-wire

formal and payload

MQTT Client(Java, JS, C, C++, Python, etc.)

MQTT Client MQTT Broker

MosquittoMQTT Broker

(C Code)

Constrained Application Protocol (CoAP)• RESTful protocol

designed from scratch• Transparent mapping to

HTTP• Works over UDP• DTLS Security

Californium- CoAP Core- DTLS- CoAP Tools- Java implementations

REST Interface

Lightweight M2M

- Configure- Update- Manage- Monitor

WakaamaLWM2M Client

(C/C++)

LeshanLWM2M Server

(Java)

IoT Gateway Services

IoT Gateways

Java and OSGi

IoT Gateways

• Gateway management• How to manage remote gateways and keep them up to date• How to manage connectivity

• Manage deployed applications• Gateways become an application container• Remote configuration• Remote update

Java VM

OSGi Application Container

Device Abstraction

Gateway Basic Services

Network ConfigurationNetwork Management Field

Protocols

Connectivity and Delivery

Ad

min

istr

ati

on

GU

I

Op

era

tio

n &

Ma

na

ge

me

nt

Linux

Hardware

App 1 App 2 App n. . . .

Applications

Where we are heading: Open IoT Stack

Connectivity- MQTT- CoAP- LWM2M

IoT Gateway Services- Remote management- Application management

IoT Applications

IoT Solution Frameworks- Home Automation- SCADA- OM2M

Reporting

Developer Tools (IDE,

etc.)

Open & Commercial Hardware

Open IoT Stack

New and Existing Devices

IoT Gateways Network/Wireless Services

Backend Systems

Open IoT Stack

Commercial Ecosystem

Open IoT Stack for Java

More Info: iot.eclipse.org

Copyright (c) 2014 Eclipse Foundation, licensed under the EPL-1.0

25

Sandbox Servershttp://iot.eclipse.org/sandbox.html

Get Involved

• Download and use our software• Provide feedback to the projects• Start an open source IoT project• Join the Eclipse IoT Working Group

Questions@ianskerrett

[email protected]

iot.eclipse.org

Backup

Intranet of Things for Home Automation

Event Bus

Persistence Services

Automation Logic

User Interfaces

Item Registry

Hue Binding

Samsung Binding

Bluetooth Binding

Sonos Binding

Hue

Blue

toot

h

Sam

sung

Sono

s

...

IoT Solutions: SCADA

• SCADA (Supervisory Control and Data Acquisition) is defined as the monitoring and control of technichal processes by means of a computer system

Protocols & Interoperability

Drivers Modbus (master & slave) Siemens S7 PLC IEC 60870-4-105 (master &

slave) *

OPC DA 2 (client) †

OPC UA (client & server) **

SNMP †, JDBC, Shell Building blocks for more

Eclipse SCADAClient and server for JavaClient for .NET using IKVMPartially: JSON, WebService

† SNMP and OPC from openSCADA* included in next release 0.2.0** planned for 0.3.0

Where we are heading: Open IoT Stack

Connectivity- MQTT- CoAP- LWM2M

IoT Gateway Services- Remote management- Application management

IoT Applications

IoT Solution Frameworks- Home Automation- SCADA- OM2M

Reporting

Developer Tools (IDE,

etc.)

Open & Commercial Hardware

IoT Solutions – Home Automation