Top Banner
Open Source Internet of Things 101 Benjamin Cabé @kartben March 8, 2016 © Eclipse Foundation Made available under the EPL v1.0
55

Open Source Internet of Things 101 – EclipseCon 2016

Apr 16, 2017

Download

Technology

Benjamin Cabé
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Open Source Internet of Things 101 – EclipseCon 2016

Open SourceInternet of Things 101

Benjamin Cabé@kartben

March 8, 2016© Eclipse Foundation – Made available under the EPL v1.0

Page 2: Open Source Internet of Things 101 – EclipseCon 2016

IoT?

Page 3: Open Source Internet of Things 101 – EclipseCon 2016
Page 4: Open Source Internet of Things 101 – EclipseCon 2016

In reality...

Page 5: Open Source Internet of Things 101 – EclipseCon 2016

In reality...

… Internet of Silos

Page 6: Open Source Internet of Things 101 – EclipseCon 2016

fragmentation complexity lock-in

Page 7: Open Source Internet of Things 101 – EclipseCon 2016

Technology

Industry adoption

Community

Open Source IoT?

Page 8: Open Source Internet of Things 101 – EclipseCon 2016
Page 9: Open Source Internet of Things 101 – EclipseCon 2016
Page 10: Open Source Internet of Things 101 – EclipseCon 2016

● Founded in late 2011 byIBMEurotechSierra Wireless

Page 11: Open Source Internet of Things 101 – EclipseCon 2016

● 20 open-source projects*● Lots of Java but also C,

C++, Python, Go, .Net, …

* and counting!

→ IoT Standards→ Services & Frameworks

Page 12: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT Technology

Page 13: Open Source Internet of Things 101 – EclipseCon 2016

CONNECT MANAGE

Page 14: Open Source Internet of Things 101 – EclipseCon 2016

● CoAP○ « HTTP over UDP »

○ Expose your device as a resource on the Internet of Things

● MQTT○ Publish/Subscribe model○ TCP-based

Connecting things to the IoT

Page 15: Open Source Internet of Things 101 – EclipseCon 2016

CoAP - RFC 7252● RESTful protocol designed from scratch

○ URIs, Internet Media Types

○ GET, POST, PUT, DELETE

● Transparent mapping to HTTP

● Additional features for M2M scenarios

○ e.g Observe

Page 16: Open Source Internet of Things 101 – EclipseCon 2016

CoAP: The web-of-things

/walk/hand/left/raise/eye/picture

/on/red/green/blue/mtbf

/on

/on

/buttons/buttons/1/push/bat-level

/engine/status/position/fuel /CO2

/noise/lights/on

Page 17: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse Californium● Focus on scalability and usability

● To be used in IoT cloud servers or M2M/IoT devices running Java

● Includes DTLS implementation (Scandium),HTTP/CoAP bridge, Plugtests, …

http://eclipse.org/californium

Page 18: Open Source Internet of Things 101 – EclipseCon 2016

MQTT: Publish & Subscribe

Sub KETTLE232/#Pub KETTLE232/temp

Payload: 21°C

Pub KETTLE232/temp

Payload: 21°CBROKER

Page 19: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse Paho● Open-source MQTT clients

● Pick your language!○ Java○ JavaScript○ C/C++, Objective C○ Go, Lua, Python, .NET, WinRT, …

http://eclipse.org/paho

Page 20: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse Mosquitto● Open source MQTT broker

○ C implementation

○ MQTT 3.1.1 compliant

○ Scalable (1000 clients = 3MB RAM)

○ Extensible (e.g authentication plug-ins)

Page 21: Open Source Internet of Things 101 – EclipseCon 2016

SandboxesEclipse IoT operates open sandboxes for IoT developers

● MQTT● CoAP● LWM2M

http://iot.eclipse.org/getting-started#sandboxes

Page 22: Open Source Internet of Things 101 – EclipseCon 2016

✔CONNECT MANAGE

Page 23: Open Source Internet of Things 101 – EclipseCon 2016

✔CONNECT MANAGE

???

Page 24: Open Source Internet of Things 101 – EclipseCon 2016

Yup, lots of aspects to manage● Network

→ PPP cellular connection, WiFi hotspot, Zigbee coordination, VPN, firewall … → offline/online mode

