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

Post on 20-May-2020

15 views 0 download

transcript

Open IoT

Mike Milinkovich

@mmilinkov

mike@eclipse.org

The Internet of Things

will be built on open source

The Internet of Things

is NOT a Market

Scale

Innovation

Open Source enables:

• Permissionless innovation

• Innovation through integration

• Far higher levels of experimentation

Connect and Interoperate

Developers

The Power of Developer Choice

A Current Example

Google Trends for “MQTT”

Open sourced

here

The Money Will Not Be In Software

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

Connect and Manage Devices

IoT?

In reality...

In reality...

… Internet of Silos

fragmentation

fragmentation complexity

fragmentation complexity lock-in

Eclipse IoT

Vision

Founded in 2011 by IBM,

Eurotech, Sierra Wireless

Founded in 2011 by IBM,

Eurotech, Sierra Wireless

20 open-source projects*

Lots of Java but also C,

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

* and counting!

→IoT Standards

→Services & Frameworks

Eclipse IoT Projects

End-to-end IoT?

End-to-end IoT?

End-to-end IoT?

End-to-end IoT?

CONNECT

CONNECT MANAGE

ANALYZE CONNECT MANAGE

Connecting things to the IoT?

Network is often not reliable

Bandwidth == $$$

Different communication patterns

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

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

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

Californium 101

CoapServer, CoapResource, CoapExchange

1.Implement custom resources

(extend CoapResource)

2.Add resources to the CoAP server

3.Start the server

MQTT: Publish & Subscribe

BROKE

R

Eclipse Paho

Open-source MQTT clients

Pick your language!

Java

JavaScript

C/C++, Objective C

Go, Lua, Python, .NET, WinRT, …

http://eclipse.org/paho

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

CONNECT MANAGE

✔ ANALYZE

CONNECT MANAGE

✔ ??? ANALYZE

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

Gateways to the rescue!

Gateway

Gateway

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

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

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

CONNECT MANAGE

✔ ✔ ANALYZE

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

CONNECT MANAGE

✔ ✔ ✔ ANALYZE

Eclipse IoT is also…

Flexible Framework

Based on Java and OSGi

Huge number of “bindings”:

KNX, Nest, Philips HUE, …

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

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

Eclipse IoT is also...

Information Models

Eclipse Vorto allows to create and manage

device descriptions + associated toolchains

(code generators)

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!

Thank you! Questions?

mike@eclipse.org

@mmilinkov

http://iot.eclipse.org

http://iot.eclipse.org/java