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

Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Embed Size (px)

Citation preview

Page 1: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Open SourceInternet of Things 101

Benjamin Cabé@kartben

April 15, 2016© Eclipse Foundation – Made available under the EPL v1.0

Page 2: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

IoT?

Page 3: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 4: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

In reality...

Page 5: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

In reality...

… Internet of Silos

Page 6: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

fragmentation complexity lock-in

Page 7: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Technology

Industry adoption

Community

Open Source IoT?

Page 8: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 9: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 10: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

● Founded in late 2011 byIBMEurotechSierra Wireless

Page 11: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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

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

* and counting!

→ IoT Standards→ Services & Frameworks

Page 12: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Eclipse IoT Technology

Page 13: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

CONNECT MANAGE

Page 14: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

● 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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

MQTT: Publish & Subscribe

Sub KETTLE232/#Pub KETTLE232/temp

Payload: 21°C

Pub KETTLE232/temp

Payload: 21°CBROKER

Page 19: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

SandboxesEclipse IoT operates open sandboxes for IoT developers

● MQTT● CoAP● LWM2M

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

Page 22: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

✔CONNECT MANAGE

Page 23: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

✔CONNECT MANAGE

???

Page 24: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Gateways to the rescue!

Page 26: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Gateway

Page 27: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Gateway

Page 28: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Kura features● Network management

○ Cellular Modem, WiFi○ Firewall○ NAT

● OSGi and system administration

● IoT server communication settings

Page 30: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Kura features: Remote management UI

Page 31: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Kura features: Remote management UI

Page 32: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Kura features: Remote management UI

Page 33: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Kura features: Remote management UI

Page 34: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Device Management with LWM2M

Page 36: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

✔CONNECT MANAGE

Page 37: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Eclipse IoT is also...Information Models

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

Page 39: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Eclipse IoT is also…

● Flexible Framework● Based on Java and OSGi

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

Page 41: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

http://iot.eclipse.org/projects

and much more...

Page 42: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Industry Adoption

Page 43: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

“MQTT” on Google Trends

Can you guess whathappened then?

Page 44: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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

Page 45: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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

Page 46: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

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

Page 47: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 48: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 49: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Eclipse IoT Community

Page 50: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Eclipse IoT today

2 21 150+ 100KMLOC projects developers monthly

visitors

Page 51: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

80 teams $20K+ in prizes

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

Page 52: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Virtual IoT Meetup

● Bi-weekly webinars with IoT experts● 800 members

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

Page 53: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)
Page 54: Building the Internet of Things with open source and Eclipse IoT projects (Benjamin Cabé, Eclipse Foundation)

Get Involved!

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