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.

Open sourcing the IoT

458 views

Published on

Session from CloudConf 2018 : https://2018.cloudconf.it/

Out there there are a lot of “closed” source products for developing messaging and IoT based solutions. What if you want to have more control on your platform ? The EnMasse and Eclipse Hono projects are the answers ! EnMasse is a totally “open” source messaging-as-a-service platform which can be deployed on-premise, in the cloud or even in an hybrid scenario. At the same time it aims to be highly scalable in terms of throughput and the number of connections, based on standard protocols like AMQP 1.0 and MQTT and provides different patterns for messages exchange. It represents the best choice as underlying infrastructure for Eclipse Hono which provides a framework exposing the main IoT APIs like telemetry, event and command & control other then handling devices registration and their authentication. During this session we’ll see the main concepts of these projects and how they fit together in order to provide a complete platform for and end-to-end IoT solution.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Open sourcing the IoT

  1. 1. Open sourcing the IoT The “I” part in your hands Paolo Patierno Principal Software Engineer @ Red Hat 12/04/2018
  2. 2. Who am I ? 2 @ppatierno ● Principal Software Engineer @ Red Hat ○ Messaging & IoT team ● Lead/Committer @ Eclipse Foundation ○ Hono, Paho and Vert.x projects ● Microsoft MVP Azure/IoT ● Valentino Rossi’s fan ! (I don’t like Marc Marquez) ● Try to be a runner ...
  3. 3. What is messaging? 3 ● It’s about messages exchange ○ Internally in distributed systems ○ Externally between systems ● Communication at the application level ● Messages go from sender/producer/publisher to receiver/consumer/subscriber ○ Asynchronously ○ Time decoupling ○ … or directly and synchronously
  4. 4. Why messaging ? 4 IoT : messaging vengeance ● … maybe in the past … ● … messaging was not so cool for developers ... ● … but today with IoT this is changed because … ● … IoT is all about messaging so … “Messaging vengeance” !
  5. 5. IoT : messaging as a “lever” 5 “give me a scalable messaging platform, and I shall move the Internet of Things world” (Archimedes)
  6. 6. What makes an IoT platform ? 6 IoT Core Services Messaging infrastructure Device Provisioning Business Services Monitoring Real time streaming Machine Learning … Authentication & Authorization Device Registration
  7. 7. IoT : communication patterns 7 How messaging fits IoT PlatformTelemetry Notifications Publish/Subscribe Inquiries Commands Request/Reply
  8. 8. IoT : interoperability 8 Open standards AMQP 1.0 MQTT HTTP CoAP XMPP STOMP
  9. 9. Messaging & IoT in the cloud 9 Cloud provider limitations ● They are not open source ! ● Freedom of choice ○ On-premise or in the cloud ○ Ability to choose which cloud ○ Open Standards protocols allows users to choose client freely ● Migrating from one to the other can be complex
  10. 10. EnMasse 10 Messaging-as-a-Service ● Open source messaging platform running on Kubernetes and OpenShift ● enmasse.io ● github.com/enmasseproject/enmasse ● @enmasseio
  11. 11. EnMasse 11 Features ● 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
  12. 12. EnMasse 12 Architecture Qpid Dispatch Router network ActiveMQ Artemis brokers Admin MQTT gateway MQTT clients AMQP & JMS clients With AMQP SASL plugin
  13. 13. MQTT over AMQP 13 ● MQTT gateway ○ Handles connections with remote MQTT clients ○ Bridges MQTT - AMQP protocols ● MQTT lwt ○ Provides the “will testament” feature ○ In charge to recover & send the “will” if client dies ● It brings MQTT features over AMQP so … ○ … “will testament” works for AMQP clients as well
  14. 14. Direct & Store-and-Forward 14 Direct messaging ● Telemetry ○ Data ingestion is possible only when consumers are online ● Command & Control ○ Sending a command only if the device is connected ● The “sender” always knows that message has reached the final destination routers network producer consumer consumer
  15. 15. Direct & Store-and-Forward 15 Store-and-forward routers network producer consumer consumer brokers ● Telemetry ○ Ingestion possible if no consumers are online ○ Data are stored to be consumed later ● Command & Control ○ Sending a command even if the device isn’t connected ○ Command is stored but TTL helps for stale commands ● The “senders” only knows that message has reached the intermediary, not final destination
  16. 16. IoT : how to deploy ? 16 ● “On premise” … ○ … maybe for a not so big solution ○ … ingesting few data and handling few devices ● “Cloud” … ○ … needs for more scalability ○ … don’t want to manage the infrastructure ● “Hybrid” … ○ … needs for processing at the edge ○ … needs for not making sensible data public
  17. 17. Eclipse Hono 17 Architecture AMQP 1.0 API Endpoints Auth Service Device Registry Protocol Adapters Business Applications Devices AMQP 1.0 AMQP 1.0 HTTP, MQTT end to end flow control ● IoT APIs ○ Telemetry & Event ○ Device Registration ○ Command & Control ○ Credentials ○ Authentication ○ Tenant
  18. 18. The Bosch IoT Hub 18
  19. 19. Resources 19 ● DZone “Messaging Infrastructure for IoT at Scale” : https://dzone.com/refcardz/messaging-infrastructure-for-iot-at-scale ● EnMasse : https://enmasse.io/ ● Qpid Dispatch Router : http://qpid.apache.org/components/dispatch-router/ ● ActiveMQ Artemis : https://activemq.apache.org/artemis/ ● Eclipse Hono : https://www.eclipse.org/hono/ ● Eclipse Hono (Virtual IoT meetup) : https://youtu.be/VEXuz2bFSrE ● Paolo’s blog : https://paolopatierno.wordpress.com/
  20. 20. Thank you ! Questions ? @ppatierno

×