SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Building the
Internet of Things
with Eclipse IoT*
Benjamin Cabé – Eclipse Foundation
@kartben
Coding Serbia - Oct 9, 2015
* and more!
● 19 open-source projects*
● Lots of Java but also C,
C++, Python, Go, .Net, …
* and counting!
→ IoT Standards
→ Services & Frameworks
End-to-end IoT?
End-to-end IoT?
End-to-end IoT?
End-to-end IoT?
What you will learn today
CONNECT
What you will learn today
CONNECT MANAGE
What you will learn today
VISUALIZECONNECT 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 to the Internet of
Things
● MQTT
○ Publish/Subscribe model
○ More room for local processing
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
oapSe e , oapResou e, oapEx han e
1. Implement custom resources
(extend oapResou e)
2. Add resources to the CoAP server
3. Start the server
import static org.eclipse.californium.core.coap.CoAP.ResponseCode.*;
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: Publish & Subscribe
Sub
KETTLE232/#Pub
KETTLE232/temp
Payload:
21°C
Pub
KETTLE232/temp
Payload:
21°C
BROKER
MQTT in 5 keywords
Pub-Sub
Wildcards
Quality of Service
Last Will & Testament
Retained Messages
Eclipse Paho
● Open-source MQTT clients
● Pick your language!
○ Java
○ JavaScript
○ C/C++, Objective C
○ Go, Lua, Python, .NET, WinRT, …
http://eclipse.org/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/#");
Open source MQTT brokers
● Eclipse Mosquitto
○ 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
Oh, and by the way…
Amazon just announced support for MQTT in its
new AWS IOT cloud platform
VISUALIZECONNECT MANAGE
✔
VISUALIZECONNECT MANAGE
✔ ???
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
AdministrationGUI
Operation&Management
Linux
Hardware
App 1 App 2 App n. . . .
Applications
Eclipse Kura
Installing Kura
cd ~
sudo apt-get update
wget https://s3.amazonaws.com/kura_downloads/raspbian/release/ 
1.2.2/kura_1.2.2_raspberry-pi_armv6.deb
sudo dpkg -i kura_1.2.2_raspberry-pi_armv6.deb
sudo apt-get install -f
sudo reboot
First steps with Kura
● Network management
○ Cellular Modem, WiFi
○ Firewall
○ NAT
● OSGi and system administration
● IoT server communication settings
First steps with Kura
First steps with Kura
First steps with Kura
First steps with Kura
First steps with Kura
First steps with Kura
First steps with Kura
First steps with Kura
Kura API
● OSGi services that you can re-use in your own
components
○ o Se e
○ Da aSe e, oudSe e
○ p oSe e (AES, base64, SHA-1)
○ Pos onSe e (geolocation)
○ … and many others
● And of course you can leverage a huge
ecosystem of Java and OSGi libraries
VISUALIZECONNECT MANAGE
✔ ✔
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
MQTT + WebSockets
var client = new Paho.MQTT.Client("ws://iot.eclipse.org/ws",
"client-" + new Date().getTime());
client.onMessageArrived = function(message) {
// my stuff
}
client.connect({
onSuccess: function() {
client.subscribe("myRootTopic/#");
}
});
DEMO!
Data Analytics for IoT?
Apache Spark Streaming
● Stream processing in Java, Python & Scala
● Built-in connectors for Kafka, Twitter,
ZeroMQ, Flume, Kinesis & ... MQTT!
● A nice programming model for consolidating
time-series data
● Awesome combo when used with Spark MLlib!
DEMO!
VISUALIZECONNECT MANAGE
✔ ✔ ✔
Eclipse IoT is also…
Industrial IoT
● Open source implementations of IEC standards
● Eclipse SCADA, 4DIAC, Rise V2G, ...
Eclipse IoT is also...
Device Management
● LwM2M is an Open Mobile Alliance Standard
● Device Management on top of CoAP
● Eclipse Leshan and Wakaama are two
implementations
Eclipse IoT is also...
Secured Service Discovery
● Eclipse Tiaki
● Leveraging DNS-SEC and DNS-SD for
retrieving a device configuration parameter, or
its public key for establishing secured
communications
Eclipse IoT is also…
● Flexible Framework
● Based on Java and OSGi
● Huge number of “bindings”:
KNX, Nest, Philips HUE, …
Kura is awesome!
Go download it now!
http://eclipse.org/kura
If you had to remember only 3 things...
#1
Build your own greenhouse &
follow the tutorial
http://iot.eclipse.org/java/tutorial
If you had to remember only 3 things...
#2
Eclipse IoT is much more than
Kura and Java!
http://iot.eclipse.org/
If you had to remember only 3 things...
#3
Get Involved!
● Open bugs / fix bugs
● Request new features
● Write articles, tutorials
● Participate on the mailing
lists
● Propose your project!
Thank you! Questions?
benjamin@eclipse.org
@kartben
http://iot.eclipse.org

