SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
Building the
Internet of Things
with Eclipse IoT*
Mike Milinkovich – Eclipse Foundation
@mmilinkovich
February 10, 2016
© Eclipse Foundation – Made available under the EPL v1.0
* and more!
Agenda
● Eclipse Foundation
● IoT: “State of the Union”
● Eclipse IoT Vision
● Key projects
● Community aspects
● Getting engaged
Eclipse Foundation
●
●
●
●
●
Eclipse Foundation by the numbers
•
•
•
•
• …
•
•
Eclipse Community by the numbers
Eclipse IoT community
Eclipse IoT by the numbers
● 2 Million Lines of Code
● 20 projects
● 125 developers from 30+ organizations
○ Bosch, Eurotech, IBM, Sierra Wireless, LAAS-CNRS,
Deutsche Telekom, Cisco, ...
● 95K+ unique websites visitors per month
● 50K+ monthly downloads for Eclipse IoT projects
● 3 developer sandboxes (MQTT, CoAP, LWM2M)
Eclipse IoT Marketing Activities
● Tutorials
● IoT Days
● Developer Challenges
○ http://iot.eclipse.org/open-iot-challenge
● Virtual IoT meetup
○ Bi-weekly webinars with IoT experts
○ 700 members
○ http://www.meetup.com/Virtual-IoT
● Developer survey
IoT?
In reality...
In reality...
… Internet of Silos
fragmentation
fragmentation complexity
fragmentation complexity lock-in
Eclipse IoT
Vision
● Founded in 2011 by IBM,
Eurotech, Sierra Wireless
● 20 open-source projects*
● Lots of Java but also C,
C++, Python, Go, .Net, …
* and counting!
→ IoT Standards
→ Services & Frameworks
Eclipse IoT Projects
End-to-end IoT?
End-to-end IoT?
End-to-end IoT?
End-to-end IoT?
CONNECT
CONNECT MANAGE
ANALYZECONNECT MANAGE
Connecting things to the IoT?
Network is often not reliable
Bandwidth == $$$
Different communication patterns
● CoAP
○ « HTTP over UDP »
○ Expose your device as a resource on the Internet of
Things
● MQTT
○ Publish/Subscribe model
○ TCP-based
Connecting things to the IoT
CoAP - RFC 7252
● RESTful protocol designed from scratch
○ URIs, Internet Media Types
○ GET, POST, PUT, DELETE
● Transparent mapping to HTTP
● Additional features for M2M scenarios
○ e.g Observe
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://iot.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 (iot.eclipse.org)
○ C implementation
○ Pretty scalable (1000 clients == 3MB RAM)
● But also…
○ Moquette (Java, Based on Netty and LMAX disruptor)
○ VerneMQ (Erlang)
○ Mosca (Node.js)
⇒ https://github.com/mqtt/mqtt.github.io/wiki/servers
DEMO!
Cottage Monitoring
Orion
Tools for the Web
...on the web
CONNECT MANAGE
✔
ANALYZE
CONNECT MANAGE
✔ ???
ANALYZE
Yup, lots of aspects to manage
● Network
→ PPP cellular connection, WiFi hotspot, Zigbee
coordination, VPN, firewall …
→ offline/online mode
● Applications
→ Remote install, start, stop, configure, …
→ Sandboxing
● Hardware
Gateways to the rescue!
Gateway
Gateway
Java VM
OSGi Application Container
Device Abstraction
Gateway Basic Services
Network Configuration
Network Management Field
Protocols
Connectivity and Delivery
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.3.0/kura_1.3.0_raspberry-pi-2_installer.deb
sudo dpkg -i kura_1.3.0_raspberry-pi-2_installer.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 (DEMO!)
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
Device Management is also...
LightweightM2M
● LWM2M is an Open Mobile Alliance Standard
● Device Management on top of CoAP
● Eclipse Leshan and Wakaama are two
implementations
DEMO!
CONNECT MANAGE
✔ ✔
ANALYZE
End-user interaction
● JavaFX Charts
● Eclipse BIRT
● Smartphone app (e.g Android)
○ https://www.eclipse.org/paho/clients/android
● MQTT + WebSockets = ♡
○ https://www.eclipse.org/paho/clients/js
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!
CONNECT MANAGE
✔ ✔ ✔
ANALYZE
Eclipse IoT is also…
● Flexible Framework
● Based on Java and OSGi
● Huge number of “bindings”:
KNX, Nest, Philips HUE, …
Eclipse IoT is also...
Server Platform
● Software provisioning
○ https://projects.eclipse.org/proposals/hawkbit
● Uniform service interface for Telemetry and Command &
Control
○ https://projects.eclipse.org/proposals/hono
Eclipse IoT is also…
Industrial IoT
● Open source implementations of IEC standards
○ Eclipse neoSCADA: Siemens S7 PLC, IEC 60870-4-105, …
○ 4DIAC: 61499
○ Rise V2G: IEC 15118
Eclipse IoT is also...
Information Models
● Eclipse Vorto allows to create and manage
device descriptions + associated toolchains
(code generators)
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
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
● Come to EclipseCon/IoT!
● Propose your project!
Thank you! Questions?
mike@eclipse.org
@mmilinkov
http://mmilinkov.wordpress.com
http://iot.eclipse.org

