SlideShare a Scribd company logo
1 of 49
Download to read offline
End-to-end IoT solutions with 
Java and Eclipse IoT 
Benjamin Cabé 
Eclipse Foundation
Java for IoT? 
9+ million Java developers 
Java 8 & embedded are fun 
Lots of IoT devices running on ARM 
Tooling
Eclipse IoT 
A vivid open-source community 
13* projects across the whole IoT chain 
* and counting...
Your typical IoT solution 
Actuators/Sensors 
+ 
Gateway 
+ 
[ Cloud ] 
+ 
User front-end
IOT
IOT
1. Sensors / Actuators 
• Sense the physical environment 
• Act on it
1. Sensors / Actuators 
• Sense the physical environment 
• Act on it 
Well… that was easy!
1. Sensors / Actuators 
• Manipulate sysfs directly with the File API 
• Use Pi4J (hint: ♥︎) to have full support of 
GPIO/I2C/SPI 
• Use MIDlets with Java ME embedded
1. Sensors / Actuators 
• Manipulate sysfs directly with the File API 
• Use Pi4J (hint: ♥︎) to have full support of 
GPIO/I2C/SPI 
• Use MIDlets with Java ME embedded
Pi4J – http://pi4j.com 
• Complete access to GPIOs/I2C/SPI 
• Very mature codebase, based on WiringPi 
• Support for popular shields (PiFace, 
Gertboard, …) 
• Lots of code samples
Pi4J in action 
GpioController gpio = GpioFactory.getInstance(); 
GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin( 
RaspiPin.GPIO_01, "MyLED", PinState.HIGH); 
Thread.sleep(5000); 
pin.low(); 
Thread.sleep(5000); 
pin.toggle(); 
gpio.shutdown();
2. Gateway 
Network by Nicholas Menghini from The Noun Project
2. Gateway 
Connect 
sensors to the world 
Network by Nicholas Menghini from The Noun Project
2. Gateway 
Connect 
sensors to the world 
Network by Nicholas Menghini from The Noun Project 
Manage the hardware 
and software running 
at the edge
Connect? 
CoAP? 
– « HTTP over UDP » 
– Expose your device as a resource to the Internet 
of Things 
MQTT? 
– Publish/Subscribe model 
– More room for local processing
CoAP with Californium 
CoapServer, CoapResource, CoapExchange 
1. Implement custom resources 
(extend CoapResource) 
2. Add resources to the CoAP server 
3. Start the server
CoAP with Californium 
import static org.eclipse.californium.core.coap.CoAP.ResponseCode.*; // shortcuts 
public class MyResource extends CoapResource { 
@Override 
public void handleGET(CoapExchange exchange) { 
exchange.respond("hello world"); // reply with 2.05 payload (text/plain) 
} 
@Override 
public void handlePOST(CoapExchange exchange) { 
exchange.accept(); // make it a separate response 
if (exchange.getRequestOptions() ...) { 
// do something specific to the request options 
} 
exchange.respond(CREATED); // reply with response code only (shortcut) 
} 
}
MQTT with Paho 
MqttClient c = new MqttClient("tcp://m2m.eclipse.org:1883", 
MqttClient.generateClientId()); 
mqttClient.setCallback(new MqttCallback() { 
@Override 
public void messageArrived(String topic, MqttMessage message) 
throws Exception { 
// process received message 
// ... 
} 
}); 
mqttClient.connect(); 
mqttClient.subscribe("mygateway/#"); 
Read more: https://www.eclipse.org/paho/clients/java/
Manage? 
• Gateway itself 
– wireless modem, firewall, … 
• Applications 
– Install/Uninstall software packages 
– Start/Stop applications 
• Sensors 
– H/W abstraction layer
Eclipse Kura 
Applications 
App 1 App 2 . . . . App n 
Network Configuration 
Network Management Field 
Gateway Basic Services 
Device Abstraction 
OSGi Application Container 
Java VM 
Protocols 
Connectivity and Delivery 
Administration GUI 
Operation & Management 
Linux 
Hardware
OSGi with Concierge 
OSGi? 
– A dynamic component system for Java 
– Many standard services 
• Eventing, configuration management, UPnP, … 
– A target of choice for modular IoT software 
Eclipse Concierge provides low footprint 
implementation (~300-400kb JAR files) 
http://eclipse.org/concierge
Eclipse Kura
Eclipse Kura
Eclipse Kura
Eclipse Kura
Eclipse Kura
Eclipse Kura
Eclipse Kura
Eclipse Kura
Your typical Kura component 
• Uses Modbus, CAN-Bus, etc. built-in device 
abstraction services 
– Or implement your own service
Your typical Kura component (2) 
• Uses Kura built-in transport services to talk 
to the cloud 
– TransportService – « raw » protocol 
– DataService – local storage, auto reconnect 
– CloudService – optimized binary payload, 
advanced device management
Your typical Kura component (3) 
• Implements ConfigurableComponent 
– Enables configuration from the UI 
– … as well as from the cloud
Your typical Kura component (4) 
• Bundled with other bundles/components in 
a deployment package 
– Zip file containing a Manifest & OSGi bundles 
• Can be deployed from Kura Web UI or over 
the air 
Read more: https://wiki.eclipse.org/Kura/Getting_Started
3. Cloud backend 
• Allow virtual point-to-point communication 
between the IoT devices 
• Provide device management capabilities to 
manage fleets of devices on the field
MQTT broker with Moquette 
• Supports QoS 0, 1 and 2 
• Aligned with latest MQTT 3.1.1 specification 
• Ready to be deployed in OSGi containers 
• WebSockets 
• Leverages LMAX Disruptor buffer
MQTT broker with Moquette 
https://code.google.com/p/moquette-mqtt/ 
Very simple to install: 
tar zxf distribution-0.6-bundle-tar.tar.gz 
cd bin 
./moquette.sh 
Note: Moquette has been recently proposed as an 
Eclipse IoT project
4. End-user interaction 
Mobile 
Web 
Other IoT gadgets: wearables, …
Android 
Developing for IoT on Android is dead simple 
– MQTT Android service 
https://www.eclipse.org/paho/clients/android 
– Android Wear: you can easily bridge Google 
Play’s DataLayer to MQTT
Web 
MQTT over Websockets enables direct MQTT 
communication from noBackend web-apps 
– https://www.eclipse.org/paho/clients/js/ 
Eclipse Ponte is also a good way to bridge 
MQTT or CoAP to HTTP 
– https://eclipse.org/ponte
Tooling 
• Java support in the Eclipse IDE from day 1 
• Remote debug 
• Java 8 (lambdas, …) 
• OSGi 
– PDE (Plug-in Development Environment) 
– Remote OSGi with mToolkit
Moaaar Eclipse IoT and Java!
See you soon!
See you soon! 
http://www.meetup.com/Virtual-IoT
Thanks! 
<benjamin@eclipse.org> 
@kartben 
http://iot.eclipse.org
Show me the code! 
Kura 
OSGi runtime 
JVM 
Cloud Service 
DataService 
DataTransportService 
Administration GUI

