Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
EclipseCon Europe 2017
Dejan Bosanac, Red Hat
Kai Hudalla, Bosch Software Innovations GmbH
Scaling out Eclipse Hono
Who we are
Dejan Bosanac
Chief Software Architect @ Bosch SI
● IoT Hub Team
Lead/Committer @ Eclipse
● Hono
● Californium
...
Eclipse Hono provides a
uniform API
for interacting with
millions of devices
connected to the cloud via
arbitrary protocol...
Things Cloud
Command & Control
Telemetry
optimized for throughput
scale-out with #messages
optimized for reliability
scale...
Building Blocks
API Endpoints &
Security
Protocol Adapters
Business
Applications
Devices
AMQP 1.0
Hono
AMQP messaging
netw...
Monolithic Design
≤ 0.5-M6
Hono Server
MQTT Adapter
Telemetry
Event
Telemetry
Event
MQTT
Devices
Business
Applications
Act...
Micro-Service Design
≥ 0.5-M7
Auth
Server
Authentication
MQTT Adapter
Device Registration
Telemetry
Event
Telemetry
Event
...
Registration Assertion
MQTT Adapter
Hono
Messaging
Device
Registry
1. publish telemetry
2. assert (tenant-id, device-id)
6...
Features Hono 0.5
● Uniform APIs for consuming telemetry data and events
● MQTT, HTTP protocol adapters
● Device-level Aut...
AMQP 1.0
10
Simple deployment
Protocol Adapters
AMQP 1.0
AMQP 1.0
HTTP, MQTT
Qpid Dispatch
Router
ActiveMQ Artemis
Broker
...
11
Routing vs Brokering
Broker
Producer Broker Consumer
Send message
Accepted
Send message
Accepted
12
Routing vs Brokering
Router
Producer Router Consumer
Send message
Accepted
Send message
Accepted
13
● Store and Forward
○ Queue
○ Topic
● Direct
○ Anycast
○ Multicast (Broadcast)
Addressing semantics
AMQP 1.0
14
Scalable deployment
Protocol Adapters
AMQP 1.0
AMQP 1.0
HTTP, MQTT
● EnMasse …
○ a messaging-as-a-service plat...
15
Basic idea
R
R
R
P C
B
B
16
● Open source cloud messaging running on Kubernetes and OpenShift
● enmasse.io
EnMasse
Messaging-as-a-Service
17
● Multiple communication patterns: request/response, publish/subscribe and competing
consumers
● Support for “store and...
18
19
● Queue
○ store-and-forward = true
○ multicast = false
● Topic
○ store-and-forward = true
○ multicast = true
● Anycast
...
20
● Persistence
○ In memory
○ Persisted
● Scaling
○ Single broker
○ Pooled
● HA
Flavor examples
21
22
23
● Authentication and authorization
● Service broker API
● HTTP(S)
● Broker address space
○ Message grouping
○ Distribut...
Resources
● Eclipse Hono - https://www.eclipse.org/hono
● EnMasse - http://enmasse.io
● ActiveMQ Artemis - https://activem...
Thank you ! Questions ?
Evaluate the Sessions
Sign in and vote at eclipsecon.org
- 1 + 10
Upcoming SlideShare
Loading in …5
×

Scaling out eclipse hono

541 views

Published on

Device connectivity is one of the most common issues IoT developers need to solve. Having an open source solution based on the standardized protocols that solves recurring connectivity problems is a very useful tool to have. Meet Eclipse Hono, a cloud-based IoT connectivity platform which provides remote interfaces for device connectivity and mechanisms for uniform interaction with devices regardless of the communication protocol. This session will explain basic ideas and concepts behind Eclipse Hono project, like APIs and communication patterns that Hono provides, its architecture and deployment options. Next, we'll get into the recent development efforts and explain architectural changes made in order to provide more flexibility and better integration with other components of the IoT stack, like messaging, identity management solutions and device registration services.

