Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... ·...

30
Building an open Internet of Things with Eclipse IoT Benjamin Cabé Eclipse Foundation Eclipse IoT Day Grenoble - March 30, 2015

Transcript of Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... ·...

Page 1: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Building an open

Internet of Things

with Eclipse IoT

Benjamin Cabé – Eclipse Foundation

Eclipse IoT Day Grenoble - March 30, 2015

Page 2: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

IoT is Big

Page 3: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud
Page 4: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Java for IoT?

●  9+ million Java developers ●  Java 8 & embedded are fun ●  Lots of IoT devices running on ARM ●  Tooling

Page 5: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Open IoT Stack for Java

Page 6: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Actuators/Sensors

+ Gateway

+ [ Cloud ]

+ User front-end

End-to-end IoT with Java?

Page 7: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Gateway

Page 8: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Gateway

Page 9: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Gateway

Page 10: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Gateway

Connect sensors to the world

Manage the hardware and software running

at the edge

Page 11: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Connect?

●  CoAP

o  « HTTP over UDP » o  Expose your device as a resource to the Internet of

Things

●  MQTT

o  Publish/Subscribe model o  More room for local processing

Page 12: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

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 13: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

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 14: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

MQTT: Publish & Subscribe

BROKER

Page 15: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Eclipse Paho

●  Open-source MQTT clients

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

http://eclipse.org/paho

Page 16: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

MQTT brokers

●  Eclipse Mosquitto

o  C implementation

o  Scalable (1000 clients == 3MB RAM)

●  Eclipse Moquette

o  Java implementation o  Based on Netty and LMAX disruptor

Page 17: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Manage?

●  Gateway itself o  wireless modem, firewall, …

●  Applications

o  Install/Uninstall software packages o  Start/Stop applications

●  Sensors

o  H/W abstraction layer

Page 18: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Java VM OSGi Application Container

Device Abstraction

Gateway Basic Services

Network Configuration Network Management Field Protocols

Connectivity and Delivery

Adm

inis

trat

ion

GUI

Ope

ratio

n &

Man

agem

ent

Linux Hardware

App 1 App 2 App n . . . . Applications

Eclipse Kura

Page 19: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Installing Kura

cd#~#

sudo#apt+get#update#

wget#https://s3.amazonaws.com/kura_downloads/raspbian/release/#\##########################1.1.0/kura_1.1.0_raspberry+pi_armv6.deb#

sudo#dpkg#+i#kura_1.1.0_raspberry+pi_armv6.deb#

sudo#apt+get#install#+f#

sudo#reboot#

#

Page 20: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

First steps with Kura

●  Network management o  Cellular Modem, WiFi o  Firewall o  NAT

●  OSGi and system administration

●  IoT server communication settings

Page 21: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Kura API

●  OSGi services that you can re-use in your own components o  ClockService o  DataService, CloudService o  CryptoService (AES, base64, SHA-1) o  PositionService (geolocation) o  … and many others

●  And of course you can leverage a huge ecosystem of Java and OSGi libraries

Page 22: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Demo time!

Page 23: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

End-user interaction

●  JavaFX Charts

●  Eclipse BIRT

●  Smartphone app (e.g Android) o  https://www.eclipse.org/paho/clients/android

●  MQTT + WebSockets = ♡ o  https://www.eclipse.org/paho/clients/js

Page 24: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Kura is awesome! Go download it now!

http://eclipse.org/kura

If you had to remember only 3 things...

#1

Page 25: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Build your own greenhouse & follow the tutorial

http://iot.eclipse.org/java/tutorial

If you had to remember only 3 things...

#2

Page 26: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Eclipse IoT is much more than Kura and Java!

http://iot.eclipse.org/

If you had to remember only 3 things...

#3

Page 27: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Get Involved!

●  Open bugs / fix bugs ●  Request new features ●  Write articles, tutorials ●  Participate on the mailing

lists ●  Propose your project!

Page 28: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Coming next?

Page 29: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Coming next?

●  Device Management

o  LwM2M, LwM2M over MQTT, IPSO Smart Objects

●  Security

o  TinyDTLS

●  Open-source IoT server? o  Several members interested in defining and

implementing the OpenStack for IoT

Page 30: Building an open Internet of Things with Eclipse IoT › images › 2 › 2f › Eclipse_Day... · Building an open Internet of Things with Eclipse IoT ... To be used in IoT cloud

Thank you! Questions?

[email protected] @kartben

http://iot.eclipse.org