SlideShare a Scribd company logo
1 of 52
Download to read offline
BUILDING OPEN SOURCE IOT CLOUD
Dejan Bosanac
WHO AM I?
Dejan Bosanac
•  Senior Software Engineer at Red Hat
•  Messaging and Integration background (ActiveMQ, Camel, Fabric8)
•  Focused more on messaging and backend for IoT lately
AGENDA
•  Describe typical IoT application
•  Describe all the components and common pitfalls
•  Introduce Eclipse IoT projects to the rescue
•  Kura
•  Hono
•  Kapua
•  Future
IOT APPLICATIONS
Devices
Cloud
Applications
IOT APPLICATIONS
Device	
Device	
Applica+on	
Device	 Applica+on	
Applica+on	IOT	Cloud
DEVICES
•  Everything from simple sensors to small computers
•  Connectivity
•  Some are IP enabled
•  Some have just near-range connectivity, like Bluetooth
•  Variety of network protocols used (MQTT, LWM2M,…)
•  Functions
•  Sensors – send data – temperature sensor
•  Actuators – control environment – A/C Unit
APPLICATIONS
•  Enterprise applications, micro-services and everything in between
•  Want to use data generated by devices
•  Want to control devices
•  Want to control the cloud environment … more about that in a minute
CLOUD
•  Connects devices and applications
•  Provides connectivity layer
•  Provides security layer
•  Provides device state
•  Handle device data
PITFALLS
•  Create a silo application
•  Hard to upgrade and maintain
•  Solution don't scale
•  Security is an afterthought
SOLUTION
•  Build well maintained open source stack
•  Scalable, secure and maintainable
•  Developers should focus on devices and applications
STACK
•  Device Gateway - Eclipse Kura - https://www.eclipse.org/kura/
•  IoT Connector – Eclipse Hono - https://projects.eclipse.org/projects/iot.hono
•  IoT Cloud – Eclipse Kapua - https://projects.eclipse.org/projects/iot.kapua
GATEWAY
DEVICE GATEWAY
•  Device IP onboarding
•  Data pre-processing
•  Control devices
•  Operational management
GATEWAY ARCHITECTURE
Data Center
Gateway
Application
Sensors
INSERT DESIGNATOR, IF NEEDED15
KURA ARCHITECTURE
KURA SERVICES
•  I/O Services – serial, Bluetooth, GPS, …
•  Data services - Store and forward data using MQTT, Apache Camel
•  Cloud services – request/reply
•  Configuration service – OSGi configuration
•  Web administration interface
KURA APPLICATION
•  OSGi Bundle
•  Deployed and managed by Kura
•  Using Kura APIs to communicate with devices and cloud
•  Apache Camel Integration
KURA APPLICATION
public void setCloudService(CloudService cloudService) {
cloudService = cloudService;
}
protected void activate(ComponentContext componentContext, Map<String, Object> properties) {
...
// Acquire a Cloud Application Client for this Application
cloudClient = cloudService.newCloudClient("greenhouse");
cloudClient.addCloudClientListener(this);
...
}
protected void doPublish() {
...
KuraPayload kuraPayload = new KuraPayload();
kuraPayload.addMetric("temperature", temperature);
cloudClient.publish("sensors", kuraPayload, DFLT_QOS, DFLT_RETAIN,DFLT_PRIORITY);
...
}
KURA CAMEL
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
from("timer://heartbeat").
setBody(constant("Hello")).
to("kura-cloud:myApplication/myTopic");
}
}
CONNECTOR
CONNECTOR
•  Messaging infrastructure that connects gateways and applications
•  Eclipse Kura uses MQTT
•  Usually combined with message brokers like Apache ActiveMQ or Eclipse Paho
MQTT
•  OASIS standard (v3.1.1)
•  Created by IBM and Eurotech
•  Lightweight
•  Small network message
•  Simple protocol
•  Pub / Sub
•  Quality of Service
•  Connection failures
•  Very popular in IoT scenarios
LIMITATIONS
•  Scalability
•  Connections
•  Destinations
•  Security based on broker addresses
•  General purpose messaging
•  No message format
ECLIPSE HONO – GOALS
•  Tailored general messaging for IoT solutions
•  Solve recurring problems
•  Provide messaging APIs for common operations
•  Support multiple IoT protocols (MQTT, AMQP, LWM2M,…)
•  Support any underlying messaging infrastructure
•  JMS
•  Kafka
ECLIPSE HONO – FEATURES
•  Scalability
•  Multi-tenancy
•  Device-based security
•  Multi-protocol support
ECLIPSE HONO – APIS
•  AMPQ 1.0 based
•  Defines message formats coming in and out of Hono
•  Defines message exchange patterns
INSERT DESIGNATOR, IF NEEDED27
AMQP
•  International Standard (ISO/IEC ISO 19464)
•  Binary Protocol
•  Rich feature set:
•  conversation multiplexing
•  advanced flow control
•  Type system
•  QoS Guarantees
•  Symmetrical message exchange
•  No Broker required
INSERT DESIGNATOR, IF NEEDED28
AMQP
Message(
properties: {
correlation-id: 1,
to: "$management",
reply-to: "/myaddress"
},
application-properties: {
"name" -> "newQueue",
"operation" -> "CREATE",
"type" -> "org.example.queue"
},
application-data: AmqpValue(
Map(
"max_size" -> "2000Mb"
)
)
)
•  It is not a broker
•  It never owns a message
•  It propagates AMQP transfer, settlement and disposition frames between endpoints
•  Message based or link based routing
AMQP ROUTER
Router	
	
