MQTT is by far the most popular Internet of Things protocol used in the largest professional IoT deployments worldwide. The protocol is so simple and versatile, that it can be used for private home automation projects as well as ultra-secure and highly scalable enterprise installations. This talk will show how a pure Java and open source technology stack can be used for IoT devices as well as backend applications for building next-generation IoT projects.
6. Introduction
• HiveMQ CTO
• Strong background in distributed
and large scale systems
architecture
• OASIS MQTT TC Member
• Author of “The Technical
Foundations of IoT”
• Conference Speaker
• Program committee member for
German and international IoT
conferences
Dominik
Obermaier
@dobermai
7. IoT Challenges • Unreliable communication
channels (e.g. mobile)
• Constrained Devices
• Low Bandwidth and High
Latency environments
• Bi-directional
communication required
• Security
• Instantaneous data
exchange
!7
8.
9. What is MQTT
• Most popular IoT
Messaging Protocol
• Minimal Overhead
• Publish / Subscribe
• Easy
• Binary
• Data Agnostic
• Designed for reliable
communication over
unreliable channels
• ISO Standard
!9
10. Use Cases • Push Communication
• Unreliable communication
channels (e.g. mobile)
• Constrained Devices
• Low Bandwidth and High
Latency environments
• Communication from
backend to IoT device
• Lightweight backen
communication
!10
20. HiveMQ
MQTT broker built for enterprise applications
Extensive plugin system
Scales to > 10 million of concurrent connections
OSS Community Edition available
Built for High Availability and used by 150+
of the largest IoT deployments in the world
21. Enterprise MQTT
Devices HiveMQ Enterprise
unreliable
network
Protocol
Integration
Enterprise Systems
• Kafka
• OAuth Server
• …
Kubernetes, Docker, OpenShift
Public or private cloud (AWS, MS Azure…) or on-premise
Backend
22. Enterprise MQTT
Devices HiveMQ Enterprise
unreliable
network
Protocol
Integration
Enterprise Systems
• Kafka
• OAuth Server
• …
Kubernetes, Docker, OpenShift
Public or private cloud (AWS, MS Azure…) or on-premise
Backend
23. HiveMQ Community Edition
Full-featured and lightweight Java MQTT Broker
Extensive plugin system
Ideal for Edge Devices and Java Applications
Apache 2 License
Foundation of HiveMQ Enterprisehttps://github.com/hivemq/hivemq-community-edition/
24. Extension System • Allows developers to integrate any
system
• Implement custom authentication
and authorization behavior
• Data forwarding to other backend
services
• Direct device communication
possible for other systems
• Modify MQTT packets and and
protocol behavior
• Hot Reload of Extensions possible
!24
25. Marketplace
• Pre-built Extensions for integration
with popular technologies
• Open Source Extensions available
• Commercial Extensions available
!25
26.
27. HiveMQ MQTT Client
Java based MQTT library
Developed by HiveMQ and BMW Car-IT
Built for devices and backends
Open Source (Apache 2)
Extremely fast and low overhead
28. Overview
3 API Styles: Simple,Future-based and Reactive
Designed for extreme throughput and low
memory consumption
Backpressure Support
Java based and licensed under the Apache 2 License
Full MQTT 5 & MQTT 3.1.1 Support
29. Features
Full MQTT 3.1.1 support
SSL / TLS (with optional native BoringSSL integration)
3 API Styles: Blocking,Non-Blocking,and Reactive
Websocket Support
Full MQTT 5 Support with all optional
features
32. HiveMQ
MQTT Client
Use Cases
Big Data Systems
Enterprise Application
Server Environments
(Payara, Glassfish, …)
Benchmark Tools
Desktop applications as
well as mobile applications
All Java 8+ based MQTT
applications
38. HiveMQ Kafka
Extension
• Broker uses native Kafka protocol
• Full MQTT Features can be used
• Bi-directional producing and
consumption possible
• High Scalability and resilience.
• Extreme throughput. Can write
hundreds of thousands of MQTT
messages per second to Kafka
• Ideal for aggregating MQTT topics
to Kafka Firehose Topics
• Can write to multiple Kafka
Deployments
!38