-
Die
Erfindung liegt auf dem Gebiet der Prozessüberwachung und der Wiederherstellung (Re-Start),
falls ein Prozessabbruch aufgetreten ist.
-
Der
Begriff Prozess im Rahmen der vorliegenden Erfindung meint hier
alle Vorgänge
und Ereignisse, die – aus
informationstechnologischer Hinsicht – auf einem Rechner, einem
Rechner-Netzwerk und/oder auf zugehörigen Peripherie-Geräten oder sonstigen
angeschlossenen Geräten
ausgeführt
werden. Eine Applikation kann somit mehrere Prozesse triggern. Üblicherweise
merkt der Anwender nichts von dem Aufruf oder der Ausführung der
zugrundeliegenden Prozesse. Wird beispielsweise eine Textverarbeitungs-Applikation
ausgeführt,
so ist es möglich, dass
diese Applikation einen Prozess aufruft, der die Druckertreiber
und Druckersteuerung betrifft und Prozesse auf der CPU ausführt und
möglicherweise noch
weitere Prozesse, die Zugriffe auf Netzwerk-Komponenten steuern.
-
In
einem komplexen Applikationsumfeld gibt es in der Regel eine Vielzahl
von Applikationen, die gegebenenfalls funktional aufeinander aufsetzen
(z. B. durch Aufrufe) und somit prozesstechnologisch Interdependenzen
aufweisen. Muss nun ein solcher Prozess abgebrochen werden, können folgende
Problempunkte entstehen:
- – Zum Einen können sich
Folgefehler bei einem Ausfall eines Prozesses dann ergeben, wenn
aufgrund der Abhängigkeit
zwischen den einzelnen Prozessen nicht nur die Wiederherstellung
des einen ausgefallenen Prozesses notwendig wird, sondern wenn eine
Wiederherstellungs-Strategie für mehrere
Prozesse erforderlich ist. Dies ist dann der Fall, wenn der Ausfall
des einen Prozesses Ausfälle
anderer Prozesse nach sich zieht.
- – Zum
Anderen ist es aufgrund der Interdependenzen häufig notwendig, die jeweiligen
Prozesse in einer vorbestimmten Reihenfolge wiederherzustellen bzw.
neu zu starten. Diese Reihenfolge des Re-Starts der jeweiligen Prozesse
kann ohne eine Wiederherstellungs-Strategie auf übergeordneter Ebene, die die
Abhängigkeiten
zwischen den Prozessen berücksichtigt,
nicht gelöst
werden.
-
Ein
weiteres Problem bei Wiederherstellungs-Prozessen ist darin zu sehen,
dass zwar grundsätzlich
alle Prozesse auf Ausfälle
hin überwacht
werden sollen, dass es aber Ausnahme-Situationen gibt, in denen einzelne
oder mehrere ausgewählte
Prozesse von der Überwachung
und Wiederherstellung ausgenommen sein sollen. Dies kann insbesondere
dann der Fall sein, wenn ein Prozess einem Wartungsvorgang unterzogen
wird. Darüber hinaus
ist es möglich,
dass nach dem erstmaligen Ausfall des Prozesses ein wiederholtes
Wiederherstellen dieses Prozesses versucht worden ist – allerdings
ohne Erfolg. Dann wird der Wiederherstellungsvorgang nach einer
bestimmten Anzahl von Versuchen abgebrochen und es wird das Vorliegen eines
systematischen Fehlers angenommen, der durch das Einleiten weiterer
Recovery-Maßnahmen erst
behoben werden muss. In diesem Fall ist es sinnvoll, diesen Prozess
zwar nicht aus der Überwachung
aber zumindest von der Wiederherstellung auszunehmen. Bei bisher
bekannten Systemen aus dem Stand der Technik liegt nun eine große Fehlerquelle
darin, dass ein – in
der Regel manuell – ausgenommener
Prozess aus dem Überwachungs- und/oder
Monitoring-Vorgang ausgenommen ist. Es war bisher erforderlich,
dass ein solcher (ausgeschalteter) Prozess nach dem Beheben des
Fehlers oder nach der Fertigstellung des Wartungsvorganges gezielt
durch eine aktive Handlung des Systemadministrators erst wieder
in die Überwachung
eingeführt werden
muss. Wird dieses aktive Rückeinführen eines
manuell ausgenommenen Prozesses vergessen, besteht eine Sicherheitslücke und
der Prozess bleibt unüberwacht.
Dies kann schwere Folgefehler auslösen.
-
Eine
zentrale Überwachung
von rechnerbasierten Einheiten oder Rechnern in einem Netzwerk durch
den Einsatz von Agents oder Logfiles ist im Stand der Technik bekannt.
-
So
zeigt die
JP10326208
A ein Fehlerbehebungssystem, bei dem ebenfalls eine Vielzahl
von Komponenten überwacht
werden. Für
jede Komponente wird eine Fehler-Analyse und eine entsprechende
Fehlerbehebung ausgeführt.
-
Die
EP920155 B1 offenbart
ein Monitoring-System für
eine Vielzahl von Computer-Agenten, die an eine zentrale Instanz, über ein
Netzwerk angeschlossen sind. Die einzelnen Agenten melden Fehler
an die zentrale Instanz. Dadurch ist es möglich, dass die zentrale Instanz
auch Fehler analysiert, die z. B. Netzwerkfehler oder Kommunikationsfehler
betreffen. Dazu wird jeweils der Status von mehreren Agenten verarbeitet.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, die vorstehend
genannten Nachteile aus den Verfahren und Vorrichtungen nach dem
Stand der Technik zu überwinden
und diese zu verbessern. Insbesondere sollen Fehlerquellen ausgeschlossen werden,
indem der Vorgang des Überwachens
weiter automatisiert wird. Darüber
hinaus soll eine flexiblere Steuerung des Überwachungs- und Wiederherstellungs-Vorganges
möglich
sein, so dass weitere Systemanforderungen berücksichtigt werden können, ohne
dass die Qualität
des Überwachungs-
und Wiederherstellungs-Prozesses
leiden muss.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Verfahren und eine Vorrichtung gemäß den beiliegenden Hauptansprüchen gelöst.
-
Sie
wird insbesondere gelöst
durch ein Verfahren zur Überwachung
und Wiederherstellung einer Vielzahl von Prozessen in einer verteilten
Applikations-Umgebung,
- – wobei jeder Prozess einer
Prozessgruppe zugeordnet wird, wobei sich die Prozessgruppe dadurch
definiert, dass alle Prozesse einer Prozessgruppe zumindest funktional
voneinander abhängig
sind
- – wobei
zumindest ein Prozess zeitweise aus dem erfindungsgemäßen Verfahren,
insbesondere der Wiederherstellung, ausgenommen werden kann, wenn
eine konfigurierbare Ausschalt-Bedingung erfüllt ist und wobei die Ausschalt-Bedingung überwacht
wird, so dass der Prozess automatisch wieder in den Vorgang der
Wiederherstellung aufgenommen wird, sobald die Ausschalt-Bedingung nicht mehr
erfüllt
ist,
- – wobei
für alle
oder für
ausgewählte
Prozessgruppen oder für
Prozesse, die keinen Prozess umfassen, für den die Ausschalt-Bedingung
gilt, folgende Verfahrensschritte ausgeführt werden:
- – Überwachung
aller Prozesse einer Prozessgruppe auf Ausfall oder auf einen Fehler
(bzw. Failure) und
- – falls
ein Ausfall identifiziert worden ist und falls kein Prozess der
Prozessgruppe die Ausschalt-Bedingung
erfüllt:
Wiederherstellen aller Prozesse in der Prozessgruppe durch Ausführen jeweils
eines Restart-Befehls und
- – Synchronisation
von Befehlen, die dazu bestimmt sind, den Überwachungs- und Wiederherstellungs-Vorgang
auszuführen
und/oder zu steuern und die in derselben Prozessgruppe ausgeführt werden
sollen.
-
Das
hauptsächliche
Anwendungsgebiet der Erfindung liegt auf dem Gebiet medizinisch-klinischen
Applikationen, die vorwiegend im Krankenhaus-Umfeld eingesetzt werden.
Dies sind insbesondere PACS-Systeme (Picture-Archiving-and-Communication-System)
und/oder RIS-Systeme (Radiology-Information-Systems).
In der Regel sind die zugehörigen
Applikationen über
ein Netzwerk miteinander verbunden und greifen auf eine Vielzahl
von Standard-Applikationen zu (z. B. Textverarbeitung, Tabellenkalkulation,
etc.). Es ist jedoch ebenso möglich,
die vorliegende Erfindung auf andere Applikations-Umgebungen anzuwenden.
-
Um
die Abhängigkeiten
zwischen den Prozessen, die insbesondere durch die jeweilige Inter-Prozess-Kommunikation
verursacht werden, zu berücksichtigen,
wird erfindungsgemäß jeder
zu überwachende
Prozess eindeutig einer Prozessgruppe zugeordnet. Eine Prozessgruppe
definiert sich dadurch, dass alle in ihr befindlichen Prozesse aus
Systemsicht wechselseitige oder einseitige (z. B. Aufrufe) Interdependenzen
bzw. Abhängigkeiten
aufweisen. In der Regel handelt es sich um funktionale Abhängigkeiten,
also wenn ein Prozess das Ergebnis eines anderen Prozesses für die Weiterverarbeitung benötigt. Im
Rahmen der Erfindung liegt es jedoch ebenso, auch andere Interdependenzen
zu berücksichtigen.
Dies hat den Vorteil, dass "Side-Effects" eines einzelnen
Prozess-Ausfalls automatisch auch berücksichtigt werden können. Fällt beispielsweise ein
Prozess für
eine Kommunikations-Verbindung aus und greift ein anderer Prozess
auf diesen Kommunikations-Verbindungs-Prozess zu, dann ist erfindungsgemäß gewährleistet,
dass sich beide Prozesse in derselben Prozessgruppe befinden, da
sie funktional voneinander abhängig
sind. Bei den bisherigen Verfahren können sich dann Probleme ergeben, wenn
nur der eine Prozess einen Prozess-Absturz meldet, aber davon indirekt
andere Prozesse betroffen sind, die keine solche Meldung ausgeben.
Erfindungsgemäß werden
all die davon berührten
anderen Prozesse (also die in derselben Prozessgruppe) berücksichtigt
und es kann ein systematischer Neustart des Prozessumfelds eingeleitet
werden.
-
Ein
wesentlicher Punkt der vorliegenden Erfindung ist darin zu sehen,
dass das gesamte Überwachungs-
und Wiederherstellungs-Verfahren wesentlich flexibler eingesetzt
werden kann und somit Möglichkeiten
gegeben sind, um den Vorgang adaptiv an die jeweiligen Systembedingungen
anpassen zu können.
Insbesondere ist es gerade im medizinisch-klinischen Umfeld unabdingbare Vorraussetzung,
dass die jeweiligen Prozesse zuverlässig einer zyklischen Wartung
unterzogen werden. In der Regel führt dies ein System-Administrator aus.
Wenn ein Prozess gewartet wird, kann es in einigen Fällen erforderlich
sein, dass der Prozess dabei selbst nicht aktiv ist und dass somit
auch andere Applikationen nicht auf ihn zugreifen können. In
diesem Fall macht es keinen Sinn, diesen Prozess in den zyklischen Überwachungs-
und Wiederherstellungs-Vorgang mit einzubeziehen, da dies notwendigerweise
zu einer Flut von unnötigen
Fehlermeldungen führen
würde. Erfindungsgemäß ist es
deshalb vorgesehen, bestimmte Ausnahme-Bedingungen bzw. Ausschalt-Bedingungen
einzuführen.
In diesen Ausschalt-Bedingungen
wird definiert, in welchen Fällen ein
Prozess aus dem Wiederherstellungs-Vorgang ausgenommen und damit
ausgeschaltet werden soll. Damit nun Fehler durch falsche Bedienung
zuverlässig
ausgeschlossen werden können,
ist es erfindungsgemäß vorgesehen,
dass ein Prozess, für
den die Ausschalt-Bedingung eingetreten ist und der somit aus dem
Widerherstellungs-Vorgang ausgenommen worden ist, nicht durch das Überwachungsnetz fällt. Deshalb
wird die Ausschalt-Bedingung
laufend überwacht.
Sobald festgestellt wird, dass die Ausschalt-Bedingung nicht mehr
erfüllt
ist und auch keine weiteren Voraussetzungen erfüllt sind, den Prozess aus der Überwachung
und/oder aus der Wiederherstellung auszunehmen, ist es vorgesehen,
dass dieser Prozess automatisch wieder in das Verfahren eingeführt wird.
Der wesentliche Vorteil dieses Vorgehens ist darin zu sehen, dass
Fehler sicher vermieden werden können,
die dadurch entstehen, dass ein Anwender das manuelle und explizit
erforderliche Rückübertragen
eines ehemals ausgenommenen Prozesses schlichtweg vergessen werden.
Damit kann die Zuverlässigkeit
des Überwachungssystems und
damit indirekt auch des zu überwachenden
Systems deutlich gesteigert werden.
-
In
der bevorzugten Ausführungsform
der Erfindung werden die Prozesse auf Abbruch bzw. Ausfall überwacht.
Alternativ dazu ist es auch möglich, diese
auf weniger weit reichende Fehler hin zu überwachen.
-
In
der Regel wird ein Prozess, für
den eine Ausschalt-Bedingung
gilt zwar aus dem Wiederherstellungsvorgang, nicht jedoch aus dem Überwachungsvorgang
ausgenommen. Dies kann die Sicherheit des Systems steigern. Alternativ
ist es möglich,
die ausgeschalteten Prozesse sowohl aus der Wiederherstellung als
auch aus der Überwachung auszunehmen.
-
Vorteilhafterweise
müssen
die erfindungsgemäßen Schritte
nicht alle zeitgleich oder unmittelbar aufeinander folgend ausgeführt werden,
sondern es ist ebenso möglich,
die Schritte zeitlich zu verteilen. Insbesondere ist es sinnvoll,
die Definition von Prozessgruppen und die Zuordnung der Prozesse
zu einer Prozessgruppe bereits im Vorfeld auszuführen.
-
Kern
der erfindungsgemäßen Lösung ist
der eigentliche Überwachungs-Vorgang.
Dafür werden für alle Prozesse,
die überwacht
werden sollen nachstehende Verfahrensschritte ausgeführt. Aufgrund der
gegenseitigen Interdependenzen der Prozesse in einer Prozessgruppe
kann es voreingestellt sein, dass nicht nur der jeweilige Prozess,
für den
die Ausschalt-Bedingung
gilt, von dem eigentlichen Re-Start ausgeschlossen wird, sondern
dass auch alle anderen mit ihm in derselben Prozessgruppe befindlichen Prozesse
von dieser Wiederherstellungsaufgabe ausgeschlossen werden, da sie
zwangsläufig
auf einen Fehler laufen würden.
Es ist jedoch ebenso möglich,
dieses Vorgehen durch geeignete Voreinstellungen anders zu gestalten.
In der bevorzugten Ausführungsform
werden folgende Verfahrensschritte ausgeführt:
- 1.
Zyklisches Überwachen
aller Prozesse auf Ausfall bzw. auf Prozessabbruch
- 2. falls ein Ausfall identifiziert worden ist: Wiederherstellen
aller Prozesse in der Prozessgruppe (also nicht nur des ausgefallenen
Prozesses sondern auch all derjenigen Prozesse, die von ihm abhängen) durch Ausführen jeweils
eines Restart-Befehls in Bezug auf die Prozesse und in einer vorkonfigurierbaren
Reihenfolge und
- 3. Synchronisation von Überwachungs-
und Wiederherstellungs-Befehlen
in der Prozessgruppe.
-
In
der Regel handelt es sich bei den Befehlen, die zum Zwecke der Überwachung
und Wiederherstellung auf den Prozessen ausgeführt werden, um die Befehle "START", "STOP" und/oder "RESTART". Es liegt jedoch
ebenso im Rahmen der Erfindung hier zusätzliche oder alternative Befehle
vorzusehen, die relevant für
die Überwachung
und/oder das Wiederherstellen eines abgebrochenen Prozesses sind.
-
Befindet
sich ein Prozess gerade in der Überwachungs-Analyse,
so kann es zu Fehlern in dem Überwachungsvorgang
führen,
wenn ebenfalls in diesem Zeitintervall andere Befehle auf den Prozessen
in der gleichen Prozessgruppe ausgeführt werden. Dies ist insbesondere
dann der Fall, wenn die Überwachung
eines Prozesses die Ausführung von
zumindest einem Befehl erfordert. Deshalb ist es notwendig und erfindungsgemäß vorgesehen,
dass die jeweiligen Überwachungs-
und Monitoring-Befehle
synchronisiert werden. In einer sehr einfachen Ausführung der
Erfindung wird auf diese Synchronisation verzichtet. Dann werden
nur folgende Verfahrensschritte ausgeführt:
- – Überwachen
und
- – Wiederherstellen.
-
Durch
die Gruppierung der Prozesse in einer Prozessgruppe ist es vorteilhafterweise
erfindungsgemäß möglich, eine
REBOOT- bzw. RESTART-Strategie
für die
Reihenfolge des Restarts der einzelnen Prozesse in der Gruppe zu
berücksichtigen.
Insbesondere ist es vorkonfiguriert, in welcher Reihenfolge die
jeweiligen Prozesse einer Prozessgruppe bei einem Fehler eines Prozesses
in dieser Gruppe gestartet werden sollen. Alternativ dazu ist es bei
kritischen Applikationen möglich,
diese Reihenfolge adaptiv bestimmbar zu machen, insbesondere durch
eine entsprechende Benutzereingabe. Darüber hinaus kann die RESTART-Strategie
auch die Vorkonfiguration von bestimmten Parametern für das Starten
der jeweiligen Prozesse umfassen.
-
Aus
den Verfahren nach dem Stand der Technik ist es bekannt, eine so
genannte Überwachungsliste
mitzuführen,
in der zu jedem Zeitpunkt definiert wird, welche Prozesse sich in
der Überwachung
befinden bzw. welche nicht darin enthalten sind. Das Führen dieser
Liste (also insbesondere das Einfügen und Löschen von Prozessen in bzw.
aus dieser Liste) erfolgte bisher manuell. Dies ist eine potentielle
Fehlerquelle. Ein wesentlicher Vorteil des erfindungsgemäßen Verfahrens
ist darin zu sehen, dass diese Liste nunmehr automatisch geführt wird. Insbesondere
erfolgt das Einfügen
von Prozessen in die Liste (d. h. das Zuschalten der Prozesse in
den Überwachungs-Vorgang) automatisch.
-
Üblicherweise
wird das Verfahren zentral ausgeführt, etwa durch die Bedienung
eines System-Administrators. Damit kann vorteilhafter Weise erreicht
werden, dass bestimmte Überwachungs-Strategien,
die das Zusammenwirken der Prozesse berücksichtigen, umgesetzt werden.
Bei Überwachungs-Mechanismen, die
lediglich die einzelnen, zu überwachenden
Prozesse singulär
betrachten, ist dies nicht möglich.
-
In
der Regel wird die eigentliche Überwachung
zyklisch nach voreinstellbaren Zeitintervallen ausgeführt. Es
ist jedoch alternativ oder kumulativ ebenso möglich, die Überwachung dann zu triggern, wenn
bestimmte Ereignisse vorliegen. Hier sind z. B. Szenarien denkbar,
die berücksichtigen,
dass die Überwachung
vor einer sehr kritischen Verwendung der Applikation sehr engmaschig
erfolgen soll.
-
Die
Definition der Kriterien für
die Bildung einer Prozessgruppe ist ein wesentlicher Aspekt dieser Erfindung.
Um möglichst
alle Szenarien abzudecken ist es deshalb notwendig, dass jeweils
neu in das System hinzukommende Applikations-Komponenten (und damit
neue Prozesse) den erfindungsgemäßen Einheiten
gemeldet werden, so dass automatisch auch neu entstandene Prozess-Abhängigkeiten
berücksichtigt
werden können.
Vorzugsweise ist hierfür ein
Editor vorgesehen, der es dem System-Administrator ermöglicht,
die Abhängigkeiten
aus der Sicht der Interprozess-Kommunikation zu definieren. Durch
entsprechende Felder auf der Benutzer-Oberfläche können in alternativen Ausführungsform
der Erfindung noch weitere Kriterien hinzugefügt bzw. hinzugeschaltet werden,
die über
die reine Analyse der Abhängigkeiten
hinausgehen und z. B. Abläufe
in anderen Rechnersystemen berücksichtigen
(denkbar ist hier der Absturz einer remote-liegenden Datenbank,
auf die zugegriffen werden kann).
-
Vorzugsweise
werden alle Schritte des vorstehend beschriebenen Verfahrens automatisch
ausgeführt.
Es liegt jedoch ebenso im Rahmen der Erfindung, das Verfahren halbautomatisch
zu gestalten, so dass nur eine Auswahl der Verfahrensschritte automatisch
ausgeführt
wird.
-
In
der Regel wird ein Ergebnis und/oder Zwischenergebnis der erfindungsgemäßen Lösung erfasst,
gespeichert und/oder – über eine
entsprechende Benutzer-Oberfläche – angezeigt.
Insbesondere ist es vorgesehen, dass die Überwachungsliste automatisch
angezeigt wird, sobald sich Änderungen
darin ergeben. Falls ein Prozess-Absturz identifiziert worden ist,
wird dies – wie
im Stand der Technik bekannt – angezeigt
und es werden die geeigneten Recovery-Maßnahmen eingeleitet.
-
Die
vorstehend beschriebenen, erfindungsgemäßen Ausführungsformen des Verfahrens
können
auch als Computerprogrammprodukt ausgebildet sein, wobei der Computer
zur Durchführung
des oben beschriebenen, erfindungsgemäßen Verfahrens veranlasst wird
und dessen Programmcode durch einen Prozessor ausgeführt wird.
-
Eine
alternative Aufgabenlösung
sieht ein Speichermedium vor, das zur Speicherung des vorstehend
beschriebenen, computer implementierten Verfahrens bestimmt ist und
von einem Computer lesbar ist.
-
Darüber hinaus
ist es möglich,
dass einzelne Komponenten des vorstehend beschriebenen Verfahrens
in einer verkaufsfähigen
Einheit und die restlichen Komponenten in einer anderen verkaufsfähigen Einheit – sozusagen
als verteiltes System – ausgeführt werden
können.
-
Eine
erfindungsgemäße weitere
Lösung
der Aufgabe liegt deshalb in einem Produkt zur Überwachung und Wiederherstellung
einer Vielzahl von Prozessen in einer verteilten Applikationsumgebung, insbesondere
von medizinisch-klinischen Applikationen, mit:
- – zumindest
einem Zuordnungsmodul, das dazu bestimmt ist, jeden Prozess einer
Prozessgruppe zuzuordnen, wobei eine Prozessgruppe sich dadurch
definiert, dass alle Prozesse einer Prozessgruppe funktional voneinander
abhängig
sind
- – zumindest
einem Schalter, der dazu bestimmt ist, Prozesse zeitweise für die Wiederherstellung aus-
und einzuschalten, wobei der Schalter auf einer konfigurierbaren
Ausschalt-Bedingung
basiert und wobei die Ausschalt-Bedingung überwacht wird, so dass der
Prozess automatisch wieder in die Wiederherstellung aufgenommen
wird, sobald die Ausschalt-Bedingung nicht mehr erfüllt ist
- – zumindest
einem Überwachungsmodul,
das dazu bestimmt ist alle Prozesse einer Prozessgruppe auf Ausfall
zu überwachen
- – zumindest
einem Restartmodul, das dazu bestimmt ist, alle Prozesse in der
Prozessgruppe wiederherzustellen durch Ausführen jeweils eines Restart-Befehls,
falls ein Ausfall identifiziert worden ist und
- – zumindest
einer Synchronisationsmodul, das dazu bestimmt ist, alle Überwachungs-
und Wiederherstellungs-Befehle in derselben Prozessgruppe zu synchronisieren,
wobei
das Produkt Mittel umfasst, die zur Durchführung derjenigen Schritte eines
Verfahrens nach zumindest einem der vorstehend beschriebenen Verfahrensaspekte
eingerichtet sind, die von dem Produkt bewirkt werden, wobei zumindest
ein weiteres Produkt zur Durchführung
der restlichen Schritte des Verfahrens eingerichtet ist, so dass
durch Zusammenwirken der zwei Produkte alle Schritte des Verfahrens
durchgeführt
werden.
-
Weitere
vorteilhafte Ausführungsformen
ergeben sich aus den Unteransprüchen.
-
Das
in Bezug auf das Verfahren vorstehend Gesagte gilt entsprechend
auch für
die erfindungsgemäße Lösung durch
die Vorrichtung.
-
In
der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu
verstehende Ausführungsbeispiele
mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung
besprochen. In dieser zeigen:
-
1 eine übersichtsartige
Darstellung einer erfindungsgemäßen Zuordnung
von Prozessen zu einer Prozessgruppe,
-
2 eine Übersichtsdarstellung über einen erfindungsgemäßen Ablauf
gemäß einer
bevorzugten Ausführungsform,
-
3 eine übersichtsartige
Darstellung einer erfindungsgemäßen Lösung im
Falle eines systematischen Fehlers und
-
4 ein
Blockdiagramm über
die erfindungsgemäßen Module
gemäß einer
bevorzugten Ausführungsform
der Erfindung.
-
Das
hauptsächliche
Anwendungsgebiet der vorliegenden Erfindung sind Netzwerk-Systeme,
die aus mehreren Applikationen bestehen und die insbesondere für das medizinisch-klinische
Umfeld ausgelegt sind. Es liegt jedoch im Rahmen der Erfindung, die
hier vorgestellte Lösung
ebenfalls auf andere technische Gebiete anzuwenden.
-
Im
Rahmen dieser Erfindung sollen unter einem "Prozess" alle Ausführungen von Programm-Codes
bzw. von Programm-Code-Segmenten
und von Hardware-Bauteilen verstanden werden. Der Begriff ist somit
sehr allgemein und umfasst sowohl software-basierte als auch hardware-basierte Komponenten.
-
Wie
aus 1 ersichtlich, umfasst eine Applikation mehrere
Prozesse. Wesentlich bei der Definition der Prozesse ist es, dass
die Prozesse nicht notwendigerweise aus der Sicht des Anwenders
zu der jeweiligen Applikation gehören, sondern aus der Sicht
eines System-Administrators und damit aus der Sicht der Interprozess-Kommunikation.
-
Wie
in 1 dargestellt, umfasst die Applikation A die Prozesse
AA, BA und CA. Bei den Prozessen kann es sich z. B. um
einen Druckertreiber, um einen Datenbankzugriff und um eine Bluetooth-Verbindung
handeln. Es kann sein, dass mehrere Prozesse einer Applikation A
zugeordnet werden können.
Ebenso ist es möglich,
dass es singuläre
Prozesse gibt (wie im Beispiel der 1 die Prozesse
D und E, die wiederum mit anderen Prozessen gekoppelt sind.
-
Ein
wesentliches Merkmal der vorliegenden erfindungsgemäßen Lösung ist
darin zu sehen, dass mehrere Prozesse zu einer Prozessgruppe zusammengefasst
werden. Dabei definiert sich eine Prozessgruppe dadurch, dass die
in ihr befindlichen Prozesse Abhängigkeiten
voneinander aufweisen. Insbesondere handelt es sich um funktionale
Abhängigkeiten
aus der Sicht der Interprozess-Kommunikation. Die Prozesse, die
einer Prozessgruppe zugeordnet sind können zu einer gemeinsamen Applikation gehören; dies
ist jedoch nicht notwendig. Im Rahmen der Erfindung ist es jedoch
möglich,
diese Definition zu erweitern und alternativ oder kumulativ weitere Definitionen
von Prozessgruppen zuzulassen.
-
Wesentlich
ist es für
die Erfindung, dass die Abhängigkeiten
zwischen den einzelnen Prozessen bei einem Wiederherstellungs-Kommando
für das System
berücksichtigt werden.
Dabei hat eine Prozessgruppe jeweils ein einzelnes Wiederherstellungs-Kommando.
-
Üblicherweise
wird die Wiederherstellung eines Systems bzw. einer Prozessgruppe
durch die Ausführung
mehrerer Restart-Kommandos
in einer vorbestimmten Reihenfolge bewerkstelligt.
-
Durch
die Zusammenfassung mehrerer Prozesse zu einer Prozessgruppe ist
es nun möglich, hierbei
eine Wiederherstellungs-Strategie zu berücksichtigen, die insbesondere
der zeitlichen Ausführung
der einzelnen Restart-Befehle
und deren Parametrisierung Rechnung trägt.
-
Gerade
bei kritischen Prozessen im medizinischen Umfeld (z. B. bei PACS-Systemen
auf dem Gebiet der Radiologie) ist es häufig notwendig, dass die einzelnen
Prozesse nicht singulär
betrachtet werden dürfen,
da sie in einer vordefinierten Reihenfolge gestartet werden müssen, falls
einer dieser Prozesse ausgefallen ist.
-
Darüber hinaus
sollen Fehler vermieden werden, die dadurch entstehen, dass ein
eingeschalteter Watch-Dog-Mechanismus in eine Endlosschleife gerät, da er
einen Prozess ständig
neu starten möchte,
der sich in einem Wartungsvorgang befindet. Im Rahmen dieser Erfindung
soll der Begriff Watch-Dog als ein Modul (in Form einer Vorrichtung, eines
Verfahrens oder eines Produktes) verstanden werden, das den Überwachungs-
und Wiederherstellungs-Vorgang ausführt.
-
Grundsätzlich soll
ein Prozess, der gerade gewartet wird, von der Wiederherstellung
ausgeschlossen werden, so dass diese keine Fehler in Bezug auf diesen
Prozess meldet. Bei den bekannten Verfahren aus dem Stand der Technik
wird dies dadurch gewährleistet,
dass der einzelne gewartete Prozess manuell aus einer Überwachungsliste
gelöscht
wird. Damit wird er komplett aus dem Überwachungsvorgang ausgenommen.
Ist nun der Wartungs-Prozess abgeschlossen, so war es bisher notwendig,
dass dieser Prozess jeweils wieder manuell durch eine spezielle
Aktivität
seitens des Administrators in die Überwachungsliste eingefügt werden musste.
Dies birgt ein hohes Fehlerpotential, da der Prozess vollständig aus
dem Überwachungsnetz
herausfallen kann, wenn dieser manuelle Vorgang vergessen wird,
zumal sich ein Wartungs-Prozess auch über ein längeres Zeitintervall erstrecken
kann, sodass der einzelne Prozess "in Vergessenheit gerät". Es ist jedoch auch möglich, dass
nicht nur Wartungs-Kommandos mit einem eingeschalteten Watch-Dog-Mechanismus
kollidieren, sondern, dass auch anderweitige Benutzer-Kommandos
ein Fehlverhalten verursachen können.
Diese Problematik wird erfindungsgemäß dadurch gelöst, dass
die Erfindung ein Ausschalt-Modul vorsieht, das es ermöglicht,
dass einzelne Prozesse aus dem Wiederherstellungs-Vorgang ausgenommen
werden. Dabei ist wesentlich, dass die Bedingungen für einen
solchen Ausschalt-Vorgang
eindeutig festgelegt sind und auf Eintreten überwacht werden. Vorteilhafterweise
sind diese Ausschalt-Bedingungen konfigurierbar. Das heißt, dass
zu einem zeitlich vorgelagerten Zeitpunkt entschieden werden kann,
welche Ereignisse vorliegen müssen,
bzw. welche Bedingungen erfüllt
sein müssen,
dass ein einzelner Prozess aus dem Wiederherstellungs-Vorgang ausgenommen
werden kann. Des weiteren kann definiert werden, unter welchen Bedingungen
(oder Ereignissen) der Prozess wieder in die Überwachung aufgenommen werden soll.
Diese Aus- und Einschalt-Bedingungen werden automatisch überwacht.
Damit kann vorteilhafterweise sichergestellt werden, dass ein Prozess,
der zur Zeit aus dem Monitoring-Mechanismus ausgenommen worden ist,
zuverlässig,
ohne die Ausführung
eines speziellen Befehls und zum richtigen Zeitpunkt wieder der Überwachung
zugeführt
wird.
-
In
einer anderen Ausführungsform
wird ein ausgeschalteter Prozess (also ein Prozess für den zumindest
eine Ausschalt-Bedingung
gilt) nicht nur in Bezug auf die Wiederherstellung, sondern auch
in Bezug auf die Überwachung
ausgeschaltet (damit ist der Verfahrensschritt des Überwachen
in dem erfindungsgemäßen Verfahren
gemeint). Nur die Ausschalt-Bedingung
wird dann überprüft, damit
der Prozess automatisch wieder in Bezug auf die Überwachung eingeschaltet werden
kann.
-
Am
Beispiel der 1 soll nachfolgend gezeigt werden,
wie durch das erfindungsgemäße Verfahren
redundante Überwachungs-Zyklen vermieden werden
können.
Ist beispielsweise der Prozess AA ausgefallen,
so ist es überflüssig, die
von ihm funktional abhängigen
Prozesse BA und CA in
diesem Zeitraum mit wiederholten und zwangsläufig erfolglosen Restart-Befehlen zu überziehen.
Dies gilt für
das Zeitintervall, in dem der Prozess AA abgestürzt ist.
-
Sobald
also der Prozess AA einen Ist-Zustand aufweist,
der von einem Soll-Zustand abweicht, ist es nicht notwendig, dass
die anderen Prozesse in derselben Prozessgruppe überwacht und/oder wiederhergestellt
werden, da sie funktional von dem ausgefallenen Prozess AA abhängig
sind. Die anderen Prozesse derselben Prozessgruppe werden insbesondere
von allen weiteren Wiederherstellungs-Befehlen ausgenommen. Dies
erhöht
die Verfügbarkeit
des Systems.
-
Darüber hinaus
ist es vorgesehen, dass die Befehle, die im Rahmen der Überwachung
und Wiederherstellung auf einzelnen Prozessen einer Prozessgruppe
ausgeführt
werden, synchronisiert werden. Das heißt, dass die Ausführung anderer
Befehle unterbunden ist, wenn zumindest ein Befehl auf einem Prozess
derselben Prozessgruppe ausgeführt wird.
Bei den Überwachungs-
und Wiederherstellungs-Befehlen handelt es sich üblicherweise um Start-, Stop-
und/oder Restart-Befehle. Sobald ein Prozess einen dieser vorstehend
genannten Befehle ausführt,
ist sichergestellt, dass keiner der anderen Prozesse in derselben
Prozessgruppe Befehle annimmt, bis nicht das aktuelle Kommando fertig
ausgeführt
worden ist. Die anderen Befehle für die Prozesse derselben Prozessgruppe
werden in eine Warteschlange geschoben und zu einem späteren Zeitpunkt
abgearbeitet, nämlich
dann, wenn alle übrigen Prozesse
der Prozessgruppe fehlerfrei funktionieren.
-
Grundsätzlich ist
es vorgesehen, dass ein Prozess-Status erfasst werden kann, der
angibt, in welchem Zustand sich der Prozess gerade befindet (z.
B. Prozess: Starting, Stopping, Restarting). Darüber hinaus ist es möglich, einen
Prozess-Gruppenstatus
zu erfassen, der entsprechend den jeweiligen Status der Prozesse
erfasst, die zu einer Prozessgruppe gehören. In der bevorzugten Ausführungsform
der Erfindung ist es vorgesehen, dass der Prozess-Status auch dann
abgefragt werden kann, wenn gerade ein Kommando auf einem Prozess
der Prozessgruppe ausgeführt
wird. Dies hat den Vorteil, dass der System-Administrator die Prozess-Umgebung
engmaschiger überwachen
kann, insbesondere auch dann, wenn z. B. ein Restart-Vorgang eines Prozesses
mehrere Minuten dauert und ansonsten das Überwachungsverfahren unnötig verzögern würde.
-
Ist
in 1 einer der Prozesse A, B oder C ausgefallen,
so kann die Applikation A automatisch wiederhergestellt werden,
indem ein einziges Wiederherstellungs-Kommando KA ausgeführt wird.
Dies erfolgt insbesondere durch ein Script mit bestimmten Aufrufen.
In dem Wiederherstellungs-Kommando KA kann
die Reihenfolge für
die jeweiligen Restart-Befehle für
die Prozesse A, B, C definiert sein, so dass die gesamte Applikation
A automatisch wiederhergestellt werden kann. Bei den Prozessen E
und D handelt es sich um singuläre
Prozesse, die nicht mit anderen Prozessen gekoppelt sind. Für sie gelten
ebenfalls singuläre
Wiederherstellungs-Kommandos KD und KE. Ein Vorteil der erfindungsgemäßen Lösung liegt
darin, dass selbst dann, eine automatische Wiederherstellung möglich ist,
wenn ein Prozess noch keine eigenständige Fehlermeldung abgesetzt
hat und beispielsweise erst zu einem späteren Zeitpunkt ausfallen würde, wenn
die funktionale Abhängigkeit zu
dem ausgefallenen Prozess relevant wird. Damit ist es möglich, bereits
frühzeitig
weitreichende Schäden
sicher zu vermeiden.
-
Wie 2 zeigt,
ist der erfindungsgemäße Watch-Dog-Mechanismus als zentrale
Instanz in einer hierarchisch übergeordneten
Ebene über
den jeweiligen Prozessen und Applikationen angeordnet. Die entsprechenden
Kommandos, die im Rahmen der Überwachung
und Wiederherstellung notwendig sind, werden über den Watch-Dog-Mechanismus ausgeführt.
-
In
dem in 2 dargestellten Beispiel soll der Prozess A einem
Wartungsvorgang unterzogen werden. Der System-Administrator initiiert deshalb einen
Stopp-Befehl für
den Prozess A. Damit wird der Prozess A automatisch aus der Überwachungsliste gelöscht und
damit dem Überwachungs-Vorgang entzogen.
Gleichzeitig wird die Ausschalt-Bedingung überwacht. Die Ausschalt-Bedingung
besteht hier in dem Ende des Wartungsvorganges. Damit ist sichergestellt,
dass der Prozess automatisch wieder dem Wiederherstellungsvorgang
zugeführt
wird, sobald die Ausschalt-Bedingung nicht mehr erfüllt ist
(in diesem Fall: sobald der Wartungsvorgang abgeschlossen ist).
In der Zwischenzeit – also
während
der Wartungsarbeit – ist
der Prozess von der Wiederherstellung ausgeschlossen. Dies führt dazu,
dass unnötige Fehlermeldungen
des Überwachungs-Systems
vermieden werden können,
die darauf basieren, dass zyklisch ausgeführte Re-Start-Befehle notwendigerweise während dieses
Zeitraums erfolglos sind.
-
In
einer vorteilhaften alternativen Ausführungsform der Erfindung ist
ein Deregistrierungs-Vorgang vorgesehen. Dabei handelt es sich um
einen Mechanismus eines Prozesses, der dann aktiviert wird, sobald
ein Stopp-Befehl für
einen Prozess ausgeführt
wird, der sich zusammen mit anderen Prozessen in einer Prozessgruppe
befindet. Der Deregistrierungs-Mechanismus führt dazu, dass sich der gestoppte
Prozess automatisch bei den anderen Prozessen abmeldet bzw. deregistriert.
Damit sind die anderen (funktional abhängigen) Prozesse in der Prozessgruppe über den
Stopp des abgebrochenen Prozesses informiert und können adaptiv
eine Fortsetzungs-Strategie implementieren. Gegebenenfalls kann
dies dazu führen,
dass die anderen Prozesse in der Prozessgruppe fortgesetzt werden,
wenn sie die Aktivierung des abgebrochenen Prozesses nicht mehr benötigen oder
es ist möglich,
dass die anderen Prozesse ebenfalls gestoppt werden, falls die funktionale
Abhängigkeit
zu diesem Zeitpunkt noch relevant ist.
-
In 3 ist
beispielhaft dargestellt, wie sich der erfindungsgemäße Watch-Dog-Mechanismus verhält, falls
ein systematischer Fehler existiert. Unter einem systematischen
Fehler werden all die Fehler zusammengefasst, bei denen wiederholte
Wiederherstellungs-Versuche vergeblich sind. Dabei ist die Anzahl
der Wiederherstellungs-Versuche konfigurierbar. Beträgt die Anzahl
der maximal möglichen Wiederherstellungs-Versuche
n, so besteht die Klasse der systematischen Fehler aus allen Fehlern,
die durch n-malige Wiederholung der Wiederherstellungs-Versuche
nicht gelöst
bzw. behoben werden können.
In so einem Fall ist es nicht sinnvoll, dass der Wiederherstellungs-Mechanismus
die erfolglosen Versuche weiter fortführt. Es ist deshalb erfindungsgemäß vorgesehen,
dass nach n Wiederherstellungs-Versuchen
(wobei n konfigurierbar ist) eine entsprechende Meldung an den Administrator
ausgegeben wird, dass möglicherweise
ein systematischer Fehler vorliegt. Darüber hinaus bleibt der jeweilige Prozess
A jedoch in der Überwachung
und wird immer noch vom Watch-Dog aktiv überwacht, obwohl der Prozess
A auf der Überwachungsliste
gelöscht wurde.
Parallel dazu kann der Administrator den Prozess A warten und den
systematischen Fehler beheben. Nach der Fehlerbehebung entspricht
der Ist-Zustand des Prozesses A seinem Soll-Zustand. Der Prozess
A wird dann automatisch in die Überwachungsliste
aufgenommen. Dies erfolgt ohne explizite Aktion des Administrators
und kann deshalb zur Fehlerfreiheit des Überwachungs-Systems beitragen.
-
Durch
die Automatisierung des Überwachungs-Vorganges
und die Implementierung einer automatischen Überwachung von Ausschalt-Bedingungen
können
die notwendigen Schritte bei Wartungs-Arbeiten deutlich reduziert
und vereinfacht werden. Damit wird es möglich, den Watch-Dog nur für die Teile
bzw. Prozesse auszuschalten, die eine Ausschalt-Bedingung erfüllen, die
insbesondere gewartet werden. Es ist nicht notwendig, das gesamte System
auszuschalten. Dies führt
zu einer höheren Up-Time
bzw. System-Verfügbarkeit
und zu besseren Überwachungsergebnissen.
-
Darüber hinaus
entlastet das erfindungsgemäße Vorgehen
den klinischen Administrator bei Wartungs- und Fehlerbehebungsmaßnahmen,
indem das manuelle Führen
einer Überwachungsliste nicht
mehr notwendig ist. Die Fehlerquote kann damit deutlich reduziert
werden.
-
4 zeigt
in Form eines Blockdiagramms Module 10, 12, 14, 16, 18 gemäß einer
bevorzugten Ausführungsform.
In der Regel umfasst der erfindungsgemäße Watch-Dog ein Zuordnungsmodul 10, einen
Schalter 12, ein Überwachungsmodul 14,
ein Re-Startmodul 16 und
ein Synchronisationsmodul 18.
-
Das
Zuordnungsmodul 10 ordnet jeden Prozess einer Prozessgruppe
zu. Die Zuordnungsrelation ist dabei konfigurierbar. Insbesondere
ist sie so definiert, dass eine Prozessgruppe dadurch definiert wird,
dass alle Prozesse einer Prozessgruppe funktional voneinander abhängig sind
(und damit in der Ablaufumgebung aufeinander zu greifen, z. B. durch Funktionsaufrufe
etc.)
-
Der
Schalter 12 schaltet Prozesse zeitweise für die Wiederherstellung
aus und ein. Die Betätigung des
Schalter 12 erfolgt automatisch und basiert auf einer konfigurierbaren
Ausschalt-Bedingung. Die Ausschalt-Bedingung wird überwacht,
so dass der Prozess automatisch wieder in die Wiederherstellung aufgenommen
wird, sobald die Ausschalt-Bedingung nicht mehr erfüllt ist.
In der Regel ist die Ausschalt-Bedingung ein zusammengesetzter logischer Operator,
der mehrere Bedingungen verknüpft.
-
Das Überwachungsmodul 14 überwacht
alle Prozesse einer Prozessgruppe auf Ausfall. In der Regel wird
dieser Vorgang zyk lisch durchgeführt
oder durch spezifische Ereignisse gesteuert.
-
Das
Restartmodul 16 stellt alle Prozesse in der Prozessgruppe
wieder her, falls ein Ausfall identifiziert worden ist. Dazu wird
für jeweils
eine Prozessgruppe ein Wiederherstellungskommando ausgeführt. Das
Wiederherstellungskommando umfasst in der Regel eine Re-Start-Befehlssequenz,
um die ausgefallenen Prozesse in der korrekten Reihenfolge wieder
neu zu starten.
-
Das
Synchronisationsmodul 18 synchronisiert alle Überwachungs-
und Wiederherstellungs-Befehle, die auf Prozessen in derselben Prozessgruppe
ausgeführt
werden sollen.
-
Abschließend sei
darauf hingewiesen, dass die Beschreibung der Erfindung und die
Ausführungsbeispiele
grundsätzlich
nicht einschränkend
in Hinblick auf eine bestimmte physikalische Realisierung der Erfindung
zu verstehen sind. Für
einen einschlägigen
Fachmann ist es insbesondere offensichtlich, dass die Erfindung
teilweise oder vollständig
in Soft- und/oder
Hardware und/oder auf mehrere physikalische Produkte – dabei
insbesondere auch Computerprogrammprodukte – verteilt realisiert werden kann.