While scalable messaging is one of the crucial pre-requirements for device connectivity, the goal of Eclipse Hono is not to provide its own solution in this space but rather work with other cloud-based messaging platforms. One such project is called EnMasse (https://github.com/EnMasseProject/enmasse) and it provides an open source solution for deploying scalable messaging infrastructure in the cloud. The rest of the session will introduce basics of the EnMasse project and show how Hono and EnMasse can work together to provide a truly scalable device connectivity. The session will end with a demo showing Hono and EnMasse in action providing scalable device connectivity for IoT applications.

Published in: Software
  • Be the first to comment

Scaling out eclipse hono

  1. 1. EclipseCon Europe 2017 Dejan Bosanac, Red Hat Kai Hudalla, Bosch Software Innovations GmbH Scaling out Eclipse Hono
  2. 2. Who we are Dejan Bosanac Chief Software Architect @ Bosch SI ● IoT Hub Team Lead/Committer @ Eclipse ● Hono ● Californium ● Leshan Kai Hudalla Senior Software Engineer @ Red Hat ● Messaging and IoT Open source committer ● Eclipse Hono ● Eclipse Kapua ● Apache ActiveMQ
  3. 3. Eclipse Hono provides a uniform API for interacting with millions of devices connected to the cloud via arbitrary protocols.
  4. 4. Things Cloud Command & Control Telemetry optimized for throughput scale-out with #messages optimized for reliability scale-out with #devices many existing protocols HTTP, MQTT, CoAP etc arbitrary providers & deployment options
  5. 5. Building Blocks API Endpoints & Security Protocol Adapters Business Applications Devices AMQP 1.0 Hono AMQP messaging network end to end flow control AMQP 1.0 AMQP 1.0 HTTP MQTT etc.
  6. 6. Monolithic Design ≤ 0.5-M6 Hono Server MQTT Adapter Telemetry Event Telemetry Event MQTT Devices Business Applications ActiveMQ Artemis Broker Telemetry Event Messaging Qpid Dispatch Router Authentication Device Registration
  7. 7. Micro-Service Design ≥ 0.5-M7 Auth Server Authentication MQTT Adapter Device Registration Telemetry Event Telemetry Event Credentials MQTT Devices Business Applications ActiveMQ Artemis Broker Telemetry Event Authentication Hono Messaging Qpid Dispatch Router Device Registry Provided by 3rd Party/Demo Implementation
  8. 8. Registration Assertion MQTT Adapter Hono Messaging Device Registry 1. publish telemetry 2. assert (tenant-id, device-id) 6. forward message 5. create message (incl. token) 7. validate token 8. forward message Device 4. Json Web Token 3. check if device is registered and enabled <<public key>>
  9. 9. Features Hono 0.5 ● Uniform APIs for consuming telemetry data and events ● MQTT, HTTP protocol adapters ● Device-level Authentication ● Tenant based Security Model ● Horizontal Scalability
  10. 10. AMQP 1.0 10 Simple deployment Protocol Adapters AMQP 1.0 AMQP 1.0 HTTP, MQTT Qpid Dispatch Router ActiveMQ Artemis Broker AMQP 1.0 Business Applications Devices API Endpoints & Security
  11. 11. 11 Routing vs Brokering Broker Producer Broker Consumer Send message Accepted Send message Accepted
  12. 12. 12 Routing vs Brokering Router Producer Router Consumer Send message Accepted Send message Accepted
  13. 13. 13 ● Store and Forward ○ Queue ○ Topic ● Direct ○ Anycast ○ Multicast (Broadcast) Addressing semantics
  14. 14. AMQP 1.0 14 Scalable deployment Protocol Adapters AMQP 1.0 AMQP 1.0 HTTP, MQTT ● EnMasse … ○ a messaging-as-a-service platform ○ elastic scaling ○ multiple communication patterns ○ more info : enmasse.io ○ … and more and more … Business ApplicationsDevices API Endpoints & Security
  15. 15. 15 Basic idea R R R P C B B
  16. 16. 16 ● Open source cloud messaging running on Kubernetes and OpenShift ● enmasse.io EnMasse Messaging-as-a-Service
  17. 17. 17 ● Multiple communication patterns: request/response, publish/subscribe and competing consumers ● Support for “store and forward” and direct messaging mechanisms ● Scale and elasticity of message brokers ● AMQP 1.0 and MQTT support ● Simple setup, management and monitoring ● Multitenancy: manage multiple independent instances ● Deploy “on premise” or in the cloud EnMasse Features
  18. 18. 18
  19. 19. 19 ● Queue ○ store-and-forward = true ○ multicast = false ● Topic ○ store-and-forward = true ○ multicast = true ● Anycast ○ store-and-forward = false ○ multicast = false ● Broadcast ○ store-and-forward = false ○ multicast = true Address types
  20. 20. 20 ● Persistence ○ In memory ○ Persisted ● Scaling ○ Single broker ○ Pooled ● HA Flavor examples
  21. 21. 21
  22. 22. 22
  23. 23. 23 ● Authentication and authorization ● Service broker API ● HTTP(S) ● Broker address space ○ Message grouping ○ Distributed transactions ○ Message ordering ● Multiple flavors ○ Apache Kafka? ● ... Future In progress/TODO
  24. 24. Resources ● Eclipse Hono - https://www.eclipse.org/hono ● EnMasse - http://enmasse.io ● ActiveMQ Artemis - https://activemq.apache.org/artemis/ ● Qpid Dispatch Router - http://qpid.apache.org/components/dispatch-router/
  25. 25. Thank you ! Questions ?
  26. 26. Evaluate the Sessions Sign in and vote at eclipsecon.org - 1 + 10

×