Java & IoT:
will it blend?
Benjamin Cabé, Eclipse Foundation
@kartben
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Typical IoT Architecture
Devices
(sensors & actuators)
Applications
telemetry
commands
telemetry
commands
IoT Cloud
Platform
Gateways
In reality…
In reality…
Internet of… Silos!
fragmentation complexity lock-in
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT Community
2.4 30* 250+ 110K
million
lines of code
projects developers monthly
visitors
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software Stacks
TOOLS & SDKsONTOLOGIESSECURITY
CONSTRAINED DEVICES
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field
protocols
IoT protocols
IOT CLOUD PLATFORM
Connectivity
MessageRouting
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
GATEWAYS AND SMART DEVICES
RemoteManagement
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field
protocols
IoT protocols
Network Management
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field
protocols
IoT protocols
CONSTRAINED DEVICES
OS Stack for IoT DevicesOS Stack for IoT Devices
JAVA API for MCUs
“Android for IoT”
High performance JVM
Fast, small, … open source!
GPU acceleration
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
Daytrader 3 Benchmark
● 60% less footprint after startup
● 40% less footprint during ramp up
● 2× faster startup time
● Comparable throughput
See https://www.eclipse.org/openj9/oj9_performance.html
vs.
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
OS Stack for IoT Gateways
OSGi implementation
Native support for MQTT
Serial, RS-485, BLE, MODBUS, OPC-UA,
CAN Bus, …
NAT, firewall, modem configuration, …
Remote Management over MQTT
Milo
GATEWAYS AND SMART DEVICES
RemoteManagement
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
Java VM
OSGi Application Container
Device Abstraction
Gateway Basic Services
Network Configuration
Network Management Field
Protocols
Connectivity and Delivery
AdministrationGUI
Operation&
Management
Linux
Hardware
App 1 App 2 App n. . . .
Applications
Eclipse Kura
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
GATEWAYS AND SMART DEVICES
RemoteManagement
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field protocols IoT protocols
Network Management
OS Stack for Home Automation
OSGi implementation
Rule engine to orchestrate “things”
Home automation protocols such as
Belkin WeMo, LIFX, Philips Hue, …
Remote firmware update through the GW
Web UI and API for remote control
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
OS Stack for IoT Cloud
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
Device
Management
Device
Registry
OS Stack for IoT Cloud
OMA LWM2M implementation in Java
built on top of Eclipse Californium (CoAP)
Manage software upgrade campaigns
independently of the actual DM protocol
IOT CLOUD PLATFORM
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse hawkBit
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
IOT CLOUD PLATFORM
Connectivity
MessageRouting
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
OS Stack for IoT Cloud Platform
Abstract the actual communication
protocols via “protocol adapters”
Deploy on:
An Integration Platform for IoT Services
NoSQL data store
REST API
Copyright © 2017 The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben
Eclipse hono
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
The 3 IoT Software Stacks
TOOLS & SDKsONTOLOGIESSECURITY
CONSTRAINED DEVICES
Hardware
Abstraction Layer (HAL)
OS / RTOS
Communication
Remote
Management
Field
protocols
IoT protocols
IOT CLOUD PLATFORM
Connectivity
MessageRouting
OS / PaaS
Device
Management
Data
Management
Event Management,
Analytics & UI
Device
Registry
Application
Enablement
GATEWAYS AND SMART DEVICES
RemoteManagement
Application Runtime
Data Management
& Messaging
OS / RTOS
Connectivity
Field
protocols
IoT protocols
Network Management
Vorto
Keti
tinyDTLS
Milo
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT Adoption
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse IoT Programs
Virtual IoT
Open
IoT Challenge
IoT
Marketplace
Testbeds
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
One more thing…
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Eclipse Enterprise for Java (EE4J)
Moving Java EE to Eclipse Foundation
Technology
✓
✓
✓
✓
Sponsorship
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
•
•
•
–
–
–
•
•
–
Eclipse Enterprise for Java (EE4J)
Project Overview
✓
✓
✓
✓
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
● Java-based Machine Learning Framework
○ Toolkit for building, training and deploying Neural Networks
● Distributed training
○ GPU or Hadoop/Spark
● Use cases:
○ network intrusion detection, predictive maintenance,
recommender systems in e-commerce, image recognition, …
Eclipse Deeplearning4j
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
Join us!
2.4 30* 250+ 110K
million
lines of code
projects developers monthly
visitors
* and counting!
https://iot.eclipse.org
Copyright © 2017 The Eclipse Foundation. All Rights Reserved
● Check out the projects
○ Contribute ideas, bug fixes, use cases…
● Participate on the mailing lists
● Virtual IoT Meetup
○ https://www.meetup.com/virtual-iot
● Propose your project!
Join us!
Thank you!
@kartben
benjamin.cabe@eclipse-foundation.org
https://blog.benjamin-cabe.com

