Build your own IoT Cloud! [GER]
-
Upload
christian-goetz -
Category
Internet
-
view
247 -
download
2
description
Transcript of Build your own IoT Cloud! [GER]
![Page 1: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/1.jpg)
Christian Götz & Dominik Obermaier | dc-square
!
!
Bau deine eigene IoT Cloud
![Page 2: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/2.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Wer sind wir?
CHRISTIAN GÖTZ @goetzchr
DOMINIK OBERMAIER @dobermai
![Page 3: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/3.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
dc-square
HiveMQ IoT Beratung
V
Workshops & Schulung
s
HiveMQ Plugin Entwicklung
p
![Page 4: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/4.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Architektur einer IoT Plattform
Implementieren eines Prototypen
Ziel des Workshops
![Page 5: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/5.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Endergebnis
![Page 6: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/6.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Was jeder installiert haben sollte
• Java JDK 7 • Java IDE (IntelliJ, Eclipse, Netbeans, vi, …) • GIT • Maven • HiveMQ 2.0.2 • MySQL Datenbank • MySQL Datenbankviewer • Aktueller Webbrowser
Entwicklungumgebung
%%
%%
%%
%
%
![Page 7: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/7.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
https://github.com/dc-square/build-your-own-iot-cloud-
workshop
GIT Repositoryclone
oder USB-Stick
![Page 8: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/8.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
IoT Cloud Platform
![Page 9: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/9.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Internet der Dinge
![Page 10: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/10.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Technologie die Geräte über Kabel oder Drahtlos vernetzt
![Page 11: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/11.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
IoT Cloud PlatformKomponenten
NDevice Management
Configure, Update Firmware, Monitor, Sta6s6cs
tData Storage
Datenbank mit historische Daten
(Administration & Betrieb
Web UI, Einfache Bedienung
USecurity
Transportsicherheit, Authen6fizierung, Autorisierung
JIdentity Management
User, Devices
GLive Daten von Sensoren
HTTP, MQTT, CoAP, …
yIoT Cloud
![Page 12: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/12.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
IoT Cloud PlatformKomponenten, die wir heute benutzen
NDevice Management
Configure, Update Firmware, Monitor, Sta6s6cs
tData Storage
MySQL Datenbank mit REST API
(Administration & Betrieb
Web UI, Einfache BedienungSecurity
Transportsicherheit, Authen6fizierung, Autorisierung
JIdentity Management
User, Devices
GLive Daten von Sensoren
HTTP und MQTT
yIoT Cloud
U
![Page 13: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/13.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Eclipse Paho, HTTP
Geräte
!
GOAL IoT Platform
Prototyp
3
TechnologienPrototyp
HiveMQ MQTT Broker
Dropwizard REST API
HTML/JS Web App
![Page 14: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/14.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Eclipse Paho, HTTP
Geräte
TechnologienGeräte
Wetterstationen liefern Live Daten per Push (MQTT)➡ Simula6on der WeNersta6onen
mit Eclipse Paho
manche Geräte liefern Daten per HTTP
![Page 15: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/15.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
HiveMQ MQTT Broker
TechnologienHiveMQ
Austausch von Daten zwischen Geräten
Persistieren der Daten in die Datenbank
![Page 16: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/16.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Dropwizard REST API
TechnologienDropwizard
Historische Daten zur Verfügung stellen
eingehende POST Requests an HiveMQ weiterleiten
![Page 17: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/17.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
HTML/JS Web App
TechnologienWebapp
Anzeige von Live Daten über MQTT
Anzeige von historischen Daten über REST API
![Page 18: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/18.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Teil 1: Geräte MQTT, HTTP
![Page 19: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/19.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Protokoll des
Internets
GET, POST, PUT, DELETE
Server/Client
Request/Response
HTTP
HTTPFakten
![Page 20: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/20.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
HTTPVorteile/Nachteile
XPolling
Xnicht bidirektional
XHeader ist verbose
W Bekannt und Bewährt
XKeine Garantien
XStateless
![Page 21: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/21.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTTKurzübersicht
Einfach
Connect, Publish, Subscribe, Unsubscribe, Disconnect
Messaging Protokoll
Austausch von Nachrichten, teilweise Queuing
basiert auf TCP
Port 1883
Publish/Subscribe
Clients abonnieren auf Topics auf denen andere Clients Nachrichten veröffentlichen
Minimaler Overhead
teilweise nur 2 Byte
Ausgelegt für unstabile Netze
individuelle Garan6en möglich für jede Nachricht
![Page 22: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/22.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT HistoryTimeline
Entwickelt IBM/Arccom
1999Eclipse IoT (M2M)
2013
MQTT released royalty free
2011OASIS Standard
2014
2015b
![Page 23: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/23.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
1iotcloud/device1
einfacher Topic
2iotcloud/device1/temp
einfacher Topic
3iotcloud/+/temp
Single Wildcard
4iotcloud/#
Multi-level Wildcard
MQTT - TopicsFeature
![Page 24: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/24.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
genau einmal QoS 2
zumindest einmal QoS 1
bestenfalls einmal QoS 0
Siche
rheit
, das
s die
Nachr
icht a
nkom
mt
MQTT - Quality of ServiceFeature
![Page 25: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/25.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT - LWTFeature
1connect
LWT Topic: iotcloud/device1/status Message: offline
Device 1 HiveMQ
2connack
ok
3publish
Message Topic: iotcloud/device1/status Message: offline
4offline
LWT Message Topic: iotcloud/device1/status Message: offline
![Page 26: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/26.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT - Retained MsgFeature
2publish
Message Topic: iotcloud/device1/temp Message: 23.45
Device 1 HiveMQ
1publish
Message Topic: iotcloud/device1/temp Message: 23,45
5s
Device 2 HiveMQ
1subscribe
Message Topic: iotcloud/+/temp
Ohne Retained 0-5s
Mit Retained sofort!
![Page 27: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/27.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT over WebsocketsFeature
![Page 28: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/28.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT BrokerKurzübersicht
Herzstück von MQTT
Versenden der Nachrichten an Clients
Benutzt nur Topics
Topics sind dynamisch
Benutzerdefinierte Funktionen
MQTT Broker
![Page 29: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/29.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT GUI Tools MQTT.fx 0.0.7
![Page 30: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/30.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
http://www.jensd.de/wordpress/?p=1423
![Page 31: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/31.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT GUI Tools MQTT spy 0.0.6
![Page 32: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/32.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Timeline
https://code.google.com/p/mqtt-spy/
![Page 33: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/33.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT CMD Tools mosquitto_pub/_sub
![Page 34: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/34.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
$ mosquitto_pub -h broker.mqttdashboard.com -t iotcloud/test -m “test” -q 1 !http://mosquitto.org/man/mosquitto_pub-1.html
— !
$ mosquitto_sub -h broker.mqttdashboard.com -t iotcloud/test !http://mosquitto.org/man/mosquitto_sub-1.html
Mosquitto ClientsPublish/Subscribe
![Page 35: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/35.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT Libraries Eclipse Paho
![Page 36: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/36.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Open Source
“Reference Implementation”
Many languages: Java, Javascript, Lua, C, C++, Go, Python
Active Community
JS Library uses MQTT over Websockets
![Page 37: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/37.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT Libraries FuseSource MQTT Client
![Page 38: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/38.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Open Source
3 API Styles
Automatic Reconnect
Maven Central
Less active Community
![Page 39: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/39.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT + HiveMQHands-on
2
Subscribe auf Simulatorcode/0.1
Ü2
3
HiveMQ Beispielplugincode/0.2
Ü3
4
Reagieren auf einen Publishcode/0.3
Ü4
1
Ü1MQTT ausprobierencode/0.1
5
Ü5Publish in Datenbankcode/0.4
* Property File für Datenbankparameter * Alle 30s veröffentlichen wie viele
Einträge in der Datenbank sind
![Page 40: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/40.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 1MQTT ausprobieren
STEPS
HiveMQ starten Unix: /bin/run.sh Win: run.bat starten
Websocket Client mqtt-websocket-client/index.html öffnen
Verbinden Verbinden Erfolgreich wenn HiveMQ ClientId ausgibt
Subscribe Subscribe zu einfachem Topic Subscribe zu Wildcard Topic
Publish Publish von Nachrichten auf verschiedenen Topics
0.1
Version
![Page 41: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/41.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 2Simulator benutzen und Daten von Gerät 2 empfangen
STEPS
HiveMQ starten Unix: /bin/run.sh Win: run.bat starten
Websocket Client mqtt-websocket-client/index.html öffnen
Verbinden Verbinden Erfolgreich wenn HiveMQ ClientId ausgibt
Subscribe Herausfinden auf welchem Topic Gerät 2 schickt
Simulator starten simulator in Java IDE öffnen Ausführen von DeviceSimulator0.1
Version
![Page 42: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/42.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Teil 2: MQTT Broker HiveMQ
![Page 43: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/43.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT Broker
Hochskalierbarer MQTT Broker
> 100.000 Verbindungen
Offenes Plugin System
Einhängen von benutzerdefinierter Logik, Integra6on in bestehende Systeme
Cloud ready
Amazon Web Service, Microso` Azure, Own Datacenter
Implementiert den MQTT Standard
Gleichzei6ges Verbinden von MQTT Clients der Version 3.1.1 und 3.1 möglich
Sicherheit
TLS Verschlüsselung, X.509 Zer6fikate, Benutzerdefinierte und feingranulare Authen6fizierung und Autorisierung
Einfache Benutzung und Betrieb
$SYS Topics, Ausführliche Dokumenta6on, Monitoring über JMX und Graphite
![Page 44: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/44.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Plugin SystemHands-on
Inject everything!Steigert die Testbarkeit!
Callback bekannt machenCallback muss hier registriert werden, ansonsten wird er nicht ausgeführt
Don’t block in a Plugin. Never.Andere Threads benutzen
Apache Configuration SupportEinfach Config Files erstellen und
automa6sch nachladen
Dependency Injection
Callback Registry
Configuration Files
Don’t block
Plugin System
![Page 45: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/45.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
MQTT Lowlevel
Plugin CallbacksEinhängen von benutzerdefinierter Logik
Broker Events
Others
MQTT Message
Security1
2
3
4
5
Client Connect, Client Publish/Subscribe, After Login,
Connect, Publish, Subscribe, Unsubscribe, Disconnect
Scheduled
Start, Stop, Statistiken aktualisiert
PubAck, PubRel, PubComb, Ping, …
![Page 46: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/46.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
• HiveMQ SPI • Vorraussetzung um entwickeln zu können
• Maven Plugin • Plugin mit HiveMQ starten • Debuggen im Server/Client Modus
• Assembly Plugin • Erstellung eines auslieferbaren Archiv
• JavaDoc
Plugin EntwicklungTools für den Entwickler
![Page 47: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/47.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
HiveMQ MQTT Broker
TechnologienHiveMQ
Austausch von Daten zwischen Geräten
Persistieren der Daten in die Datenbank
![Page 48: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/48.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 3Plugin mit HiveMQ starten
STEPS
hivemq-‐pluginhivemq-plugin in Java IDE öffnen
HiveMQ starten HiveMQ mit Plugin über Maven package starten Profil RunWithHiveMQ aktivieren
HiveMQ Pfad Ordner von HiveMQ in pom.xml setzen
0.2
Version
![Page 49: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/49.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 4Benutzerdefinierte Logik für Publish
STEPS
hivemq-‐pluginhivemq-plugin in Java IDE öffnen
HiveMQ starten HiveMQ mit Plugin über Maven package starten Profil RunWithHiveMQ aktivieren
HiveMQ Pfad Ordner von HiveMQ in pom.xml setzen
0.3
Version
OnPublish Ausgabe auf der Console von ClientId, Topic und Nachricht
![Page 50: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/50.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 5Schreiben in die Datenbank
STEPS
hivemq-‐pluginhivemq-plugin in Java IDE öffnen
HiveMQ starten HiveMQ mit Plugin über Maven package starten Profil RunWithHiveMQ aktivieren
HiveMQ Pfad Ordner von HiveMQ in pom.xml setzen
0.4
Version
OnPublish ClientId und Payload in Datenbank schreiben
OnStart Datenbankverbindung aufbauen
![Page 51: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/51.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
• Connection Pool für Datenbankverbindung • JDBC in extra Thread • ORM-Framework einsetzen • Authentifizierung und Autorisierung der Clients • Transportverschlüsselung über TLS
VerbesserungenHiveMQ Plugin
![Page 52: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/52.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Teil 3: REST API Dropwizard
![Page 53: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/53.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Dropwizard REST API
TechnologienDropwizard
Historische Daten zur Verfügung stellen
eingehende POST Requests an HiveMQ weiterleiten
![Page 54: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/54.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
REST RessourcenIoTCloud
GET/sensor-data Alle Werte
POST /sensor-data/{device1}Aktueller Wert
GET/sensor-data/{device1} Alle Werte des jeweiligen Geräts parameterisiert
Format: JSON
![Page 55: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/55.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
DropwizardKurzübersicht
“Produktiv einsatzbereite, hochskalierbare REST API”
Ausgerichtet auf den einfachen Betrieb
Modulbasiert mit vielen mitgelieferten Modulen
![Page 56: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/56.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Jersey
Technologien
JacksonHTTP REST JSON
powered bymetrics
Dropwizard
![Page 57: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/57.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Getting StartedDropwizard
Configuration yaml
+ class
Ressourcen classes
Starten server config.yml
![Page 58: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/58.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 6Erstes Dropwizard Projekt
STEPS
Projekt öffnenrest-api in Java IDE öffnen
Projekt ausführen Run Configuration IoTCloudApplication server iotcloud.yml
0.5
Version
HelloWorld HelloWorld Ressource im Webbrowser aufrufen
![Page 59: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/59.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 7GET /sensor-data
STEPS
Projekt öffnenrest-api in Java IDE öffnen
Datenbank Datenbank anlegen mit create.sql Beispieldaten importieren exmple-data.sql
0.6
Version
Vorbereiten SensorDataItem POJO anlegen Datenbankverbindung herstellen ( JDBC)
Ressource Daten aus Datenbank holen Zurückgeben einer Liste von SensorDataItems
![Page 60: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/60.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 8JDBI statt JDBC
STEPS
Projekt öffnenrest-api in Java IDE öffnen
KonfiguraMon Datenbankparameter in iotcloud.yml
0.6
Version
Vorbereiten JDBI initialisieren Mapper
Ressource Interface DAO mit SQL Query schreiben Zurückgeben einer Liste von SensorDataItems
![Page 61: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/61.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
• Caching einbauen • Datenbankverbindung mit ConnectionPool • ORM Framework einsetzen (JDBI, Hibernate) • Authentifizierung, Autorisierung • Mehrere Ressourcen • Transportverschlüsselung mit TLS
VerbesserungenHiveMQ Plugin
![Page 62: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/62.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Teil4: WebUI Erster Test für die IoT Cloud
![Page 63: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/63.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
WebUIHiveMQ Plugin
Live Daten über MQTT
Historische Daten über REST
![Page 64: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/64.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Übung 9WebUI Ausliefern
STEPS
Projekt öffnenrest-api in Java IDE öffnen
Assetbundle Assetbundle konfigurieren
0.7
Version
webapp webapp in asset Ordner kopieren
Dropwizard starten und localhost:8080/asset öffnen
![Page 65: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/65.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Zusammenfassung
![Page 66: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/66.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
IoT Cloud PlatformKomponenten
NDevice Management
Configure, Update Firmware, Monitor, Sta6s6cs
tData Storage
Datenbank mit historische Daten
(Administration & Betrieb
Web UI, Einfache Bedienung
USecurity
Transportsicherheit, Authen6fizierung, Autorisierung
JIdentity Management
User, Devices
GLive Daten von Sensoren
HTTP, MQTT, CoAP, …
yIoT Cloud
![Page 67: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/67.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Ausblick
![Page 68: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/68.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Welche Herausforderungen sind noch zu lösen?
SecurityAuthen6fizierung, Autorisierung
Mehr ProtokolleCoAP, XMPP, …
Device ManagementÜberwachen der Geräte
Skalierbarkeit, Verfügbarkeit
HiveMQ und Dropwizard sind skalierbar
Christian Götz/Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
![Page 69: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/69.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
Danke!
![Page 70: Build your own IoT Cloud! [GER]](https://reader033.fdocuments.net/reader033/viewer/2022051412/54b7513b4a79592b5b8b4615/html5/thumbnails/70.jpg)
Christian Götz / Dominik Obermaier - Bau dir deine eigene IoT Cloud github / mail / website
IoT Con HiveMQ Special
http://www.hivemq.com/iot-con-special-2014/