Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Haxagonales IoT

Haxagonales IoT

Das Internet of Things wird immer gerne mit abstrakten Netzen und viel lowpower- und lowlevel-Technik in Verbindung gebracht. Kaum jemand denkt dabei an ein klassisches, verteiltes System und die darauf aufbauenden Softwarearchitekturen. Auf der anderen Seite erfährt hexagonale Architektur und sein Domainkern in der Literatur häufig Verbindungen zu klassischen endnutzergetriebenen Unternehmensbereichen wie Onlineshops, Verwaltungsprozesse etc.
Ich zeige in diesem Talk ein Beispiel einer IoT-Plattfom, die leider unter keinem guten Stern entstanden ist. Im Anschluss nehmen wir den fachlichen Kern auseinander und ich zeige, wie wir auch rein technische Belange wie ein Temperaturmesswert im Byteformat über MQTT fachlich abgebildet bekommen und die bestehende Architektur mit hexagonaler Architektur und Domain Driven Design auf festere Füße stellen können. Dabei geben ich eine kleine Einführung in MQTT und die grundlegenden Mechanismen von IoT-Geräten und wie man sie mit der hexagonalen Architektur gut verbinden kann.

Christian Schmidt

March 02, 2020
Tweet

More Decks by Christian Schmidt

Other Decks in Programming

Transcript

  1. Wer bin ich? Christian Schmidt (34) Softwareentwickler Dipl-Inf. (FH) -

    FH Köln Steckenpferde: • JVM • Kotlin • Scala • auch java ;-) • Domain Driven Design • Microservicearchitekturen • Cloudstuff (AWS, gcloud) Seit 2010 bei tarent Solutions in Bonn www.tarent.de
  2. Funkschnittstellen - LAN ESP8266 Philipps Hue OSRAM Lightify XBee Magenta

    Home ... ABUS Somfy Z-Uno ... 2,4 oder 5Ghz 433–6933 MBit/s TCP/IP 2,4 Ghz; 868 MHz 20 - 250 kbit/s kein IP 850 - 950 Mhz 20 - 250 kbit/s kein IP
  3. Das Projekt D D D NbIoT MQTT Broker IoT Plattform

    Connector mqtt HTTP Fragen: Wer darf sich verbinden? Wer darf welches Topic beliefern? Welches Device sendet was? Signale zurück ans Device? Wie registrieren sich neue Devices?
  4. Das Projekt D NbIoT MQTT Broker IoT Plattform Connector mqtt

    HTTP publish device/{IMSI}/req/ subscribe device/{IMSI}/res/ subscribe device/+/req/ publish device/{IMSI}/res/ POST /devices/{ID}/measurement
  5. Das Projekt MQTT Broker IoT Plattform Connector DB User API

    zentrale DB Admin API ACL Plugin Manuelles anlegen von Geräten Devicemapping Anlage von Useraccounts in der IoT Plattform
  6. Nachteile MQTT Broker IoT Plattform Connector User API Nicht abwärtskompatibel

    Admin API braucht lediglich IMSI geteiltes Datenmodell wild gewachsene Struktur paralleler Zugriff auf DB und Plattform DB
  7. Fachliche Schnitte Geräte- registrierung ACL Überprüfung Signalver- arbeitung Nutzer- verwaltung

    IMSI registrieren Nutzer anlegen Gerät anlegen Signal empfangen
  8. Refactoring MQTT Broker IoT Plattform Connector DB User API Admin

    API port: IMSI information port: create new admin • IMSI • DeviceID • MQTT Username/Password • ...
  9. Refactoring MQTT Broker IoT Plattform Connector Admin API Device Management

    C C • IMSI • Username/Password • IMSI • DeviceID
  10. Ein Blick tiefer MQTT sub add Measurement load Device Measurem

    Device event IoT Plattform C Device Management handle Measurement Service IMSI Device-ID
  11. Vielen Dank! tarent solutions GmbH Rochusstraße 2-4 53123 Bonn Telefon:

    0228 54881-0 Telefax: 0228 54881-235 [email protected] www.tarent.de/academy Christian Schmidt Softwareentwickler [email protected] @chris__schmidt github.com/DarkToast