Sprechen Sie MQTT? Dieser Workshop zeigt, was es mit dem schlanken und leichtgewichtigen IoT Protokoll auf sich hat und warum es sich zu einem Standardprotokoll für das Internet of Things etabliert hat. Lernen Sie, warum Pub/Sub für das Internet of Things skaliert und warum HTTP nicht der Weisheit letzter Schluss für alle IoT-Kommunikation ist. Neben einigen Live-Demos sowie einer Einführung in die Funktionsweise des schlanken Publish/Subscribe-Protokolls bekommen Sie Einblick in das junge und sehr aktive Ökosystem rund um MQTT.
Am Ende des Workshops wird ein Java basierter MQTT Todesstern Simulator inklusive Dashboard mit "MQTT over websocket" support entstehen.
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
Pub/Sub for the masses- Ein Einführungsworkshop in MQTT [GERMAN]
1. PUB / SUB for the masses
An Introduction to MQTT
#IotCon Workshop
2. 2
EINFÜHRUNG - VORSTELLUNG
Christian Götz Dominik Obermaier
CEO @ dc-square CTO @ dc-square
@goetzchr @dobermai
3. Beginn Q&A
3
EINFÜHRUNG - AGENDA
Kurze Einführung
in MQTT
Entwicklung einer
MQTT Webapplication
MQTT über Websockets
Überblick über das
MQTT Ökosystem
MQTT Clients & Broker
Hands-on MQTT
Testen und “Spielen” mit MQTT
Zusammenfassung & Ausblick
Ende
Entwicklung eines
MQTT Simulators
Mit Java und Paho
4. Wie entwickle ich einen
MQTT Client in Java?
Was ist “MQTT over
Websockets?”
Wie funktioniert MQTT
für Webseiten?
Umsetzung verschiedener
MQTT Patterns
4
EINFÜHRUNG - LERNZIELE
Was ist MQTT?
Was werden wir bei
diesem Workshop
lernen?
Warum nicht immer HTTP?
MQTT Broker?
MQTT Clients?
Wie funktioniert MQTT im Detail?
Wie baue ich einen
Software-Deathstar ;-)
5. 5
EINFÜHRUNG - ANWENDUNGSFALL
Unser Anwendungsfall: Deathstar Simulalator
Implementierung eines MQTT Todesstern Simulators und eines Web-Dashboards
zur Anzeige von Daten und Steuerung des Simulators
6. 6
EINFÜHRUNG - BENÖTIGTE SOFTWARE
Benötigte Software
HiveMQ
MQTT Broker
MQTT Client
!
MQTT.fx
mosqutto Tools
HiveMQ Web Client
IDE / Editor
!
IntellIj IDEA
Eclipse
Netbeans
vi
Git
7. 7
EINFÜHRUNG - BENÖTIGTE SOFTWARE
Wer benötigt noch diese Software?
8.
Einführung in MQTT
Überblick und wichtigste
Features und Eigenschaften
10. 10
MQTT - IOT PROTOKOLL ANFORDERUNGEN
Anforderungen an ein IoT Protokoll
Bandbreiteneffizient
Skalierbar
Standardisiert
Offen
Datenagnostisch
Sowohl für schwache Hardware
als auch Server geeignet
11. 11
Sehr verbreitet
Request / Response
Seit 1991 verbreitet
Dokumentenzentriert
HTTP?
MQTT - HTTP?
12. 12
Warum nicht immer HTTP?
Viel Overhead
Polling statt Push
Kein Quality of Service
Stateless
Wie merken wir, dass
ein Client offline ist?
MQTT - HTTP?
13. 13
MQTT - MESSAGING FÜR DAS INTERNET DER DINGE
MQTT - Messaging für das Internet der Dinge
Einfach
Publish / Subscribe
Binär
Messaging Protokoll
Minimaler Overhead
Datenagnostisch
14. 14
Anwendungsfälle
Push statt Pull
Zuverlässigkeit auch bei
unzuverlässigen Netzwerken
Constrained Devices
Geringe Bandbreite und
hohe Latenz
Enterprise -> Mobile
MQTT - ANWENDUNGSFÄLLE
15. 15
3 QoS Stufen
Retained Messages
Topic Wildcards
Last Will and Testament
Persistent Sessions
Heartbeats
Features
MQTT - FEATURES
25. 25
MQTT - Historische Entwicklung
MQTT - GESCHICHTE
Arlen Nipper (Arcom) &
Andy Stanford-Clark (IBM)
entwickeln MQTT
freie
Verfügbarkeit
OASIS TC MQTT 3.1.1 Release
1999 2010 2013 2014
26. 26
MQTT 3.1.1 Verbesserungen zu MQTT 3.1
1. Weitgehend abwärtskompatibel
2. Effizientere Header
3. Client-ID Längenrestriktion entfernt
4. Connect ohne Client-ID
5. Persistent Present Flag
6. Fehlercode bei Subscriptions
7. Direktes Publishen nach dem Verbinden
8. MQTT over Websockets spezifiziert
9. Alle Strings sind nun UTF-8
10.Protokollname nun offiziell “MQTT”
MQTT - MQTT 3.1.1
55. 55
Retained Messages
“Last Known Good Value”
Die letzte Nachricht wird
vom Broker gespeichert
Client entscheidet ob eine
Nachricht retained wird
Clients bekommen retained
message nach Subscribe
ÜBUNGEN - RETAINED MESSAGES
58. 58
Last Will and Testament
Client definiert LWT
Broker schickt diese
Nachricht nach Client “Tod”.
Echter Push
Nützlich um on / off
verlässlich zu implementieren
ÜBUNGEN - LWT
70. 70
Features
• Alarmierung wenn Eindringlinge
dem Reaktor zu nahe kommen
• Abfeuern des Superlasers
• Fernsteuerung der Meldefrequenz
• Temperaturanzeige des Imperialen
Gewächshauses
• Melden des Status (Online / Offline)
DEATHSTAR - FEATURES
92. 92
Features
• Alarmierung wenn Eindringlinge
dem Reaktor zu nahe kommen
• Abfeuern des Superlasers
• Fernsteuerung der Meldefrequenz
• Temperaturanzeige des Imperialen
Gewächshauses
• Anzeigen des Status (Online / Offline)
DASHBOARD - FEATURES
113. 113
OUR TEAM - HELLO YOU!
Credits (all Images under Creative Commons)
‣ “The Stormtrooper” by leg0fenris: https://flic.kr/p/9beh6M
‣ “Stormtroopers Training: Theory” by Pedro Vezini: https://flic.kr/p/9iCMCB
‣ “Impending Doom (Explored)” by Pascal: https://flic.kr/p/8sjHyA
‣ “Is this Jabba the Hut's son?” by Kristina Alexanderson: https://flic.kr/p/9WDcSx
‣ “#135/366” by Robert McGoldrick: https://flic.kr/p/bXKkBG
‣ “Old droids” by stavos: https://flic.kr/p/jfYxPA
‣ “#23/366 The Plan” by Robert McGoldrick: https://flic.kr/p/bhgZbx
‣ “Day 112” by Pascal: https://flic.kr/p/7jbBvN
‣ “New Navcom” by Jason Ternus: https://flic.kr/p/5zkmHe
‣ “Got the Superman Cape... Let's do this!” by Brian Neudorff: https://flic.kr/p/jmowHw
‣ “"..And The Nominees Are…”" by Predro Vezini: https://flic.kr/p/8wFkyN
114. 114
OUR TEAM - HELLO YOU!
Credits II (all Images under Creative Commons)
‣ “Hardcore Stormies Hit The Gym” by W_Minshull: https://flic.kr/p/9pbzs7
‣ “#145/366” by Robert McGoldrick: https://flic.kr/p/c4zqAJ
‣ “Rocking Hard” by W_Minshull: https://flic.kr/p/dB13LP
‣ “Weightlifting” by 713 Avenue: https://flic.kr/p/5cdK3z
‣ “Kaos - Chaos paiting (ii)” by Kristina Alexanderson: https://flic.kr/p/ajcZoo
‣ “Pole Vault” by 713 Avenue: https://flic.kr/p/5eAzQi
‣ “T as in teaching Tech” by Kristina Alexanderson: https://flic.kr/p/cyAA8d
‣ “Escaping the Death Star” by Paulo Valdivieso: https://flic.kr/p/eHQ9kr
‣ “Death Star Prototype”: http://starwars.wikia.com/wiki/File:DSprototype_egvv.jpg
‣ “Luke Skywalker flying his X-Wing, getting ready to blow up the Death Star” by Fredrik
Perman: https://flic.kr/p/c3qivy
115. 115
OUR TEAM - HELLO YOU!
Credits III (all Images under Creative Commons)
‣ “move to the new deathstar” by Nerd herdr: https://flic.kr/p/oqxYue
‣ “I think it is time we demonstrated the full power of this station” by Fanboy30: https://
flic.kr/p/5YYbLK
‣ “Stromtrooper's clone robots” by Jay: https://flic.kr/p/b3mvcX
‣ “Hot Tub” by W_Minshull: https://flic.kr/p/9nMWxp
‣ “Searching for Droids” by Guy Streatfeild: https://flic.kr/p/bAvbWW
‣ “Stormpainter” by Pedro Vezini”: https://flic.kr/p/9SrKQU
‣ “Let The Wookie Hug” by Pedro Vezini: https://flic.kr/p/8ukTZe
‣ “Daisy Squad” by Stéfan: https://flic.kr/p/bD6ANy
‣ “Enjoying the sunset” by Kristina Alexanderson: https://flic.kr/p/avNV2Q