Martin Richter, Christine Jakobs and Matthias Werner
Programmiermodelle für mobile Cyber-physische Systeme
Immer mehr Recheneinheiten sind heutzutage miteinander verknüpft. Eine Integration von Sensoren und Aktoren in diese Netz- werke führt zur Entstehung von cyber-physischen Systemen (CPS), die aus heterogenen Ausführungseinheiten bestehen. Diese Geräte kommunizieren miteinander, um Daten auszutauschen und um Aufgaben koordiniert zu bearbeiten. Auf Basis ihrer Sensormessungen und den Vorgaben des Programmierers beeinflussen sie ihre physische Umwelt mittels Aktoren. Somit entsteht ein Regelkreis, der sowohl die Ausführungseinheiten als auch die Umgebung umfasst.
CPS haben weitreichende Einsatzgebiete. Automatisierte Produktionslinien, Feldarbeit durch Drohnen und Warenhauslogistik durch Roboter sind nur einige wenige Beispiele dafür. In die- sem Kontext wird die Betrachtung von Mobilität immer wichtiger, da sowohl Ausführungseinheiten (z.B. Roboter) als auch physische Objekte in ihrer Umgebung (z.B. zu transportierende Waren) ihren Ort über die Zeit ändern können.
In klassischen verteilten Systemen werden die Bewegung und die Aufenthaltsorte der Ausführungseinheiten durch die Bereitstellung von Orts- und Bewegungstransparenz vor dem Programmierer verborgen. Diese Vorgehensweise ist nachteilig wenn der Entwickler die Interaktion der Geräte mit ihrer Umgebung berücksichtigt, da dies eine entsprechende Positionierung der Ausführungseinheiten voraussetzen kann. Die Einbeziehung sowohl des Ortes als auch der der Bewegung der einzelnen Komponenten des Systems ist somit notwendig, um ihr fehlerfreies Zusammenspiel zu gewährleisten. Das schränkt die Aufrechterhaltung der Verteiltheitstransparenz ein, die jedoch benötigt wird, um dem Programmierer fehleranfälli- ge Aufgaben, wie zum Beispiel Kommunikation und Koordination, abzunehmen. Dementsprechend ist es erforderlich, Vorgehensweisen zu berücksichtigen, die die Verteiltheitstransparenz aufrechterhalten und gleichzeitig eine bewegungs- und ortsbewusste Ausführung von Anwendungen unterstützen.
Programmiermodelle erlauben es, eine abstrakte Sicht auf die Umsetzung dieser Eigenschaften zu haben. Sie beschreiben die Sicht des Entwicklers auf das System sowie die Interaktionen zwischen den Ausführungseinheiten. Beides hängt von der Systemarchitektur ab, da die entsprechenden Problemstellungen auf unterschiedlichen Ebenen gelöst werden können. Das in dieser Arbeit vorgestellte Architekturmodell berücksichtigt die klassischen Eigenschaften von CPS sowie die Mobilität von Ausführungseinheiten und ihrer physischen Umgebung. Das Modell ist in die Ausführungs-, Umgebungsdaten- und Anwendungsebene unterteilt. Die Ausfüh- rungsebene dient der Steuerung und Koordination der einzelnen
Ausführungseinheiten auf Basis von Zielen, die der Programmierer in der Anwendungsebene vorgibt. Diese Ziele beschreibt der Entwickler auf Basis von Umgebungsdaten, die die verschiedenen Ausführungseinheiten sammeln und in der Umgebungsdatenebene zu einem digitalen Abbild der physischen Umwelt zusammenführen.
Dieses Modell ermöglicht es, verschiedene Arten von Transparenz und Bewusstsein auf unterschiedlichen Ebenen zu berücksich- tigen. Das Ziel ist es, dem Programmierer möglichst viel Transparenz bereitzustellen, zeitgleich aber eine orts- und bewegungsbewusste Ausführung von Anwendungen zu ermöglichen.
Ergebnis der vorliegenden Arbeit ist die Einordnung bestehender Programmiermodelle mit Hinblick auf das vorgestellte Architekturmodell mithilfe einer systematischen Literaturrecherche. Es wird begutachtet auf welche Schichten des Architekturmodells sich ak- tuelle Ansätze konzentrieren und welche Arten von Transparenz und Bewusstsein sie auf diesen bereitstellen. Das macht es uns möglich, einzuschätzen, inwiefern aktuelle Modelle die dargestellten Herausforderungen lösen und welche Probleme noch offen sind.