More Related Content

What's hot

Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyLee Calcote
 
Open Source IoT at Eclipse
Open Source IoT at EclipseOpen Source IoT at Eclipse
Open Source IoT at EclipseIan Skerrett
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?salv_orlando
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)Salvatore Orlando
 
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conferenceFIWARE
 
Cisco Cloud Networking Workshop
Cisco Cloud Networking Workshop Cisco Cloud Networking Workshop
Cisco Cloud Networking Workshop Cisco Canada
 
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOpen Mobile Alliance
 
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)PLUMgrid
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgePLUMgrid
 
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?GlobalLogic Latinoamérica
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsPLUMgrid
 
Introduction to Openstack Network
Introduction to Openstack NetworkIntroduction to Openstack Network
Introduction to Openstack Networksalv_orlando
 
Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Affan Syed
 
Creator IoT Framework
Creator IoT FrameworkCreator IoT Framework
Creator IoT FrameworkPaul Evans
 
Network Monitoring and Analytics
Network Monitoring and AnalyticsNetwork Monitoring and Analytics
Network Monitoring and AnalyticsPLUMgrid
 
Open Source & The Internet of Things
Open Source & The Internet of ThingsOpen Source & The Internet of Things
Open Source & The Internet of ThingsAll Things Open
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkPLUMgrid
 
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
DockerCon EU 2015: Using Docker and SDN for telco-grade applicationsDockerCon EU 2015: Using Docker and SDN for telco-grade applications
DockerCon EU 2015: Using Docker and SDN for telco-grade applicationsDocker, Inc.
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersMirantis
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudFernando Lopez Aguilar
 

