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.

Eclipse Hono: Connect. Command. Control.

3,307 views

Published on

Session at Eclipse Day Milan 2017
Eclipse Hono: Connect. Command. Control.

The open source counterpart to closed and proprietary IoT solutions is called Hono ! Born out of the collaboration of big companies, including Red Hat and Bosch both members of the Eclipse Foundation, Hono is an open source framework which aims to add features, such as device management and authentication, on top of an highly scalable messaging infrastructure in order to guarantee secured data exchange between devices and cloud applications. Using its APIs, devices can send data (telemetry and event) and can be controlled remotely (command/control). During this session we will see the “bricks” that make its architecture, the exposed APIs and the integration with other solutions.

Published in: Software
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Eclipse Hono: Connect. Command. Control.

  1. 1. Eclipse Hono. Connect. Command. Control. Connect and control your IoT devices Paolo Patierno Senior Software Engineer @ Red Hat 22/09/2017
  2. 2. 2 Who am I ? @ppatierno ● Senior Software Engineer @ Red Hat ○ Messaging & IoT team ● Lead/Committer @ Eclipse Foundation ○ Hono, Paho and Vert.x projects ● Microsoft MVP Azure/IoT ● Technologies and protocols “globetrotter” ● Hacking low constrained devices in spare time ● Blogger and speaker about distributed systems, messaging, IoT and embedded “world”
  3. 3. 3 Agenda ● From messaging to IoT ● IoT from close to open source ● Please welcome to … Eclipse Hono ○ What is this ? ○ Goals & features ○ Architecture & APIs ● How & where to deploy ? ● Demo
  4. 4. 4 “give me a scalable messaging platform, and I shall move the Internet of Things world” (Archimedes) IoT : messaging as a “lever”
  5. 5. IoT Core Services 5 What makes an IoT platform ? Messaging infrastructure Device Provisioning Business Services Monitoring Real time streaming Machine Learning … Authentication & Authorization Device Registration
  6. 6. 6 IoT : communication patterns Telemetry Inquiries Commands Notifications Cloud
  7. 7. 7 IoT : communication patterns Messaging patterns & protocols ● Telemetry & Notifications are about … ○ …. messaging publish/subscribe ● Commands & Inquiries are about … ○ … messaging request/response ● Different protocols (AMQP, MQTT, HTTP, …) implement them in different way ○ As built-in support … ○ … or on top of it at application level ○ Read more on “Strengths And Weaknesses Of IoT Communication Patterns” * * DZone IoT Guide : https://dzone.com/guides/iot-applications-protocols-and-best-practices
  8. 8. 8 IoT : interoperability Open standards AMQP 1.0 MQTT HTTP CoAP XMPP STOMP
  9. 9. 9 ● Microsoft Azure ○ IoT Hub ● Amazon Web Services ○ AWS IoT ● Google ○ IoT Core ● IBM ○ Watson IoT IoT in the cloud
  10. 10. 10 ● 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 Cloud provider limitations
  11. 11. 11 ● An Eclipse Foundation IoT project ... ○ Bosch and Red Hat as main contributors ● https://www.eclipse.org/hono/ Eclipse Hono Connect. Command. Control.
  12. 12. 12 ● Open source IoT connectivity platform running on … ○ Kubernetes ○ OpenShift ○ Docker Swarm ● On-premise & in the cloud ● Provided by a set of Docker containers Eclipse Hono Connect. Command. Control.
  13. 13. 13 ● Tailored general messaging for IoT solutions ● Provide standard APIs for interacting with devices ● Support for arbitrary protocols (MQTT, AMQP 1.0, HTTP, …) ● Support different underlying messaging infrastructures ○ AMQP 1.0 based ○ JMS ○ Apache Kafka ○ RabbitMQ Eclipse Hono Goals
  14. 14. 14 ● Scalability ● Multi-tenancy ● Device-based security ● Multi-protocol support Eclipse Hono Features
  15. 15. AMQP 1.0 15 Eclipse Hono Connect. Command. Control API Endpoints Auth Service Device Registry Protocol Adapters Business Applications Devices AMQP 1.0 AMQP 1.0 HTTP, MQTT, AMQP 1.0 Qpid Dispatch Router ActiveMQ Artemis Broker AMQP 1.0 Hono components Messaging Infrastructure
  16. 16. 16 Routing vs “Broking” Broker Producer Broker Consumer Send message Accepted Send message Accepted
  17. 17. 17 Routing vs “Broking” Router Producer Router Consumer Send message Accepted Send message Accepted
  18. 18. AMQP 1.0 18 Eclipse Hono Connect. Command. Control API Endpoints Auth Service Device Registry Protocol Adapters Business Applications Devices AMQP 1.0 AMQP 1.0 ● EnMasse … ○ a messaging-as-a-service platform ○ elastic scaling ○ multiple communication patterns ○ … and more and more … ○ more info : enmasse.io HTTP, MQTT, AMQP 1.0
  19. 19. 19 Eclipse Hono IoT messaging APIs ● Telemetry & Event ● Device Registration ● Command & Control (not available in 0.5 release) ● Authentication ● Credentials
  20. 20. 20 Eclipse Hono IoT messaging APIs endpoints Hono Messaging Auth Service Device Registry Auth Auth Protocol Adapter Registration Telemetry Event Qpid Dispatch Router Telemetry Event Credentials Service Auth Credentials Devices Business Applications
  21. 21. 21 Eclipse Hono Telemetry & Event ● used by devices to send data/event downstream ● leverages on “direct messaging” … ○ Telemetry ○ Devices can send data only if consumers are online ○ No broker involved ● … “store and forward” ○ Event ○ Broker for storing event with a “ttl” eventually ● consumers receive data published by devices belonging to a particular tenant
  22. 22. 22 Eclipse Hono Device Registration ● used to make Hono aware of devices that will connect to the service ● solutions/consumers may use the API to get information about devices ● operations ○ register, deregister, get information, assertion ● for every message sent by a device … ○ a registration assertion (JWT) is attached by the protocol adapter ○ it’s verified by messaging before sending the message downstream ○ a disabled device will have such check fails
  23. 23. 23 Eclipse Hono Command & Control ● used by applications to send commands to devices ● command execution can be “just in time” or “deferred” ○ just in time : command already executed, the response from device contains the result ○ deferred : command not executed yet, the response from device specifies it’s accepted; for long running operations the result will be provided later
  24. 24. 24 Eclipse Hono Authentication ● handle authentication between components (protocol adapters, messaging, …) ● used by clients/components for getting a token asserting … ○ subject’s identity ○ granted authorities ● other services will use such a token to make authorization decisions on a client’s request to read or write from/to a resource or to invoke a certain operation ○ i.e. messaging checks if an adapter can write telemetry data ● Where an identity management system is already in place (i.e. Keycloak) … ○ needs for having a “facade” from this API to such a system
  25. 25. 25 Eclipse Hono Credentials ● handle authentication for devices on protocol adapters ● used by protocol adapters to retrieve credentials used to authenticate devices connecting to the adapter (MQTT, HTTP, …) ● different types of credentials ○ psk, hashed password, public key, … ● operations ○ add, get, update, remove ● Where an identity management system is already in place (i.e. Keycloak) … ○ needs for having a “facade” from this API to such a system
  26. 26. 26 IoT : how to deploy ? ● “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
  27. 27. 27 Azure Container Service ● A containers hosting solution ● Scale and orchestrate using … ○ Kubernetes ○ Docker Swarm ○ DC/OS ● Deploying a cluster using Azure CLI / portal ○ Resource group with VMs, load balancer, ... ● Managing directly your preferred “orchestrator” ○ ACS provides you “only” the infrastructure
  28. 28. 28 Azure & OpenShift ● OpenShift Origin ○ the upstream open source project ● OpenShift Container Platform ○ the Red Hat productized version ○ enterprise grade container platform +
  29. 29. 29 Amazon EC2 ● Spinning up virtual machines … ○ for making a cluster ● Providing … ○ Docker and … ○ … Kubernetes or OpenShift … ○ … or just Docker using Swarm mode +
  30. 30. 24 → /telemetry/tenand_id 30 DEMO Qpid Dispatch Router ActiveMQ Artemis MQTT, HTTP clients 24 → /telemetry Hono Components Consumer application
  31. 31. Resources 31 ● Eclipse Hono : https://www.eclipse.org/hono/ ● Eclipse IoT : https://iot.eclipse.org/ ● Qpid Dispatch Router : http://qpid.apache.org/components/dispatch-router/ ● ActiveMQ Artemis : https://activemq.apache.org/artemis/ ● EnMasse : http://enmasse.io/ ● Azure Container Service : https://azure.microsoft.com/en-us/services/container-service/ ● OpenShift on Azure : http://aka.ms/openshift ● My blog : https://paolopatierno.wordpress.com/
  32. 32. Thank you ! Questions ? @ppatierno

×