/device1	
/device2
INSERT DESIGNATOR, IF NEEDED30
AMQP ROUTER
•  It can be deployed in multiple router-broker-endpoint topology
•  Redundant paths
•  Benefits
•  Better scaling due to more focused tasks
•  Smart routing can be used to partition the traffic
•  Ideal candidate for gateway into the system
INSERT DESIGNATOR, IF NEEDED31
SCALABLE MESSAGING
•  Combination of brokers and routers provides powerful tool box
•  Brokers should focus on storing messages
•  Routers should do the rest
•  Allows for horizontal scaling topologies that can solve IoT challenges
ECLIPSE HONO- APIS
•  Telemetry
•  Command and Control
•  Device Registration
•  Device Lifecycle
ECLIPSE HONO – ARCHITECTURE
MQTT	
Device	
LWM2M
Device
AMQP
Device
HONO
Protocol	
Adapter	
Protocol	
Adapter	
Device
Management
Data	
Collec+on	
AMQP	
AMQP	
AMQP	
AMQP	AMQP
ECLIPSE HONO – ARCHITECTURE
•  Protocol Adapters
•  Stateless
•  Provide conversion to common protocols used in IoT
•  MQTT
•  LWM2M
•  HTTP/Rest
•  Clients – devices and Cloud services
•  Connects using AMQP using well defined APIs
ECLIPSE HONO – ARCHITECTURE
Client	
Client
Client
Router
Network
Hono	
Server	
Hono	
Server	
App
App	
Hono	
Server	
Brokers
ECLIPSE HONO – ARCHITECTURE
•  Hono server
•  Stateless – can be scaled
•  Validates message format
•  Does device-based authentication
ECLIPSE HONO – ARCHITECTURE
•  Router Network
•  Provide connection scalability
•  Routes AMQP messages through the system
•  Brokers
•  Any AMQP 1.0 compatible system
•  Used to save persistent messages
ECLIPSE HONO – TECHNOLOGY
•  Hono server
•  Vert.x + Qpid Proton
•  Spring Boot
•  Docker
• Scalable and Cloud Ready!
ECLIPSE HONO – TECHNOLOGY
•  Scalable messaging
•  Apache Qpid Dispatch Router
•  Apache ActiveMQ Artemis
• Scalable and Cloud Ready!
ECLIPSE KAPUA
ECLIPSE KAPUA – GOALS
•  Provide complete IoT Cloud solution
•  Define and Implement needed services
•  Ready to run
ECLIPSE KAPUA – ARCHITECTURE
ECLIPSE KAPUA – BACKHAND SERVICES
•  Data Management
•  Device Registry
•  Device Management
ECLIPSE KAPUA – FRONTEND SERVICES
•  Management Console
•  API Gateway
ECLIPSE KAPUA - IMPLEMENTATION
•  Micro-services oriented
•  Pluggable service locator
•  Single JVM
•  OSGi
•  Cloud Deployment
ECLIPSE KAPUA – 1.0
•  MQTT based
•  Apache ActiveMQ in the messaging layer
•  JDBC store for services
•  Elasticsearch for data store
•  Single VM deployment
FUTURE
INSERT DESIGNATOR, IF NEEDED47
INSERT DESIGNATOR, IF NEEDED48
FUTURE - KURA
•  More data pre-processing
•  BPM integration
•  AMQP support
•  Gateway support proxy
INSERT DESIGNATOR, IF NEEDED49
KAPUA
•  Micorservice implementation
•  Docker images
•  REST/AMQP APIs
•  Hono support
KAPUA + HONO
CONCLUSION
•  Together Kura, Hono and Kapua will be able to answer even the most challenging IOT demands
•  Lots of work ahead
•  Everything open source
•  Backed by big companies, like Red Hat, Eurotech, Bosch, …
•  Join the effort
THANK YOU
•  https://www.eclipse.org/kura/
•  https://projects.eclipse.org/projects/iot.hono
•  https://projects.eclipse.org/projects/iot.kapua