What's hot (20)

Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxy
 
Open Source IoT at Eclipse
Open Source IoT at EclipseOpen Source IoT at Eclipse
Open Source IoT at Eclipse
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?
 
How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)How to build a Neutron Plugin (stadium edition)
How to build a Neutron Plugin (stadium edition)
 
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 
Cisco Cloud Networking Workshop
Cisco Cloud Networking Workshop Cisco Cloud Networking Workshop
Cisco Cloud Networking Workshop
 
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse FoundationOMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
 
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
SDN Scale-out Testing at OpenStack Innovation Center (OSIC)
 
Delivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile EdgeDelivering Composable NFV Services for Business, Residential and Mobile Edge
Delivering Composable NFV Services for Business, Residential and Mobile Edge
 
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
5º MeetUP ARQconf 2016 - IoT: What is it really and how does it work?
 
Monitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack CloudsMonitoring Security Policies for Container and OpenStack Clouds
Monitoring Security Policies for Container and OpenStack Clouds
 
Introduction to Openstack Network
Introduction to Openstack NetworkIntroduction to Openstack Network
Introduction to Openstack Network
 
Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)
 
Creator IoT Framework
Creator IoT FrameworkCreator IoT Framework
Creator IoT Framework
 
Network Monitoring and Analytics
Network Monitoring and AnalyticsNetwork Monitoring and Analytics
Network Monitoring and Analytics
 
Open Source & The Internet of Things
Open Source & The Internet of ThingsOpen Source & The Internet of Things
Open Source & The Internet of Things
 
Hands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack NetworkHands-on Lab: Test Drive Your OpenStack Network
Hands-on Lab: Test Drive Your OpenStack Network
 
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
DockerCon EU 2015: Using Docker and SDN for telco-grade applicationsDockerCon EU 2015: Using Docker and SDN for telco-grade applications
DockerCon EU 2015: Using Docker and SDN for telco-grade applications
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab Cloud
 

Similar to End-to-end IoT solutions with Java and Eclipse IoT

Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016Patrick Chanezon
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Patrick Chanezon
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Patrick Chanezon
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Benjamin Cabé
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Krishna-Kumar
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna KumarCodeOps Technologies LLP
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Anthony Dahanne
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoTIan Skerrett
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
 
MQTT, Eclipse Paho and Java - Messaging for the Internet of Things
MQTT, Eclipse Paho and Java - Messaging for the Internet of ThingsMQTT, Eclipse Paho and Java - Messaging for the Internet of Things
MQTT, Eclipse Paho and Java - Messaging for the Internet of ThingsAndy Piper
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Iot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelIot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelHenryk Konsek
 
Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with DockerGiuseppe Piccolo
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotOpen source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotHenryk Konsek
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 

Similar to End-to-end IoT solutions with Java and Eclipse IoT (20)

Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoT
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
MQTT, Eclipse Paho and Java - Messaging for the Internet of Things
MQTT, Eclipse Paho and Java - Messaging for the Internet of ThingsMQTT, Eclipse Paho and Java - Messaging for the Internet of Things
MQTT, Eclipse Paho and Java - Messaging for the Internet of Things
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Iot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache CamelIot gateway dream team - Eclipse Kura and Apache Camel
Iot gateway dream team - Eclipse Kura and Apache Camel
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-pi
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Containing the world with Docker
Containing the world with DockerContaining the world with Docker
Containing the world with Docker
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and RhiotOpen source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 

More from Benjamin Cabé

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018Benjamin Cabé
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?Benjamin Cabé
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Benjamin Cabé
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Benjamin Cabé
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Benjamin Cabé
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackBenjamin Cabé
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBenjamin Cabé
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleBenjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Benjamin Cabé
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013Benjamin Cabé
 
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Benjamin Cabé
 
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer DaysOpen source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer DaysBenjamin Cabé
 
Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Benjamin Cabé
 
