You are on page 1of 56

Connect and Manage Devices

Ian Skerrett
Eclipse Foundation
Creating the Open Source
Building Blocks for IoT
Ian Skerrett Eclipse Foundation
Open Wins

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016
under the Eclipse Public License 1.0 3
Open Wins

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016
under the Eclipse Public License 1.0 4
MQTT – Open Wins

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016
under the Eclipse Public License 1.0 5
Openness Attracts Developers

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016 6
under the Eclipse Public License 1.0
IoT Developer Enablement
Developers Build Cool Stuff

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016 8
under the Eclipse Public License 1.0
Open Hardware Is a Key Enabler

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016 9
under the Eclipse Public License 1.0
HAVE YOU EVER USED ANY ACCESSIBLE HARDWARE PLATFORMS LIKE
RASPBERRY PI, ARDUINO, BEAGLEBONE, ETC. ?

7% Yes, my company deploys IoT solution


18% using an accessible hardware platform.
11% Yes, my company prototypes IoT solutions
using an accessible hardware platform.
Yes, I have experimented with accessible
hardware in my spare time
28% No, but I intent to experiment with
36% accessible hardware in the next 6 months.
Never used open hardware.

4/6/2016 IoT Developer Survey 2015 - Copyright Eclipse Foundation 10


Open Source Software
Will Be a Key Enabler

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016 11
under the Eclipse Public License 1.0
Copyright (c) 2013, Eclipse Foundation, Inc. Made available
4/6/2016
under the Eclipse Public License 1.0 12
Innovation
Open Source enables:
• Permissionless innovation
• Innovation through integration
• Far higher levels of experimentation
Open source makes it easier
for developers

Copyright (c) 2013, Eclipse Foundation, Inc. Made available


4/6/2016 14
under the Eclipse Public License 1.0
Operating Systems
Operating System
Which operating systems do you use for your IoT devices?

Linux 78.2%
No OS / Bare-metal 20.0%
Other (please specify) 11.4%
Windows Embedded 11.4%
FreeRTOS 11.4%
Contiki 7.5%
Don't know 7.1%
mbed 6.8%
6.1%
TinyOS 2.1%
RIOT 0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0% 80.0% 90.0%

4/6/2016 IoT Developer Survey 2015 - Copyright Eclipse Foundation 16


Data &
Analytics
Interoperability
Connect and Manage Devices
OS at Eclipse IoT

Vort
o
IoT
Architectures

New and Existing IoT Gateways Network/Wireless Backend Systems


Devices Services
Open Solutions

New and Existing IoT Gateways


Network/Wireless Backend Systems
Devices
Open Standards and Open Source tSoerCcvioens nect and
Manage
Connect and Manage with Open Standards

CoAP

LWM2M

New and Existing Devices Many Open Standards


MQTT MQTT Client MQTT Broker

- Simple
Publish/Subscribe
protocol
- Small footprint
- Minimal on-the-wire
formal and payload

MQTT Client Mosquitto


(Java, JS, C, C++, Python, etc.) MQTT Broker
(C Code)
MQTT Adoption
Messaging Protocol

What general messaging protocols do you use in your IoT solution?


HTTP 63.1%
53.0%
MQTT 21.5%
CoAP 18.6%
In- 11.5%
house 11.1%
XMPP 8.2%
6.8%
AMQP 5.4%
Propr 1.1%
ietary 0.0% 10.0% 20.0% 30.0% 40.0% 50.0% 60.0% 70.0%
vendo
r
4/6/2016
protoc IoT Developer Survey 2015 - Copyright Eclipse Foundation 26
ol(
Constrained Application Protocol (CoAP)
• RESTful protocol
designed from scratch
• Transparent mapping to
HTTP
• Works over UDP REST
Interface
• DTLS Security

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

- Standard for device


management
- Based on CoAP

Wakaama
LWM2M Adoption
IoT Gateway Services

IoT Gateways

Java and OSGi


Gateways
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
Applications

Operation & Management


App 1 App 2 .... App n

Administration GUI
Connectivity and Delivery

Network Configuration
Network Management Field
Protocols

Gateway Basic Services

Device Abstraction

OSGi Application Container

Java VM

Linux

Hardware
Where we are heading: Open IoT Stack

IoT Applications
Reporting
IoT Solution Frameworks
- Home Automation
- SCADA
- OM2M
Developer
Tools
Connectivity Security IoT Gateway Services
- MQTT - DTLS
- Remote management
- CoAP - DNS-SD
- Application
- LWM2M - DNS-SEC management

Open & Commercial Hardware


Home
Automation

• Flexible Framework
• Based on Java and OSGi

• Huge number of “bindings”:


KNX, Nest, Philips HUE, …
Solutions
• Telco Service Providers
• Implementation of oneM2M: OM2M

• Industrial IoT:
• Eclipse neoSCADA
• Support Siemens S7 PLC, IEC 60870-4-105
• 4DIAC - IEC
• Rise V2G - IEC
61499
15118
• OPC-UA
• IoT network management: Krikkit
• Rules engine for IoT devices
• Powering Cisco’s Data in Motion.
Eclipse IoT is also...
IoT Server Platform
Software provisioning
https://projects.eclipse.org/projects/iot.hawkbit
Uniform service interface for Telemetry and Command & Control

https://projects.eclipse.org/projects/iot.hono
Vorto: IoT device modeling tools
Open IoT Stack

New and Existing IoT Gateways Network/Wireless Backend Systems


Devices Services
Open IoT Stack
Eclipse IoT Community
Eclipse IoT today

2 21 150+
MLOC projects developers
Commercial Ecosystem

Open IoT Stack for Java


80 teams $20K+ in prizes

http://iot.eclipse.org/open-iot-challenge
Virtual IoT Meetup

Bi-weekly webinars with IoT experts


800 members

http://www.meetup.com/Virtual-Io
T
More Info: iot.eclipse.org
Sandbox Servers
http://iot.eclipse.org/sandbox.html

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


47
1.0
Get Involved!

• Open (or fix!) bugs


• Request new features
• Write articles, tutorials
• Participate on the mailing lists
• Share your success stories
• Propose your project!
Questions

@ianskerrett Ian.Skerre
tt@eclipse.org
Backup
IoT Solutions – Home Automation
Intranet of Things for Home Automation
Automation Persistence Services
Logic Item
User Interfaces
Registry

Event
Bus

Hue
Bindin
Samsun
g
Bluetooth
Binding
Sonos
Bindin
...
g Binding g

Samsung

Bluetooth

Sonos
Hue
IoT Solutions: SCADA

• SCADA (Supervisory Control and Data Acquisition) is defined as the


monitoring and control of technical processes by means of a
computer system
Hierarchical
Architecture
Global control center

Regional control centers

Local control centers

Devices, like Dataloggers


PLCs, Beaglebone,
Raspberry PI, ...
Protocols & Interoperability

Drivers Eclipse SCADA
 Modbus (master & slave)
Client and server for Java
 Siemens S7 PLC
Client for .NET using IKVM
 IEC 60870-4-105 (master &
Partially: JSON, WebService
slave) *
 OPC DA 2 (client) †

 OPC UA (client & server) **


 SNMP †, JDBC, Shell
 Building blocks for more

† SNMP and OPC from openSCADA


* included in next release 0.2.0
** planned for 0.3.0

You might also like