TP2.3: Service-Mashups und Entwicklerunterstützung

Teilprojektleitung
Prof. Dr. Dr. h.c. Manfred Broy
Teilprojektleitung
Dr. habil. Christian Prehofer


In einer Welt der verbundenen Geräte (IoT) wird es eine riesige Menge an Daten geben, die ständig aufgenommen und für Echtzeit- und/oder historische Analyse verwendet werden. Eine solche Analyse kann zu wichtigen Einsichten führen über Einzel- und Gruppenpräferenzen und Muster von Endnutzern (z.B. Mobilitätsmodellen), dem Stand der Ingenieurstrukturen (z. B. bei der strukturellen Gesundheitsüberwachung), dem zukünftigen Zustand der physischen Umgebung (z.B. Hochwasservorhersage für Flüsse). Diese Erkenntnisse können wiederum die Schaffung von technisch ausgefeilten, wirkungsvollen Anwendungen ermöglichen. Verkehrsbelastungen wie Staus können durch erlernte Verkehrsmuster vermieden werden. Schäden in Gebäuden und Brücken können besser erkannt und Reparaturen besser geplant werden durch die Anwendung von strukturellen Gesundheitsüberwachungstechniken. Eine genauere Vorhersage von Überschwemmungen kann die Art und Weise, wie Behörden und Einzelpersonen auf sie reagieren, verbessern.
Trotz des großen Potenzials, IoT-Erfassung und –Inbetriebnahme mit Datenanalyse zu kombinieren, ist die Entwicklung von Applikationen, die den Betrieb von IoT-Sensoren und Aktoren steuern, allein eine Herausforderung. Entwickler müssen komplexe Boilerplate-Codes schreiben, um mit heterogenen Geräten zu kommunizieren. Sie müssen kundenspezifische Datenumwandlungen auf Rohdaten durchführen, um sie für spätere Stadien brauchbar zu machen. Geräteidentifikation und -koordination sind klare weitere Herausforderungen in der IoT-Anwendungsentwicklung.
Um mit einigen dieser Herausforderungen umzugehen, können dedizierte IoT-Entwicklungswerkzeuge namens IoT-Mashup-Tools verwendet werden. Solche Werkzeuge beschleunigen den Prozess der Erstellung und Bereitstellung einfacher IoT-Anwendungen, die Daten verbrauchen, die von IoT-Sensoren erzeugt werden, veröffentlichen Daten an externe Dienste oder andere Geräte. Sie bieten typischerweise grafische Schnittstellen zur Spezifikation des Datenflusses zwischen Sensoren, Aktoren und Diensten, was die Barriere bei der Erstellung von IoT-Applikationen für Endbenutzer verringert.
Die Ableitung von Erkenntnissen aus Daten, die von IoT-Geräten gesammelt wurden, ist eine gesonderte Herausforderung, die vor allem in das Thema Datenanalyse und maschinelles Lernen fällt. In den vergangenen Jahren sind einige von ausgereiften Werkzeugen aufgetaucht, die sich auf die Handhabung und Analyse von Daten von großem Umfang, Geschwindigkeit und Vielfalt richten, die gemeinhin als Big Data bezeichnet werden. Big Data Analytics-Werkzeuge ermöglichen eine massiv parallelisierte Datenanalyse und erlauben maschinellen Lernalgorithmen, kostengünstig auf Datensätzen zu operieren, die sich in großen Clustern von Warenmaschinen befinden.
Obwohl die Integration bestehender IoT-Mashup-Tools mit Big Data Analytics-Tools die nahtlose Entwicklung technisch ausgereifter, wirkungsvoller Anwendungen ermöglicht, ist es bei weitem nicht einfach. Eine solche Integration sollte über die bloße Angabe von IoT-Mashups hinausgehen, die nur als Datenanbieter für Big Data Cluster fungieren. Mashup-Entwickler sollten auch in der Lage sein, Big Data Analytics-Jobs festzulegen und ihre Ergebnisse in einem einzigen Anwendungsmodell zu benutzen.
Existing IoT
Abbildung 1
Es ist wichtig, diese beiden Welten in einer integrierten Weise miteinander zu verknüpfen. Es gibt bestimmte Szenarien, in denen die Geschäftslogik von Mashups Eingaben von Big Data-Aufträgen benötigen, d.h. es ist möglich, dass es für Mashups erforderlich ist, die Datenanalyse auslösen. Ebenso kann es nach der Ausführung von Big Data-Aufträgen notwendig sein, eine zusätzliche Aufgabe durchzuführen, d.h. man muss einen Fluss im Mashup auslösen. Hier versuchen wir, mit wenigen Beispielszenarien zu illustrieren, wo die Integration von Big Data Analytics und Business Logic in der Anwendungsentwicklung wirklich sinnvoll ist, um Wert für Endbenutzer zu generieren.

