-
Die vorliegende Erfindung betrifft ein computerimplementiertes Laufzeitsystem. Die vorliegende Erfindung bezieht sich ferner auf ein Netzwerk zur Verarbeitung medizinischer Informationen, ein Verfahren und ein Computerprogrammprodukt.
-
Die vorliegende Erfindung betrifft den Bereich medizinischer Netzwerke oder Netzwerk zur Verarbeitung medizinischer Informationen, wie z.B. in
EP 3 457 408 A1 und
EP 3 567 600 A1 beschrieben.
-
Solche Netzwerke umfassen eine Vielzahl von Systemen, einschließlich Geräten, Produkte, Plattformen und Anwendungen (auch als Software, Computerprogramme oder Computerprogrammprodukte bezeichnet). Die Geräte können medizinische Geräte (z.B. Bildarchivierungs- und Kommunikationssysteme (PACS), Ultraschallsysteme usw.), Benutzerterminals für medizinisches Fachpersonal und Patienten, spezialisierte Benutzerterminals (z.B. Pflegepersonal-Rufsysteme), Server und medizinische Datenspeicher umfassen. Die Plattformen erleichtern den Geräten und Anwendungen den Zugriff auf Dienste und Repositories innerhalb oder außerhalb des Netzwerks. Anwendungen arbeiten auf oder in Verbindung mit Geräten bzw. sind über diese zugänglich. Anwendungen können umfassen: Kommunikationsanwendungen, welche die Kommunikation zwischen den Geräten im Netzwerk erleichtern, medizinische Anwendungen, die für die Verarbeitung medizinischer Informationen ausgebildet sind, Anwendungen, die für die Verwaltung von Patentinformationen ausgebildet sind, Anwendungen für die Verwaltung von Wissen in einer Gesundheitsumgebung, Anwendungen, die für die Verwaltung von Krankenakten ausgebildet sind.
-
Solche modernen medizinischen Anwendungsumgebungen sind komplex und verwenden eine Vielzahl unterschiedlicher Geräte und Produkte verschiedener Hersteller in einer heterogenen Landschaft und Infrastruktur mit heterogenen Funktionen und Anwendungen und oft in nicht standardisierter Weise. Insbesondere ist in der Architektur moderner Medizintechnikeinrichtungen und -produkte ein Trend in Richtung einer wachsenden Zahl vergleichsweise kleinteiliger Systeme, Anwendungen und Dienste zu beobachten, die miteinander verbunden sind und miteinander interagieren, anstatt nur wenige vergleichbar komplexe Systeme oder isolierte Produkte zu verwenden.
-
In einer so heterogenen Architektur mit einer zunehmenden Anzahl von vergleichbar unabhängig betriebenen Systemen, Anwendungen und Diensten steigt die Wahrscheinlichkeit für unerwünschte Situationen und Systemfehler, sowohl für die verschiedenen Produkte und Geräte als auch für die Interaktion zwischen ihnen. Wenn z.B. eine Situation im Betrieb über einen sogenannten „Happy-Path“, also das gewünschte Systemverhalten hinausgeht, kann die Anwendung den entsprechenden Anwendungsfall nicht mehr verarbeiten. Als Folge davon bleibt die Anwendung stecken.
-
Benutzer, die einen schnellen Ausweg aus dieser Situation suchen, werden nach einem typischen Ansatz oft mit einem Fehlerdialog konfrontiert, oder noch schlimmer, mit einer Fehlermeldung mit Angabe einer Telefonnummer des Service-Helpdesks. Abgesehen davon, dass diese Remote-Service-Helpdesks oft nicht verfügbar sind, wenn sie benötigt werden, sind sie oft nicht produktiv, sodass der Benutzer oft nicht aus dieser Fehlersituation entkommen kann. Dies führt meist dazu, dass ein laufender Anwendungsfall neu gestartet werden muss, ohne die Garantie zu haben, dass die gleiche Fehlersituation nicht erneut auftritt. Oft sind die Arbeit und die Daten des unterbrochenen Anwendungsfalles nicht mehr wiederherstellbar.
-
Für Hintergrundaktivitäten sind Watch Dog-Mechanismen bekannt, die Low-Level-Aktionen wie das Starten, Neustarten oder Rebooten ausführen, sich jedoch weder mit Fehlervermeidung oder -korrektur noch mit einer geeigneten Fortsetzung des Anwendungsfalls befassen.
-
Vor diesem Hintergrund besteht eine Aufgabe der vorliegenden Erfindung darin, die Handhabung laufender Anwendungsfälle zu verbessern, die in ihrer Verarbeitung feststecken.
-
Diese Aufgabe wird erfindungsgemäß durch ein computerimplementiertes Laufzeitsystem mit den Merkmalen des Anspruchs 1 und/oder durch ein Netzwerk zur Verarbeitung medizinischer Informationen mit den Merkmalen des Anspruchs 10 und/oder durch ein Verfahren mit den Merkmalen des Anspruchs 12 und/oder durch ein Computerprogrammprodukt mit den Merkmalen des Anspruchs 13 gelöst.
-
Demnach wird Folgendes bereitgestellt:
- - Ein Computer-implementiertes Laufzeitsystem, das eine kontinuierliche Objektausführungs-Laufzeitumgebung für mindestens eine Anwendung über ein Netzwerk zur Verarbeitung medizinischer Informationen bereitstellt, wobei das Netzwerk mehrere von Produktivgeräte aufweist, die für eine Verarbeitung medizinischer Informationen in der Laufzeitumgebung ausgebildet sind, und das Laufzeitsystem ferner eine Fokusmaschine und ein Aktionsplan-Repository umfasst, die zur Bereitstellung einer autonomen Laufzeitumgebung dazu ausgebildet sind, einen laufenden Anwendungsfall einer Anwendung auf mindestens einem Produktivgerät mit der Fokusmaschine zu überwachen, eine Zuständigkeit für den laufenden Anwendungsfall der Anwendung durch die Fokusmaschine für den Fall zu übernehmen, dass ein Fehlerstatus für den überwachten laufenden Anwendungsfall erkannt wird, den erkannten Fehlerstatus des laufenden Anwendungsfalls durch die Fokusmaschine zu analysieren, auf der Grundlage des analysierten Fehlerstatus mindestens eine geeignete Substitutionsaktion aus einer Vielzahl von im Aktionsplan-Repository hinterlegten Aktionen zu beschaffen, und den laufenden Anwendungsfall oder Teilen davon durch Anwendung der beschafften Substitutionsaktionen auf die Anwendung zu beenden und/oder zu vervollständigen durch die Fokusmaschine.
- - Netzwerk zur Verarbeitung medizinischer Informationen mit mehreren Produktivgeräten, die von mehreren Benutzern bedienbar und für die Verarbeitung medizinischer Informationen ausgebildet sind, und mindestens einem Laufzeitsystem gemäß der vorliegenden Erfindung, wobei das Laufzeitsystem mindestens eine Schnittstelle für die Kopplung mit den mehreren Produktivgeräten aufweist und dazu ausgebildet ist, eine autonome Laufzeitumgebung für die mehreren Produktivgeräte bereitzustellen.
- - Ein Computer-implementiertes Verfahren zur Bereitstellung einer kontinuierlichen Objektausführungs-Laufzeitumgebung für mindestens eine Anwendung mit den folgenden Schritten:
- Bereitstellen eines Netzwerks zur Verarbeitung medizinischer Informationen, das eine Vielzahl von Produktivgeräten umfasst, die für die Verarbeitung medizinischer Informationen in der Laufzeitumgebung ausgebildet sind, Überwachen eines laufenden Anwendungsfalles auf mindestens einem Produktivgerät über eine Schnittstelle des Netzwerks, Übernahme einer Zuständigkeit für den laufenden Anwendungsfall der Anwendung durch eine extern bereitgestellte Fokusmaschine falls ein Fehlerstatus für den überwachten laufenden Anwendungsfall erkannt wird, Analysieren des erkannten Fehlerstatus des laufenden Anwendungsfalls durch die Fokusmaschine, Abrufen mindestens einer geeigneten Substitutionsaktion aus einer Vielzahl von Aktionen basierend auf dem analysierten Fehlerstatus des laufenden Anwendungsfalls; und Beenden und vorzugsweise Vervollständigen des laufenden Anwendungsfalles oder von Teilen davon durch die Fokusmaschine durch Anwenden der abgerufenen Substitutionsaktion auf die Anwendung.
- - Ein Computerprogrammprodukt, das eine Reihe von Anweisungen umfasst, die, wenn sie von einem computergestützten Gerät ausgeführt werden, dazu führen, dass das computergestützte elektronische Gerät ein Verfahren gemäß der vorliegenden Erfindung durchführt.
-
Ein Schwerpunkt des erfindungsgemäßen Ansatzes liegt auf der Bereitstellung einer autonomen Umgebung zu Ausführung von Objekten, die Anwendungsfälle, Situationen, Vorfälle und dergleichen automatisiert und/oder autonom behandelt. Insbesondere werden Anwendungsfälle durch die Aufbewahrung von Betriebsdaten und Anwendungsfallkontexten gehandhabt, wobei speziellen Auswahlmöglichkeiten für anwendbare Maßnahmen und Entscheidungsautonomie vorgehsehen sind.
-
Die vorgeschlagene Lösung gemäß der vorliegenden Erfindung bietet eine autonome, vorzugsweise cloudbasierte, Laufzeitumgebung, die so konfiguriert ist, dass geeignete autonome Entscheidungen darüber getroffen werden, wann, ob und wie mit einem laufenden Anwendungsfall oder einer aktuellen Situation zur Laufzeit vorzugehen ist. Die autonome Laufzeitumgebung kann dabei bereits in Situationen aktiv werden, die in den laufenden oder installierten Systemen, Anwendungen und/oder Diensten nicht bekannt sind.
-
Die autonome Laufzeitumgebung sieht eine Verlagerung und Übergabe der Verantwortung eines fortlaufenden fehlerhaften Anwendungsfalles an eine extern angeordnete Fokusmaschine vor. Die Fokusmaschine des Laufzeitsystems setzt den laufenden fehlerhaften Anwendungsfalles dann anhand einer Reihe konfigurierbarer Aktionen fort. Im besten Fall vervollständigt die Fokusmaschine den fehlerhaften Anwendungsfall anstelle des ursprünglichen Hosts des Anwendungsfalls, d.h. z.B. anstelle des Produktivgeräts. Eine solche externe Ausführung des Anwendungsfalles ermöglicht die sichere Handhabung unproduktiver Situationen in denen der Anwendungsfall in der Verarbeitung feststeckt.
-
Für einen Anwender scheint wird der Anwendungsfall automatisch und autonom ohne weitere Benutzerinteraktion oder zusätzliche Informationen scheinbar ununterbrochen fortgesetzt. Zu diesem Zweck stellt die Anwendung die Notwendigkeit fest, einen aktuellen Ausführungspfad des fehlerhaften Anwendungsfalles durch einen alternativen Ausführungspfad zu ersetzen. Auf diese Weise wird ein fehlerhaftes (oder zumindest ein untypisches) Verhalten der App, Software oder des Programms durch Verwendung einer geeigneten, Anwendungsfall-kompatiblen Substitutionsaktion maskiert.
-
Bekannte Lösungen, wie sie im einleitenden Teil beschrieben werden, leisten weder eine solche Strukturierung der Funktionalität noch die Verteilung der Funktionalität wie in diesem neuartigen Ansatz. In bekannten Lösungen wird eine Anwendungsfallausführung als exklusive „Inside-Responsibility“ der entsprechenden Anwendung oder Dienstleistung behandelt. Der neuartige Ansatz nach der vorliegenden Erfindung sieht stattdessen eine technische Fokusmaschine vor, um diese Zuständigkeit für den fehlerhaften Anwendungsfall (oder Anwendungsfallschritt) auf ein anderes Programm außerhalb des Satzes laufender Programme zu verlagern. Weder die ursprüngliche Anwendung oder der Dienst noch der Fokusmaschine können von vornherein wissen, wann das Ersatzprogramm fällig ist und welches der Ersatzprogramme den erforderlichen nächsten Schritt im Anwendungsfall erfolgreich ausführt, was wiederum den Anwendungsfall mit oder sogar ohne die ursprüngliche Anwendung oder den Dienst abschließen kann. Ein Kernaspekt der vorliegenden Erfindung ist daher, dass die Fokusmaschine bestehende Anwendungsfälle nicht definiert, neu definiert oder ändert, auch wenn sie Fehlerzustände erzeugen.
-
Diese Art autonomer Laufzeitumgebung bietet eine äußerst flexible Ausrichtung auf ausgeführte Anwendungsfälle, indem eine ersetzende Funktionalität verwendet wird. Insbesondere versucht das autonome Laufzeitsystem, einen bekannten oder unbekannten ausgeführten Anwendungsfall abzuschließen, wenn z. B. dieser spezielle Anwendungsfall hängen geblieben ist oder wenn ein Benutzer einer Anwendung eine Fehlermeldung erhalten hat, die weder der Benutzer noch die Anwendung selbst verarbeiten kann. Anschließend hilft das autonome Laufzeitsystem, die Anwendung von dem Fehler zu befreien, fährt mit der Anwendung fort und/oder schließt den Anwendungsfall erfolgreich ab. Zeitaufwändige Unterbrechungen werden so weit wie möglich vermieden. Darüber hinaus bleibt die Vorarbeit des Nutzers erhalten und geht damit nicht verloren.
-
Die Infrastruktur des autonomen Laufzeitsystems besteht aus geeigneten Schnittstellen und Komponenten, die für die Ausführung der Ablaufmodelle, Workflows und/oder Aktionspläne konfiguriert sind. Gemäß der vorliegenden Erfindung läuft mindestens eine Anwendung oder Dienstleistung auf einem Produktivgerät. Die autonome Laufzeitumgebung umfasst eine sogenannte Fokusmaschine die so genannte Aktionspläne ausführt. Diese Aktionspläne enthalten Anwendungsbedingungen, Aktionslisten, Verhaltensmetriken und dergleichen, die erforderlich sind, um mit einem laufenden Anwendungsfall fortzufahren. Die autonome Laufzeitumgebung kann auch zusätzliche Speichereinrichtungen aufweisen - etwa ein Aktionsplan-Repository mit herunterladbaren Aktionsplänen und/oder ein Verhaltens-Repository mit konfigurierten und aktualisierten Verhaltensmetriken im Hinblick auf Verhaltensweisen für den jeweiligen Anwendungsfall. Darüber hinaus kann bereits bei der Entwicklung oder später im Prozess eine Aktionsplan-Erzeugungseinrichtung eingebunden werden, die verfügbaren Aktionspläne während der Softwareentwicklung sammelt. Diese Aktionspläne werden dann übertragen und mit der Software in eine Cloud-basierte Produktivumgebung bereitgestellt, sowohl während des Produktversands in die Cloud als auch als einmaliges Add-on.
-
Ein Hauptvorteil der vorliegenden Erfindung besteht darin, dass die Substitutionsaktionen, die den fehlerhaften oder festgefahrenen Anwendungsfall oder die Anwendungsfallschritte ersetzen, nicht Teil der entsprechenden Anwendung oder Dienstleistung sind. Dadurch wird sichergestellt, dass die Substitutionsaktionen technisch ausführbar sind, wann immer sie ausgelöst werden - auch wenn die entsprechende Anwendung bzw. Dienst nicht dazu in der Lage war, z.B. in einem Fall in dem der interne Kontrollfluss nicht auf gewisse Situationen vorbereitet ist.
-
Vorteilhafte Ausgestaltungen und Implementierungen ergeben sich aus den weiteren abhängigen Ansprüchen und aus der Beschreibung unter Bezugnahme auf die Zeichnungen.
-
Gemäß einer bevorzugten Ausführungsform ist die Fokusmaschine weiter so konfiguriert, dass sie die Daten des fertigen Anwendungsfalles oder Teile davon dem Produktivgerät und/oder der Laufzeitumgebung zur Verfügung stellt. Vorzugsweise umfasst dies ein Speichern der Daten des fertigen Anwendungsfalles oder von Teilen davon durch die Fokusmaschine im Aktionsplan-Repository.
-
Gemäß einer bevorzugten Ausführungsform umfasst das Übernehmen der Zuständigkeit: Erkennen des Fehlerstatus des überwachten Anwendungsfalles durch die Fokusmaschine, wenn der erkannte Zustand eines laufenden Anwendungsfalles mindestens eine vordefinierte Bedingung erfüllt. Dabei kann die vordefinierte Bedingung ein Feststecken einer laufenden Verarbeitung eines Anwendungsfall gegeben sein, in dem die Ausführung der entsprechenden Anwendung angehalten wird. Zusätzlich oder alternativ kann die vordefinierte Bedingung eines laufenden Anwendungsfalles auch eine vordefinierte Abweichung der ausgeführten Anwendung von einem Normalverhalten des Anwendungsfalles sein.
-
Nach einer weiteren Ausführungsform umfasst das Übernehmen der Zuständigkeit und das Analysieren des erkannten Fehlerstatus: Bestimmen eine einschlägiger Anwendungsbedingungen aus einer Liste verfügbarer Anwendungsbedingungen durch die Fokusmaschine, und aufrufen geeigneter Verhaltensmetriken aus dem Aktionsplan-Repository durch die Fokusmaschine, die den bestimmten einschlägigen Anwendungsbedingungen entsprechen.
-
Gemäß einer bevorzugten Ausführungsform umfasst das Bestimmen der Substitutionsaktion: Bestimmen, welche Bedingung in der vorliegenden Phase des Anwendungsfalls anzuwenden ist und ein Bestimmen der Aktionen und der Reihenfolge, in der diese Aktionen in der vorliegenden Phase des Anwendungsfalls ausgeführt werden sollen - jeweils durch die Fokusmaschine.
-
Nach einer weiteren Ausführungsform umfasst das Beenden eines laufenden Anwendungsfalles oder von Teilen davon eine autonome Erfolgskontrolle durch die Fokusmaschine durch die Überwachung des Erfolgs der ausgeführten Aktionen und die Speicherung der Erfolgsinformationen im Aktionsplan-Repository.
-
Gemäß einer bevorzugten Ausführungsform ist das Netzwerk dazu ausgebildet, eine Cloud-basierte Laufzeitumgebung bereitzustellen. Insbesondere ist die autonome Laufzeitumgebung mit einer Cloud-Umgebung kompatibel.
-
Gegebenenfalls können die oben genannten Ausgestaltungen und Implementierungen in beliebiger Weise kombiniert werden. Weitere mögliche Ausgestaltungen, Implementierungen und Ausführungsformen der Erfindung umfassen auch solche Kombinationen von zuvor oder nachstehend beschriebenen Merkmalen der Erfindung die nicht ausdrücklich erwähnt werden. Insbesondere wird in diesem Fall ein Fachmann auch einzelne Aspekte als Verbesserungen oder Ergänzungen zur Grundform der vorliegenden Erfindung hinzufügen.
-
Die vorliegende Erfindung wird im Folgenden auf der Grundlage der in den Zeichnungen schematisch dargestellten Ausführungsformen näher beschrieben, wobei:
- 1 ein Blockdiagramm zeigt, das ein Computer-implementiertes Laufzeitsystem innerhalb eines Netzwerks gemäß einer Ausführungsform veranschaulicht;
- 2 ein Flussdiagramm zeigt, das ein Verfahren gemäß einer Ausführungsform veranschaulicht; und
- 3 ein Ablaufdiagramm zeigt, das eine weitere Ausführungsform der vorliegenden Erfindung veranschaulicht.
-
Die beigefügten Zeichnungen sollen ein besseres Verständnis der Ausführungsformen der Erfindung ermöglichen. Sie veranschaulichen Ausführungsformen und helfen in Verbindung mit der Beschreibung, Grundsätze und Konzepte der Erfindung zu erklären. Andere Ausführungsformen und viele der genannten Vorteile werden mit Blick auf die Zeichnungen deutlich. Die Elemente in den Zeichnungen sind nicht unbedingt maßstabsgetreu dargestellt.
-
In den Zeichnungen sind funktional gleichwertige und identisch bedienbare Elemente, Merkmale und Komponenten jeweils mit ähnlichen Bezugszeichen versehen, sofern nicht anders angegeben.
-
1 zeigt ein Blockdiagramm, das ein Computer-implementiertes Laufzeitsystem innerhalb eines Netzwerks veranschaulicht, das gemäß den Ausführungsformen der Erfindung betreibbar ist.
-
Das Laufzeitsystem ist so konfiguriert, dass es eine kontinuierliche Laufzeitumgebung für die Produktivausführung für mindestens eine Anwendung mittels eines Netzwerks zur Verarbeitung medizinischer Informationen bietet. Das Netzwerk, das ein Cloud-basiertes Online-Netzwerk wie „Teamplay“ von Siemens Healthineers sein kann, ist so ausgebildet, dass es eine Vielzahl von Produktivgeräten miteinander verbindet. Diese Geräte sind so konfiguriert, dass medizinische Informationen der Laufzeitumgebung verarbeitet werden, z.B. durch Ausführen von Softwareanwendungen, Diensten und/oder anderen Arten von Softwareprodukten.
-
In wird das Laufzeitsystem durch Ziffer 10 bezeichnet. Das Laufzeitsystem 10 ist Teil eines Netzwerks 15zur Verarbeitung medizinischer Informationen.
-
Das Laufzeitsystem 10 umfasst unter anderem eine Fokusmaschine 11, ein Aktionsplan-Repository 12 und optional eine Aktionsplan-Erzeugungseinrichtung 13. Die Fokusmaschine 11 weist eine ersten Schnittstelle 14 zur Kopplung des Laufzeitsystems 10 mit einer Schnittstelle 18 des Netzwerks 15 an ein oder mehrere Produktivgeräte 16 auf. Die Fokusmaschine 11 umfasst ferner eine zweite Schnittstelle 17 zur Kopplung an das Aktionsplan-Repository 12. In der in 1 dargestellten Ausführungsform ist die Aktionsplan-Erzeugungseinrichtung 13 Teil des Aktionsplans-Repository 12. Zusätzlich oder alternativ kann der Aktionsplan-Erzeugungseinrichtung 13 auch Teil der Fokusmaschine 11 oder über das Netzwerk 15 an die Fokusmaschine 11 gekoppelt sein (nicht in dargestellt).
-
Die Produktivgeräte 16 werden verwendet, um eine bestimmte Anwendung, einen Dienst oder ein bestimmtes System auszuführen. Eine Anwendung, ein Dienst oder ein System - im Folgenden einfach als App bezeichnet - bezeichnet im Rahmen der vorliegenden Erfindung Arten von Softwareprogrammen, die die Zweckausführung von Anwendungsfällen implementieren und bereitstellen, und dadurch interne und externe Anwendungsbedingungen schaffen. Diese Apps sind gleichzeitig Anwendungsbedingungen im Laufzeitkontext ausgesetzt. Solche Anwendungsfälle verarbeiten dedizierte Daten und sollen nach einer Reihe von Anwendungsfallschritten und nach einiger Verarbeitungszeit dedizierte und vordefinierte Ergebnisse liefern. Dies ergibt ein messbares Verhalten in Raum und Zeit mehrerer solcher Programme, die wiederum nachverfolgt und auf Anwendungsbedingungen in den Aktionsplänen abgestimmt werden können, sowie weitere Aktionen, die z.B. nicht Teil eines einzelnen Anwendungsfalles sein können.
-
Das Aktionsplan-Repository 12 umfasst eine Vielzahl geeigneter Aktionspläne. Insbesondere enthält das Aktionsplan-Repository 12 zusätzliche Speichereinrichtungen wie für herunterladbare Aktionspläne 12a und/oder ein Verhaltens-Repository 12b mit konfigurierten und aktualisierten Metriken aus Anwendungsfallverhaltensaspekten. Ein Aktionsplan im Rahmen der vorliegenden Erfindung besteht aus Anwendungsbedingungen und einer Liste geeigneter Maßnahmen. Insbesondere kombiniert das Aktionsplan-Repository 12 eine Reihe vordefinierter Anwendungsbedingungen, die automatisch überwacht, gemessen und in einer Mischung aus Anwendungen, Diensten oder Systemen erkannt werden können, mit einer Liste entsprechender geeigneter Aktionen, die ausgeführt werden können, wenn die vordefinierten Anwendungsbedingungen erfüllt sind. Das Ziel für die Bereitstellung eines Aktionsplans ist es, einen laufenden Anwendungsfall abzuschließen, der feststeckt, einen Fehler verursacht, oder vom Normalverhalten oder dergleichen abgewichen ist. Alternativ kann auch ein Aktionsplan erforderlich sein, um einer Situation mit geeigneten Maßnahmen gerecht zu werden, da die Anwendungsbedingungen zeigen, dass der ursprüngliche laufende Anwendungsfall möglicherweise nicht seinen Anfangs-Bedingungen entspricht oder sogar stecken geblieben ist. Die geeigneten Aktionen in der Liste der Aktionen ist die funktionale Ersetzung des ursprünglichen Steuerungsflusses (oder Normalfalls), der für diese Verwendung - im besten Fall während der Entwicklung - vorgesehen wurde. Vorzugsweise wird eine Vielzahl von Aktionen zur Verfügung gestellt, die sich voneinander unterscheiden, da nicht von vornherein bekannt ist, welche Aktion das erfolgreiche Ergebnis, das für den Anwendungsfall oder für die gegebene Situation erforderlich ist, bewirken kann. Für alle Arten und Größen des Anwendungsbereichs (d. h. alle Systeme/Produkte, eine Teilmenge der Systeme/Produkte oder nur eine oder mehrere Anwendungen/Dienste) kann ein geeigneter Aktionsplan erstellt werden. Für alle Anwendungsbedingungen, die automatisiert und/oder autonom erkannt werden können, kann auch ein geeigneter Aktionsplan erstellt werden. Aktionen können daher einen Hilfs-, Korrektur-, Optimierungs- usw. Charakter haben.
-
Die Aktionsplan-Erzeugungseinrichtung 13 stellt die Aktionspläne bereit - vorzugsweise aber nicht notwendigerweise bereits während der Entwicklung. Während der Entwicklung wird beispielsweise die Aktionsplan-Erzeugungseinrichtung 13 verwendet, um die Aktionspläne zu erstellen, die mit der Software kombiniert werden müssen und in der Cloud-basierten Produktivumgebung bereitgestellt werden sollen. Die Aktionspläne können z.B. von den Versionen der Teilelemente, Anwendungen oder Dienste des gesamten Softwareprodukts, den Typen und der Anzahl der kooperierenden Systeme sowie von Besonderheiten der Produktivsetzung abhängen, und z.B. von dem vorgesehenen Laufzeitverhalten im Fehlerfall und damit zusammenhängende Anwendungsbedingungen und Aktionen in den Aktionsplänen bestimmt sein. Die Aktionsplan-Erzeugungseinrichtung 13 kann diese Merkmale berücksichtigen.
-
Die Fokusmaschine 11, die Kernkomponente des Laufzeitsystems 10, bezeichnet ein Steuergerät, das als Überwachungs- und Steuerungsinstanz fungiert, um sicherzustellen, dass ein laufender Anwendungsfall ordnungsgemäß abgeschlossen wird. Bei der Fokusmaschine 11 kann es sich um ein programmierbares Steuergerät wie einen Computer, einen Mikroprozessor, einen Controller oder Ähnliches handeln. Die Fokusmaschine 11 führt hauptsächlich die Aktionspläne des Aktionsplan-Repositorys 12 aus. Dazu überwacht die Fokusmaschine 11 einen laufenden Anwendungsfall einer App als Eingabedaten und misst, ob eine vordefinierte Fehlerbedingung erfüllt ist. Ist eine vordefinierte Fehlerbedingung erfüllt, übernimmt die Fokusmaschine 11 automatisch und vorzugsweise auch autonom die Zuständigkeit für diesen laufenden Anwendungsfall. Insbesondere ruft die Fokusmaschine 11 einen oder mehrere Substitutionsaktionspläne ab, die vom Aktionsplan-Repository 12 als Eingabedaten bereitgestellt werden, um die Aktionsliste der Substitutionsaktionspläne auszuführen und um ein Substitutionsergebnis für den laufenden Anwendungsfall zu liefern. Besonders wichtig ist in diesem Zusammenhang die Tatsache, dass die Substitutionsaktionen, die von der Fokusmaschine 11 verwendet werden, um die Funktionalität des laufenden Anwendungsfalles oder von Teilen davon zu ersetzen, nicht Teil der fehlerhaften App sind. Dies ist zielführend, da dadurch sichergestellt wird, dass die Substitutionsaktionen jederzeit technisch ausführbar sind, wenn sie ausgelöst werden, auch wenn die App dazu nicht mehr in der Lage ist, z.B. aufgrund des internen Kontrollflusses, der auf diese spezifische Fehlersituation nicht vorbereitet ist.
-
Zusammenfassend umfasst die Fokusmaschine 11 unter anderem den folgenden Überwachungs- und Steuerungsmechanismus für einen laufenden Anwendungsfall:
- - Ermessen technischer Auswirkungen;
- - Überwachung von Warninformationen;
- - Analysieren von Protokolldaten;
- - Analysieren von Metrikdaten;
- - Erkennen von Anomalien in den von den Apps erzeugten Daten;
- - Verteilung von Feedback-Informationen an das Produktivgerät über die erste Schnittstelle;
- - Vorher/nachher-Analyse bezgl. Produktivsetzung (inkl. Stichprobe mit einem Domänenmodell).
-
Die Fokusmaschine 11 kann auch das Aktionsplan-Repository 12 umfassen (nicht in dargestellt).
-
Im Folgenden wird die Funktionalität des Laufzeitsystems 10 kurz anhand des Flussdiagramms von erläutert:
- Die einen oder mehrere Produktivgeräte 16 des Netzwerks 15 führen eine oder mehrere Apps aus (Schritt SO). Im normalen Betriebsmodus werden diese Apps von den Produktivgeräten 16 ordnungsgemäß ausgeführt und fertig gestellt, d.h. ein laufender Anwendungsfall für diese App folgt einem sogenannten „Happy Path“.
-
Parallel zur Ausführung dieser App überwacht die Fokusmaschine 11 über die erste Schnittstelle 14 den laufenden Anwendungsfall der App auf mindestens einem Produktivgerät 16 (Schritt S1).
-
Wenn ein Fehlerstatus des überwachten laufenden Anwendungsfalles vom Fokusmaschine 11 erkannt wird, übernimmt diese die Zuständigkeit für den laufenden Anwendungsfall (Schritt S2).
-
Ein Fehlerstatus gibt z.B. an, dass der erkannte Status eines ausgeführten Anwendungsfalls mindestens eine vordefinierte Bedingung erfüllt, z. B. ein Feststecken, bei dem die App angehalten wird.
-
Anschließend analysiert die Fokusmaschine 11 in Schritt S3 den erkannten Fehlerstatus des laufenden Anwendungsfalles. Zu diesem Zweck vergleicht die Fokusmaschine 11 über die zweite Schnittstelle den Zustand des laufenden Anwendungsfalles und den entsprechenden Fehlerstatus mit Daten aus dem Aktionsplan-Repository 12.
-
Basierend auf dem analysierten Fehlerstatus des laufenden Anwendungsfalles ruft die Fokusmaschine 11 mindestens eine geeignete Aktion aus einer Vielzahl von Aktionen ab, die im Aktionsplan-Repository 12 abgelegt sind (Schritt S4).
-
Anschließend wird der laufende Anwendungsfall oder Teile davon durch die Fokusmaschine 11 (Schritt S5) abgeschlossen oder zumindest beendet. Dies geschieht durch das Anwenden der abgerufenen Aktionen auf der App.
-
Schließlich werden die Daten des fertigen Anwendungsfalles oder Teile davon dem Produktivgerät 16 und/oder der Laufzeitumgebung (Schritt S6) zur Verfügung gestellt.
-
zeigt ein Ablaufdiagramm, das eine weitere Ausführungsform der Erfindung veranschaulicht, um den Umfang möglicher Funktionen der vorliegenden Erfindung zu verdeutlichen.
-
Auf der linken Seite von sind die Komponenten der Produktivgeräte 16 dargestellt. Dazu gehören mindestens ein Gerät 20, das für die Ausführung einer oder mehreren Apps ausgelegt ist, und ein entsprechendes Log-Repository 21.
-
Zu den Komponenten auf der rechten Seite gehören die Komponenten des Laufzeitsystems 10, insbesondere die Fokusmaschine 11, das Aktionsplan-Repository 12, das Verhaltens-Repository 23 und mindestens eine Aktionseinheit 24. Das Aktionsplan - Repository 22, das Verhaltens-Repository 23 und die Aktionseinheit 24 sind in der Regel Teil des Aktionsplan-Repositorys 12.
-
Wenn das Gerät 20 einer Laufzeitumgebung im Gesundheitswesen eine App ausführt, insbesondere eine App mit medizinischen Inhalten, oder in einer medizinischen Umgebung, werden die entsprechenden Protokolldaten dem Protokollarchiv 21 bereitgestellt (Schritt 1.1).
-
Der entsprechende Status des laufenden Anwendungsfalles wird der Fokusmaschine 11 (Schritt 1.2) mitgeteilt. Alternativ kann der Status eines laufenden Anwendungsfalles auch von der Fokusmaschine 11 direkt aus dem Log-Repository 21 erfasst werden. Dadurch kann die Fokusmaschine 11 die laufenden Anwendungsfälle erkennen.
-
Die Fokusmaschine 11 übernimmt die Zuständigkeit für den laufenden Anwendungsfall, wenn eine vordefinierte Bedingung erfüllt ist, z.B. ein Fehlerstatus (Schritt 1.4). Die Fokusmaschine 11 speichert entsprechende Protokolldaten im Log-Repository 21 (Schritt 1.3).
-
Die Fokusmaschine 11 erzeugt dann aus einer Liste der verfügbaren Anwendungsbedingungen (Schritt 1.7) einschlägige Anwendungsbedingungen, d.h., solche Anwendungsbedingungen, die gegenüber anderen zu priorisieren sind. Die Fokusmaschine 11 hat diese Liste der verfügbaren Anwendungsbedingungen in einem früheren Stadium zusammengetragen, z.B. zunächst, als die Fokusmaschine 11 den Inhalt des Aktionsplan-Repositorys 22 gelesen hat (Schritt 1.0). Insbesondere bewertet die Fokusmaschine 11, welche Bedingungen grundsätzlich verfügbar sind und was eine typische Reaktion oder Standardreaktion in der vorliegenden Phase und für das gegebene Szenario ist.
-
Nachdem die einschlägige Anwendungsbedingungen erfasst wurden, liest die Fokusmaschine 11 aus dem Verhaltens-Repository 23 geeignete Verhaltensmetriken aus, die den erfassten Anwendungsbedingungen entsprechen (Schritt 1.8). Anhand dieser Informationen kann die Fokusmaschine 11 entscheiden, welche Bedingung in der vorliegenden Phase des Anwendungsfalls und für das gegebene Szenario anzuwenden ist (Schritt 1.9). Auf der Grundlage dieser Informationen werden die Aktionen und die Reihenfolge, in der sie in der vorliegenden Phase des Anwendungsfalls ausgeführt werden, ermittelt (Schritt 1.10).
-
Darüber hinaus kann die Fokusmaschine 11 auch andere Hintergrundinformationen aus dem Verhaltensrepository 23 ableiten, z.B. Erfolgsmetriken (Schritt 1.11).
-
Im Folgenden versucht die Fokusmaschine 11, den laufenden Anwendungsfall oder die Anwendungsfallphase durch Verwendung einer Aktion oder einer Abfolge von Aktionen, die aus dem Aktionsplan abgeleitet wurden, abzuschließen oder zumindest zu beenden (Schritte 1.12, 1.13). Dazu stellt die Fokusmaschine 11 Funktionen und Daten für den fehlerhaften Anwendungsfall bereit, der das Produktivgerät 16 betrifft.
-
Optional, aber nicht obligatorisch, überwacht und überprüft die Fokusmaschine 11 dann den Zustand und den Erfolg der durchgeführten Maßnahmen (Schritt 1.14). Die entsprechenden Daten werden im Verhaltens-Repository 23 (Schritt 1.16) gespeichert.
-
Schließlich liefert die Fokusmaschine 11 das Ergebnis des fehlerhaften Anwendungsfalles, der in der oben beschriebenen Weise abgeschlossen oder beendet wurde, an die ausführbare App des Geräts 20. Dies kann durch einen Push-Prozess von der Fokusmaschine 11 bis zum Gerät 20 (Schritt 1.17) oder durch einen Pull-Prozess vom Gerät 20 zur Fokusmaschine 11 (Schritt 1.18) erfolgen.
-
Optional, aber nicht obligatorisch, kann der Aktionsplan, der von der Fokusmaschine 11 zum Ausführen oder Beenden eines fehlerhaften Anwendungsfalles verwendet wird, im Aktionsplan-Repository 22 gespeichert werden. Auf diese Weise kann die Fokusmaschine 11 eine aktualisierte Liste der verfügbaren Aktionspläne für einen möglichen Fehlerstatus einer nachträglich ausgeführten App herunterladen (Schritt 1.0).
-
In der vorstehenden Spezifikation wurde die Erfindung unter Bezugnahme auf spezifische Beispiele von Ausführungsformen der Erfindung beschrieben. Es ist jedoch offensichtlich, dass darin verschiedene Änderungen und Änderungen vorgenommen werden können, ohne von dem in den Ansprüchen dargelegten breiteren Grundgedanken der Erfindung abzuweichen.
-
Da die Vorrichtungen die vorliegende Erfindung umsetzen, bestehen sie zum größten Teil aus elektronischen Komponenten, die den Fachleuten bekannt sind und daher nicht in weiterem Umfang erläutert werden, als die oben als notwendig erachteten, zum Verständnis und zur Wertschätzung der zugrunde liegenden Begriffe der vorliegenden Erfindung und um die Lehren der vorliegenden Erfindung nicht zu verschleiern oder von ihnen abzulenken.
-
Darüber hinaus können die Vorrichtungen auch physisch über eine Reihe von Vorrichtungen verteilt werden, während sie funktional als einzelne Vorrichtungen betrieben werden. Vorrichtungen, die funktional separate Vorrichtungen bilden, können in ein einzelnes physisches Gerät integriert werden. Der Fachmann wird erkennen, dass die Grenzen zwischen Logik- und Funktionsblöcken lediglich anschaulich sind und dass alternative Ausführungsformen Logik- oder Funktionsblöcke verschmelzen oder verschiedenen Logik- oder Funktionsblöcken eine alternative Aufteilung der Funktionalitäten angedeihen lassen können.
-
In der Beschreibung sind Bezugszeichen nicht als Beschränkung des Anspruchs auszulegen. Das Wort „bestehen aus“ schließt das Vorhandensein anderer Elemente oder Schritte nicht aus, die dann in einem Anspruch aufgeführt sind. Darüber hinaus werden die Begriffe „ein“, „eines“ usw. wie hier verwendet, als „eines oder mehrere“ definiert. Auch sollte die Verwendung von einführenden Formulierungen wie „mindestens ein“ und „ein oder mehrere“ in den Ansprüchen nicht so ausgelegt werden, dass die Einführung eines anderen Anspruchselements durch die unbestimmten Artikel „ein“, „eines“ usw. einen bestimmten Anspruch, der solche eingeführten Anspruchselemente enthält, auf ein solches Element beschränkt, selbst wenn derselbe Anspruch die einleitenden Formulierungen „ein oder mehrere“ oder „mindestens einen“ und unbestimmten Gegenstände wie „ein“, „eines“ usw. enthält. Dasselbe gilt für die Verwendung bestimmter Artikel. Sofern nicht anders angegeben, werden Begriffe wie „erste“ und „zweite“ verwendet, um willkürlich zwischen den Elementen zu unterscheiden. Daher sind diese Begriffe nicht dazu gedacht, eine zeitliche oder andere Priorisierung solcher Elemente anzuzeigen. Allein der Umstand, dass bestimmte Maßnahmen in unterschiedlichen Ansprüchen vorgetragen werden, deutet nicht darauf hin, dass eine Kombination dieser Maßnahmen nicht zum Vorteil genutzt werden kann. Die Reihenfolge der In einem Anspruch dargestellten Schritte berührt nicht die Reihenfolge, in der die Schritte tatsächlich durchgeführt werden können, es sei denn, sie wird im Anspruch ausdrücklich festgelegt.
-
Fachleute werden verstehen, dass die Abbildungen ausgewählter Elemente in den Zeichnungen nur verwendet werden, um das Verständnis der Funktionalität und der Anordnung dieser Elemente in verschiedenen Ausführungsformen der vorliegenden Erfindung zu verbessern. Gängige und gut bekannte Elemente, die in einer kommerziell umsetzbaren Ausführungsform nützlich oder notwendig sind, sind in den Zeichnungen in der Regel nicht dargestellt, um das Verständnis des technischen Konzepts der verschiedenen Ausführungsformen der vorliegenden Erfindung zu erleichtern. Bestimmte Verfahrensschritte in den beschriebenen Verfahren können in einer bestimmten Reihenfolge des Auftretens beschrieben oder dargestellt werden, wobei die Fachleute verstehen werden, dass eine solche Spezifität in Bezug auf die Reihenfolge bei der Umsetzung nicht erforderlich ist.
-
Im Rahmen der Software- oder Informationsmodellierung bezeichnet der Ausdruck „Happy Path“ ein Standardszenario ohne außergewöhnliche Ereignisse oder Fehlerzustände, z.B. einen besten Pfad.
-
Im Software-Engineering ist der Anwendungsfall (engl.: Use Case) eine Liste von Aktionen oder Ereignisschritte, die in der Regel die Interaktionen zwischen einer Instanz (bei UML z.B. als Actor bezeichnet) und einem System definieren, um ein Ziel zu erreichen.
-
Ein Aktionsplan-Repository bezeichnet ein geeignetes Daten- oder Objekt-Speichereinrichtung. Das Datenspeichereinrichtung kann ein Computer- Speichereinrichtung, z.B. eine Datenbank, Register, Speicherdisc oder Laufwerk, DRAM usw. Eine Objekt-Speichereinrichtung (auch bekannt als objektbasierter Speicher) ist eine Computerdatenspeicherarchitektur, die Daten als Objekte verwaltet, im Gegensatz zu anderen Speicherarchitekturen wie Dateisystemen, die Daten als Dateihierarchie verwalten, und Blockspeicher, die Daten als Blöcke innerhalb von Sektoren und Tracks verwaltet. Objektspeicher werden häufig in einer Cloud-basierten Architektur verwendet.
-
Eine Fokusmaschine ist in der Regel Teil einer programmgesteuerten Vorrichtung, z.B. eines Computers, Mikroprozessors, Mikrocomputers, DSPs, CPUs und dergleichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- EP 3457408 A1 [0002]
- EP 3567600 A1 [0002]