JAX2013 Keynote - When open-source enables the Internet of Things
JAX2013 Keynote - When open-source enables the Internet of ThingsJAX2013 Keynote - When open-source enables the Internet of Things
JAX2013 Keynote - When open-source enables the Internet of ThingsBenjamin Cabé
 
Building an open community: feedback from the M2M trenches - EclipseCon 2013
Building an open community: feedback from the M2M trenches - EclipseCon 2013Building an open community: feedback from the M2M trenches - EclipseCon 2013
Building an open community: feedback from the M2M trenches - EclipseCon 2013Benjamin Cabé
 
How an OSS foundation can help execute your governance
How an OSS foundation can help execute your governanceHow an OSS foundation can help execute your governance
How an OSS foundation can help execute your governanceBenjamin Cabé
 

More from Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013
 
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
 
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer DaysOpen source Tools and Frameworks for M2M - Sierra Wireless Developer Days
Open source Tools and Frameworks for M2M - Sierra Wireless Developer Days
 
Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013
 
JAX2013 Keynote - When open-source enables the Internet of Things
JAX2013 Keynote - When open-source enables the Internet of ThingsJAX2013 Keynote - When open-source enables the Internet of Things
JAX2013 Keynote - When open-source enables the Internet of Things
 
Building an open community: feedback from the M2M trenches - EclipseCon 2013
Building an open community: feedback from the M2M trenches - EclipseCon 2013Building an open community: feedback from the M2M trenches - EclipseCon 2013
Building an open community: feedback from the M2M trenches - EclipseCon 2013
 
How an OSS foundation can help execute your governance
How an OSS foundation can help execute your governanceHow an OSS foundation can help execute your governance
How an OSS foundation can help execute your governance
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