Contenu connexe

Tendances

Cloud computing and OpenStack
Cloud computing and OpenStackCloud computing and OpenStack
Cloud computing and OpenStackEdgar Magana
 
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014Eurotech
 
CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioLee Calcote
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxGeorg Ember
 
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
 
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
 
StratusLab: Darn Simple Cloud
StratusLab: Darn Simple CloudStratusLab: Darn Simple Cloud
StratusLab: Darn Simple Cloudstratuslab
 
Webinar: Dealing with automation tool overload!
Webinar: Dealing with automation tool overload!Webinar: Dealing with automation tool overload!
Webinar: Dealing with automation tool overload!Cloudify Community
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack StorageNetApp
 
OpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenOpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenTrinath Somanchi
 
Open source IoT gateway
Open source IoT gatewayOpen source IoT gateway
Open source IoT gatewayHenryk Konsek
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project OnboardingShuquan Huang
 
Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Joel W. King
 
Workshop - Openstack, Cloud Computing, Virtualization
Workshop - Openstack, Cloud Computing, VirtualizationWorkshop - Openstack, Cloud Computing, Virtualization
Workshop - Openstack, Cloud Computing, VirtualizationJayaprakash R
 
Gateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsGateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsRajesh Sola
 
Design and implement a new cloud security method based on multi clouds on ope...
Design and implement a new cloud security method based on multi clouds on ope...Design and implement a new cloud security method based on multi clouds on ope...
Design and implement a new cloud security method based on multi clouds on ope...csandit
 

Tendances (20)

Cloud computing and OpenStack
Cloud computing and OpenStackCloud computing and OpenStack
Cloud computing and OpenStack
 
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
 
Cloud Computing using OpenStack
Cloud Computing using OpenStackCloud Computing using OpenStack
Cloud Computing using OpenStack
 
CNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project NuclioCNCF, State of Serverless & Project Nuclio
CNCF, State of Serverless & Project Nuclio
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
 
CoAP - Web Protocol for IoT
CoAP - Web Protocol for IoTCoAP - Web Protocol for IoT
CoAP - Web Protocol for IoT
 
Cloud Computing
Cloud Computing Cloud Computing
Cloud Computing
 
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)
 
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
 
StratusLab: Darn Simple Cloud
StratusLab: Darn Simple CloudStratusLab: Darn Simple Cloud
StratusLab: Darn Simple Cloud
 
Webinar: Dealing with automation tool overload!
Webinar: Dealing with automation tool overload!Webinar: Dealing with automation tool overload!
Webinar: Dealing with automation tool overload!
 
Introduction to OpenStack Storage
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
 
OpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenOpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco Heaven
 
Open source IoT gateway
Open source IoT gatewayOpen source IoT gateway
Open source IoT gateway
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project Onboarding
 
Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...Using Tetration for application security and policy enforcement in multi-vend...
Using Tetration for application security and policy enforcement in multi-vend...
 
