Model-driven development, deployment, and analysis of Internet of Things applications
Kirchhof, Jörg Christian; Rumpe, Bernhard (Thesis advisor); Wimmer, Manuel (Thesis advisor)
Düren : Shaker Verlag (2023)
Buch, Doktorarbeit
In: Aachener Informatik-Berichte, Software Engineering 54
Seite(n)/Artikel-Nr.: 318 Seiten : Illustrationen
Dissertation, RWTH Aachen University, 2022
Kurzfassung
Das Internet der Dinge (IoT) beschreibt die Idee, mit Sensoren und Aktuatoren ausgestattete Gegenstände untereinander und mit dem Internet zu verbinden. Die Entwicklung von IoT-Anwendungen ist aus verschiedenen Gründen komplex. Dazu gehören die Heterogenität der IoT-Geräte, die Tatsache, dass es sich bei IoT-Anwendungen normalerweise um verteilte Anwendungen handelt, und die Fehleranfälligkeit der Hardware und der Netzwerkverbindung. Modellgetriebene Methoden versprechen, die komplexe Entwicklung von IoT-Anwendungen durch die Anhebung des Abstraktionsniveaus handhabbar zu machen. In verwandten Arbeiten wurde eine Vielzahl von Komponenten-und-Konnektor (C&C) Architekturbeschreibungssprachen (ADLs) zur Entwicklung von IoT-Anwendungen vorgestellt. Diese konzentrieren sich jedoch hauptsächlich auf die frühen Entwicklungsphasen und vernachlässigen weitgehend Zuverlässigkeitsaspekte. Dementsprechend konzentriert sich diese Arbeit auf die modellgetriebene Entwicklung von IoT-Anwendungen über ihren gesamten Lebenszyklus hinweg. Wir stellen MontiThings vor, ein Ökosystem zur modellgetriebenen Entwicklung von IoT-Anwendungen. Basierend auf bestehenden Ansätzen spezifiziert das MontiThings-Ökosystem eine IoT-fokussierte C&C ADL unter Verwendung der MontiCore Language Workbench. MontiThings zielt darauf ab, ein Ökosystem anzubieten, das den Lebenszyklus von IoT-Anwendungen abdeckt, angefangen bei den ersten Architekturkonzepten bis hin zur Bereitstellung der Anwendung und der Analyse der Anwendung während der Laufzeit. In allen Phasen dieses Prozesses bietet MontiThings dabei Zuverlässigkeitsmechanismen, die den Entwicklern helfen können, robuste Anwendungen zu spezifizieren.Für Designaktivitäten bietet MontiThings eine C&C-Sprache, die das internationale Einheitensystem (SI) und die Object Constraint Language (OCL) integriert, um Ausnahmesituationen zur Laufzeit zu erkennen. Außerdem bietet MontiThings eine Integrationsmethode für Hardwaretreiber, die eine klare Trennung von Zuständigkeiten und somit die Wiederverwendung und das Testen von Komponenten unabhängig von ihrer Hardwareintegration ermöglicht. Ein Generator übersetzt die C&C-Architekturmodelle in C++-Code. Basierend auf einer Tagging-Sprache können die IoT-Komponenten mit synthetisierten digitalen Zwillingen integriert werden. Beim Deployment von Anwendungen ist die anforderungsbasierte Deployment-Methode von MontiThings in der Lage, nicht nur eine Verteilung der Komponenten auf die IoT-Geräte zu berechnen, sondern dem Nutzer auch aktiv Änderungen vorzuschlagen, sollten seine Anforderungen nicht erfüllbar sein. Fallen Geräte zur Laufzeit aus, kann MontiThings das Deployment automatisch an die geänderte Situation anpassen (sofern es im Rahmen der Anforderungen möglich ist) und den vorherigen Softwarestand der ausgefallenen Geräte wiederherstellen. Zum Verständnis unvorhergesehener Situationen zur Laufzeit stellt MontiThings Entwicklern modellgestriebene Analysedienste zur Verfügung. Insgesamt demonstriert MontiThings eine durchgängig modellgetriebene Methode zur Entwicklung von IoT-Anwendungen.
Einrichtungen
- Fachgruppe Informatik [120000]
- Lehrstuhl für Informatik 3 (Software Engineering) [121510]
Identifikationsnummern
- ISBN: 978-3-8440-8960-8
- RWTH PUBLICATIONS: RWTH-2023-01838