Beschreibung
Bereitstellen von einem Dienst in einem Knoten eines Cyber- physikalischen Systems mit wenigstens zwei Anwendungsmodulen
Die Erfindung betrifft ein rechnerimplementiertes Verfahren zum Bereitstellen von wenigstens einem Dienst in einem Knoten beziehungsweise Prozess eines Cyber-physitalischen Systems mit wenigstens zwei Anwendungsmodulen, wobei eine Kommunika- tion zwischen den wenigstens zwei Anwendungsmodulen über je- weilige anwendungsmodulspezifische angebotene Anwendungs- schnittstellen der wenigstens zwei Anwendungsmodule erfolgt, wobei eine jeweilige der anwendungsmodulspezifischen angebo- tenen Anwendungsschnittstellen einen Kommunikationszugang zum jeweiligen Anwendungsmodul darstellt. Ferner betrifft die Er- findung ein Rechnerprogrammprodukt umfassend ein Programm für eine Rechnereinheit. Weiterhin umfasst die Erfindung einen elektronisch lesbaren Datenträger mit darauf gespeicherten elektronisch lesbaren Steuerinformationen. Darüber hinaus be- trifft die Erfindung ein Cyber-physikalisches System mit ei- nem Knoten beziehungsweise Prozess, der wenigstens zwei An- wendungsmodule aufweist, wobei ein jeweiliges der wenigstens zwei Anwendungsmodule eine jeweilige anwendungsmodulspezifi- sche angebotene Anwendungsschnittstelle aufweist, über die eine Kommunikation zwischen den wenigstens zwei Anwendungsmo- dulen erfolgt, wobei eine jeweilige der anwendungsmodulspezi- fischen angebotenen Anwendungsschnittstellen einen Kommunika- tionszugang zum jeweiligen Anwendungsmodul darstellt. Schließlich betrifft die Erfindung auch ein Ankoppelmodul.
Gattungsgemäße rechnerimplementierte Verfahren, Rechnerpro- grammprodukte sowie elektronisch lesbare Datenträger sind im Stand der Technik ebenso umfänglich bekannt, ebenso wie Cy- ber-physikalische Systeme und Ankoppelmodule. Die gattungsge- mäßen Verfahren, Rechnerprogrammprodukte und elektronisch lesbare Datenträger dienen insbesondere der Nutzung in einem Cyber-physikalischen System. Ein Cyber-physikalisches System (englisch: cyber-physical System; CPS) bezeichnet einen Ver-
bund von informationstechnischen beziehungsweise software- technischen Komponenten mit mechanischen und/oder elektroni- schen Vorrichtungen, die über eine Dateninfrastruktur, bei- spielsweise ein Kommunikationsnetzwerk wie ein lokales oder ein globales Kommunikationsnetzwerk, insbesondere das Inter- net, miteinander in Kommunikationsverbindung stehen. Insbe- sondere kann es sich dabei um einen Betriebssystemprozess handeln, innerhalb dessen kommuniziert wird, beispielsweise indem Anwendungsmodule miteinander kommunizieren.
Ein Cyber-physikalisches System zeichnet sich unter anderem durch einen hohen Grad an Komplexität aus. Cyber- physikalische Systeme weisen in der Regel ein oder mehrere eingebettete Systeme auf, die mittels den Kommunikationsnetz- werken miteinander kommunikationstechnisch in Verbindung ste- hen. Ein Cyber-physikalisches System kann zum Beispiel ein intelligentes Stromnetz, eine neuartige Industrieanlage, die sich dynamisch an jeweilige Produktionsbedingungen anpassen kann, ein Roboter und/oder dergleichen sein. Cyber- physikalische Systeme können zum Beispiel auch medizinische Geräte beziehungsweise Systeme, altersgerechte Assistenzsys- teme, Verkehrssteuerungssysteme, Verkehrs1ogistiksysteme, vernetzte Sicherheitssysteme, vernetzte Fahrassistenzsysteme für Fahrzeuge, industrielle Prozesssteuerungssysteme, Automa- tisierungssysteme, Umweltbeeinflussungs- und Beobachtungssys- teme, Energieversorgungsmanagementsysteme, militärische Ver- netzungssysteme, Infrastruktursysteme für Kommunikation und Kultur und/oder dergleichen sein. Darüber hinaus finden sie Anwendung bei Autonomie Computing, welches Möglichkeiten der Selbstkonfiguration, der SelbstOptimierung und -heilung um- fassen kann. Autonomie Computing ermöglicht Fehlererkennung und Fehlertoleranz in rechnerbasierten Systemen. Autonomie Computing betrifft unter anderem die Selbstorganisation be- ziehungsweise eine Einsatzebene.
Bei Cyber-physikalischen Systemen besteht Bedarf an Steuer- barkeit und Beobachtbarkeit des Cyber-physikalischen Systems, beispielsweise von Attributen von Cyber-physikalischen Syste-
men, die autonom agieren, in wechselnden Umgebungen betrieben werden können und deshalb schnell zu entwickelnde beziehungs- weise ändernde System- beziehungsweise Produkteigenschaften aufweisen und/oder mit geringen Systemressourcen in engen Grenzen betrieben werden können.
Dieser Bedarf hat verschiedene Facetten:
- Ein Mangel an Kontrolle über Performanceattribute von Rech- nerprogrammen von Cyber-physikalischen Systemen, die zum Bei- spiel auf Feldgeräte verteilt sind und dort ablaufen.
- Systemserviceebenen für Funktionen der Rechnerprogramme des Cyber-physikalischen Systems sind schwer zu bestimmen und deshalb schwierig sicherzustellen.
- Systemserviceebenen für Funktionen der Rechnerprogramme des Cyber-physikalischen Systems, die sich bei verschiedenen Modi ändern und verschiedene Lebenszyklusphasen aufweisen.
- Es ist schwierig zu bestimmen, wie Funktionen von Cyber- physikalischen Systemen von Systemklienten genutzt werden, beispielsweise in Bezug auf Nutzungsprofile, Frequenz, Daten- ein- beziehungsweise -ausgabe und/oder dergleichen.
- Aufwendiges Überwachen und Testen von Feldgeräten.
- Programmiersprachen, Programmierwerkzeuge sowie provider- spezifische Lösungen sind komplex, schwer zu adaptieren be- ziehungsweise konsistent zu konfigurieren und im Übrigen in anwendungsspezifischen Umgebungen schwierig zu auditieren.
- Wenn das Rechnerprogramm eines Cyber-physikalischen System- knotens beziehungsweise -teils adaptierbar ist, dann gewöhn- lich vor einer Systemlaufzeit.
Diese Probleme werden verschärft durch komplexe Systeme mit kurzen System-, Produkt-, Merkmals1ebenszyklen und kompli-
zierten Systemstrukturen. Verfahren, die Programmentwicklung und -bereitStellung (DevOps) kombinieren und damit die Ge- schwindigkeit erhöhen, neue, aktualisierte und/oder geänderte Programmmerkmale zu einem Zielsystem zu führen, erschweren ferner die Situation.
Bisher konnten die vorgenannten Probleme lediglich im Rahmen von Re-Build, Test, Re-Deploy einer ganzen Systemprogrammie- rung behandelt werden. Dies sind jedoch aufwendige, teure und zeitaufwendige Prozesse. Bisher ist es ferner üblich, eine Aspekt-orientierte Programmierung (AOP) vorzusehen. So können Cross-Cutting beziehungsweise Cross-Functional Services (CFS) beziehungsweise übergreifende funktionale Dienste, die einige Teile des Progranunsystems betreffen, wie beispielsweise Log- ging von Performance Eigenschaften sowie auch Performance Au- diting, in spezifischen Code Blocks organisiert sein. Spezi- fische Softwareteile werden mit den benötigten CFS versehen. Spezifische Compiler übersetzen die CFS in Rechnerprogramme auf Source-Code-Basis oder auf Maschinen-Code-Basis.
Darüber hinaus können Performancedienste und Laufzeitumgebun- gen von CPS nur vor der Laufzeit konfiguriert werden. Die Konfiguration beziehungsweise Adaption von Performancediens- ten, Parametern von CPS-Anwendungen und ihre Harmonisierung mit Betriebssystemdiensten beziehungsweise -parametern ist eine Anwendungsentwicklungsaufgabe. Die Erfindung bezieht sich auf die vorgenannten Probleme, insbesondere in Bezug auf Cyber-physikalische Systeme.
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein gat- tungsgemäßes Verfahren, insbesondere für ein Cyber- physikalisches System, ein Rechnerprogrammprodukt, einen elektronisch lesbaren Datenträger, ein Cyber-physikalisches System sowie ein Ankoppelmodul dahingehend weiterzubilden, dass die vorgenannten Probleme reduziert werden können.
Als Lösung werden mit der Erfindung ein Verfahren, ein Rech- nerprogrammprodukt, ein elektronisch lesbarer Datenträger,
ein Cyber-physikalisches System sowie ein Ankoppelmodul gemäß den unabhängigen Ansprüchen vorgeschlagen.
Vorteilhafte Weiterbildungen ergeben sich durch Merkmale der abhängigen Ansprüche.
In Bezug auf ein gattungsgemäßes Verfahren wird mit der Er- findung insbesondere vorgeschlagen, dass zumindest die anwen- dungsmodulspezifischen angebotenen Anwendungsschnittstellen der wenigstens zwei Anwendungsmodule durch ein Ankoppelmodul implementiert werden, welches die Kommunikation zwischen den wenigstens zwei Anwendungsmodulen herstellt und welches den wenigstens einen Dienst aktivierbar bereitstellt.
In Bezug auf ein gattungsgemäßes Rechnerprogrammprodukt wird insbesondere vorgeschlagen, dass das Programm Programmcodeab- schnitte eines Programms zum Ausführen der Schritte eines Verfahrens gemäß der Erfindung aufweist, wenn das Programm durch die Rechnereinheit ausgeführt wird, sodass wenigstens ein Dienst in einer Kommunikation zwischen wenigstens zwei Anwendungsmodulen eines Cyber-physikalischen Systems akti- vierbar bereitgestellt wird.
In Bezug auf einen gattungsgemäßen elektronisch lesbaren Da- tenträger mit darauf gespeicherten elektronisch lesbaren Steuerinformationen wird insbesondere vorgeschlagen, dass die Steuerinformationen zumindest ein Rechnerprogrammprodukt ge- mäß der Erfindung umfassen und derart ausgestaltet sind, dass bei Steuerung einer Rechnereinheit unter Nutzung der Steuer- informationen des Datenträgers die Rechnereinheit das Verfah- ren der Erfindung durchführt.
In Bezug auf ein gattungsgemäßes Cyber-physikalisches System wird mit der Erfindung insbesondere vorgeschlagen, dass das Cyber-physikalische System ein Ankoppelmodul aufweist, in welchem zumindest die anwendungsmodulspezifischen angebotenen Anwendungsschnittstellen der wenigstens zwei Anwendungsmodule implementiert sind und welches ausgebildet ist, die Kommuni-
kation zwischen den wenigstens zwei Anwendungsmodulen herzu- stellen und wenigstens einen Dienst aktivierbar bereitzustel- len.
In Bezug auf ein gattungsgemäßes Ankoppelmodul wird insbeson- dere vorgeschlagen, dass das Ankoppelmodul ausgebildet ist, wenigstens einen Dienst aktivierbar in einer Kommunikation zwischen wenigstens zwei Anwendungsmodulen bereitzustellen, wobei das Ankoppelmodul für das Cyber-physikalische System gemäß der Erfindung ausgebildet ist.
Die Erfindung basiert unter anderem auf dem Gedanken, dass durch das Ankoppelmodul, im Folgenden auch CPS Interface Mo- dule (CIM) genannt, Schnittstellen von CPS Funktionsmodulen (englisch: CPS Function Module; CFM) beziehungsweise Anwen- dungsschnittstellen, beispielsweise des wenigstens einen An- wendungsmoduls, das heißt, Schnittstellen dieser Module aus den CPS Funktionsmodulen extrahiert und in dem separaten An- koppelmodul zusammengeführt werden können, sodass die Kommu- nikation zwischen dem wenigstens zwei Anwendungsmodulen über das Ankoppelmodul erfolgen kann. Dadurch wird die Möglichkeit geschaffen, mittels des Ankoppelmoduls beziehungsweise des CIM einen zusätzlichen neuen Dienst aktivierbar bereitzustel- len.
Das Anwendungsmodul kann zum Beispiel ein Steuermodul eines Roboterarms oder dergleichen sein. Das Steuermodul kann bei- spielsweise eine Rechnereinheit aufweisen, die dem Steuern des Roboterarms dient. Die Anwendungsmodule stellen jeweils eine Schnittstelle bereit, nämlich die Anwendungsschnittstel- le, die vorzugsweise eine anwendungsmodulspezifische angebo- tene Anwendungsschnittstelle darstellt. Über diese Schnitt- stelle stellt das Anwendungsmodul einen Kommunikationszugang bereit, über den beispielsweise Daten ausgetauscht werden können. Die Anwendungsschnittstelle kann zum Beispiel auch als Programmierschnittstelle (englisch: application program- ming Interface; API) ausgestaltet sein, über die ein Pro- grammteil von einem Programmsystem anderen Rechnerprogranunen
zur Anbindung an das Programmsystem zur Verfügung gestellt werden kann. Natürlich ist die Erfindung hierauf nicht be- schränkt. Dem Grunde nach könnten die Anwendungsmodule auch beide jeweilige Rechnereinheiten oder dergleichen sein.
Über die Schnittstellen ist es möglich, die Kommunikation zwischen den Anwendungsmodulen zu führen. Das erste Anwen- dungsmodul kann zu diesem Zweck seine Daten über die Anwen- dungsschnittstelle des zweiten Anwendungsmoduls an das jewei- lige zweite Anwendungsmodul übermitteln. Umgekehrt kann das zweite Anwendungsmodul seine Daten über die Anwendungs- schnittstelle des ersten Anwendungsmoduls an das erste Anwen- dungsmodul übermitteln. Dadurch kann eine bidirektionale Kom- munikation zwischen den Anwendungsmodulen erreicht werden. Je nach Bedarf kann unter Umständen auch eine unidirektionale Kommunikation zwischen den Anwendungsmodulen ausreichen, bei- spielsweise wenn eines der Anwendungsmodule durch einen Sen- sor oder dergleichen gebildet ist, der Sensordaten an das An- wendungsmodul liefert, eines der Anwendungsmodule Bewegungs- daten an das andere der Anwendungsmodule zum Ausführen einer vorgebbaren Bewegung liefert und/oder dergleichen. Darüber hinaus braucht die Erfindung natürlich nicht auf eine Kombi- nation von zwei Anwendungsmodulen begrenzt zu sein. Vielmehr besteht die Möglichkeit, zusätzliche Anwendungs- beziehungs- weise Steuermodule ergänzend zu berücksichtigen. Für das Grundprinzip der Erfindung ist dies jedoch nicht relevant.
Das Ankoppelmodul beziehungsweise CIM ermöglicht es nun, dadurch, dass die Schnittstellen im Ankoppelmodul implemen- tiert sind, auf einfache Weise zusätzliche Dienste verfügbar zu machen.
Eine Funktion gibt an, was das Cyber-physikalische System (CPS) ausführen soll. Sie stellt somit eine Operation bezie- hungsweise einen Betrieb in einer Funktionsdomäne des Cyber- physikalischen Systems dar. Ein solches Cyber-physikalisches System kann zum Beispiel ein Roboterarm mit einem Greifer sein, insbesondere in einer Domäne Zusammenbau von Gütern im
weitesten Sinne mit aufgabenbezogenen Funktionen, wie zum Beispiel den Roboterarm bewegen, den Greifer zu öffnen, ein Werkstück ergreifen, in Uhrzeigerrichtung schrauben und/oder dergleichen . Funktionen sind in CPS-Funktionsmodulen (CFN) enthalten beziehungsweise implementiert.
Ein Service kann dagegen das Bestimmen von demjenigen sein, was das Cyber-physikalische System tun soll. Darüber hinaus ist eine Operation in einer Überwachungsdomäne eines Cyber- physikalischen Systems, daher auch extra-funktionaler Service genannt, zum Beispiel ein Dienst zum Überwachen, Testen und Sichern von Funktionen des Cyber-physikalisches Systems. Dienste sind in CPS Service Modulen (CSM) enthalten bezie- hungsweise implementiert.
Somit kann ein einfacher Mechanismus zwischen zwei oder mehr miteinander kommunizierenden Modulen eines Cyber- physikalischen Systemknotens beziehungsweise -prozesses rea- lisiert werden, um modulare, extra-funktionale Dienste in in- dividuelle Cyber-physikalische Systemknoten beziehungsweise - prozesse dynamisch zu laden, zu steuern, beispielsweise zu aktivieren und zu deaktivieren, und dynamisch zu entfernen, und zwar insbesondere während der Laufzeit des Cyber- physikalischen Systems. Der Mechanismus installiert hierfür Eingriffspunkte (englisch: mount point) im wenigstens einen Ankoppelmodul, an denen die extra-funktionalen Dienste in se- paraten zielgerichteten Dienste-Modulen, die während der Laufzeit eines Cyber-physikalischen Systemknotens beziehungs- weise prozesses dynamisch sein können, eingreifen können, gesteuert werden können und auch wieder abgekoppelt werden können.
Extra-funktionale Dienste können das Überwachen und Testen von individuellen Funktionen und Daten, die Kostenplanung von Ressourcen, beispielsweise Ausführzeiten für Funktionen, An- zahl der Aktivierung von Funktionen, einen Umfang der Funkti- onen, das Prüfen von Funktionenzugriffsrechten, das Auswahlen und Umschalten zwischen alternativen, jedoch unterschiedli-
chen Funktionenimplementierungen, zum Beispiel in Rückfallsi- tuationen oder ÜbernahmeSituationen, und das Testen von Be- dingungen zwischen miteinander kommunizierenden Funktions- Modulen umfassen. Die Funktions-Module können zum Beispiel Anwendungsmodule sein.
Das Integrieren von Eingriffspunkten in einen Cyber- physikalischen Systemknoten beziehungsweise -prozess mittels des vorgeschlagenen Mechanismus der Erfindung ändert nicht die Struktur beziehungsweise Implementierung der Cyber- physikalischen Funktionen in den miteinander kommunizierenden Funktions-Modulen .
Die Funktions-Module sind vorzugsweise zumindest teilweise durch eine oder mehrere Rechnereinheiten bereitgestellt, die mit einem geeigneten Rechnerprogramm betrieben werden. Dem Grunde nach besteht jedoch auch die Möglichkeit, eines oder mehrere der Funktions-Module zumindest teilweise auch mittels einer entsprechend geeigneten HardwareSchaltung zu realisie- ren. Besonders vorteilhaft erweist es sich, wenn die Funkti- ons-Module zumindest teilweise Cloud-basiert realisiert sind beziehungsweise bereitgestellt werden. Dadurch besteht die Möglichkeit, die Funktions-Module nahezu unabhängig von einem Ort für die gewünschte Funktion bereitzustellen und gegebe- nenfalls auch zu warten.
Das Cyber-physikalisches System, insbesondere das Anwendungs- modul, kann eine elektronische Schaltung, eine Rechnerein- heit, Kombinationen hiervon und/oder dergleichen aufweisen. Die Rechnereinheit kann derart eingerichtet sein, dass sie das Verfahren gemäß der Erfindung zumindest teilweise ausfüh- ren kann, zu welchem Zweck sie mittels des Rechnerprogramms entsprechend gesteuert wird. Sowohl die Rechnereinheit als auch die elektronische Schaltung können durch einen oder meh- rere Halbleiter-Chips gebildet sein. Darüber hinaus kann das Cyber-physikalische System, insbesondere das Anwendungsmodul, auch diskrete elektronische Bauelemente sowie Kombinationen mit Halbleiter-Chips aufweisen. Insbesondere kann das Cyber-
physikalische System, insbesondere das Anwendungsmodul, eine Speichereinheit umfassen, in der zumindest teilweise Trai- ningsdatensätze hinterlegt sein können. Darüber hinaus kann in der Speichereinheit zumindest teilweise das Rechnerpro- gramm für die Rechnereinheit gespeichert sein. Das Cyber- physikalisches System kann zumindest teilweise auch Cloud- basiert ausgebildet sein. Insbesondere kann die Rechnerein- heit als verteilte Rechnereinheit ausgebildet sein, vorzugs- weise zumindest teilweise eine Cloud bildend ausgebildet sein.
Das vorgenannte Rechnerprogrammprodukt kann mittels eines rechnerlesbaren Speichermediums bereitgestellt sein. Darüber hinaus kann das Rechnerprogramm direkt in einen internen Speicher der Rechnereinheit ladbar sein. So ist es beispiels- weise möglich, das Rechnerprogramm aus einem Netzwerk, insbe- sondere dem Internet, von einer Datenquelle, beispielsweise einem Server, herunterzuladen und in einem internen Speicher der Rechnereinheit zu laden, sodass die Rechnereinheit das Rechnerprogramm ausführen kann. Vorzugsweise umfasst das Rechnerprogrammprodukt ein rechnerlesbares Medium, auf wel- chem die Progranunkodeabschnitte gespeichert sind. Ein solches rechnerlesbares Medium kann beispielsweise ein Speicherbau- stein, beispielsweise ein PROM, eine Compact-Disk, ein USB- Stick oder dergleichen sein.
Das Cyber-physikalische System ist unter Nutzung des Ankop- pelmoduls ausgebildet, wenigstens einen Dienst in einer Kom- munikation zwischen wenigstens zwei Anwendungsmodulen bereit- stellen zu können. Zu diesem Zweck sieht das Ankoppelmodul vor, dass im Ankoppelmodul zumindest die Anwendungsschnitt- stelle von wenigstens einem der wenigstens zwei Anwendungsmo- dule implementiert ist. Darüber hinaus weist das Ankoppelmo- dul einen aktivierbaren Dienst auf, der wie oben bereits erläutert in die Kommunikation zwischen dem Steuermodul und dem Anwendungsmodul eingreifen kann, und zwar vorzugsweise an einem vorgegebenen beziehungsweise vorgebbaren Eingriffs- punkt, und der entsprechend gesteuert werden kann. Der Ein-
griffspunkt kann automatisiert ermittelt werden, beispiels- weise abhängig von der Kommunikation zwischen den wenigstens zwei Anwendungsmodulen.
Darüber hinaus kann der Dienst natürlich auch abgekoppelt werden, insbesondere wenn er nicht mehr benötigt wird. Das Ankoppelmodul ist somit zwischen den wenigstens zwei Anwen- dungsmodulen zwischengeschaltet und stellt die Kommunikati- onsverbindung zwischen diesen beiden Anwendungsmodulen her. Dadurch besteht die Möglichkeit, ohne die bisherige bestim- mungsgemäße Funktion in Bezug auf die Kommunikation zwischen den wenigstens zwei Anwendungsmodulen zu stören, zusätzliche Dienste bedarfsweise bereitzustellen und zu aktivieren bezie- hungsweise zu deaktivieren. Dadurch kann das Cyber- physikalische System insgesamt verbessert werden, insbesonde- re hinsichtlich seiner Flexibilität und Nutzung.
Darüber hinaus wird vorgeschlagen, dass der wenigstens eine Dienst über eine Diensteschnittstelle des Ankoppelmoduls ge- laden wird. Zu diesem Zweck kann das Ankoppelmodul über die Diensteschnittstelle mit einer entsprechenden Datenbank be- ziehungsweise Datenquelle beziehungsweise Dienstequelle in Kommunikationsverbindung stehen. Beispielsweise kann vorgese- hen sein, dass ein vorgegebener Dienst von einer Zentrale ge- steuert über die Diensteschnittstelle in das Ankoppelmodul geladen wird. Das Ankoppelmodul kann zu diesem Zweck bei- spielsweise steuerungstechnisch mit der Zentrale Kommunikati- onsverbindung stehen.
Darüber hinaus wird vorgeschlagen, dass der wenigstens eine Dienst nach dem Laden im Ankoppelmodul betrieben wird. Durch das Betreiben des Dienstes im Ankoppelmodul ist es also mög- lich, den entsprechenden Dienst zu nutzen und zur Verfügung zu stellen. Darüber hinaus besteht natürlich auch die Mög- lichkeit, durch das Betreiben des Dienstes eine Steuerungs- möglichkeit für das Ankoppelmodul, insbesondere für den be- triebenen Dienst, bereitzustellen, um beispielsweise weitere Funktionalitäten im Hinblick auf die Nutzung des Dienstes
steuern zu können. Darüber hinaus können natürlich auch durch die Nutzung des Dienstes erfasste und/oder ermittelte Daten bereitgestellt werden.
Vorzugsweise wird der wenigstens eine Dienst nach dem Betrei- ben aktivierbar bereitgestellt. Dadurch kann die Nutzung des Dienstes, insbesondere in Bezug auf die Kommunikationsverbin- dung, bedarfsgerecht gesteuert werden. Der Dienst braucht so- mit nicht permanent aktiviert zu sein. Es kann jedoch vorge- sehen sein, dass das Betreiben des Dienstes zugleich auch seine Aktivierung beinhaltet. Vorzugsweise ist jedoch die Ak- tivierung des Dienstes separat vom Betreiben des Dienstes, welches es erlaubt, Beeinflussungen aufgrund der Nutzung des Dienstes möglichst gering halten zu können.
Gemäß einer Weiterbildung wird vorgeschlagen, dass für den wenigstens einen Dienst ein Eingriffspunkt ermittelt wird. Durch den Eingriffspunkt kann die Funktion des Dienstes an die Kommunikation in der Kommunikationsverbindung in einer geeigneten Weise angekoppelt werden, sodass die gewünschte Nutzung des Dienstes realisiert werden kann. Der Eingriffs- punkt kann zum Beispiel eine bestimmte Stelle in einer Sig- nal- beziehungsweise Datenfolge der Kommunikation sein. Zu diesem Zweck kann vorgesehen sein, dass die Kommunikation in der Kommunikationsverbindung mittels des Dienstes oder auch durch das Ankoppelmodul selbst erfasst und ausgewertet wird, um den günstigsten Eingriffspunkt ermitteln zu können. Beim Aktivieren des Dienstes wird dieser dann an dem entsprechen- den ermittelten Eingriffspunkt eingekoppelt.
Vorzugsweise wird der Dienst abhängig von einem Steuersignal aktiviert. Dieses Steuersignal kann ein Steuersignal sein, welches das Ankoppelmodul von einer separaten Einheit, bei- spielsweise der Zentrale oder dergleichen, erhält. Dem Grunde nach besteht natürlich auch die Möglichkeit, dass das Steuer- signal durch wenigstens eines der wenigstens zwei Anwendungs- module bereitgestellt wird. Das Ankoppelmodul kann das Steu- ersignal unmittelbar für den wenigstens einen Dienst bereit-
stellen . Natürlich kann auch vorgesehen sein, dass das Ankop- pelmodul das Steuersignal zunächst auswertet und den Dienst dann abhängig vom Auswerten aktiviert.
Darüber hinaus wird vorgeschlagen, dass ein Funktionsaufruf eines der Anwendungsmodule ermittelt wird und mittels des ak- tivierten Dienstes Daten des Funktionsaufrufs erfasst werden. Dadurch wird die Möglichkeit geschaffen, die Funktion des An- wendungsmoduls zu erfassen, insbesondere zu überwachen und vorzugsweise auch entsprechende Daten über den aktivierten Dienst bereitzustellen. Diese Daten können zum Beispiel an die Zentrale, einen Nutzer des Cyber-physikalischen Systems oder dergleichen übermittelt werden. Natürlich können die Da- ten gegebenenfalls auch unter Nutzung des Ankoppelmoduls ge- speichert werden. Die Daten können Betriebsdaten bezüglich des wenigstens einen Anwendungsmoduls sein.
Weiterhin wird vorgeschlagen, dass eine Funktionsantwort ei- nes der Anwendungsmodule ermittelt wird und mittels des akti- vierten Dienstes Daten der Funktionsantwort erfasst werden. Dadurch kann beispielsweise die Funktionsbereitschaft des An- wendungsmoduls ermittelt werden. Auch hier können die Daten zum Beispiel entweder mittels des Ankoppelmoduls gespeichert werden, insbesondere abrufbar gespeichert werden, oder auch an die Zentrale übermittelt werden. Die Funktion des Cyber- physikalischen Systems kann dadurch weiter verbessert werden.
Es wird ferner vorgeschlagen, dass die erfassten Daten ausge- wertet werden und zumindest der Funktionsaufruf oder die Funktionsantwort abhängig vom Auswerten der Daten angepasst werden, bevor der Funktionsaufruf beziehungsweise die Funkti- onsantwort vom jeweiligen Ankoppelmodul an das jeweils andere Anwendungsmodul übermittelt wird. Bei dieser Ausgestaltung kann sich der Dienst des Ankoppelmoduls somit in die Kommuni- kation zwischen den wenigstens zwei Anwendungsmodulen Zwi- schenschalten und auf die Kommunikation Einfluss nehmen. Dadurch kann die Flexibilität in Bezug auf die Steuerung des Cyber-physikalischen Systems weiter verbessert werden. Bei-
spielsweise können ergänzende Betriebsvergaben oder Sicher- heitsvorgaben mittels des Ankoppelmoduls, insbesondere des wenigstens einen Dienstes, ergänzend durch das Cyber- physikalische System verfügbar gemacht werden.
Gemäß einer Weiterbildung wird vorgeschlagen, dass der Dienst die Kommunikation zwischen dem wenigstens zwei Anwendungsmo- dulen erfasst, hinsichtlich vorgegebener Daten analysiert und abhängig von dem Analysieren ein Meldesignal abgibt. Dadurch kann die Funktion des Cyber-physikalischen Systems besser überwacht werden, zum Beispiel in Bezug auf Betriebsparame- ter, Funktionen, gestörte Zustände und/oder dergleichen. Die Betriebssicherheit des Cyber-physikalischen Systems kann dadurch weiter verbessert werden.
Vorzugsweise wird im Rahmen des Analysierens ermittelt, ob eines der Anwendungsmodule bestimmungsgemäß funktioniert.
Dies betrifft die Nutzung des Cyber-physikalischen Systems insgesamt und kann beispielsweise sicherheitsrelevant sein. Darüber hinaus kann dies auch aus nutzungstechnischer Sicht irgendeines Cyber-physikalischen Moduls relevant sein, bei- spielsweise bei einer Herstellung von Produkten oder derglei- chen. Beispielsweise kann ermittelt werden, ob eines der we- nigstens zwei Anwendungsmodule einen gestörten Betriebszu- stand hat, defekte Daten an das jeweils andere Anwendungsmo- dul übermittelt und/oder dergleichen. Die Sicherheit und die Nutzbarkeit des Cyber-physikalischen Systems können dadurch verbessert werden.
Insbesondere kann vorgesehen sein, dass abhängig von der be- stimmungsgemäßen Funktion des wenigstens einen Anwendungsmo- duls die Kommunikation zwischen wenigstens einem der wenigs- tens zwei Anwendungsmodule und einem dritten Anwendungsmodul hergestellt wird. Dies erlaubt es, eine Redundanz zu schaf- fen, sodass der Cyber-physikalische Systemknoten weiter be- stimmungsgemäß betrieben werden kann. Dieser Fall kann zum Beispiel relevant sein, wenn das Anwendungsmodul eine Störung aufweist und das Anwendungsmodul nicht entsprechend weiter
betrieben werden kann. Dies kann mittels des Dienstes des An- koppelmoduls ermittelt werden. Darüber hinaus kann der Dienst auch ermitteln, dass ein anderes drittes Anwendungsmodul ver- fügbar ist, welches die Steuerung des Anwendungsmoduls über- nehmen kann, und die Kommunikation zu diesem dritten Anwen- dungsmodul umleiten. Zu diesem Zweck kann dann zum Beispiel in die Kommunikationsverbindung eingegriffen werden und die Kommunikationsverbindung vom ersten gestörten Anwendungsmodul zu einem dritten betriebsbereiten Anwendungsmodul hergestellt werden. Dadurch kann die Zuverlässigkeit des Cyber- physikalischen Systems weiter verbessert werden.
Weiterhin wird vorgeschlagen, dass der Dienst zumindest eines der wenigstens zwei Anwendungsmodule identifiziert und abhän- gig von der Identifikation aktiviert wird. Der Dienst braucht daher nicht nur beispielsweise von der Zentrale aktiviert werden zu können, sondern seine Aktivierung kann auch davon abhängig sein, welche Anwendungsmodule gerade aktuell in Kom- munikationsverbindung stehen. Dadurch kann die Nutzung eines spezifischen Dienstes an spezifische Anwendungsmodule automa- tisiert angepasst werden. Es brauchen hierfür keine separaten Steuerfunktionen vorgesehen zu sein.
Die für das erfindungsgemäße Verfahren angegebenen Vorteile und Wirkungen gelten natürlich gleichermaßen auch für das er- findungsgemäße Rechnerprogrammprodukt, den erfindungsgemäßen elektronisch lesbaren Datenträger, das erfindungsgemäße Cy- ber-physikalische System und das erfindungsgemäße Ankoppelmo- dul beziehungsweise umgekehrt. Infolgedessen können Verfah- rensmerkmale auch vorrichtungsmäßig oder umgekehrt formuliert sein.
Bei den im Folgenden erläuterten Ausführungsbeispielen han- delt es sich um bevorzugte Ausführungsformen der Erfindung. Die vorhergehend in der Beschreibung angegebenen Merkmale, Merkmalskombinationen sowie auch die in der folgenden Be- schreibung von Ausführungsbeispielen genannten und/oder in den Figuren alleine gezeigten Merkmale und Merkmalskombinati-
onen sind nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen verwendbar. Es sind so- mit auch Ausführungen von der Erfindung umfasst beziehungs- weise als offenbart anzusehen, die in den Figuren nicht ex- plizit gezeigt und erläutert sind, jedoch durch separierte Merkmalskombinationen aus den erläuterten Ausführungsformen hervorgehen und erzeugbar sind. Die anhand der Ausführungs- beispiele dargestellten Merkmale, Funktionen und/oder Wirkun- gen können für sich genommen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale, Funktionen und/oder Wirkungen der Erfindung darstellen, welche die Erfindung je- weils auch unabhängig voneinander weiterbilden. Daher sollen die Ausführungsbeispiele auch andere Kombinationen als die in den erläuterten Ausführungsformen umfassen. Darüber hinaus können die beschriebenen Ausführungsformen auch durch weitere der bereits beschriebenen Merkmale, Funktionen und/oder Wir- kungen der Erfindung ergänzt sein.
In den Figuren bezeichnen gleiche BezugsZeichen gleiche Merk- male und Funktionen.
Es zeigen:
FIG 1 eine schematische Blockdarstellung für einen Cyber-physikalischen Systemknoten beziehungs- weise -prozess, bei dem drei Funktionsmodule eines Cyber-physikalischen Systems miteinander in Kommunikation stehen, FIG 2 eine schematische Blockdarstellung wie FIG 1, bei der Funktionsmodule kommunikationstech- nisch über Ankoppelmodule des Cyber- physikalischen Systems gekoppelt sind, FIG 3 in einer schematischen Blockdarstellung wie FIG 2 einer detaillierten Darstellung der kom- munikationstechnischen Kopplung mittels des Ankoppelmoduls zwischen zwei Funktionsmodulen,
FIG 4 eine schematische Blockdarstellung einer Kno tenkonfiguration gemäß FIG 3, FIG 5 eine schematische Darstellung eines Zustands- diagramms bezüglich der aktiven Bereitstellung eines Dienstes durch das Ankoppelmodul gemäß FIG 3 FIG 6 bis 9 schematische Blockdarstellungen bezüglich der Änderung der Struktur beziehungsweise Konfigu- ration des Cyber-physikalischen Systemknotens beziehungsweise -prozesses ausgehend von einem Zustand gemäß FIG 6 über Zwischenzustände ge- mäß der FIG 7, 8 bis zum endgültigen Zustand gemäß FIG 9,
FIG 10 bis 16 schematische Zustandsdarstellungen für unter schiedliche Aktivierungen von verschiedenen Diensten,
FIG 17 eine schematische Blockdarstellung einer Be- triebskonfiguration des Ankoppelmoduls gemäß FIG 5, mit Parameteränderungen eines Dienstes,
FIG 18 eine schematische Blockdarstellung einer ers- ten Anwendung mit einem Ablauf, der ein Ankop· pelmodul zur Überwachung des Betriebs von ei- ner oder mehreren Funktionsmodulen eines Cy- ber-physikalischen Systems während des bestim· mungsgemäßen Betriebs nutzt, und
FIG 19 eine schematische Blockdarstellung wie FIG 18 einer zweiten Anwendung zum Eingreifen in eine Funktionsmodul eines Cyber-physikalischen Sys- tems, um eine alternative oder verbesserte Funktionalität oder eine Kommunikationsverbin- dung zu einem anderen Cyber-physikalischen
Systemknoten beziehungsweise -prozess herzu- stellen.
In FIG 1 zeigt in einer schematischen Blockdarstellung einen Cyber-physikalischen Prozess beziehungsweise -knoten 32, der drei Funktionsmodule 12, 14, 16 des Cyber-physikalischen Kno- tens 32 umfasst. In der vorliegenden Ausgestaltung ist vorge- sehen, dass das Funktionsmodul 12 ein Steuermodul ist, wel- ches dazu dient, eine Tätigkeit in einer Funktionsdomäne des Cyber-physikalischen Systems 32 auszuführen. Das Steuermodul ist vorliegend ein Anwendungsmodul. Das Steuermodul 12 dient dazu, für den bestimmungsgemäßen Betrieb der weiteren Funkti- onsmodule 14, 16, die vorliegend Anwendungsmodule darstellen, bereitzustellen. Die Anwendungsmodule 14, 16 können zum Bei- spiel ein Roboterarm sein wie das Anwendungsmodul 14 oder auch ein Sensor, wie das Anwendungsmodul 16. Das Prinzip der Erfindung ist jedoch hierauf nicht beschränkt. Auch die An- zahl der Funktionsmodule kann natürlich bedarfsweise variiert werden, ohne den Gedanken der Erfindung zu verlassen.
FIG 1 zeigt den Cyber-physikalischen Systemknoten 32, bei dem das Anwendungsmodul 16 eine Anwendungsschnittstelle 26 be- reitstellt, über die eine Kommunikation mit dem Anwendungsmo- dul 16 von außerhalb des Cyber-physikalischen Systemknotens 32 möglich ist. Das Anwendungsmodul 16 kommuniziert über eine Steuerschnittstelle 22 mit dem Steuermodul 12. Darüber hinaus kommuniziert das Steuermodul 12 über eine Anwendungsschnitt- stelle 20 des Anwendungsmoduls 14 mit dem Anwendungsmodul 14. Das Anwendungsmodul 14 seinerseits kommuniziert mit dem Steu- ermodul 12 über eine Steuerschnittstelle 18.
Bei den Funktionsmodulen 12, 14, 16 handelt es sich um Funk- tionsmodule des Cyber-physikalischen Systemknotens 32 mit Funktionen FT. In einer Ausgestaltung ist es somit möglich, dass das Anwendungsmodul 16, welches einen Sensor repräsen- tiert, Sensordaten über die Steuerschnittstelle 22 zum Steu- ermodul 12 überträgt. Das Anwendungsmodul 14, welches ein Ro- boterarm repräsentieren kann, kann vom Steuermodul 12 Steuer-
daten beziehungsweise Steuerbefehle erhalten und Positions- und Betriebsdaten über die Steuerschnittstelle 18 an das Steuermodul 12 übermitteln. Dadurch kann ein bestimmungsgemä- ßer Betrieb realisiert werden.
Die Ausgestaltung gemäß FIG 1 erweist sich insofern als nach- teilig, als dass zusätzliche Dienste nur mit großem Aufwand nachträglich implementiert werden können.
FIG 2 zeigt in einer schematischen Blockdarstellung wie FIG 1, wie zwischen die Funktionsmodule 12, 14, 16 jeweilige An- koppelmodule 28, 30 zwischengeschaltet sind. Die Anwendungs- und Steuerschnittstellen 18, 20, 22, 26 sind vorliegend von den jeweiligen Funktionsmodulen 12, 14, 16 extrahiert und in den jeweiligen Ankoppelmodule 28, 30 implementiert. Die An- koppelmodule 28, 30 stellen hier also die Kommunikationsver- bindung zwischen den Funktionsmodulen 12, 14, 16 bereit. Mit den Ankoppelmodulen 28, 30 können die Funktionsmodule 12, 14, 16 vollständig entkoppelt werden.
Jeweils zwei der Funktionsmodule 12, 14, 16 kommunizieren vorliegend über ein jeweiliges der Ankoppelmodule 28, 30. Die Kommunikation zwischen den Funktionsmodulen 12, 14, 16 hängt ab beziehungsweise ist bereitgestellt durch die zwischenge- schalteten Ankoppelmodule 28, 30. Die Funktionsmodule 12, 14, 16 sind nicht mehr unmittelbar kommunikationstechnisch mitei- nander gekoppelt.
Die Ankoppelmodule 28, 30 sind ferner nicht abhängig von den Funktionsmodulen 12, 14, 16. Die Ankoppelmodule 28, 30 stel- len jedoch die jeweiligen Schnittstellen 18, 20, 22, 26 be- reit, über die dann die jeweilige Kommunikation zwischen den Funktionsmodulen 12, 14, 16 vermittelt werden kann.
Wenn die Ankoppelmodule 28, 30 zwischen den Funktionsmodulen 12, 14, 16 zwischengeschaltet sind, bewirken die Ankoppelmo- dule 28, 30 keinen Überhang neben aktivierten Funktionen des Cyber-physikalischen Systems indirekt über Funktionszeiger.
Die Anwendungsschnittstellen 18, 20, 22, 26 der Funktionen des Cyber-physikalischen Systemknotens 32 und die Implemen- tierungen der Funktionen bleiben unverändert. Die Anwendungs- schnittstellen 18, 20, 22, 26 der Funktionsmodule 12, 14, 16 werden aus den jeweiligen Funktionsmodulen 12, 14, 16 heraus- gelöst und sind durch die Ankoppelmodule 28, 30 erfasst. Die- se sind somit zwischen den Funktionsmodulen 12, 14, 16 einge- setzt beziehungsweise zwischengeschaltet, um die Kommunikati- on in den Funktionsmodulen 12, 14, 16 unter Beibehaltung ei- ner für die Anwendungsschnittstellen 18, 20, 22, 26 definier- ten Semantik beizubehalten.
FIG 3 zeigt anhand eines Beispiels unter Nutzung der Funkti- onsmodule 12, 16 und des Ankoppelmoduls 28, wie ein Angriffs- punkt 36 unter Berücksichtigung der Funktionsschnittstellen 22 und einer Funktionsschnittstelle 34 implementiert werden kann, wobei die für die Funktionsschnittstelle 22 definierte Semantik beibehalten werden kann. FIG 3 zeigt den Eingriffs- punkt 36 (englisch: Mount Point, Service Hook) in Form eines Beispiels.
Ein Eingriffspunkt implementiert im Allgemeinen eine heraus- gelöste Schnittstelle aus einer Funktion eines Cyber- physikalischen Systemknotens. Die Implementierung des Ein- griffspunkts 36 dient unter anderem dazu, spezifische Funkti- onen des Cyber-physikalischen Systemknotens 32 anzukoppeln beziehungsweise abzukoppeln, spezifische Dienste 10, 24 des Cyber-physikalischen Systemknotens 32 dynamisch anzukoppeln und abzukoppeln, und Funktionsaufrufe an angekoppelte Dienste 10, 24 und/oder Funktionen des Cyber-physikalischen System- knotens 32 weiterzuleiten.
Ein Eingriffspunkt wie der Eingriffspunkt 36 ist ein spezifi- scher Dienst zu einer Funktion des Cyber-physikalischen Sys- tems. Ein Eingriffspunkt wie der Eingriffspunkt 36 ist im An- koppelmodul 28 enthalten und läuft im Ankoppelmodul 28. Der Eingriffspunkt 36 kann keine oder mehrere dynamisch ladbare spezifische Dienste des Cyber-physikalischen Systems für die
gleiche Cyber-physikalische Funktion koppeln. Der Dienst 10, 24 kann zum Beispiel ein Überwachen, ein Testen, ein Ein- schalten beziehungsweise Ausschalten, ein Sichern und/oder dergleichen umfassen. Spezifische Dienste des Cyber- physikalischen Systems laufen im Funktionsmodul 42 des Cyber- physikalischen Systems.
In FIG 3 lädt ein Servicemodul 38 einen oder mehrere Dienste beziehungsweise Diensteinstanzen mittels einer Diensteeinheit 40 Ds in eine Systemlaufzeit des Ankoppelmoduls 28. Diese Dienste werden instanziiert, um CPS-Funktionsinstanzen, die durch eine Funktionseinheit 44 DF geladen und instanziiert worden sind, zu umgeben.
Eingriffspunkte wie der Eingriffspunkt 36 im Ankoppelmodul 28 und alle Dienste, die an den Eingriffspunkten angekoppelt sind, können die Semantik der Anwendungsschnittstellen 20, 34 einhalten, die in das Ankoppelmodul 28 implementiert sind.
Die Eingriffspunkte sind somit um Funktionen in den Funkti- onsmodulen herum realisiert. Ein Eingriffspunkt wie der Ein- griffspunkt 36 zeigt eine entsprechende zugeordnete Funktion in einem Funktionsmodul 42 mit der Möglichkeit, den extra- funktionalen Dienst während der Laufzeit des Cyber- physikalischen Systemknotens 32 einzukoppeln, und zwar durch Implementieren der gleichen Anwendungsschnittstelle wie die der zugeordneten Funktion, wie ferner anhand von FIG 4 darge- stellt ist.
In FIG 4 bezeichnet 46 einen Funktionsaufruf des Anwendungs- moduls 16, der an das Ankoppelmodul 28 übermittelt wird. Ebenso bezeichnet 82 einen Funktionsaufruf des Steuermoduls 12, der an das Ankoppelmodul 28 übermittelt wird. Mit 54 ist eine Funktion bezeichnet. Im Ankoppelmodul 28 werden die Funktionsaufrufe 46, 82 an eine jeweilige Schnittstelle 22,
34 übermittelt. Darüber hinaus wird ein Eingriffspunkt 36 er- mittelt, der an eine Diensteeinheit 48 übermittelt wird. Die Serviceeinheit 48 erhält aus einem Dienstemodul 50 einen spe- zifischen Dienst 52, der an die Diensteinheit 48 übermittelt
wird. Mit 56 beziehungsweise 84 wird ein Aufruf eines nächs- ten Dienstens oder einer nächsten Funktion an die Schnitt- stelle 22, 34 übermittelt.
Das Anwendungsmodul 16 ist ein Funktionsmodul des Cyber- physikalischen Systems 32 mit Funktionen in einer Client- Rolle. Das Funktionsmodul 12 ist ein Funktionsmodul mit Funk- tionen in einer Server-Rolle beziehungsweise Provider-Rolle. Mit den Pfeilen in FIG 4 wird eine Implementierung darge- stellt, beispielsweise dass die Funktion 54 durch die Funkti- onsmodule 12, 16 implementiert ist. Ebenso implementiert die Diensteeinheit 48 den Eingriffspunkt 36 sowie den spezifi- schen Dienst 52.
Das folgende erste Programmlisting zeigt einen Knoten- Konfigurationsbetrieb :
01: LOAD <CSM:Services INTO CCIMS // State s0 s1 in Figure
5
02: UNLOAD <CSM:Services FROM CCIMS // State s1 s0 in Fig- ure 5
03: CREATE <CSM:Service:InstanceS FROM <CSM :Services // State s1 s2 in Figure 5
04: DELETE <CSM :Service:Instance> FROM <CSM:Services // State s2 s1 in Figure 5
05: MOUNT <CSM :Services (BELOW |ABOVE) <CSM:Service:InstanceS // State s2 s3 .1 in Figure
5
06: UNMOUNT <CSM:Service:InstanceS // State s3.1 s2 in Fig- ure 5
07: ENABLE (CALL|RETURN) <CSM:Service:InstanceS // State s3.1 -> s3.2 in Figure 5
08: DISABLE (CALL|RETURN) <CSM:Service:Instance> // State s3.2 s3 .1 in Figure 5 09: PARAMETER <CSM:Service:Instance> WITH <ParameterName>
<ParameterValue> // States3 -► s3 in Figure 5
Diese Konfigurationsabläufe steuern die Dienste des Cyber- physikalischen Systems eines Cyber-physikalischen Systemkno- tens 32 mittels einer Statusmaschine, wie sie anhand von FIG 5 dargestellt ist.
In FIG 5 bezeichnet SO einen Start- und einen Endzustand, bei dem ein Dienst des Cyber-physikalischen Systems und ein Dien- stehosting nicht im Cyber-physikalischen Systemknoten 32 vor- handen ist. Der Zustand Sl bezeichnet ein Dienstemodul, wel- ches geladen ist. Jedoch ist der Dienst noch nicht bereitge- stellt. Der Zustand S2 bezeichnet den bereitgestellten Dienst. Der Zustand S3 bezeichnet den Dienst, der an einer spezifischen Stelle eines Dienste-Stacks eingreift. Der Zu- stand S3.1 bezeichnet den Dienst im deaktivierten Zustand.
Der Zustand S3.2 bezeichnet den Dienst im aktivierten Zu- stand.
Mit 58 ist das Laden des Dienstes in das Ankoppelmodul 30 dargestellt . Es erfolgt somit ein Übergang vom Zustand SO zum Zustand S1. Mit 62 wird der Dienst bereitgestellt, woraufhin ein Übergang zum Zustand S2 erfolgt. Schließlich wird ein Eingriffspunkt beim Übergang gemäß BezugsZeichen 66 ermit- telt, woraufhin der Zustand S3.1 eingenommen wird. Mit 70 ist ein Übergang vom deaktivierten Zustand S3.1 zum aktivierten Zustand S3.2 dargestellt. Nun ist der Dienst aktiv. Mit 78 ist dargestellt, dass der Dienst parametrisiert werden kann.
72 bezeichnet den Übergang vom aktivierten Zustand S3.2 zum deaktivierten Zustand S3.1. Mit 68 wird der Dienst abgekop- pelt, sodass der Zustand S2 eingenommen wird. Mit 64 ist ein Übergang zum Zustand Sl dargestellt, bei dem das Bereitstel-
len des Dienstes aufgehoben wird. Mit 60 kann der Dienst ge- löscht werden.
74 bezeichnet einen Funktionsaufruf vom Anwendungsmodul 14 zum Steuermodul 12, wohingegen 76 eine Funktionsantwort vom Steuermodul 12 zum Anwendungsmodul 14 zeigt. FIG 5 zeigt also einen Lebenszyklus eines extra-funktionalen Dienstes im Cy- ber-physikalischen Systemknoten 32.
Das im Folgenden dargestellte zweite Programmlisting zeigt eine Implementierung der Statusmaschine gemäß Fig. 5. Diese Implementierung realisiert On-Demand-Laden, Instanziieren so- wie Aktivieren des Dienstes um eine entsprechende Funktion herum. Natürlich sind auch andere Implementierungen möglich, beispielsweise Implementierungen, die ein separates Laden, Instanz!ieren oder Aktivieren des Dienstes während einer Dienstphase eines Cyber-physikalischen Systemknotens umfas- sen, während einer Betriebsphase des Cyber-physikalischen Systemknotens 32, oder dergleichen.
01: MountPoint.F(pl, ...) do // Mount point for Services around CPS function F with parameters pl,..., if any.
02: // State s0 in Figure 5
03: if new CPS Service(s) specified in the node configuration then
04: load the CSM(s) that contains the new Service(s)
05: // State s1 in Figure 5
06: instantiate specified CPS Service(s)
07: // State s2 in Figure 5
08: hook CPS Service instance(s)
09: // State s3.1 in Figure 5
10: if Service(s) enabled in the CPS node / process configu- ration then
11: enable CPS Service instance(s)
12: // State s3.2 in Figure 5
13: for all hooked and enabled CPS Services before CPS func- tion do
14 : call CPS Service Sbefore (p1, ...)
15: call CPS function F(p1, ...)
16: for all hooked and enabled CPS Services after CPS func- tion do 17 : call CPS Service Safter (p1 , ... )
18: return value from CPS function F or from last CPS Service
S or default values
Die FIG 6 bis 9 zeigen noch einmal, wie sich die Struktur be- ziehungsweise Konfiguration des Cyber-physikalischen System- knotens 32 ändert, ausgehend von einem Zustand gemäß FIG 6, bei dem ein Funktionsmodul 16 mit wenigstens einem Steuermo- dul 12 in Kommunikation steht und ein Ankoppelmodul 28 mit einem Eingriffspunkt 36 vorhanden ist, zu einem Zustand gemäß FIG 9, bei dem zusätzlich das folgende Modul geladen wird, nämlich ein Dienstemodul mit einem oder mehreren spezifischen Diensten um das Steuermodul 12 herum. Über eine im Ankoppel- modul 28, 30 implementierte Diensteschnittstelle 86 kann der entsprechende Dienst aus dem Dienstemodul 50 geladen werden.
Die FIG 7 und 8 zeigen Zwischenzustände und zwei alternative Übergangspfade . So kann ein Übergangspfad ausgehend von FIG 6
über FIG 7 zu FIG 9 sein, wohingegen ein anderer Übergangs- pfad ausgehend von FIG 6 über FIG 8 zur FIG 9 sein kann. In allen Konfigurationen von FIG 6 bis FIG 9 ist der Cyber- physikalische Systemknoten beziehungsweise -prozess 32 aus- führt. Der vorgeschriebene Mechanismus ermöglicht es, unter- schiedlichste Konfigurationen von Diensten für das Cyber- physikalische System zwischen Funktionen des Cyber- physikalischen Systemknotens beziehungsweise -prozesses 32 zu nutzen, wie anhand der weiteren FIG 10 bis 16 dargestellt ist.
Die FIG 15 und 16 zeigen insbesondere einen FailOver, bei dem das Anwendungsmodul 14, 16 von einem ersten Steuermodul 12 auf ein zweites Steuermodul 80 übergekoppelt wird, beispiels- weise wenn das erste Steuermodul 12 gestört ist. Darüber hin- aus sind diverse andere Nutzungen ersichtlich, wobei insbe- sondere auf die voransbehenden Ausführungen verwiesen wird.
In den FIG 10 bis 16 sind unterschiedliche Zustände darge- stellt, zwischen denen gewechselt werden kann. Ein Wechsel vom Zustand gemäß FIG 11 zum Zustand gemäß FIG 12 ist zum Beispiel in FIG 17 dargestellt, wobei ein Parameter eines Dienstes des Cyber-physikalisehen Systems geändert wird. Zum Zeitpunkt t1 ist der Dienst noch nicht angekoppelt. Das An- koppeln liegt jedoch zum Zeitpunkt t2 vor, wobei der Dienst jedoch noch deaktiviert ist. Zum Zeitpunkt t3 ist dann der Dienst aktiviert.
Zum Zeitpunkt t1 liegt der Zustand gemäß FIG 11 vor, wobei zum Zeitpunkt t3 der Zustand gemäß FIG 12 vorliegt. Zum Zeit- punkt t2 ist der Dienst noch deaktiviert.
Mit dem BezugsZeichen 90 ist ein erster Übergang dargestellt, bei dem ein Konfigurationsbetrieb gemäß dem folgenden dritten Listing durchgeführt werden kann:
//State SO in Figure 5 01: Load CSM1 INTO CIM1
02: CREATE S1 FROM CSM1 03: MOUNT S1 AFTER SMp,1 // State S3.1 in Figure 5
Mit dem BezugsZeichen 92 ist ein folgender Übergang vom Zeit- punkt 12 zum Zeitpunkt t3 mit einem Konfigurationsbetrieb ge- mäß dem folgenden vierten Listing vorgesehen:
// State S3.1 in Figure 5 04: PARAMETER S1 WITH Rate=5 // State S3.1 in Figure 5 05: ENABLE S1 // State S3.2 in Figure 5
Die folgenden Anwendungsfälle der Erfindung zeigen, wie eine dynamische Analyse von Zustandsparametern eines schlecht funktionierenden Cyber-physikalischen Systemknotens 32 analy- siert werden kann.
Hier ist das Ziel, einen tieferen Einblick in das Cyber- physikalische System in Bezug auf den Betrieb im Falle einer Störung, eines ungewöhnlichen Verhaltens und/oder dergleichen zu erhalten, beispielsweise in Bezug auf eine oder mehrere Funktionen, insbesondere Funktionsmodule.
Das Cyber-physikalische System läuft für eine längere Zeit. Plötzlich berichtet ein Login-Dienst eines Cyber- physikalischen Knotens ein Ansteigen von fehlerhaften Server- anfragen . Die Performance des Cyber-physikalischen Systemkno- tens 32 nimmt ab. Die Log-Mitteilungen des betroffenen Cyber- physikalischen Systemknotens 32 liefern keinen Hinweis für den Grund der Performance-Abnahme. Um einen besseren Einblick in den Betrieb des betroffenen Cyber-physikalischen System- knotens 32 durch einen Betreiber zu ermöglichen, wird der Be- treiber einen erweiterten GesundheitScheck, beispielsweise unter Nutzung von extra-funktionalen Diensten, durchführen. Der betroffene Cyber-physikalische Systemknoten 32 ist ausge- legt und implementiert, um im degradierten Modus betrieben zu
werden. Dadurch kann jedoch nur eine reduzierte suboptimale Systemperformance erreicht werden, was unerwünscht ist.
Darüber hinaus tritt der Effekt zum ersten Mal auf. Zum Aus- führen einer Analyse unter realistischen aktuellen Bedingun- gen, installiert und experimentiert der Betreiber mit mehre- ren, erweiterten GesundheitSchecks während der Laufzeit ohne Re-Deploy und Neustarten des betroffenen Cyber-physikalischen Systemknotens 32, wie anhand von FIG 18 dargestellt. Mit Fc ist eine Funktion in einem Funktionsmodul des Cyber- physikalischen Systems in der Rolle eines Anwendungsklienten bezeichnet. Mit FP ist eine Funktion in einem Funktionsmodul des Cyber-physikalischen Systems in der Rolle eines Funkti- onsproviders beziehungsweise Steuermoduls bezeichnet. Mit S MP ist ein Eingriffspunkt für einen speziellen Dienst in einem Ankoppelmodul bezeichnet. SL bezeichnet einen Log- Funktionsaufruf . SP bezeichnet einen Dienst zum Messen einer Ausführungszeit und SM bezeichnet einen Dienst Dump-Memory.
Das Szenario in FIG 18 läuft unter Nutzung eines Ankoppelmo- duls wie folgt ab:
- Zeitpunkt t1 : Der Cyber-physikalische Knoten läuft, jedoch zeigt der Zwischendienst SL eine ungewöhnliche Menge an feh- lerhaften Funktionsaufrufen der Funktion FP. Aus Gründen der Performance ist der Dienst SL knapp in Bezug auf eine Doku- mentation und speichert nur wenige Daten, zum Beispiel eine Signatur der Funktion F P r Schlüsselfunktionparameter und Funktionsantwortcodes .
- Zeitpunkt tp : Für einen längeren Zeitraum zeigen die Funk- tion Antwortcodes eine ansteigende Beanstandungsrate. Die erste Annahme ist, dass überbordende Reaktionszeiten und ver- passte Grenzen diese Beanstandungen verursachen. Entsprechend installiert ein Betreiber des Cyber-physikalischen Systems einen Performance-Messdienst SP in Bezug auf die Ausführung der Funktion FP. Der Dienst SP wird geladen und ein Eingriffs-
punkt in Bezug auf den Dienst SL und den Funktionsaufruf der Funktion FP wird ermittelt.
- Zeitpunkt tp: Die Performance-Daten, die vom Performance- Messdienst SP geliefert werden, zeigen ein normales Verhal- ten. Daher scheinen die fehlerhaften Serveranfragen einen an- deren Grund zu haben. Der Betreiber des Cyber-physikalischen Systems entkoppelt den Dienst SP. Der Cyber-physikalische Systemknoten 32 ist nun wieder in dem Zustand wie zum Zeit- punkt t1.
- Zeitpunkt t4: Nun soll der interne Zustand des Cyber- physikalischen Systemknotens, insbesondere der Status der
Funktion F Pf in Bezug auf ungewöhnliche Daten analysiert wer- den. Der Betreiber installiert folglich einen Memory-Scanner SM in Bezug auf die ausgeführte Funktion FP. Der Dienst SM löscht den Speicher, mit dem die Funktion FP vor und nach dem Aufruf der Funktion FP betrieben wurde. Dabei ist zu beach- ten, dass der Speicher einer Funktion des Cyber- physikalischen Systems in einem separaten reservierten Spei- chermodul beziehungsweise Datenmodul enthalten sein kann. Ein Datenmodul ist einer spezifischen Funktion des Cyber- physikalischen Systems zugeordnet und entspricht einem Daten- bereich in einem Skill-Executed-Context (SEC), den eine Task zum Speichern von Task-internen Daten nutzt.
Der Cyber-physikalische Systemknoten 32 ist zum Testen wäh- rend der Laufzeit ausgelegt, ohne das zeitliche Verhalten des Cyber-physikalische Systemknotens 32 zu beeinflussen. Die extra-funktionalen Dienste SP und SM implementieren die glei- che Funktionsschnittstelle wie FP und S MPf ohne ihre funktio- nale Bedeutung zu ändern. Außerdem bleiben beide innerhalb der spezifizierten beziehungsweise erlaubten Zeitgrenzen für die Funktion FP. Daher können die Dienste SP und SM, vorzugs- weise beide, zwischengeschaltet werden zwischen den Funktio- nen Fc und FP.
FIG 19 zeigt in einer schematischen Blockdarstellung einen weiteren Anwendungsfall für dynamisches Ändern von Funkti- onsimplementierungen eines schlecht funktionierenden Cyber- physikalischen Systemknotens N1 32 unter Nutzung eines Ankop- pelmoduls. Es ist hier das Ziel, eine andere Variante zu ei- ner Funktion, die in einem Funktionsmodul eines Cyber- physikalischen Systems enthalten ist, anzuwenden, um eine al- ternative oder verbesserte Funktionalität zu ermöglichen oder eine Verbindung zu einem anderen Cyber-physikalischen System- knoten beziehungsweise prozess N2, N3 zu ermöglichen. Es soll eine aktualisierte Implementierung einer Funktion, die ein externes DatenbasisSystems nutzt, angewendet werden. Die- se neue Version behebt einen Performance-Mangel einer vorher- gehenden Version und nutzt ein anderes DatenbasisSystem.
In einer Übergangsperiode sollen nur Entwickler und Tester des Cyber-physikalischen Systems die aktualisierte Implemen- tierung nutzen. Dies ist anhand von FIG 19 dargestellt. Er- gänzend bezeichnet FP,1 eine erste Version der Funktion FP in der Rolle eines Funktions-Providers, FP,2 eine aktualisierte
Version 2 der Funktion FP und S einen Dienst, der zwischen zwei oder mehreren Funktions-Providern umschaltet. Der ge- strichelte Pfeil bezeichnet einen Aufruf einer Funktion eines anderen Cyber-physikalischen Systemknotens.
Der Ablauf gemäß FIG 19 stellt sich wie folgt dar:
- Zeitpunkt A : Der Cyber-physikalische Systemknoten ist im Betrieb, jedoch zeigt der Zwischendienst SL eine ungewöhnli- che Höhe von schlechten Performance-Aufrufen der Funktion
FP,1. Einträge in den Log-Dateien des Cyber-physikalischen Systemknotens 32 und eine Analyse des Quellcodes von der
Funktion F P, 1 zeigt, dass der Grund für die niedrige Perfor- mance ein Implementierungsfehler ist.
- Zeitpunkt A : Ein Betreiber des Cyber-physikalischen Sys- tems wendet ein Servicemodul mit einem extra-funktionalen Dienst SY an, der dynamisch ein zweites alternatives Funkti-
onsmodul parallel zu einem bereits angewendeten Funktionsmo- dul lädt und zwischen den alternativen Funktionsmodulen um- schaltet .
Zeitpunkt t3 : Ein Entwickler des Cyber-physikalischen Sys- tems entwickelt die Funktion FP,2, die eine verbesserte Versi- on der Funktion FP,1 ist und wendet diese unter Nutzung des Dienstes SY an. Das Umschalten kann eingestellt beziehungs- weise gesteuert werden, um nur spezialisierte Anfragen zu der neuen Version zu leiten. Dies ermöglicht ein vorgegebenes Testen, indem beispielsweise nur von Anfragen mit speziellen
Token vom Testteam zur neueren Version geroutet werden. Nach- dem die neue Version FP,2 getestet ist und als zuverlässig und besser ermittelt worden ist, können mit dem Dienst SY al- le Anfragen zur Funktion FP,2 geleitet werden.
- Zeitpunkte t4 und t5 : Entfernen der Funktionen und Dienste aus dem Ankoppelmodul, die nicht weiter benötigt werden.
Anstelle eines vorgegebenen Routings könnte der Dienst S nur fehlerhafte Anfragen an die Funktion FP,2 übermitteln, um zu prüfen, ob die aktualisierte Implementierung die kritischen Anfragen korrekt bearbeiten kann.
Darüber hinaus besteht die Möglichkeit einer weiteren dritten Anwendung, um dynamische Änderungen von Ausführungsspuren durch einen Cyber-physikalischen Systemknoten durchzuführen. Es ist hier das Ziel, Attribute zu Steuertoken zu ergänzen, die zwischen den Cyber-physikalischen Systemknoten 32 ausge- tauscht werden. Diese Steuertoken-Attribute können während des bestimmungsgemäßen Betriebs eines Cyber-physikalischen Systemknoten 32 analysiert werden, um weiteren Einblick in die Performance des Systemknotens 32 und den Betrieb zu ge- winnen. Diese Attribute können dazu genutzt werden, alterna- tive FunktionsImplementierungen dynamisch zu selektieren.
Ein Steuertoken, der in einem Cyber-physikalischen Systemkno- ten 32 von einer Funktion, einem Funktionsmodul zu einer
Funktion beziehungsweise einem Funktionsmodul übermittelt wird, soll zusätzliche Buchhaltungsdaten übermitteln, wobei er vollständig unberücksichtigt durch die Funktion bezie- hungsweise das Funktionsmodul bleibt. Zum Beispiel kann der Steuertoken einen Funktionsantwortcode zwischen einer Anwen- dungsfunktion Fc und einer Steuerfunktion FP übermitteln. Der Funktionsantwortcode wird nach jedem neuen Funktionsaufruf aktualisiert. Da der Steuertoken durch das Ankoppelmodul übermittelt wird, können extra-funktionale Dienste zum Ankop- pelmodul hinzugefügt werden, die die Funktion des Steuertoken mit Attributen für jeden Funktionsaufruf während eines Work- flows durch den Cyber-physikalischen Systemknoten 32 für er- weiterte Performance-Analysen hinzufügt:
- Eine Identifikation für die betroffene Funktion FP
- eine Eingriffszeit für die Funktion FP
- eine Antwortzeit der Funktion FP
Zusätzlich kann eine Identifizierung eines Workflow- Initiators zum Steuertoken des Workflows hinzugefügt werden. Der Initiator kann zum Beispiel einen Entwickler oder einen Betreiber des Cyber-physikalischen Systems identifizieren. Diese Information kann durch den extra-funktionalen Dienst genutzt werden, der alternative Funktionsimplementierungen, wie zum vorhergehenden Ausführungsbeispiel beschrieben, se- lektieren kann.
Die Erfindung hat insbesondere in Bezug auf AOP folgende Vor- teile: AOP kann für die Hinzufügung von Diensten genutzt wer- den. Über den sogenannten Weaving-Prozess können Aspekte an Stellen integriert werden, an denen eine spezifische Bedin- gung erreicht wird. Die Bedingung ist gewöhnlich der Eintritt oder der Ausgang eines Funktionsaufrufs. Wenn der Steuerfluss einen solchen Punkt erreicht, wird ein Advice ausgeführt, beispielsweise vor oder nach dem Funktionsaufruf. Innerhalb des Advices kann jeglicher zusätzlicher Code angewendet wer- den. Deshalb kann ein AOP-Framework, wie beispielsweise As- pekte für Java-Systeme, anstelle von Connector-Pattern ge-
nutzt werden, was gemäß der Erfindung vorgeschlagen wird. Je- doch umfasst dies nur das Vorsehen eines Integrationspunkts für den Mechanismus, der gemäß der Erfindung vorliegend be- schrieben wurde.
Im Unterschied zur AOP kann die Erfindung dazu genutzt wer- den, ohne zusätzliche Frameworks und/oder Compiler für Weaving Entry Points in das System zu benötigen. Darüber hin- aus kann die Erfindung unter Nutzung irgendeiner Objekt- orientierten Programmiersprache realisiert werden. Im Unter- schied zur Erfindung ändert AOP Schnittstellen wegen Bezeich- nungen. AOP erfordert darüber hinaus spezifische Compiler, und Aspekte sind statisch. Jedoch kann AOP dazu genutzt wer- den, Implementierungen von extra-funktionalen Diensten in den Ankoppelmodulen zu realisieren. Es ist nicht COP, weil die Ankopplungsmodule und die extra-funktionalen Dienste dyna- misch sind, während der Laufzeit adaptiert und gesteuert wer- den können, und darüber hinaus vollständig unabhängig von Funktionen des Cyber-physikalischen Systemknotens sind. COP ändert das System und erfordert daher eine Compilerunterstüt- zung.
Die Ausführungsbeispiele dienen ausschließlich der Erläute- rung der Erfindung und sollen diese nicht beschränken.