SlideShare a Scribd company logo
Brought to you by Henryk
Konsek
Open source IoT gateway
A tale of Eclipse Kura and Apache Camel
Henryk Konsek
- engineer at Red Hat
- open source junkie
@hekonsek
Open Source IoT gateway (and surroundings)
This talk
@hekonsek
● Architecture
● Messaging
● Gateway
● Backend
This talk
@hekonsek
Architecture
@hekonsek
IoT is messaging
General concept
@hekonsek
End-to-end IoT architecture
Architecture
@hekonsek
Messaging
@hekonsek
THIS part.
Messaging
@hekonsek
IoT solutions should rely on scalable messaging (aka MaaS).
Scalable IoT messaging
● AMQP-centric
● Based on Qpid Dispatch Router
● Artemis used for store & forward
● IoT-scale ready
@hekonsek
Non-AMQP protocols are translated to AMQP before hitting backend.
Protocol adapters
@hekonsek
Kafka for IoT telemetry
@hekonsek
We are working together with Bosch (et al.) on Eclipse Hono project.
Eclipse Hono
@hekonsek
Hono is a narrow subset of our end-to-end IoT architecture.
What is Hono?
● Hono follows our IoT architecture
● Provides a narrow subset of operations
on the top of our middleware
(telemetry and command/control)
● Provides backend implementation of
those operations
● Will be based on Qpid dispatch
@hekonsek
Gateway
@hekonsek
Gateway TL;DR;
A proxy between field devices and a data center
GATEWAY
@hekonsek
OSGi-based IoT gateway for field devices.
Eclipse Kura
@hekonsek
Kura services
OSGi Application Container (Eclipse Equinox, Concierge)
Java SE 7 / 8 (OpenJDK)
Serial GPIO HID BLE I2C Field protocols
Networking Gateway Services Web UI Remote Management
Cloud Services Data Services EP
Connectivity and Delivery
@hekonsek
Eclipse. Donated by Eurotech (http://eurotech.com).
Who’s behind Kura?
@hekonsek
Red Hat and EuroTech are partners now.
Red Hat + EuroTech
@hekonsek
Kura + Camel (aka ESF + Fuse) . Running on EuroTech hardware with RHEL.
Our first baby!
@hekonsek
A message routing framework.
What is Apache Camel?
@hekonsek
How to orchestrate messages flow.
What is message routing?
● Apache Camel
● Spring Integration
● Mule
@hekonsek
- read message from JMS queue
- transform to JSON
- save to FTP and MongoDB
Crash course to the Apache Camel
from('jms:invoices').
transform { new Invoice(uuid(), it.in.body) }.
marshal().json(Jackson).
multicast().parallelProcessing().
to('ftp:myftp.com/invoices',
'mongodb:myDb?collection=invoices&operation=save')
]
@hekonsek
Camel provides ~200 OSGi-ready connectors (JMS, REST, CoAP, AMQP,
MQTT…)
How can Kura benefit from Camel?
@hekonsek
Enterprise Integration Patterns (EIP)
How can Kura benefit from Camel?
@hekonsek
Prevents messages overflow.
EIP - throttler
@hekonsek
Dynamically decide where to route the message.
EIP - content based router
@hekonsek
Client side load balancing. Useful for field devices connectivity.
EIP - load balancer
@hekonsek
How can I control which parts of a field device
should be running at the given moment?
EIP - control bus
@hekonsek
Camel OSGi bundle is started from the Kura.
Kura + Camel: architecture
@hekonsek
Capture images from Raspberry Pi camera and send to backend for
analysis.
Camel route module for Kura
public class MyKuraRouter extends CamelRouter {
@Override
public void configure() throws Exception {
from("webcam:plates").
to("netty4-http:http://app.mydatacenter.com/plates/upload");
}
}
@hekonsek
Display WiFi networks accessible near the field device using the web
browser.
More examples
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
from("netty4-http:http://0.0.0.0:18080").
to("bean:org.eclipse.kura.net.NetworkService?method=getAllWifiAccessPoints");
}
}
@hekonsek
Start syncing cached data only when WiFi is accessible.
More more examples
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
from("kura-wifi:wlan0/mySSID").
to("controlbus:route?routeId=onlineSync&action=start");
from("file:///var/sensor/temperature").
routeId("onlineSync").autoStartup(false).
to("netty4-http:http://api.mydatacenter.com/showMeWiFi");
}
}
@hekonsek
Loading XML Camel routes at runtime using web UI.
Routes management
@hekonsek
Camel is a 1st class citizen in Kura.
Camel as a core part of the Kura
@hekonsek
Kura - what’s next?
● Drools (BRMS) integration
● More Camel components (BLE, modbus, etc.)
● Integration with external processes (including Docker
running on gateway)
@hekonsek
Backend
@hekonsek
There are many open source components out there.
So you can assemble your IoT platform by yourself.
What we currently have
@hekonsek
We are working with EuroTech on open sourcing
their IoT backend platform (aka Eclipse Kapua project).
What we wanna have
@hekonsek
Everyware Cloud is based on Fuse A-MQ already.
And is Kubernetes friendly.
Good starting point
@hekonsek
Kura + Kapua + Hono + Red Hat open source software.
Delivered by Red Hat + EuroTech dream team :) .
Our ultimate goal
@hekonsek
Thank you! Learn More:
@hekonsek
www.developers.com/iot
Pavilion
Booth 321
Ask the IoT experts 11:30-
12:30 daily
Presentations, demos,
prizes,
t-shirts & more
HackNight
DevNation IoT CodeStarter
with Eurotech
Tuesday, June 28
6:30-9:30 PM
Moscone North, Room 135
http://bit.
ly/DevNationEurotech
Hands-OnLab
Provisioning an Intelligent
Gateway for Enterprise IoT
Thursday, June 30
10:15-12:15
Room 3018 - Lab III
(Summit)