Mashup in Verbindung mit Big Data Analytics für Verkehrsmanagement
Betrachten Sie ein Straßenverkehrsüberwachungssystem, das für Verkehrsmanagement und Datenerfassung verwendet wird. Das System zeichnet live Verkehrsdaten einschließlich der Durchflussüberwachung auf, d.h. die Anzahl der Fahrzeuge, die eine bestimmte Autobahn zu verschiedenen Tageszeiten benutzen. Das System erkennt automatisch Vorfälle wie Unfälle, Staus, Feuerbruch etc. Die aufgezeichneten Daten werden in Clustern von Big Data Systemen gespeichert. Bei der Erkennung eines neuen Vorfalls erzeugt das System einen Alarm. Es ist entscheidend, den eigentlichen Grund hinter dem Alarm zu erkennen, um entweder entsprechende Gegenmaßnahmen für die reibungslose Abwicklung des Stadtverkehrs einzuleiten oder als Fehlalarm zu behandeln.
Mashups passen gut in dieses Szenario, da die Entwicklung von Anwendungen mit Werkzeugen sowohl schnell als auch kostengünstig ist. Ein Mashup, der entworfen ist, um die Ursache für ein solches Szenario zu finden, nimmt den Vorfall als Input und führt eine vorläufige Analyse durch, um festzustellen, ob ein solches Ereignis jemals in der jüngeren Vergangenheit aufgetreten ist. Basierend auf dieser Analyse entscheidet es, ob es die grundlegenden Informationen hat, um Gegenmaßnahmen einzuleiten, oder ob es darum geht, durch die Ausführung einer Reihe von analytischer Aufträge auf den in den Clustern gespeicherten Datensätzen mehr Wissen über den Vorfall zu erlangen
Road incidents trigger a mashup to initiate appropriate counter measures to handle traffic efficiently.
Figure 2 (a) Straßenvorfälle lösen einen Mashup aus, damit entsprechende Gegenmaßnahmen eingeleitet werden, um den Verkehr effizient zu bewältigen.


Deriving knowledge from Big Data analytic jobs to facilitate decision making.
Figure 2 (b) Ableitung von Wissen aus Big Data Analytics-Aufträgen zur Erleichterung der Entscheidungsfindung.
Im Falle der Verfügbarkeit von vergangenen Informationen über ähnliche Vorfälle kann es geeignete Gegenmaßnahmen direkt einleiten. Andernfalls ruft es einen Satz von Aufträgen parallel auf, um weitere Analysen durchzuführen und die Ursache des Vorfalls wie Feuerbruch, Unfälle oder normale Spitzenzeiten des Tages usw. zu ermitteln. Die Anwendung analysiert das Ergebnis dieser Jobs, um eine angemessene Entscheidungsfindung zu erleichtern. Abbildung 2 (a) zeigt den Fluss des Mashups von der Erkennung eines Vorfalls bis zur Entscheidung, entweder einige Big Data Analytics durchzuführen oder Entscheidungen zu treffen, die auf historischen Informationen basieren. Abbildung 2 (b) zeigt die parallele Ausführung von Big Data-Jobs, die Analyse ihrer Ergebnisse, um die Einleitung von Gegenmaßnahmen zu fördern.

Herausforderungen
– Unterstützung der Entwicklung von Services und IoT-Anwendungen mit Mashups
– Unterstützung der Integration von Drittanbieter-APIs
– Vereinfachung der Spezifikation komplizierter Geschäftslogik und Erhöhung der Transparenz für den Entwickler
– Vereinfachung der Datenvermittlung in Mashups
– Unterstützung für den einfachen Zugriff von IoT-Geräten und die von ihnen angebotenen Dienste
– Unterstützung der Integration von Big Data Analytics in die Anwendungsentwicklung

Ziele
– REST-Darstellung von Geräten und Diensten für einfaches Mashup
– Vereinfachte visuelle Darstellungsart zur Spezifikation von komplexer Logik wie Big Data-Abfragen
– Abstraktion zur Vermeidung von Codegenerierung und automatisierter Datentransformation zwischen Systemkomponenten
– Überbrückung der technologischen Lücken von IoT & Big Data Systemen zur einfachen Integration

Vorgehensweise
– Entwicklung einer Middleware, die eine REST-Schnittstelle zu den Big Data-Systemen und verschiedenen großen Datenanalyse-Tools bietet
– Verwendung eines vorhandenen Mashup-Tools wie IBM Node-RED, um eine frühzeitige Integration durch die Prinzipien der REST-Kommunikation zu demonstrieren.
– Entwicklung eines Satzes von visueller Semantik zur Erleichterung der Spezifikation von großen Datenaufträgen innerhalb eines Mashup-Tools
– Entwicklung eines Kartographen, um die visuellen Flüsse in Big Data- Zielsprachen zur Datenabfrage abzubilden
– Entwicklung eines Kontrollblocks zwischen dem Mashup-Tool und dem Big Data System, um die vollständige Integration zu ermöglichen und die Probleme von Gleichzeitigkeit, Systemblockaden und mehrfachen Aufrufens der gleichen Geschäftslogik zu behandeln.