End-to-end IoT solutions with Java and Eclipse IoT

  • 1. End-to-end IoT solutions with Java and Eclipse IoT Benjamin Cabé Eclipse Foundation
  • 2. Java for IoT? 9+ million Java developers Java 8 & embedded are fun Lots of IoT devices running on ARM Tooling
  • 3. Eclipse IoT A vivid open-source community 13* projects across the whole IoT chain * and counting...
  • 4. Your typical IoT solution Actuators/Sensors + Gateway + [ Cloud ] + User front-end
  • 5.
  • 6.
  • 7. IOT
  • 8.
  • 9. IOT
  • 10. 1. Sensors / Actuators • Sense the physical environment • Act on it
  • 11. 1. Sensors / Actuators • Sense the physical environment • Act on it Well… that was easy!
  • 12. 1. Sensors / Actuators • Manipulate sysfs directly with the File API • Use Pi4J (hint: ♥︎) to have full support of GPIO/I2C/SPI • Use MIDlets with Java ME embedded
  • 13. 1. Sensors / Actuators • Manipulate sysfs directly with the File API • Use Pi4J (hint: ♥︎) to have full support of GPIO/I2C/SPI • Use MIDlets with Java ME embedded
  • 14. Pi4J – http://pi4j.com • Complete access to GPIOs/I2C/SPI • Very mature codebase, based on WiringPi • Support for popular shields (PiFace, Gertboard, …) • Lots of code samples
  • 15. Pi4J in action GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin( RaspiPin.GPIO_01, "MyLED", PinState.HIGH); Thread.sleep(5000); pin.low(); Thread.sleep(5000); pin.toggle(); gpio.shutdown();
  • 16. 2. Gateway Network by Nicholas Menghini from The Noun Project
  • 17. 2. Gateway Connect sensors to the world Network by Nicholas Menghini from The Noun Project
  • 18. 2. Gateway Connect sensors to the world Network by Nicholas Menghini from The Noun Project Manage the hardware and software running at the edge
  • 19. Connect? CoAP? – « HTTP over UDP » – Expose your device as a resource to the Internet of Things MQTT? – Publish/Subscribe model – More room for local processing
  • 20. CoAP with Californium CoapServer, CoapResource, CoapExchange 1. Implement custom resources (extend CoapResource) 2. Add resources to the CoAP server 3. Start the server
  • 21. CoAP with Californium import static org.eclipse.californium.core.coap.CoAP.ResponseCode.*; // shortcuts public class MyResource extends CoapResource { @Override public void handleGET(CoapExchange exchange) { exchange.respond("hello world"); // reply with 2.05 payload (text/plain) } @Override public void handlePOST(CoapExchange exchange) { exchange.accept(); // make it a separate response if (exchange.getRequestOptions() ...) { // do something specific to the request options } exchange.respond(CREATED); // reply with response code only (shortcut) } }
  • 22. MQTT with Paho MqttClient c = new MqttClient("tcp://m2m.eclipse.org:1883", MqttClient.generateClientId()); mqttClient.setCallback(new MqttCallback() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { // process received message // ... } }); mqttClient.connect(); mqttClient.subscribe("mygateway/#"); Read more: https://www.eclipse.org/paho/clients/java/
  • 23. Manage? • Gateway itself – wireless modem, firewall, … • Applications – Install/Uninstall software packages – Start/Stop applications • Sensors – H/W abstraction layer
  • 24. Eclipse Kura Applications App 1 App 2 . . . . App n Network Configuration Network Management Field Gateway Basic Services Device Abstraction OSGi Application Container Java VM Protocols Connectivity and Delivery Administration GUI Operation & Management Linux Hardware
  • 25. OSGi with Concierge OSGi? – A dynamic component system for Java – Many standard services • Eventing, configuration management, UPnP, … – A target of choice for modular IoT software Eclipse Concierge provides low footprint implementation (~300-400kb JAR files) http://eclipse.org/concierge
  • 34. Your typical Kura component • Uses Modbus, CAN-Bus, etc. built-in device abstraction services – Or implement your own service
  • 35. Your typical Kura component (2) • Uses Kura built-in transport services to talk to the cloud – TransportService – « raw » protocol – DataService – local storage, auto reconnect – CloudService – optimized binary payload, advanced device management
  • 36. Your typical Kura component (3) • Implements ConfigurableComponent – Enables configuration from the UI – … as well as from the cloud
  • 37. Your typical Kura component (4) • Bundled with other bundles/components in a deployment package – Zip file containing a Manifest & OSGi bundles • Can be deployed from Kura Web UI or over the air Read more: https://wiki.eclipse.org/Kura/Getting_Started
  • 38. 3. Cloud backend • Allow virtual point-to-point communication between the IoT devices • Provide device management capabilities to manage fleets of devices on the field
  • 39. MQTT broker with Moquette • Supports QoS 0, 1 and 2 • Aligned with latest MQTT 3.1.1 specification • Ready to be deployed in OSGi containers • WebSockets • Leverages LMAX Disruptor buffer
  • 40. MQTT broker with Moquette https://code.google.com/p/moquette-mqtt/ Very simple to install: tar zxf distribution-0.6-bundle-tar.tar.gz cd bin ./moquette.sh Note: Moquette has been recently proposed as an Eclipse IoT project
  • 41. 4. End-user interaction Mobile Web Other IoT gadgets: wearables, …
  • 42. Android Developing for IoT on Android is dead simple – MQTT Android service https://www.eclipse.org/paho/clients/android – Android Wear: you can easily bridge Google Play’s DataLayer to MQTT
  • 43. Web MQTT over Websockets enables direct MQTT communication from noBackend web-apps – https://www.eclipse.org/paho/clients/js/ Eclipse Ponte is also a good way to bridge MQTT or CoAP to HTTP – https://eclipse.org/ponte
  • 44. Tooling • Java support in the Eclipse IDE from day 1 • Remote debug • Java 8 (lambdas, …) • OSGi – PDE (Plug-in Development Environment) – Remote OSGi with mToolkit
  • 45. Moaaar Eclipse IoT and Java!
  • 47. See you soon! http://www.meetup.com/Virtual-IoT
  • 48. Thanks! <benjamin@eclipse.org> @kartben http://iot.eclipse.org
  • 49. Show me the code! Kura OSGi runtime JVM Cloud Service DataService DataTransportService Administration GUI