JVM-Con 2017 – Java and IoT, will it blend?

  • 1.
    Java & IoT: willit blend? Benjamin Cabé, Eclipse Foundation @kartben
  • 8.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Typical IoT Architecture Devices (sensors & actuators) Applications telemetry commands telemetry commands IoT Cloud Platform Gateways
  • 9.
  • 10.
  • 11.
  • 13.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse IoT
  • 14.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse IoT Community 2.4 30* 250+ 110K million lines of code projects developers monthly visitors
  • 15.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved The 3 IoT Software Stacks TOOLS & SDKsONTOLOGIESSECURITY CONSTRAINED DEVICES Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols IOT CLOUD PLATFORM Connectivity MessageRouting OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement GATEWAYS AND SMART DEVICES RemoteManagement Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management
  • 16.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols CONSTRAINED DEVICES OS Stack for IoT DevicesOS Stack for IoT Devices JAVA API for MCUs “Android for IoT” High performance JVM Fast, small, … open source! GPU acceleration
  • 17.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben Daytrader 3 Benchmark ● 60% less footprint after startup ● 40% less footprint during ramp up ● 2× faster startup time ● Comparable throughput See https://www.eclipse.org/openj9/oj9_performance.html vs.
  • 18.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben OS Stack for IoT Gateways OSGi implementation Native support for MQTT Serial, RS-485, BLE, MODBUS, OPC-UA, CAN Bus, … NAT, firewall, modem configuration, … Remote Management over MQTT Milo GATEWAYS AND SMART DEVICES RemoteManagement Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management
  • 19.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben Java VM OSGi Application Container Device Abstraction Gateway Basic Services Network Configuration Network Management Field Protocols Connectivity and Delivery AdministrationGUI Operation& Management Linux Hardware App 1 App 2 App n. . . . Applications Eclipse Kura
  • 20.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben GATEWAYS AND SMART DEVICES RemoteManagement Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management OS Stack for Home Automation OSGi implementation Rule engine to orchestrate “things” Home automation protocols such as Belkin WeMo, LIFX, Philips Hue, … Remote firmware update through the GW Web UI and API for remote control
  • 21.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben OS Stack for IoT Cloud
  • 22.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben Device Management Device Registry OS Stack for IoT Cloud OMA LWM2M implementation in Java built on top of Eclipse Californium (CoAP) Manage software upgrade campaigns independently of the actual DM protocol IOT CLOUD PLATFORM
  • 23.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse hawkBit
  • 24.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben IOT CLOUD PLATFORM Connectivity MessageRouting OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement OS Stack for IoT Cloud Platform Abstract the actual communication protocols via “protocol adapters” Deploy on: An Integration Platform for IoT Services NoSQL data store REST API
  • 25.
    Copyright © 2017The Eclipse Foundation. All Rights ReservedBenjamin Cabé, Eclipse Foundation - @kartben Eclipse hono
  • 26.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved The 3 IoT Software Stacks TOOLS & SDKsONTOLOGIESSECURITY CONSTRAINED DEVICES Hardware Abstraction Layer (HAL) OS / RTOS Communication Remote Management Field protocols IoT protocols IOT CLOUD PLATFORM Connectivity MessageRouting OS / PaaS Device Management Data Management Event Management, Analytics & UI Device Registry Application Enablement GATEWAYS AND SMART DEVICES RemoteManagement Application Runtime Data Management & Messaging OS / RTOS Connectivity Field protocols IoT protocols Network Management Vorto Keti tinyDTLS Milo
  • 27.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse IoT Adoption
  • 28.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse IoT Programs Virtual IoT Open IoT Challenge IoT Marketplace Testbeds
  • 29.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved One more thing…
  • 30.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Eclipse Enterprise for Java (EE4J) Moving Java EE to Eclipse Foundation Technology ✓ ✓ ✓ ✓ Sponsorship
  • 31.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved • • • – – – • • – Eclipse Enterprise for Java (EE4J) Project Overview ✓ ✓ ✓ ✓
  • 32.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved ● Java-based Machine Learning Framework ○ Toolkit for building, training and deploying Neural Networks ● Distributed training ○ GPU or Hadoop/Spark ● Use cases: ○ network intrusion detection, predictive maintenance, recommender systems in e-commerce, image recognition, … Eclipse Deeplearning4j
  • 33.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved Join us! 2.4 30* 250+ 110K million lines of code projects developers monthly visitors * and counting! https://iot.eclipse.org
  • 34.
    Copyright © 2017The Eclipse Foundation. All Rights Reserved ● Check out the projects ○ Contribute ideas, bug fixes, use cases… ● Participate on the mailing lists ● Virtual IoT Meetup ○ https://www.meetup.com/virtual-iot ● Propose your project! Join us!
  • 35.