Contenu connexe

Tendances

Eclipse IoT presentation
Eclipse IoT presentation Eclipse IoT presentation
Eclipse IoT presentation
Ian Skerrett
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMs
Weaveworks
 

Tendances (20)

Eclipse IoT presentation
Eclipse IoT presentation Eclipse IoT presentation
Eclipse IoT presentation
 
Eclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersEclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developers
 
Contiki OS Research Projects Guidance
Contiki OS Research Projects GuidanceContiki OS Research Projects Guidance
Contiki OS Research Projects Guidance
 
Adoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple EnvironmentsAdoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple Environments
 
My Minecraft-Smart-Home: Prototyping the Internet of Uncanny Things
My Minecraft-Smart-Home: Prototyping the Internet of Uncanny ThingsMy Minecraft-Smart-Home: Prototyping the Internet of Uncanny Things
My Minecraft-Smart-Home: Prototyping the Internet of Uncanny Things
 
IoT with MQTT and Paho for Webpages - Eclipse Democamp München 2014
IoT with MQTT and Paho for Webpages - Eclipse Democamp München 2014IoT with MQTT and Paho for Webpages - Eclipse Democamp München 2014
IoT with MQTT and Paho for Webpages - Eclipse Democamp München 2014
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculator
 
SDN: Network Agility in the Cloud
SDN: Network Agility in the CloudSDN: Network Agility in the Cloud
SDN: Network Agility in the Cloud
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
 
Kaist snail-20150122
Kaist snail-20150122Kaist snail-20150122
Kaist snail-20150122
 
Eclipse Paho - MQTT and the Internet of Things
Eclipse Paho - MQTT and the Internet of ThingsEclipse Paho - MQTT and the Internet of Things
Eclipse Paho - MQTT and the Internet of Things
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT Extension
 
CENGN - OpenStack MeetUp - March 2017
CENGN - OpenStack MeetUp - March 2017CENGN - OpenStack MeetUp - March 2017
CENGN - OpenStack MeetUp - March 2017
 
The Internet of Things is Made of Signals
The Internet of Things is Made of SignalsThe Internet of Things is Made of Signals
The Internet of Things is Made of Signals
 
OpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic CloudOpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic Cloud
 
Openstack workshop @ Kalasalingam
Openstack workshop @ KalasalingamOpenstack workshop @ Kalasalingam
Openstack workshop @ Kalasalingam
 
An open-source testbed for IoT systems
An open-source testbed for IoT systemsAn open-source testbed for IoT systems
An open-source testbed for IoT systems
 
SthlmWebRTC #1 :: OpenWEBRTC introduction
SthlmWebRTC #1 :: OpenWEBRTC introductionSthlmWebRTC #1 :: OpenWEBRTC introduction
SthlmWebRTC #1 :: OpenWEBRTC introduction
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMs
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
 

Similaire à Building the IoT - Coding Serbia 2015

Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...
AGILE IoT
 

Similaire à Building the IoT - Coding Serbia 2015 (20)

Eclipse IoT Talk (Montreal JUG)
Eclipse IoT Talk (Montreal JUG)Eclipse IoT Talk (Montreal JUG)
Eclipse IoT Talk (Montreal JUG)
 
Installable web applications
Installable web applicationsInstallable web applications
Installable web applications
 
The Next Leap in JavaScript Performance
The Next Leap in JavaScript PerformanceThe Next Leap in JavaScript Performance
The Next Leap in JavaScript Performance
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
 
