Data-Centric Middleware, moderner Backbone in Cyber-Physical Systems
Cyber-Physical Systems (CPS) haben eine zentrale Funktion bei der Industrie 4.0. Diese Systeme besitzen kollaborierende Rechenkomponenten, die in intensiver Verbindung mit der physischen Umgebung und ihren laufenden Prozessen stehen. Wesentliche Bestandteile der CPS sind mobile und bewegliche Einrichtungen, Geräte und Maschinen und Roboter, eingebettete Systeme und vernetzte IoT-Geräte. IoT-Technologien gehören mittlerweile zum Alltag, sie sind in Millionen von Geräten eingebettet und im Hintergrund der modernen Welt immer und überall aktiv.
Die Interaktion zwischen den physischen und Cyber-Elementen ist von zentraler Bedeutung. Es reicht nicht aus, die physikalischen Komponenten und die Rechenkomponenten getrennt zu verstehen. Die Interaktionen zwischen diesen Komponenten zu verstehen, ist viel wichtiger.
Die Anwendungen für CPS werden zunehmend dezentralisiert und auf verschiedene Gerätetypen verteilt, die dynamische Netzwerke bilden und ereignisgesteuert interagieren. Dies erfordert eine neue Generation von Middleware, die Daten dynamisch austauschen kann. Im Folgenden werden verschiedenen Middleware-Technologien miteinander verglichen und deren Einsatzfähigkeit für CPS bewertet.
Nachrichtenzentrierte Middleware
Bestehende verteilte Systeme verwenden traditionell eine nachrichtenzentrierte Architektur für den Austausch von Daten zwischen Anwendungen im Netzwerk. Dieser Ansatz führt zu erheblichen Ineffizienzen, die Projekte während des gesamten Entwicklungs-, Wartungs- und Bereitstellungszyklus Zeit und Geld kosten. Darüber hinaus kann die Implementierung nachrichtenzentrierter Systeme kompliziert sein, was berechtigte Bedenken hinsichtlich der Robustheit und Leistung dieser Systeme in der CPS-Welt aufwirft.
Lose gekoppelte Kommunikation
Die Anwendungen in CPS und IoT nutzen weiträumige oder große Netzwerke, in denen die Teilnehmer anonym sind. Diese Geräte müssen sich dynamisch trennen, koppeln oder verschieben können. Dies bedarf einer lose gekoppelten Kommunikation.
Die synchrone Kommunikation, wie sie in objektorientierter Middleware (OOM) wie Java RMI und CORBA bereitgestellt wird, ist für lose gekoppelte Sender und Empfänger nicht geeignet. OOM-Anbieter fügten asynchrone Erweiterungen für die Nachrichtenübermittlung hinzu, aber statische Abhängigkeiten bleiben bestehen.
Message Oriented Middleware (MOM), zugrunde liegende ereignisbasierte Systeme, ermöglicht die Interaktion heterogener, verteilter und sich dynamisch ändernder Komponenten großer Informationssysteme. Beispiele hierfür sind JMS-API von Sun, MQSeries von IBM, Microsoft Message Queue und Rendezvous von TIBCO. Diese Systeme entwickelten sich zu einer ereignisbasierten Middleware, die auf dem Publish-/Subscribe-Kommunikationsparadigma basiert und populär geworden sind, da asynchrone Many-to-Many-Kommunikation gut zum Aufbau reaktiver verteilter Systeme geeignet ist.
Publish-/Subscribe-Middleware
Publish-/Subscribe-Middleware ist die Schlüsseltechnologie für datenzentriertes Design. Publish-/Subscribe-Knoten "abonnieren" die benötigten Daten und "veröffentlichen" Informationen, die sie produzieren.
Publish-Subscribe ist eine leistungsstarke Abstraktion zum Erstellen verteilter Anwendungen. Die Kommunikation basiert auf Nachrichten und kann anonym sein, wobei die Teilnehmer entkoppelt werden, um statische Abhängigkeiten in einer verteilten Umgebung zu beseitigen. Es ist eine gute Lösung, um hochdynamische, dezentrale Systeme mit einer großen Anzahl von Beteiligten zu unterstützen.
Die am häufigsten verwendete ereignisbasierte Middleware enthält drei Hauptelemente (s. Abb. 1): einen Publisher, der Ereignisse (Nachrichten) veröffentlicht, einen Abonnenten, der seine Interessen für das System abonniert, und ein Event-Broker-Netzwerk, um die Ereignisse abzugleichen und an die entsprechenden Abonnenten zu übermitteln.
Die Merkmale von Publish-/Subscribe-Paradigma sind wie folgt:
- Keine direkte Verbindung oder Wissen zwischen Publisher und Abonnenten.
- Beim Veröffentlichen und Abonnieren von Ereignissen ist keine synchrone Kommunikation erforderlich.
- Die Publisher und Abonnenten müssen nicht gleichzeitig ausgeführt werden.
In einer verteilten ereignisbasierten Middleware bilden die Broker ein Agenten-Netzwerk, das Routing-, Matching- und Filterdienste bereitstellt.
Mit fortschreitenden Middleware-Technologien wurden bisher Tausende an Designs und Systemen mit der Publish-/Subscribe-Methode entwickelt. Die neue "hyper connected"-Welt der CPS stellt aber die Middleware-Technologie vor neue Herausforderungen. Die Interaktionen von CPS- und IoT-verbundenen Geräten müssen viel schneller sein als herkömmliche Systeme. Design von Systemen mit Millionen Beteiligten (s. exponentielles Wachstum Abb. 2) ist mit der alten Middleware-Technologie nicht mehr effizient.
Diese Netzwerke erfordern eine Leistung, die weit über die Funktionen herkömmlicher Middleware zum Veröffentlichen und Abonnieren hinausgeht. Eine Änderung vom codezentrierten oder architekturzentrierten Denken zum datenzentrierten Design ist erforderlich. Dieser Bedarf führte zu datenzentrierten verteilten Echtzeit-Publish-/Subscribe-Systemen, die der Backbone der modernen CPS sind.
Der Aufstieg des datenzentrierten Denkens
Im Gegensatz zur herkömmlichen Middleware stellt eine datenzentrierte Architektur einen grundlegend anderen Ansatz für die verteilte Kommunikation dar und weist keine der Mängel der Nachrichtenzentrierung auf. Auf diese Weise können verteilte Systeme, die auf dem datenzentrischen Modell basieren, eine Verbesserung in Bezug auf Kosten, Markteinführungszeit, Zuverlässigkeit und Leistung erzielen.
Die Essenz der Datenzentrizität besteht darin, dass ein solches System weiß, welche Daten es speichert und steuert, wie diese Daten gemeinsam genutzt werden. Anstatt Clients und Server zu konfigurieren oder Datenzugriffsobjekte zu erstellen und Remote-Methoden aufzurufen, impliziert das datenzentrierte Design, dass der Entwickler den Informationsaustausch direkt steuert.
Die Datenzentrizität stellt sicher, dass alle Nachrichten, die Kontextinformationen enthalten, die eine Anwendung benötigt, um die empfangenen Daten zu verstehen. Es vereinfacht die Entwicklung verteilter Systeme, indem Softwareentwickler sich auf den spezifischen Zweck ihrer Anwendungen konzentrieren und nicht auf die Mechanismen der Informationsübertragung zwischen Anwendungen und Systemen. Datenorientierte Entwickler schreiben oder spezifizieren keinen Code. Sie erstellen ein "Datenbedarfsliste", die definiert, wer welche Daten benötigt.
Programmierer, die datenzentrierte Middleware verwenden, geben vor, wie und wann Daten gemeinsam genutzt werden sollen. Dann beantworten sie Fragen wie: Woher kommen die Daten? Wie schnell kommen die Daten an? Wie zuverlässig muss die Lieferung sein? Müssen die Daten aufbewahrt werden? Was passiert, wenn ein Knoten ausfällt? Mit diesen Informationen besteht die nächste Aufgabe darin, den Informationsfluss abzubilden.
Der Bedarf an datenzentrierter Middleware führte zum ersten Standard für verteilte Echtzeitsysteme, dem DDS-Standard (Data Distribution for Real Time Systems) der Object Management Group (OMG). DDS von OMG ist ideal für CPS- und IoT-Systeme.
OMG Data Distribution Service (DDS)
DDS ist eine hochentwickelte datenzentrierte Middleware und geht weit über einfache Veröffentlichungs- und Abonnementfunktionen hinaus. Es ermöglicht eine sehr hohe Leistung (Zehntausende von Nachrichten pro Sekunde) und eine genaue Kontrolle über viele Parameter der Dienstqualität, sodass Entwickler den Informationsfluss sorgfältig modulieren können.
Mithilfe von DDS-basierenden Publish-/Subscribe-Modellen wurde eine Spezifikation entwickelt, die eine asynchrone Nachrichtenübermittlung zwischen gleichzeitig betriebenen Subsystemen verwendet und eine Vielzahl anonymer Informationsproduzenten mit vielen anderen gleichermaßen anonymen Informationskonsumenten verbindet. Die Datenproduzenten und -konsumenten bleiben anonym, was zu einer losen Kopplung von Subsystemen und einem robusten Service führt, der die Teilnehmer voneinander entkoppelt sowie Standorttransparenz und hohe Leistung bietet.
DDS bietet einen QoS-(Quality of Service)-gesteuerten Datenaustausch für die Kontrolle der Datenqualität. Anwendungen kommunizieren durch Veröffentlichen und Abonnieren von Themen (Topics), die durch ihren Themennamen gekennzeichnet sind. Abonnements können Zeit- und Inhaltsfilter angeben und nur eine Teilmenge der Daten abrufen, die im Topic veröffentlicht werden.
Bei sicherheitskritischen Anwendungen steuert DDS den Zugriff auf sensitive Daten und erzwingt eine Verschlüsselung der Daten im laufenden Betrieb.
Global Data Space (GDS)
Die Schlüsselabstraktion bei DDS ist der Global Data Space (GDS), welcher einen vollständig verteilten Datenvorrat darstellt. Die völlige Verteilung des globalen Datenraums ist wichtig, um Fehlerquellen und einzelne Engpässe zu vermeiden. Publisher und Abonnenten können dem GDS jederzeit beitreten oder ihn verlassen und werden dynamisch entdeckt. Die dynamische Entdeckung von Publisher und Abonnenten werden vom GDS durchgeführt und sind nicht auf irgendeine Art eines zentralen Registers angewiesen, wie es in anderen Pub-/Sub-Technologien wie dem Java Message Service (JMS) der Fall ist. Für die Anwendung sieht der globale Datenraum wie ein lokaler Speicher aus, auf den über eine API zugegriffen wird. Es wird auf einem lokalen Speicher geschrieben, in der Realität sendet DDS allerdings Nachrichten, um die entsprechenden Speicher auf Remote-Knoten zu aktualisieren. Der globale Datenraum teilt Daten zwischen eingebetteten, mobilen und Cloud-Anwendungen über jeden Transportweg hinweg, unabhängig von Sprache oder System, und das mit extrem geringer Latenz. Abb. 4 zeigt einen Beispieleinsatz von GDS in der Energieproduktion.
Zusammenfassung und Ausblick
Dieser Artikel bietet einen ersten Schritt in das aufstrebende Feld der Datenzentrierung-Vernetzung. Das neue Paradigma führt zu einer grundlegenden Änderung der Funktionalität auf Netzwerkebene der asynchronen Kommunikation. Sie verwirklicht die Vision einer datenzentrierten und netzwerk-unabhängigen Vernetzung von Geräten. Dies ist besonders wichtig für die Vernetzung von Cyper-Physical Systems mit Millionen von Geräten, die über heterogene, drahtlose Netzwerke miteinander lose gekoppelt kommunizieren müssen. Eine datenorientierte Vernetzung erleichtert es, robuste Anwendungen für dieses Feld zu entwickeln, die der Netzwerkdynamik standhalten.