Journal  Veröffentlichungen

Kafka als IoT-Daten-Plattform

Artikel von Dr. Ralph Guderlei in der JAVA Aktuell 01/2019

Viele Firmen setzen seit auf das Thema Internet of Things um neue und innovative Produkte zu entwickeln. Neben der Entwicklung von Hardware uns Sensorik ist das Sammeln und verarbeiten der anfallenden Sensordaten ein wesentlicher Bestandteil eines IoT-Projekts. Wir kooperieren seit gut zwei Jahren mit einem lokalen Energieversorger. Dieser will digitale Stromzähler mit Sendern ausstatten, um Verbrauchswerte übertragen zu können. Wenn das Vorhaben vollständig umgesetzt ist, werden ca. 150.000 Stromzähler in 15 Minuten-Intervallen Daten senden. Die gesendeten und aufbereiteten Daten werden dann über Schnittstellen weiteren Systemen zur Verfügung gestellt. Der Energieversorger verspricht sich davon unter anderem eine deutliche Optimierung des Ableseprozesses und eine Verbesserung der Prognosen für den Strom-Einkauf.

Betrachtet man diesen Use Case etwas abstrakter, können allgemeinen Anforderungen an ein System zur Verarbeitung von IoT-Daten abgeleitet werden: eine potentielle große Anzahl an Sensoren versenden mehr oder weniger regelmäßig Daten, die mit geringen Latenzen verarbeitet werden sollen. Oft müssen die gesammelten Daten weiteren Systemen zur Verfügung gestellt werden. Das System sollte in der Lage sein, neue Sensor-Typen einfach integrieren zu können. In unserem Use Case müssen Stromzähler unterschiedlicher Hersteller mit jeweils unterschiedlichen Übertragungswegen unterstützt werden.

Aus den Anforderungen ergibt sich die unter Abb. 1 dargestellte grobe Systemarchitektur.

Sensoren übertragen auf unterschiedlichen Wegen wie LoRaWAN, BLE, WiFi oder GSM Daten. Diese werden zunächst vorverarbeitet, z.B. indem sie in einheitliche Datenstrukturen überführt werden. Dann werden die eigentlichen Nutzdaten extrahiert und zur weiteren Verwendung bereitgestellt. In unserem Fall werden die Daten über ein sog. LoRaWAN-Netzwerk übertragen. Dabei handelt es sich um ein Funk-Netzwerk mit großer Reichweite welches sich besonders für die Übertragung von Sensordaten mit niedriger Datenrate eignet. Diese Art von Funknetz darf von jedermann betrieben werden, vergleichbar mit einem WLAN. Da wir momentan noch wenig Erfahrung mit dem Betrieb und dem Ausbau dieses Netz-Typs haben werden die anfallenden Metadaten gesammelt und zur weiteren Netzplanung herangezogen.

Für die Umsetzung des Systems haben wir uns für Apache Kafka entschieden. Neben der weiten Verbreitung und der aktiven Open Source-Community rund um Kafka war für uns ausschlaggebend, dass mit Kafka Connect und Kafka Streams zwei Teilprojekte existieren, die die Aufgabenfelder Datenaufnahme und -weitergabe (Kafka Connect) und Stream Processing (Kafka Streams) abdecken.

Ganzen Artikel lesen