+ All Categories
Home > Documents > End-to-End IoT Solutions with Java and the Eclipse IoT...

End-to-End IoT Solutions with Java and the Eclipse IoT...

Date post: 20-May-2020
Category:
Upload: others
View: 15 times
Download: 0 times
Share this document with a friend
63
Open IoT Mike Milinkovich @mmilinkov [email protected]
Transcript
Page 1: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Open IoT

Mike Milinkovich

@mmilinkov

[email protected]

Page 2: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

The Internet of Things

will be built on open source

Page 3: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

The Internet of Things

is NOT a Market

Page 4: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Scale

Page 5: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Innovation

Open Source enables:

• Permissionless innovation

• Innovation through integration

• Far higher levels of experimentation

Page 6: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Connect and Interoperate

Page 7: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Developers

Page 8: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

The Power of Developer Choice

Page 9: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

A Current Example

Google Trends for “MQTT”

Open sourced

here

Page 10: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

The Money Will Not Be In Software

Source: http://www.bloomberg.com/news/articles/2015-02-05/six-things-technology-has-made-insanely-cheap

Page 11: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Connect and Manage Devices

Page 12: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

IoT?

Page 13: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 14: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 15: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 16: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 17: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 18: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

In reality...

Page 19: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

In reality...

… Internet of Silos

Page 20: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

fragmentation

Page 21: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

fragmentation complexity

Page 22: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

fragmentation complexity lock-in

Page 23: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Eclipse IoT

Vision

Page 24: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 25: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)
Page 26: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Founded in 2011 by IBM,

Eurotech, Sierra Wireless

Page 27: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Founded in 2011 by IBM,

Eurotech, Sierra Wireless

Page 28: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

20 open-source projects*

Lots of Java but also C,

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

* and counting!

→IoT Standards

→Services & Frameworks

Page 29: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Eclipse IoT Projects

Page 30: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

End-to-end IoT?

Page 31: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

End-to-end IoT?

Page 32: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

End-to-end IoT?

Page 33: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

End-to-end IoT?

Page 34: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT

Page 35: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT MANAGE

Page 36: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

ANALYZE CONNECT MANAGE

Page 37: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Connecting things to the IoT?

Network is often not reliable

Bandwidth == $$$

Different communication patterns

Page 38: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 39: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 40: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 41: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Californium 101

CoapServer, CoapResource, CoapExchange

1.Implement custom resources

(extend CoapResource)

2.Add resources to the CoAP server

3.Start the server

Page 42: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

MQTT: Publish & Subscribe

BROKE

R

Page 43: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 44: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Open source MQTT brokers

Eclipse Mosquitto (iot.eclipse.org)

C implementation

Pretty scalable (1000 clients == 3MB RAM)

But also…

Moquette (Java, Based on Netty and LMAX disruptor)

VerneMQ (Erlang)

Mosca (Node.js)

⇒ https://github.com/mqtt/mqtt.github.io/wiki/servers

Page 45: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT MANAGE

✔ ANALYZE

Page 46: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT MANAGE

✔ ??? ANALYZE

Page 47: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 48: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Gateways to the rescue!

Page 49: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Gateway

Page 50: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Gateway

Page 51: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Java VM

OSGi Application Container

Device Abstraction

Gateway Basic Services

Network Configuration Network Management Field

Protocols

Connectivity and Delivery

Ad

min

istr

ati

on

GU

I

Op

era

tio

n &

Ma

nag

em

en

t

Linux

Hardware

App 1 App 2 App n . . . .

Applications

Eclipse Kura

Page 52: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Kura API

OSGi services that you can re-use in your

own components

ClockService

DataService, CloudService

CryptoService (AES, base64, SHA-1)

PositionService (geolocation)

… and many others

And of course you can leverage a huge

ecosystem of Java and OSGi libraries

Page 53: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Device Management is also...

LightweightM2M

LWM2M is an Open Mobile Alliance Standard

Device Management on top of CoAP

Eclipse Leshan and Wakaama are two

implementations

Page 54: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT MANAGE

✔ ✔ ANALYZE

Page 55: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

End-user interaction

JavaFX Charts

Eclipse BIRT

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

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

Page 56: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

CONNECT MANAGE

✔ ✔ ✔ ANALYZE

Page 57: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Eclipse IoT is also…

Flexible Framework

Based on Java and OSGi

Huge number of “bindings”:

KNX, Nest, Philips HUE, …

Page 58: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Eclipse IoT is also...

Server Platform

Software provisioning https://projects.eclipse.org/proposals/hawkbit

Uniform service interface for Telemetry and Command

& Control

https://projects.eclipse.org/proposals/hono

Page 59: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

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 60: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Eclipse IoT is also...

Information Models

Eclipse Vorto allows to create and manage

device descriptions + associated toolchains

(code generators)

Page 61: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Get Involved! Use Eclipse IoT Technology

in your products

Open bugs / fix bugs

Request new features

Write articles, tutorials

Participate on the mailing

lists

Come to EclipseCon/IoT!

Propose your project!

Page 62: End-to-End IoT Solutions with Java and the Eclipse IoT Stackfiles.messe.de/abstracts/70814_Mike_Milinkovic_eclipse_IoTSummit… · Open source MQTT brokers Eclipse Mosquitto (iot.eclipse.org)

Recommended