More Related Content

PDF
Building Open Source IoT Cloud
PDF
Iot gateway dream team - Eclipse Kura and Apache Camel
PDF
Effective IoT System on Openstack
PDF
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
PDF
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
PDF
An IOT gateway Architecture using an MQTT bundle transport & LTP Convergence ...
PDF
Eclipse Kura Shoot a-pi
ODP
Using open source for IoT
Building Open Source IoT Cloud
Iot gateway dream team - Eclipse Kura and Apache Camel
Effective IoT System on Openstack
Open source IoT gateway: Tale of Eclipse Kura, Apache Camel and Rhiot
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An IOT gateway Architecture using an MQTT bundle transport & LTP Convergence ...
Eclipse Kura Shoot a-pi
Using open source for IoT

What's hot (20)

PPTX
Defining an Open IoT Stack - Presented at IoT World 2015
PPTX
Creating the open source building blocks for IoT
PDF
Building the Internet of Things with Eclipse IoT - JavaLand 2014
PPTX
Creating end-to-end IoT applications with Eclipse Kura & Solair IoT Platform
PDF
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
PDF
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
PPTX
3 Software Stacks for IoT Solutions
PPTX
IoT Microservices at the Edge with Eclipse ioFog
PPTX
Open Source IoT at Eclipse
PPTX
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
PDF
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
PDF
End-to-end IoT solutions with Java and Eclipse IoT
PDF
Iot and the back-end developers
PDF
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
PPTX
Creator IoT Framework
PDF
Connecting the smart factory to the cloud with MQTT and Sparkplug
PPTX
Using an Open Source RESTful Backend for IoT Applications
PDF
Protocols for IoT
PPTX
Fiware, the future internet
PDF
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Defining an Open IoT Stack - Presented at IoT World 2015
Creating the open source building blocks for IoT
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Creating end-to-end IoT applications with Eclipse Kura & Solair IoT Platform
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
3 Software Stacks for IoT Solutions
IoT Microservices at the Edge with Eclipse ioFog
Open Source IoT at Eclipse
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
OMA LwM2M Workshop - Julien Vermillard, OMA LwM2M Projects in Eclipse Foundation
End-to-end IoT solutions with Java and Eclipse IoT
Iot and the back-end developers
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
Creator IoT Framework
Connecting the smart factory to the cloud with MQTT and Sparkplug
Using an Open Source RESTful Backend for IoT Applications
Protocols for IoT
Fiware, the future internet
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
Ad

Similar to Open source IoT gateway (20)