● Applications→ Remote install, start, stop, configure, … → Sandboxing

● Hardware

Page 25: Open Source Internet of Things 101 – EclipseCon 2016

Gateways to the rescue!

Page 26: Open Source Internet of Things 101 – EclipseCon 2016

Gateway

Page 27: Open Source Internet of Things 101 – EclipseCon 2016

Gateway

Page 28: Open Source Internet of Things 101 – EclipseCon 2016

Java VMOSGi Application Container

Device Abstraction

Gateway Basic Services

Network ConfigurationNetwork Management Field Protocols

Connectivity and Delivery

Adm

inis

trat

ion

GUI

Ope

ratio

n &

Man

agem

ent

LinuxHardware

App 1 App 2 App n. . . . Applications

Eclipse Kura

Page 29: Open Source Internet of Things 101 – EclipseCon 2016

Kura features● Network management

○ Cellular Modem, WiFi○ Firewall○ NAT

● OSGi and system administration

● IoT server communication settings

Page 30: Open Source Internet of Things 101 – EclipseCon 2016

Kura features: Remote management UI

Page 31: Open Source Internet of Things 101 – EclipseCon 2016

Kura features: Remote management UI

Page 32: Open Source Internet of Things 101 – EclipseCon 2016

Kura features: Remote management UI

Page 33: Open Source Internet of Things 101 – EclipseCon 2016

Kura features: Remote management UI

Page 34: Open Source Internet of Things 101 – EclipseCon 2016

Device Management with LWM2M● LWM2M is an Open Mobile Alliance Standard

● Device Management on top of CoAP

● Eclipse Leshan (Java) and Wakaama (C) are two implementations

Page 35: Open Source Internet of Things 101 – EclipseCon 2016

Device Management with LWM2M

Page 36: Open Source Internet of Things 101 – EclipseCon 2016

✔CONNECT MANAGE

Page 37: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT is also...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

Page 38: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT is also...Information Models

● Eclipse Vorto allows to create and manage device descriptions + associated toolchains (code generators)

Page 39: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT is also… Industrial IoT

● Open source implementations of IEC standards○ Eclipse neoSCADA: Siemens S7 PLC, IEC 60870-4-105, …

○ 4DIAC: 61499

○ Rise V2G: IEC 15118

Page 40: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT is also…

● Flexible Framework● Based on Java and OSGi

● Huge number of “bindings”:KNX, Nest, Philips HUE, …

Page 41: Open Source Internet of Things 101 – EclipseCon 2016

http://iot.eclipse.org/projects

and much more...

Page 42: Open Source Internet of Things 101 – EclipseCon 2016

Industry Adoption

Page 43: Open Source Internet of Things 101 – EclipseCon 2016

“MQTT” on Google Trends

Can you guess whathappened then?

Page 44: Open Source Internet of Things 101 – EclipseCon 2016

What do Microsoft Azure IoT suite, AWS IoT, or IBM Watson IoT platform have in common?

Page 45: Open Source Internet of Things 101 – EclipseCon 2016

What do Microsoft Azure IoT suite, AWS IoT, or IBM Watson IoT platform have in common?

Page 46: Open Source Internet of Things 101 – EclipseCon 2016

We went with Eclipse SCADA because it gave us a ready made control system as an open source product

Page 47: Open Source Internet of Things 101 – EclipseCon 2016
Page 48: Open Source Internet of Things 101 – EclipseCon 2016
Page 49: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT Community

Page 50: Open Source Internet of Things 101 – EclipseCon 2016

Eclipse IoT today

2 21 150+ 100KMLOC projects developers monthly

visitors

Page 51: Open Source Internet of Things 101 – EclipseCon 2016

80 teams $20K+ in prizes

http://iot.eclipse.org/open-iot-challenge

Page 52: Open Source Internet of Things 101 – EclipseCon 2016

Virtual IoT Meetup

● Bi-weekly webinars with IoT experts● 800 members

http://www.meetup.com/Virtual-IoT

Page 53: Open Source Internet of Things 101 – EclipseCon 2016
Page 54: Open Source Internet of Things 101 – EclipseCon 2016

Get Involved!

● Open (or fix!) bugs● Request new features● Write articles, tutorials● Participate on the mailing lists● Share your success stories● Propose your project!