Workshop - Openstack, Cloud Computing, Virtualization
Workshop - Openstack, Cloud Computing, VirtualizationWorkshop - Openstack, Cloud Computing, Virtualization
Workshop - Openstack, Cloud Computing, Virtualization
 
Open Source Cloud
Open Source CloudOpen Source Cloud
Open Source Cloud
 
Gateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heightsGateway Design with Eclipse Kura - Taking Kura to heights
Gateway Design with Eclipse Kura - Taking Kura to heights
 
Design and implement a new cloud security method based on multi clouds on ope...
Design and implement a new cloud security method based on multi clouds on ope...Design and implement a new cloud security method based on multi clouds on ope...
Design and implement a new cloud security method based on multi clouds on ope...
 

Similaire à Eclipse IoT Talk (Montreal JUG)

Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
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é
 
Plone FSR
Plone FSRPlone FSR
Plone FSRfulv
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionJohn Archer
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018graemerocher
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсScrumTrek
 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIDenis Izmaylov
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209mffiedler
 
Openstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformOpenstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformNagaraj Shenoy
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developerPaul Czarkowski
 
Going Serverless with OpenWhisk
Going Serverless with OpenWhiskGoing Serverless with OpenWhisk
Going Serverless with OpenWhiskAlex Glikson
 
DCOS Presentation
DCOS PresentationDCOS Presentation
DCOS PresentationJan Repnak
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil FrameworkVeilFramework
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java DevelopersImesh Gunaratne
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersinovex GmbH
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007lucclaes
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Florent BENOIT
 

Similaire à Eclipse IoT Talk (Montreal JUG) (20)

Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
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
 
Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Micronaut Launchpad
Micronaut LaunchpadMicronaut Launchpad
Micronaut Launchpad
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018Introduction to Micronaut at Oracle CodeOne 2018
Introduction to Micronaut at Oracle CodeOne 2018
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CI
 
Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209Testing kubernetes and_open_shift_at_scale_20170209
Testing kubernetes and_open_shift_at_scale_20170209
 
Openstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platformOpenstack - Enterprise cloud management platform
Openstack - Enterprise cloud management platform
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Going Serverless with OpenWhisk
Going Serverless with OpenWhiskGoing Serverless with OpenWhisk
Going Serverless with OpenWhisk
 