aframe-webthing-20190710
aframe-webthing-20190710aframe-webthing-20190710
aframe-webthing-20190710
 
Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...Building the Internet of Things with open source and Eclipse IoT projects (Be...
Building the Internet of Things with open source and Eclipse IoT projects (Be...
 
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
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
 
Using Groovy to empower WebRTC Network Systems
Using Groovy to empower WebRTC Network SystemsUsing Groovy to empower WebRTC Network Systems
Using Groovy to empower WebRTC Network Systems
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 
FIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart SystemsFIWARE Wednesday Webinars - Short Term History within Smart Systems
FIWARE Wednesday Webinars - Short Term History within Smart Systems
 
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoTWebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
WebSocket Perspectives 2015 - Clouds, Streams, Microservices and WoT
 
Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache Airflow
 
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
JBoss World 2010
JBoss World 2010JBoss World 2010
JBoss World 2010
 

Plus de Benjamin Cabé

What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
Benjamin 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 2013
Benjamin 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 2013
Benjamin 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é
 
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
Benjamin 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 governance
Benjamin Cabé
 

Plus de 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
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
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
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
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
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
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
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2M
 
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
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Building the IoT - Coding Serbia 2015

  • 1. Building the Internet of Things with Eclipse IoT* Benjamin Cabé – Eclipse Foundation @kartben Coding Serbia - Oct 9, 2015 * and more!
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. ● 19 open-source projects* ● Lots of Java but also C, C++, Python, Go, .Net, … * and counting! → IoT Standards → Services & Frameworks
  • 14. What you will learn today CONNECT
  • 15. What you will learn today CONNECT MANAGE
  • 16. What you will learn today VISUALIZECONNECT MANAGE
  • 17. Connecting things to the IoT? Network is often not reliable Bandwidth == $$$ Different communication patterns
  • 18. ● CoAP ○ « HTTP over UDP » ○ Expose your device as a resource to the Internet of Things ● MQTT ○ Publish/Subscribe model ○ More room for local processing Connecting things to the IoT
  • 20. 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
  • 21. Californium 101 oapSe e , oapResou e, oapEx han e 1. Implement custom resources (extend oapResou e) 2. Add resources to the CoAP server 3. Start the server
  • 22. import static org.eclipse.californium.core.coap.CoAP.ResponseCode.*; 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) } }
  • 23. MQTT: Publish & Subscribe Sub KETTLE232/#Pub KETTLE232/temp Payload: 21°C Pub KETTLE232/temp Payload: 21°C BROKER
  • 24. MQTT in 5 keywords Pub-Sub Wildcards Quality of Service Last Will & Testament Retained Messages
  • 25. Eclipse Paho ● Open-source MQTT clients ● Pick your language! ○ Java ○ JavaScript ○ C/C++, Objective C ○ Go, Lua, Python, .NET, WinRT, … http://eclipse.org/paho
  • 26. 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/#");
  • 27. Open source MQTT brokers ● Eclipse Mosquitto ○ 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
  • 28. Oh, and by the way… Amazon just announced support for MQTT in its new AWS IOT cloud platform
  • 31. 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
  • 32. Gateways to the rescue!
  • 35. 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
  • 36. Installing Kura cd ~ sudo apt-get update wget https://s3.amazonaws.com/kura_downloads/raspbian/release/ 1.2.2/kura_1.2.2_raspberry-pi_armv6.deb sudo dpkg -i kura_1.2.2_raspberry-pi_armv6.deb sudo apt-get install -f sudo reboot
  • 37. First steps with Kura ● Network management ○ Cellular Modem, WiFi ○ Firewall ○ NAT ● OSGi and system administration ● IoT server communication settings
  • 46. Kura API ● OSGi services that you can re-use in your own components ○ o Se e ○ Da aSe e, oudSe e ○ p oSe e (AES, base64, SHA-1) ○ Pos onSe e (geolocation) ○ … and many others ● And of course you can leverage a huge ecosystem of Java and OSGi libraries
  • 48. 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
  • 49. MQTT + WebSockets var client = new Paho.MQTT.Client("ws://iot.eclipse.org/ws", "client-" + new Date().getTime()); client.onMessageArrived = function(message) { // my stuff } client.connect({ onSuccess: function() { client.subscribe("myRootTopic/#"); } });
  • 50. DEMO!
  • 52. Apache Spark Streaming ● Stream processing in Java, Python & Scala ● Built-in connectors for Kafka, Twitter, ZeroMQ, Flume, Kinesis & ... MQTT! ● A nice programming model for consolidating time-series data ● Awesome combo when used with Spark MLlib!
  • 53. DEMO!
  • 55. Eclipse IoT is also… Industrial IoT ● Open source implementations of IEC standards ● Eclipse SCADA, 4DIAC, Rise V2G, ...
  • 56. Eclipse IoT is also... Device Management ● LwM2M is an Open Mobile Alliance Standard ● Device Management on top of CoAP ● Eclipse Leshan and Wakaama are two implementations
  • 57. Eclipse IoT is also... Secured Service Discovery ● Eclipse Tiaki ● Leveraging DNS-SEC and DNS-SD for retrieving a device configuration parameter, or its public key for establishing secured communications
  • 58. Eclipse IoT is also… ● Flexible Framework ● Based on Java and OSGi ● Huge number of “bindings”: KNX, Nest, Philips HUE, …
  • 59.
  • 60. Kura is awesome! Go download it now! http://eclipse.org/kura If you had to remember only 3 things... #1
  • 61. Build your own greenhouse & follow the tutorial http://iot.eclipse.org/java/tutorial If you had to remember only 3 things... #2
  • 62. Eclipse IoT is much more than Kura and Java! http://iot.eclipse.org/ If you had to remember only 3 things... #3
  • 63. Get Involved! ● Open bugs / fix bugs ● Request new features ● Write articles, tutorials ● Participate on the mailing lists ● Propose your project!