PDF
IoT gateway dream team - Eclipse Kura and Apache Camel
ODP
Classic middleware integration for your IoT Gateways integration
PDF
Creating a Java Internet of Things Gateway
PDF
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
PDF
Device Management for OSGi IoT Gateways
PDF
Why and how to leverage apache camel integration framework in your io t archi...
PDF
IoT with Apache ActiveMQ, Camel & Spark
PDF
Building the IoT - Coding Serbia 2015
PDF
OSGi -Simplifying the IoT Gateway - Walt Bowers
PDF
Gateway Design with Eclipse Kura - Taking Kura to heights
PDF
Kura M2M IoT Gateway
PDF
2016-09-eclipse-iot-cf-summit
PDF
(Ultra quick) Rhiot overview
PDF
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
PDF
Industrial IoT Mayhem? Java IoT Gateways to the Rescue
PDF
Open Source Internet of Things 101 – EclipseCon 2016
PDF
Developer Day 2014 - 6 - open source iot - eclipse foundation
PDF
Building the Internet of Things with open source and Eclipse IoT projects (Be...
PDF
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
PPTX
MuleSoft Meetup Adelaide 7th April 2021
IoT gateway dream team - Eclipse Kura and Apache Camel
Classic middleware integration for your IoT Gateways integration
Creating a Java Internet of Things Gateway
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Device Management for OSGi IoT Gateways
Why and how to leverage apache camel integration framework in your io t archi...
IoT with Apache ActiveMQ, Camel & Spark
Building the IoT - Coding Serbia 2015
OSGi -Simplifying the IoT Gateway - Walt Bowers
Gateway Design with Eclipse Kura - Taking Kura to heights
Kura M2M IoT Gateway
2016-09-eclipse-iot-cf-summit
(Ultra quick) Rhiot overview
SouJava May 2020: Apache Camel 3 - the next generation of enterprise integration
Industrial IoT Mayhem? Java IoT Gateways to the Rescue
Open Source Internet of Things 101 – EclipseCon 2016
Developer Day 2014 - 6 - open source iot - eclipse foundation
Building the Internet of Things with open source and Eclipse IoT projects (Be...
Red Hat Nordics 2020 - Apache Camel 3 the next generation of enterprise integ...
MuleSoft Meetup Adelaide 7th April 2021
Ad

More from Henryk Konsek (13)

PDF
How to cloud #1: Create Kafka cluster with Confluent Cloud
PDF
Eclipse Kapua messaging refactoring proposal
PDF
Containerize!
PDF
Internet Of Things for mere mortals
PDF
Internet Of Things for mere mortals
PDF
Docker for mere mortals
PDF
Containerize! Between Docker and Jube.
PDF
Apache Camel in the belly of the Docker whale
PDF
Fabric8 - Being devOps doesn't suck anymore
PDF
Messaging with the Docker
PDF
Crash course to the Apache Camel
PDF
Spring scala - Sneaking Scala into your corporation
PDF
Testing Fuse Fabric with Pax Exam
How to cloud #1: Create Kafka cluster with Confluent Cloud
Eclipse Kapua messaging refactoring proposal
Containerize!
Internet Of Things for mere mortals
Internet Of Things for mere mortals
Docker for mere mortals
Containerize! Between Docker and Jube.
Apache Camel in the belly of the Docker whale
Fabric8 - Being devOps doesn't suck anymore
Messaging with the Docker
Crash course to the Apache Camel
Spring scala - Sneaking Scala into your corporation
Testing Fuse Fabric with Pax Exam

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PDF
KodekX | Application Modernization Development
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Empathic Computing: Creating Shared Understanding
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
NewMind AI Monthly Chronicles - July 2025
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
KodekX | Application Modernization Development
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Empathic Computing: Creating Shared Understanding
GamePlan Trading System Review: Professional Trader's Honest Take
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”

Open source IoT gateway

  • 1. Brought to you by Henryk Konsek Open source IoT gateway A tale of Eclipse Kura and Apache Camel
  • 2. Henryk Konsek - engineer at Red Hat - open source junkie @hekonsek
  • 3. Open Source IoT gateway (and surroundings) This talk @hekonsek
  • 4. ● Architecture ● Messaging ● Gateway ● Backend This talk @hekonsek
  • 6. IoT is messaging General concept @hekonsek
  • 10. IoT solutions should rely on scalable messaging (aka MaaS). Scalable IoT messaging ● AMQP-centric ● Based on Qpid Dispatch Router ● Artemis used for store & forward ● IoT-scale ready @hekonsek
  • 11. Non-AMQP protocols are translated to AMQP before hitting backend. Protocol adapters @hekonsek
  • 12. Kafka for IoT telemetry @hekonsek
  • 13. We are working together with Bosch (et al.) on Eclipse Hono project. Eclipse Hono @hekonsek
  • 14. Hono is a narrow subset of our end-to-end IoT architecture. What is Hono? ● Hono follows our IoT architecture ● Provides a narrow subset of operations on the top of our middleware (telemetry and command/control) ● Provides backend implementation of those operations ● Will be based on Qpid dispatch @hekonsek
  • 16. Gateway TL;DR; A proxy between field devices and a data center GATEWAY @hekonsek
  • 17. OSGi-based IoT gateway for field devices. Eclipse Kura @hekonsek
  • 18. Kura services OSGi Application Container (Eclipse Equinox, Concierge) Java SE 7 / 8 (OpenJDK) Serial GPIO HID BLE I2C Field protocols Networking Gateway Services Web UI Remote Management Cloud Services Data Services EP Connectivity and Delivery @hekonsek
  • 19. Eclipse. Donated by Eurotech (http://eurotech.com). Who’s behind Kura? @hekonsek
  • 20. Red Hat and EuroTech are partners now. Red Hat + EuroTech @hekonsek
  • 21. Kura + Camel (aka ESF + Fuse) . Running on EuroTech hardware with RHEL. Our first baby! @hekonsek
  • 22. A message routing framework. What is Apache Camel? @hekonsek
  • 23. How to orchestrate messages flow. What is message routing? ● Apache Camel ● Spring Integration ● Mule @hekonsek
  • 24. - read message from JMS queue - transform to JSON - save to FTP and MongoDB Crash course to the Apache Camel from('jms:invoices'). transform { new Invoice(uuid(), it.in.body) }. marshal().json(Jackson). multicast().parallelProcessing(). to('ftp:myftp.com/invoices', 'mongodb:myDb?collection=invoices&operation=save') ] @hekonsek
  • 25. Camel provides ~200 OSGi-ready connectors (JMS, REST, CoAP, AMQP, MQTT…) How can Kura benefit from Camel? @hekonsek
  • 26. Enterprise Integration Patterns (EIP) How can Kura benefit from Camel? @hekonsek
  • 27. Prevents messages overflow. EIP - throttler @hekonsek
  • 28. Dynamically decide where to route the message. EIP - content based router @hekonsek
  • 29. Client side load balancing. Useful for field devices connectivity. EIP - load balancer @hekonsek
  • 30. How can I control which parts of a field device should be running at the given moment? EIP - control bus @hekonsek
  • 31. Camel OSGi bundle is started from the Kura. Kura + Camel: architecture @hekonsek
  • 32. Capture images from Raspberry Pi camera and send to backend for analysis. Camel route module for Kura public class MyKuraRouter extends CamelRouter { @Override public void configure() throws Exception { from("webcam:plates"). to("netty4-http:http://app.mydatacenter.com/plates/upload"); } } @hekonsek
  • 33. Display WiFi networks accessible near the field device using the web browser. More examples public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { from("netty4-http:http://0.0.0.0:18080"). to("bean:org.eclipse.kura.net.NetworkService?method=getAllWifiAccessPoints"); } } @hekonsek
  • 34. Start syncing cached data only when WiFi is accessible. More more examples public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { from("kura-wifi:wlan0/mySSID"). to("controlbus:route?routeId=onlineSync&action=start"); from("file:///var/sensor/temperature"). routeId("onlineSync").autoStartup(false). to("netty4-http:http://api.mydatacenter.com/showMeWiFi"); } } @hekonsek
  • 35. Loading XML Camel routes at runtime using web UI. Routes management @hekonsek
  • 36. Camel is a 1st class citizen in Kura. Camel as a core part of the Kura @hekonsek
  • 37. Kura - what’s next? ● Drools (BRMS) integration ● More Camel components (BLE, modbus, etc.) ● Integration with external processes (including Docker running on gateway) @hekonsek
  • 39. There are many open source components out there. So you can assemble your IoT platform by yourself. What we currently have @hekonsek
  • 40. We are working with EuroTech on open sourcing their IoT backend platform (aka Eclipse Kapua project). What we wanna have @hekonsek
  • 41. Everyware Cloud is based on Fuse A-MQ already. And is Kubernetes friendly. Good starting point @hekonsek
  • 42. Kura + Kapua + Hono + Red Hat open source software. Delivered by Red Hat + EuroTech dream team :) . Our ultimate goal @hekonsek
  • 43. Thank you! Learn More: @hekonsek www.developers.com/iot Pavilion Booth 321 Ask the IoT experts 11:30- 12:30 daily Presentations, demos, prizes, t-shirts & more HackNight DevNation IoT CodeStarter with Eurotech Tuesday, June 28 6:30-9:30 PM Moscone North, Room 135 http://bit. ly/DevNationEurotech Hands-OnLab Provisioning an Intelligent Gateway for Enterprise IoT Thursday, June 30 10:15-12:15 Room 3018 - Lab III (Summit)