Strategies for Landing an Oracle DBA Job as a Fresher
Push! - MQTT for the Internet of Things
1. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014
Push!
MQTT for the Internet of Things
1
2. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 2
About me
Hi, I’m Dominik Obermaier.
• CTO of dc-square
• HiveMQ architect
• helped standardizing MQTT at OASIS
• Speaker and author about MQTT, M2M
and IoT
@dobermai
3. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 3
1
MQTT?
4. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 4
• Messaging Protocol
• Simple
• On top of TCP
• Publish / Subscribe Architecture
• Binary protocol
• Minimal Overhead
• Designed for unreliable networks
• Data agnostic
MQTT - Overview
5. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 5
• Push instead of Poll
• Bandwidth is at a premium
• Enterprise applications should
interact with mobile applications
• Reliable delivery of messages over
unreliable networks
• Constrained devices
• Low latency
MQTT - Use cases
6. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 6
MQTT - Features
• Topic Wildcards
• 3 Quality of Service Levels
• Retained Messages
• Last Will and Testament
• Persistent Sessions
• Heartbeats
7. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 7
MQTT - Pub/Sub
8. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 8
Protocol
• Username / Password
• Payload Encryption
Transport
• TLS
• Client certificate authentication
Broker
• Publish / Subscribe Permissions
• Integration to other systems (databases, APIs, ....)
MQTT - Security
9. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 9
QoS 0
At most once delivery
The message is delivered once or never.
QoS 1
At least once delivery
The message is delivered once or more.
QoS 2
Exactly once delivery
The message is delivered exactly once.
Quality of Service Levels
10. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 10
Last Will and Testament
• Clients can specify a LWT
• Broker publishes the LWT message
on behalf of the client on “death”
• Useful for reporting problems
• Real push on device “death”
• Mostly used for reporting the
connection status of a device
11. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 11
Retained Messages
• Last known good value
• Last message is stored for a topic
• Publishing clients decide if the
message should be retained
• Clients automatically receive the
retained message after subscribing
12. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 12
2
Brokers & Clients
13. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 13
MQTT Brokers - Mosquitto
• Open Source
• Ideal for running in constrained
environments
• Supports Bridging
14. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 14
MQTT Brokers - HiveMQ
• High Performance MQTT broker
• Native Websockets Support
• Plugin System
• Clustering
• Bridging
15. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 15
MQTT Brokers - Others
+ Many others
see https://github.com/mqtt/mqtt.github.io/wiki/brokers
16. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 16
MQTT Clients - Paho
• Open Source
• “Reference Implementation”
• Available in many languages: Java,
Javascript, Lua, C, C++, Go, Python
•The JS library uses websockets
17. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 17
MQTT Clients - Others
https://github.com/mqtt/mqtt.github.io/wiki/libraries
18. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 18
3
Real World Use
cases
19. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 19
Facebook Messenger
Use case:
• more than 850M Facebook Messenger Users
• Chat application
• Improved Battery
• Lower latency
• Less bandwidth
https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/10150259350998920
20. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 20
Smart Home
Use case:
• MQTT as central message “bus”
• Easy to integrate with other technologies
• Remote monitoring
• Many open source Smart Home Frameworks
support MQTT
• Remote control
21. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 21
Pipeline Monitoring
Use case:
• 30.000 devices
• 17.000 km pipeline
• Remote monitoring
• Remote control
• Uses satellite links
• Bandwidth is very expensive
22. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014
MQTT - Gaining traction
22
Google Trends - 2014/04/09
23. Dominik Obermaier - Push! MQTT for the Internet of Things - IoTLive 2014 23
Thanks!