DCOS Presentation
DCOS PresentationDCOS Presentation
DCOS Presentation
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 
Docker for Java Developers
Docker for Java DevelopersDocker for Java Developers
Docker for Java Developers
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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 Scriptwesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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 organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Eclipse IoT Talk (Montreal JUG)

  • 1. Building the Internet of Things with Eclipse IoT* Mike Milinkovich – Eclipse Foundation @mmilinkovich February 10, 2016 © Eclipse Foundation – Made available under the EPL v1.0 * and more!
  • 2. Agenda ● Eclipse Foundation ● IoT: “State of the Union” ● Eclipse IoT Vision ● Key projects ● Community aspects ● Getting engaged
  • 5.
  • 7.
  • 8.
  • 10. Eclipse IoT by the numbers ● 2 Million Lines of Code ● 20 projects ● 125 developers from 30+ organizations ○ Bosch, Eurotech, IBM, Sierra Wireless, LAAS-CNRS, Deutsche Telekom, Cisco, ... ● 95K+ unique websites visitors per month ● 50K+ monthly downloads for Eclipse IoT projects ● 3 developer sandboxes (MQTT, CoAP, LWM2M)
  • 11. Eclipse IoT Marketing Activities ● Tutorials ● IoT Days ● Developer Challenges ○ http://iot.eclipse.org/open-iot-challenge ● Virtual IoT meetup ○ Bi-weekly webinars with IoT experts ○ 700 members ○ http://www.meetup.com/Virtual-IoT ● Developer survey
  • 12. IoT?
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 24.
  • 25.
  • 26.
  • 27. ● Founded in 2011 by IBM, Eurotech, Sierra Wireless
  • 28. ● 20 open-source projects* ● Lots of Java but also C, C++, Python, Go, .Net, … * and counting! → IoT Standards → Services & Frameworks
  • 37. Connecting things to the IoT? Network is often not reliable Bandwidth == $$$ Different communication patterns
  • 38. ● CoAP ○ « HTTP over UDP » ○ Expose your device as a resource on the Internet of Things ● MQTT ○ Publish/Subscribe model ○ TCP-based Connecting things to the IoT
  • 39. CoAP - RFC 7252 ● RESTful protocol designed from scratch ○ URIs, Internet Media Types ○ GET, POST, PUT, DELETE ● Transparent mapping to HTTP ● Additional features for M2M scenarios ○ e.g Observe
  • 41. 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
  • 42. 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
  • 43. 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) } }
  • 44. MQTT: Publish & Subscribe Sub KETTLE232/#Pub KETTLE232/temp Payload: 21°C Pub KETTLE232/temp Payload: 21°C BROKER
  • 45. MQTT in 5 keywords Pub-Sub Wildcards Quality of Service Last Will & Testament Retained Messages
  • 46. Eclipse Paho ● Open-source MQTT clients ● Pick your language! ○ Java ○ JavaScript ○ C/C++, Objective C ○ Go, Lua, Python, .NET, WinRT, … http://eclipse.org/paho
  • 47. MqttClient c = new MqttClient("tcp://iot.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/#");
  • 48. Open source MQTT brokers ● Eclipse Mosquitto (iot.eclipse.org) ○ C implementation ○ Pretty scalable (1000 clients == 3MB RAM) ● But also… ○ Moquette (Java, Based on Netty and LMAX disruptor) ○ VerneMQ (Erlang) ○ Mosca (Node.js) ⇒ https://github.com/mqtt/mqtt.github.io/wiki/servers
  • 49. DEMO!
  • 51. Orion Tools for the Web ...on the web
  • 52.
  • 53.
  • 56. 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
  • 57. Gateways to the rescue!
  • 60. 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
  • 61. Installing Kura cd ~ sudo apt-get update wget https://s3.amazonaws.com/kura_downloads/raspbian/release/ 1.3.0/kura_1.3.0_raspberry-pi-2_installer.deb sudo dpkg -i kura_1.3.0_raspberry-pi-2_installer.deb sudo apt-get install -f sudo reboot
  • 62. First steps with Kura ● Network management ○ Cellular Modem, WiFi ○ Firewall ○ NAT ● OSGi and system administration ● IoT server communication settings
  • 63. First steps with Kura (DEMO!)
  • 64. 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
  • 65. Device Management is also... LightweightM2M ● LWM2M is an Open Mobile Alliance Standard ● Device Management on top of CoAP ● Eclipse Leshan and Wakaama are two implementations
  • 66. DEMO!
  • 68. 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
  • 69. 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/#"); } });
  • 70. DEMO!
  • 71. CONNECT MANAGE ✔ ✔ ✔ ANALYZE
  • 72. Eclipse IoT is also… ● Flexible Framework ● Based on Java and OSGi ● Huge number of “bindings”: KNX, Nest, Philips HUE, …
  • 73.
  • 74. Eclipse IoT is also... Server Platform ● Software provisioning ○ https://projects.eclipse.org/proposals/hawkbit ● Uniform service interface for Telemetry and Command & Control ○ https://projects.eclipse.org/proposals/hono
  • 75. Eclipse IoT is also… Industrial IoT ● Open source implementations of IEC standards ○ Eclipse neoSCADA: Siemens S7 PLC, IEC 60870-4-105, … ○ 4DIAC: 61499 ○ Rise V2G: IEC 15118
  • 76. Eclipse IoT is also... Information Models ● Eclipse Vorto allows to create and manage device descriptions + associated toolchains (code generators)
  • 77. 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
  • 78. Kura is awesome! Go download it now! http://eclipse.org/kura If you had to remember only 3 things... #1
  • 79. Build your own greenhouse & follow the tutorial http://iot.eclipse.org/java/tutorial If you had to remember only 3 things... #2
  • 80. Eclipse IoT is much more than Kura and Java! http://iot.eclipse.org/ If you had to remember only 3 things... #3
  • 81. Get Involved! ● Open bugs / fix bugs ● Request new features ● Write articles, tutorials ● Participate on the mailing lists ● Come to EclipseCon/IoT! ● Propose your project!
  • 82.