More Related Content

What's hot

Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Benjamin Cabé
 
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
Benjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Benjamin Cabé
 

What's hot (18)

Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-pi
 
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
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
 
Web API Management meets the Internet of Things
Web API Management meets the Internet of ThingsWeb API Management meets the Internet of Things
Web API Management meets the Internet of Things
 
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
 
Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014Advanced MQTT and Kura - EclipseCON 2014
Advanced MQTT and Kura - EclipseCON 2014
 
Creator IoT Framework
Creator IoT FrameworkCreator IoT Framework
Creator IoT Framework
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoT
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...
 
Fiware, the future internet
Fiware, the future internetFiware, the future internet
Fiware, the future internet
 
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
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
Internet of Things - Advantech IoT Gateway Starter Kit
Internet of Things - Advantech IoT Gateway Starter KitInternet of Things - Advantech IoT Gateway Starter Kit
Internet of Things - Advantech IoT Gateway Starter Kit
 
FIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT Agents
 
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
 
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
FIWARE Global Summit - Professional Dashboards for Dummies - Build Your Smart...
 

Similar to Building Open Source IoT Cloud

Banv meetup-contrail
Banv meetup-contrailBanv meetup-contrail
Banv meetup-contrail
nvirters
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
KwonSun Bae
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Lucas Jellema
 

Similar to Building Open Source IoT Cloud (20)

CloudStack Overview
CloudStack OverviewCloudStack Overview
CloudStack Overview
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
 
Kickstarting IOT using NodeRED
Kickstarting IOT using NodeREDKickstarting IOT using NodeRED
Kickstarting IOT using NodeRED
 
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?
 
Flying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native ApplicationsFlying to clouds - can it be easy? Cloud Native Applications
Flying to clouds - can it be easy? Cloud Native Applications
 
Banv meetup-contrail
Banv meetup-contrailBanv meetup-contrail
Banv meetup-contrail
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
Building the Internet of Things with Thingsquare and Contiki - day 1, part 3
 
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)Deep Dive: OpenStack Summit (Red Hat Summit 2014)
Deep Dive: OpenStack Summit (Red Hat Summit 2014)
 
Kubernetes Infra 2.0
Kubernetes Infra 2.0Kubernetes Infra 2.0
Kubernetes Infra 2.0
 
Oow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctoberOow2016 review-iaas-paas-13th-18thoctober
Oow2016 review-iaas-paas-13th-18thoctober
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
 
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)
 
Interconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloudInterconnect 2017: 6885 Deploying IBM MQ in the cloud
Interconnect 2017: 6885 Deploying IBM MQ in the cloud
 
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
Sicurezza integrate nella tua piattaforma Cloud-Native con VMware NSX (Pivota...
 
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
Сергей Сверчков "Want to build a secure private cloud for IoT with high avail...
 
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
 
IBM Messaging in the Cloud
IBM Messaging in the CloudIBM Messaging in the Cloud
IBM Messaging in the Cloud
 
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud WorldHHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
HHM 6887 Managing Your Scalable Applications in an MQ Hybrid Cloud World
 
Deploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the CloudDeploying and managing IBM MQ in the Cloud
Deploying and managing IBM MQ in the Cloud
 

More from dejanb

Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
dejanb
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
dejanb
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
dejanb
 

More from dejanb (9)

How is this sausage made
How is this sausage madeHow is this sausage made
How is this sausage made
 
Messaging for the cloud
Messaging for the cloudMessaging for the cloud
Messaging for the cloud
 
Scaling out eclipse hono
Scaling out eclipse honoScaling out eclipse hono
Scaling out eclipse hono
 
Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Messaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQMessaging for Web and Mobile with Apache ActiveMQ
Messaging for Web and Mobile with Apache ActiveMQ
 
Introduction to ActiveMQ Apollo
Introduction to ActiveMQ ApolloIntroduction to ActiveMQ Apollo
Introduction to ActiveMQ Apollo
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
 
Apache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in actionApache ActiveMQ - Enterprise messaging in action
Apache ActiveMQ - Enterprise messaging in action
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+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@
 
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
vu2urc
 

Recently uploaded (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
+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...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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)
 
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
 
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
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 

Building Open Source IoT Cloud

  • 1. BUILDING OPEN SOURCE IOT CLOUD Dejan Bosanac
  • 2. WHO AM I? Dejan Bosanac •  Senior Software Engineer at Red Hat •  Messaging and Integration background (ActiveMQ, Camel, Fabric8) •  Focused more on messaging and backend for IoT lately
  • 3. AGENDA •  Describe typical IoT application •  Describe all the components and common pitfalls •  Introduce Eclipse IoT projects to the rescue •  Kura •  Hono •  Kapua •  Future
  • 6. DEVICES •  Everything from simple sensors to small computers •  Connectivity •  Some are IP enabled •  Some have just near-range connectivity, like Bluetooth •  Variety of network protocols used (MQTT, LWM2M,…) •  Functions •  Sensors – send data – temperature sensor •  Actuators – control environment – A/C Unit
  • 7. APPLICATIONS •  Enterprise applications, micro-services and everything in between •  Want to use data generated by devices •  Want to control devices •  Want to control the cloud environment … more about that in a minute
  • 8. CLOUD •  Connects devices and applications •  Provides connectivity layer •  Provides security layer •  Provides device state •  Handle device data
  • 9. PITFALLS •  Create a silo application •  Hard to upgrade and maintain •  Solution don't scale •  Security is an afterthought
  • 10. SOLUTION •  Build well maintained open source stack •  Scalable, secure and maintainable •  Developers should focus on devices and applications
  • 11. STACK •  Device Gateway - Eclipse Kura - https://www.eclipse.org/kura/ •  IoT Connector – Eclipse Hono - https://projects.eclipse.org/projects/iot.hono •  IoT Cloud – Eclipse Kapua - https://projects.eclipse.org/projects/iot.kapua
  • 13. DEVICE GATEWAY •  Device IP onboarding •  Data pre-processing •  Control devices •  Operational management
  • 15. INSERT DESIGNATOR, IF NEEDED15 KURA ARCHITECTURE
  • 16. KURA SERVICES •  I/O Services – serial, Bluetooth, GPS, … •  Data services - Store and forward data using MQTT, Apache Camel •  Cloud services – request/reply •  Configuration service – OSGi configuration •  Web administration interface
  • 17. KURA APPLICATION •  OSGi Bundle •  Deployed and managed by Kura •  Using Kura APIs to communicate with devices and cloud •  Apache Camel Integration
  • 18. KURA APPLICATION public void setCloudService(CloudService cloudService) { cloudService = cloudService; } protected void activate(ComponentContext componentContext, Map<String, Object> properties) { ... // Acquire a Cloud Application Client for this Application cloudClient = cloudService.newCloudClient("greenhouse"); cloudClient.addCloudClientListener(this); ... } protected void doPublish() { ... KuraPayload kuraPayload = new KuraPayload(); kuraPayload.addMetric("temperature", temperature); cloudClient.publish("sensors", kuraPayload, DFLT_QOS, DFLT_RETAIN,DFLT_PRIORITY); ... }
  • 19. KURA CAMEL public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { from("timer://heartbeat"). setBody(constant("Hello")). to("kura-cloud:myApplication/myTopic"); } }
  • 21. CONNECTOR •  Messaging infrastructure that connects gateways and applications •  Eclipse Kura uses MQTT •  Usually combined with message brokers like Apache ActiveMQ or Eclipse Paho
  • 22. MQTT •  OASIS standard (v3.1.1) •  Created by IBM and Eurotech •  Lightweight •  Small network message •  Simple protocol •  Pub / Sub •  Quality of Service •  Connection failures •  Very popular in IoT scenarios
  • 23. LIMITATIONS •  Scalability •  Connections •  Destinations •  Security based on broker addresses •  General purpose messaging •  No message format
  • 24. ECLIPSE HONO – GOALS •  Tailored general messaging for IoT solutions •  Solve recurring problems •  Provide messaging APIs for common operations •  Support multiple IoT protocols (MQTT, AMQP, LWM2M,…) •  Support any underlying messaging infrastructure •  JMS •  Kafka
  • 25. ECLIPSE HONO – FEATURES •  Scalability •  Multi-tenancy •  Device-based security •  Multi-protocol support
  • 26. ECLIPSE HONO – APIS •  AMPQ 1.0 based •  Defines message formats coming in and out of Hono •  Defines message exchange patterns
  • 27. INSERT DESIGNATOR, IF NEEDED27 AMQP •  International Standard (ISO/IEC ISO 19464) •  Binary Protocol •  Rich feature set: •  conversation multiplexing •  advanced flow control •  Type system •  QoS Guarantees •  Symmetrical message exchange •  No Broker required
  • 28. INSERT DESIGNATOR, IF NEEDED28 AMQP Message( properties: { correlation-id: 1, to: "$management", reply-to: "/myaddress" }, application-properties: { "name" -> "newQueue", "operation" -> "CREATE", "type" -> "org.example.queue" }, application-data: AmqpValue( Map( "max_size" -> "2000Mb" ) ) )
  • 29. •  It is not a broker •  It never owns a message •  It propagates AMQP transfer, settlement and disposition frames between endpoints •  Message based or link based routing AMQP ROUTER Router /device1 /device2
  • 30. INSERT DESIGNATOR, IF NEEDED30 AMQP ROUTER •  It can be deployed in multiple router-broker-endpoint topology •  Redundant paths •  Benefits •  Better scaling due to more focused tasks •  Smart routing can be used to partition the traffic •  Ideal candidate for gateway into the system
  • 31. INSERT DESIGNATOR, IF NEEDED31 SCALABLE MESSAGING •  Combination of brokers and routers provides powerful tool box •  Brokers should focus on storing messages •  Routers should do the rest •  Allows for horizontal scaling topologies that can solve IoT challenges
  • 32. ECLIPSE HONO- APIS •  Telemetry •  Command and Control •  Device Registration •  Device Lifecycle
  • 33. ECLIPSE HONO – ARCHITECTURE MQTT Device LWM2M Device AMQP Device HONO Protocol Adapter Protocol Adapter Device Management Data Collec+on AMQP AMQP AMQP AMQP AMQP
  • 34. ECLIPSE HONO – ARCHITECTURE •  Protocol Adapters •  Stateless •  Provide conversion to common protocols used in IoT •  MQTT •  LWM2M •  HTTP/Rest •  Clients – devices and Cloud services •  Connects using AMQP using well defined APIs
  • 35. ECLIPSE HONO – ARCHITECTURE Client Client Client Router Network Hono Server Hono Server App App Hono Server Brokers
  • 36. ECLIPSE HONO – ARCHITECTURE •  Hono server •  Stateless – can be scaled •  Validates message format •  Does device-based authentication
  • 37. ECLIPSE HONO – ARCHITECTURE •  Router Network •  Provide connection scalability •  Routes AMQP messages through the system •  Brokers •  Any AMQP 1.0 compatible system •  Used to save persistent messages
  • 38. ECLIPSE HONO – TECHNOLOGY •  Hono server •  Vert.x + Qpid Proton •  Spring Boot •  Docker • Scalable and Cloud Ready!
  • 39. ECLIPSE HONO – TECHNOLOGY •  Scalable messaging •  Apache Qpid Dispatch Router •  Apache ActiveMQ Artemis • Scalable and Cloud Ready!
  • 41. ECLIPSE KAPUA – GOALS •  Provide complete IoT Cloud solution •  Define and Implement needed services •  Ready to run
  • 42. ECLIPSE KAPUA – ARCHITECTURE
  • 43. ECLIPSE KAPUA – BACKHAND SERVICES •  Data Management •  Device Registry •  Device Management
  • 44. ECLIPSE KAPUA – FRONTEND SERVICES •  Management Console •  API Gateway
  • 45. ECLIPSE KAPUA - IMPLEMENTATION •  Micro-services oriented •  Pluggable service locator •  Single JVM •  OSGi •  Cloud Deployment
  • 46. ECLIPSE KAPUA – 1.0 •  MQTT based •  Apache ActiveMQ in the messaging layer •  JDBC store for services •  Elasticsearch for data store •  Single VM deployment
  • 48. INSERT DESIGNATOR, IF NEEDED48 FUTURE - KURA •  More data pre-processing •  BPM integration •  AMQP support •  Gateway support proxy
  • 49. INSERT DESIGNATOR, IF NEEDED49 KAPUA •  Micorservice implementation •  Docker images •  REST/AMQP APIs •  Hono support
  • 51. CONCLUSION •  Together Kura, Hono and Kapua will be able to answer even the most challenging IOT demands •  Lots of work ahead •  Everything open source •  Backed by big companies, like Red Hat, Eurotech, Bosch, … •  Join the effort
  • 52. THANK YOU •  https://www.eclipse.org/kura/ •  https://projects.eclipse.org/projects/iot.hono •  https://projects.eclipse.org/projects/iot.kapua