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.

Scaling out eclipse hono

635 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

×