-
Hintergrund
-
Die
Verarbeitung komplexer Ereignisse, das sogenannte Complex Event
Processing (CEP), ist ein Verfahren der Informatik, mit dem Operationen
an komplexen Ereignissen durchgeführt werden. Zu typischen Beispielen
für CEP
gehören
Server-Management, Risikomanagement, die Automatisierung von Lieferketten- und
Einzelhandelsoperationen, Flugbetriebs-Management, Betrugserkennung (fraud
detection) und Infrastrukturüberwachung
(infrastructure monitoring). Das Ziel von CEP besteht darin, signifikante
Ausgangsereignisse aus einer großen Anzahl von Eingangsereignissen
unter Verwendung von Mustern oder Beziehungen her- bzw. abzuleiten,
die zwischen diesen Eingangsereignissen existieren können. Ein
komplexes Ereignis ist ein Ereignis, das eine Abstraktion anderer
Ereignisse ist. An den Ereignissen in einer Einrichtung zum Verarbeiten komplexer
Ereignisse durchgeführte
Operationen können
Lesen, Erzeugen, Transformieren oder Abstrahieren der Ereignisse
einschließen
(sind jedoch nicht darauf beschränkt).
-
Die
Verarbeitung komplexer Ereignisse schließt das Überwachen vieler Quellen von
Ereignisdaten ein. Ein Ereignis ist ein beliebiger Vorgang in einem überwachten
System, so beispielsweise eine CPU-Last, ein Sensorausgang, ein
Tastenanschlag, eine finanzielle Transaktion oder jeder beliebige
andere erfassbare Vorgang. Diese Ursprungsereignisse werden dann
auf Schlüssel-Leistungsindikatoren
hin analysiert, die als Ereignis-Regeln oder Operatoren ausgedrückt werden.
Auf diese Ursprungsereignisse wird dann in Echtzeit eingewirkt,
indem ein kontinuierlicher Ausgang komplexer Ereignisse erzeugt
wird.
-
Jedoch
ist es im Allgemeinen schwierig, aus dem Ausgang einer Einrichtung
zum Verarbeiten komplexer Ereignisse darauf zu schließen, welche
spezifischen Ursprungs-Eingangsereignisse zu dem Ausgang beigetragen
haben. Beispielsweise kann bei einem webbasierten E-Mail-Dienst,
der unter Verwendung einer großen
Anzahl von Servern arbeitet, eine Einrichtung zum Verarbeiten komplexer
Ereignisse Informationen von jedem der Server bezüglich seines
Status (beispielsweise CPU-Last, Speicherplatz) und der Anzahl von E-Mails,
die er verarbeitet, empfangen. Die Einrichtung zum Verarbeiten komplexer
Ereignisse kann diese Ursprungsereignisse analysieren und feststellen,
ob die Leistung des E-Mail-Dienstes abnimmt. Obwohl damit eine umgehende
Mitteilung über
eine Verschlechterung des Dienstes möglich ist, zeigt dies nicht
ohne weiteres an, welcher spezielle Server oder welche spezielle
Gruppe von Servern die Verschlechterung verursacht oder wo der Fehler
liegt.
-
Ursachenanalyse,
eine als ”Root
Cause Analysis” bekannte
Methode, ist ein Verfahren, bei dem ein Ausgang von einem Prozess
betrachtet wird und dann versucht wird, die ursprünglichen
Eingänge
(d. h. die Grundursachen) zu definieren, die das untersuchte Ereignis
verursacht haben. Um Ursachenanalyse bei einer Einrichtung zum Verarbeiten
komplexer Ereignisse anzuwenden, muss eine Aufzeichnung aller Ursprungsereignisse,
Ausgänge
und vorzugsweise aller Zwischenereignisse für die Ursachenanalyse zugänglich sein. Daher
muss jedes Ereignis von der Einrichtung zum Verarbeiten komplexer
Ereignisse zusammen mit Informationen gespeichert werden, die es
mit den vorhergehenden Ereignissen verknüpfen. Da Engines zum Verarbeiten
komplexer Ereignisse normalerweise mehrere zehntausend Ereignisse
pro Sekunde verarbeiten können,
führt dies
zu einem erheblichen Speicherplatzbedarf. Die Speicherung all dieser
Ereignisse verursacht des Weiteren Leistungsaufwand an der Engine
zum Verarbeiten komplexer Ereignisse. Des Weiteren werden viele
dieser gespeicherten Ereignisse niemals verwendet, da sie für die Ursachenanalyse
nicht relevant sind.
-
Darüber hinaus
machen Konstruktion und Verständnis
der Ursachenanalyse Sichtung großer Datenmengen erforderlich,
die von einem Benutzer manuell analysiert werden müssen. Das
heißt,
der Nutzer muss die Daten manuell analysieren und filtern, um diejenigen
Ereignisse zu finden, die zu einem bestimmten Ausgang beigetragen
haben.
-
Die
im Folgenden beschriebenen Ausführungsformen
sind nicht auf Implementierungen beschränkt, die beliebige oder alle
der Nachteile bekannter Einrichtungen zum Verarbeiten komplexer
Ereignisse beheben.
-
Zusammenfassung
-
Es
folgt eine vereinfachte Zusammenfassung der Offenbarung, die dem
Leser ein grundlegendes Verständnis
ermöglicht.
Diese Zusammenfassung ist kein erschöpfender Überblick über die Offenbarung und benennt
nicht wichtige bzw. ausschlaggebende Elemente der Erfindung oder
grenzt den Schutzumfang der Erfindung ab. Ihr einziger Zweck besteht
darin, einige hier offenbarte Prinzipien in vereinfachter Form in
Vorgriff auf die später
folgende ausführliche
Beschreibung darzustellen.
-
Beschrieben
wird Ursachenanalyse für
Verarbeitung komplexer Ereignisse. In Ausführungsformen wird Ursachenanalyse
an einer Einrichtung zum Verarbeiten komplexer Ereignisse automatisch
durchgeführt, indem
ein Ausgangsereignis von einem Operator ausgewählt wird und das Ausgangsereignis
unter Verwendung von Ereignistyp-Daten und Lebensdauer-Daten für das Eingangsereignis
und das Ausgangsereignis, die in einem Datenspeicher gespeichert
sind, korreliert wird. Ausführungsformen
beschreiben, dass die Lebensdauer-Daten eine Anfangszeit und eine Endzeit
für das
Ereignis umfassen können
und die Korrelation auf einem Vergleich der Anfangs- und der Endzeit
zwischen dem Eingangs- und dem Ausgangsereignis basieren kann. Ausführungsformen
beschreiben, dass der verwendete Korrelationsalgorithmus in Abhängigkeit
von dem Ereignistyp ausgewählt
wird. In Ausführungsformen
umfasst eine Engine zum Verarbeiten komplexer Ereignisse eine Aufzeichnungseinheit,
die so eingerichtet ist, dass sie einen Indikator eines Ereignis-Typs
und Lebensdauer-Daten für
jedes Ausgangereignis von einem Operator in dem Datenspeicher speichert.
-
Viele
der weiteren Merkmale werden bei besserem Verständnis unter Bezugnahme auf
die folgende ausführliche
Beschreibung im Zusammenhang mit den beigefügten Zeichnungen leichter ersichtlich.
-
Beschreibung der Zeichnungen
-
Die
vorliegende Erfindung wird beim Lesen der folgenden ausführlichen
Beschreibung im Zusammenhang mit den beigefügten Zeichnungen besser verständlich,
wobei:
-
1 eine
Engine zum Verarbeiten komplexer Ereignisse darstellt;
-
2 einen
Prozess zum Durchführen
von Ursachenanalyse in einer Engine zum Verarbeiten komplexer Ereignisse
darstellt;
-
3 einen
Prozess zum Erstellen eines Fehlerbaums darstellt;
-
4 einen
Prozess darstellt, mit dem festgestellt wird, ob Korrelation eines
Eingangsereignisses mit einem Ausgangsereignis vorliegt;
-
5 einen
Modifizierungs-Korrelationsalgorithmus darstellt;
-
6 ein
Beispiel eines Operators darstellt, der die Nutzinformation eines
Einfüge-Ereignisses
modifiziert;
-
7 ein
Beispiel eines Operators darstellt, der die Lebensdauer eines Einfügungs-Ereignisses modifiziert;
-
8 einen
Korrelationsalgorithmus für
neue Ereignisse darstellt;
-
9 ein
Beispiel eines Operators darstellt, der Einfüge-Ereignisse zusammenführt;
-
10 ein
weiteres Beispiel eines Operators darstellt, der Einfüge-Ereignisse
zusammenführt;
-
11 ein
Beispiel eines Operators darstellt, der Einfüge-Ereignisse vereinigt;
-
12 einen
Korrelationsalgorithmus für
aktualisierte Ereignisse darstellt;
-
13 ein
Beispiel einer Operation darstellt, die an einem aktualisierten
Ereignis durchgeführt
wird;
-
14 einen
Korrelationsalgorithmus für
ein Synchronzeitschritt-Ereignis (concurrent time increment event
correlation algorithm) darstellt;
-
15 ein
Beispiel einer Operation darstellt, die an einem Synchronzeitschritt-Ereignis
durchgeführt wird;
-
16 eine
beispielhafte computerbasierte Vorrichtung darstellt, in der Ausführungsformen
einer Einrichtung zum Verarbeiten komplexer Ereignisse unter Verwendung
von Ursachenanalyse implementiert werden können.
-
Gleiche
Bezugszeichen werden in den beigefügten Zeichnungen zum Kennzeichnen
gleicher Teile verwendet.
-
Ausführliche Beschreibung
-
Die
ausführliche
Beschreibung, die nun im Zusammenhang mit den beigefügten Zeichnungen
erfolgt, ist als Beschreibung der vorliegenden Beispiele gedacht
und soll nicht die einzigen Formen darstellen, in denen das vorliegende
Beispiel konstruiert oder eingesetzt werden kann. Die Beschreibung
legt die Funktionen des Beispiels und die Abfolge von Schritten
zum Konstruieren und Betreiben des Beispiels dar. Die gleichen oder äquivalente
Funktionen und Abfolgen können
jedoch mit anderen Beispielen umgesetzt werden.
-
Obwohl
die vorliegenden Beispiele hier in einem System zur Verarbeitung
komplexer Ereignisse implementiert beschrieben und dargestellt sind,
dient das beschriebene System lediglich als Beispiel und nicht als Beschränkung. Der
Fachmann weiß,
dass die vorliegenden Beispiele für den Einsatz in einer Vielzahl
verschiedener Typen von Verarbeitungssystemen geeignet sind.
-
1 stellt
eine Engine 100 zum Verarbeiten komplexer Ereignisse dar,
die in Verbindung mit einer Methode für automatisierte Ursachenanalyse
eingesetzt werden kann. In der folgenden Beschreibung werden Ereignisse,
die in die Engine zum Verarbeiten komplexer Ereignisse (beispielsweise
von einem Sensor in einem überwachten
System) eingegeben werden, als ”Ursprungsereignisse” bezeichnet,
und Ereignisse, die von der Engine zum Verarbeiten komplexer Ereignisse
ausgegeben werden, werden als ”abgeleitete
Ereignisse” bezeichnet.
-
Zwei
Eingangs-Adaptereinrichtungen 101 und 102 sind
dargestellt. Bei anderen Beispielen kann/können lediglich eine oder mehr
als zwei Eingangs-Adaptereinrichtung/en vorhanden sein. Jede Eingangs-Adaptereinrichtung 101, 102 ist
so eingerichtet, dass sie Ursprungs-Ereignisse eines jeweils anderen Typs
empfängt
und verarbeitet. Ereignisse von den Eingangs-Adaptereinrichtungen 101, 102 werden
von einem Verarbeitungsblock 103 verarbeitet und transformiert,
um die abgeleiteten Ereignisse zu erzeugen.
-
Der
Verarbeitungsblock 103 umfasst eine Vielzahl von Operatoren,
die so eingerichtet sind, dass sie eine oder mehrere Operation/en
an den Ereignissen durchführen,
während
sie den Verarbeitungsblock 103 durchlaufen. Der Verarbeitungsblock 103 kann
jede beliebige Anzahl von Operatoren aufweisen. Die Operatoren können ”Modifizierungs-Operatoren” sein,
die Ereignisse modifizieren (beispielsweise Filter, Nutzinformations-Modifiziereinrichtungen
oder Lebensdauer-Modifiziereinrichtungen) oder ”Operatoren für neue Ereignisse”, die neue
Ereignisse schaffen (so beispielsweise Zusammenführeinrichtungen, Summiereinrichtungen oder
Vereinigungseinrichtungen). Bei dem in 1 gezeigten
veranschaulichenden Beispiel umfasst der Verarbeitungsblock 103 Filter-Operatoren 104,
eine Nutzinformations-Modifiziereinrichtung 105,
eine Lebensdauer-Modifiziereinrichtung 106, einen Vereinigungsoperator 107 und
einen Zusammenführ-Operator 108.
Die Operatoren sind so eingerichtet, dass sie Operationen so durchführen, dass
die abgeleiteten Ereignisse von einer oder mehreren Ausgangs-Adaptereinrichtung/en 109 bereitgestellt
werden (in 1 ist nur eine Ausgangs-Adaptereinrichtung
dargestellt).
-
Eine
Vielzahl von Aufzeichnungseinheiten 110 ist am Ausgang
jedes der Operatoren und jeder der Eingangs-Adaptereinrichtungen
vorhanden. Die Aufzeichnungseinheiten 110 sind so eingerichtet,
dass sie die Ereignisse aufzeichnen, die sie in dem Verarbeitungsblock 103 durchlaufen.
Die aufgezeichneten Ereignisse werden in einem Aufzeichnungsdaten-Speicher 111 gespeichert.
Die durch die Aufzeichnungseinheiten 110 gespeicherten
Daten werden weiter unten ausführlicher
erläutert.
-
In
Funktion gelangen Ursprungsereignisse so zu den Eingangs-Adaptereinrichtungen 101 und 102 (potenziell
von einer großen
Anzahl von Quellen), dass ein bestimmter Typ Ereignis einer Eingangs-Adaptereinrichtung
bereitgestellt wird und ein anderer Typ Ereignis einer anderen Eingangs-Adaptereinrichtung
bereitgestellt wird. Die Eingangs-Adaptereinrichtungen 101 und 102 können, wenn
erforderlich, die Ereignisse transformieren, bevor sie weiter verarbeitet
werden. Die Ereignisse werden von den Operatoren in dem Verarbeitungsblock 103 verarbeitet,
und Daten über
die Ereignisse werden durch die Aufzeichnungseinheiten 110 in dem
Aufzeichnungsdaten-Speicher 111 auf jeder Stufe aufgezeichnet.
Wenn die Ereignisse verarbeitet worden sind, wird ein abgeleitetes
Ereignis von der Ausgangs-Adaptereinrichtung 109 bereitgestellt
(die das Ereignis, falls erforderlich, auch transformieren kann,
bevor es ausgegeben wird). Das hergeleitete Ereignis stellt eine aussagekräftige Analyse
der Eingangsereignisse dar und gestattet es dem Benutzer der Engine 100 zum
Verarbeiten komplexer Ereignisse, Schlüsse über das überwachte System zu ziehen.
-
Beispielsweise
kann bei einem webbasierten E-Mail-Dienst, der unter Verwendung
einer großen
Anzahl von Servern arbeitet, die Engine zum Verarbeiten komplexer
Ereignisse aus 1 Informationen von jedem der
Server von der Eingangs-Adaptereinrichtung 101 bezüglich seiner
CPU-Last empfangen und Informationen von jedem der Server an Eingangs-Adaptereinrichtung 102 bezüglich der
verarbeiteten Anzahl von E-Mails empfangen. Der Verarbeitungsblock 103 führt Operationen
zum Analysieren dieser Ursprungsereignisse durch und kann so eingerichtet
sein, dass er, wenn die Leistung des E-Mail-Dienstes abnimmt, ein
abgeleitetes Ereignis über
die Ausgangs-Adaptereinrichtung bereitstellt.
-
Aus
einem abgeleiteten Ereignis kann der Benutzer, wie oben erwähnt, nur
schwer darauf schließen, welches
spezifische Ursprungsereignis (beziehungsweise Ursprungsereignisse)
das abgeleitete Ereignis verursacht hat. Ursachenanalyse (root cause
analysis – RCA)
kann durchgeführt
werden, um die Ursprungseingänge
(bzw. Grundursachen) zu bestimmen, die zu dem abgeleiteten Ereignis
geführt
haben. Dies macht jedoch das Speichern eines Eintrages jedes Ereignisses
zusammen mit Informationen erforderlich, die es mit den vorher gehenden
Ereignissen verknüpfen.
Aufgrund der sehr großen
Anzahl von Ereignissen, die von einer Engine zum Verarbeiten komplexer
Ereignisse verarbeitet werden, führt
dies zur Inanspruchnahme einer großen Menge an Speicherraum sowie
zu einem erheblichen Leistungsaufwand.
-
Die
Menge an Daten, die für
jedes Ereignis gespeichert wird, kann jedoch erheblich reduziert
werden, indem die Ereignisse während
der Ursachenanalyse analysiert werden, um automatisch die Beziehungen
zwischen den Ereignissen zu rekonstruieren, und so das Speichern
dieser Daten während
der Verarbeitung komplexer Ereignisse überflüssig zu machen.
-
Um
die Verringerung der Speicheranforderungen für die Ereignisse zu erzielen,
werden durch die Aufzeichnungseinheiten 110 für jedes
Ereignis nur bestimmte Daten aufgezeichnet. Die aufgezeichneten
Daten werden sorgfältig
ausgewählt,
um zu gewährleisten,
dass bei Durchführung
der Ursachenanalyse die Beziehungen zwischen den Ereignissen dennoch
rekonstruiert werden können.
Bei einem Beispiel umfassen die durch die Aufzeichnungseinheiten 110 für jedes
Ereignis gespeicherten Daten eine Ereignis-Lebensdauer, eine Identität des Operators,
der das Ereignis erzeugt hat, eine Aufzeichnungszeit, Nutzinformations-Daten
sowie einen Ereignis-Typ. Die Lebensdauer-Daten des Ereignisses
definieren die Zeitdauer, über
die das Ereignis gültig
ist. Bei anderen Beispielen können
die aufgezeichneten Daten auch eine eindeutige Ereignis-Kennung
umfassen, die durch die Aufzeichnungseinheiten erzeugt wird.
-
Die
Lebensdauer-Daten können
wenigstens eine Anfangszeit für
das Ereignis, eine Endzeit für
das Ereignis und eine modifizierte Endzeit für das Ereignis umfassen. Die
modifizierte Endzeit wird dann verwendet, wenn ein Operator die
Endzeit für
das Ereignis ändert.
Die Aufzeichnungszeit ist die Zeit, zu der die Daten durch die Aufzeichnungseinheit 110 aufgezeichnet
werden. Die Nutzinformations-Daten stellen eine Nachricht dar, die
in dem Ereignis enthalten ist.
-
Der
Ereignis-Typ definiert eine Klassifizierung für das Ereignis. Es können beispielsweise
drei verschiedene Ereignis-Typen unterschieden werden. Ein erster
Ereignis-Typ ist ein Einfüge-Ereignis,
das ein normales neues Ereignis ist, das in die Engine zum Verarbeiten
komplexer Ereignisse eintritt. Ein zweiter Ereignis-Typ ist ein
Aktualisierungs-Ereignis, das eine Korrektur eines zuvor hinzugefügten Ereignisses
ist und das Parameter, wie beispielsweise die Lebensdauer oder die
Nutzinformation, modifizieren kann. Ein dritter Typ Ereignis ist
ein Synchronzeitschritt (concurrent time increment – CTI),
der als eine Zeitmarkierung verwendet wird. Ein CTI-Ereignis wird
eingesetzt, weil Ereignisse ungeordnet an dem System eintreffen
können,
und das CTI-Ereignis zeigt dem System an, dass vorhergehende Ereignisse
umgeordnet werden können.
-
Wenn
ein abgeleitetes Ausgangsereignis von Interesse an einer der Ausgangs-Adaptereinrichtungen empfangen
wird, kann eine Ursachenanalyse unter Verwendung der oben erwähnten aufgezeichneten
Daten durchgeführt
werden, um das/die früheren
Ursprungsereignis/se zu rekonstruieren, das/die das abgeleitete
Ereignis verursacht hat/haben. Das Verfahren der Ursachenanalyse,
das bei diesem Beispiel eingesetzt wird, ist als Fehlerbaumanalyse
bekannt (obwohl auch andere Verfahren der Ursachenanalyse eingesetzt
werden können).
Bei der Fehlerbaumanalyse ist der Ausgangspunkt ein anfängliches
abgeleitetes Ereignis, das an der Ausgangs-Adaptereinrichtung 109 empfangen
wird. Dann wird ein Fehlerbaum erstellt, der alle Ursprungsereignisse
zeigt, die mit dem abgeleiteten Ereignis zusammenhingen, und zeigt,
wie sie zusammenhängen. Der
Fehlerbaum kann dann analysiert werden, um die Ursprungsereignisse
an den Eingangs-Adaptereinrichtungen 101, 102 zu
finden, die die ausgewählten
abgeleiteten Ereignisse erzeugt haben.
-
2 stellt
einen Prozess zum Durchführen
von Ursachenanalyse an einer Engine zur Verarbeitung komplexer Ereignisse
und zum Nutzen der Ereignisse derselben dar. Zunächst wird in 200 ein
zu analysierendes abgeleitetes Ereignis ausgewählt. Wenn beispielsweise ein
abgeleitetes Ereignis von der Einrichtung zum Verarbeiten komplexer
Ereignisse ausgegeben wird, das einen Abfall der Leistung eines
E-Mail-Dienstes anzeigt, kann dies als zu untersuchendes Ereignis
dienen. Der Ursachenanalyse-Algorithmus liest dann in 201 die
Struktur des Verarbeitungsblocks 103. Das heißt, der
Ursachenanalyse-Algorithmus interpretiert die Struktur des Verarbeitungsblocks 103,
um festzustellen, wie die Operatoren miteinander verbunden sind,
und wie letztendlich die Eingangs- und Ausgangs-Adaptereinrichtungen über die
Operatoren in der Engine 100 zur Verarbeitung komplexer
Ereignisse verbunden sind.
-
Dann
wird eine Fehlerbaumanalyse durchgeführt, um in 202 einen
Fehlerbaum zu erstellen, der von dem ausgewählten abgeleiteten Ereignis
ausgehend Ereignisse miteinander verknüpft, bis ein oder mehr Ursprungsereignis/se
erreicht wird/werden. Der Prozess zum Durchführen der Erstellung des Fehlerbaums
wird im Folgenden unter Bezugnahme auf 3 ausführlicher
beschrieben. Wenn der Fehlerbaum erstellt worden ist, kann er in 203 bewertet
werden, um zu erwägen,
welche Ursprungsereignisse das hergeleitete Ereignis verursacht
haben. Die Ergebnisse der Bewertung können dann in 204 zum
Vorteil des Benutzers und des zukünftigen Betriebes der Engine
zum Verarbeiten komplexer Ereignisse verwendet werden.
-
Im
Folgenden wird auf 3 Bezug genommen, die einen
Prozess zum Durchführen
von Ursachenanalyse in der Engine zum Verarbeiten komplexer Ereignisse
darstellt. Der Ursachenanalyse-Prozess 300 arbeitet sich
von der Ausgangs-Adaptereinrichtung 109 nacheinander über jeden
Operator in dem Verarbeitungsblock 103 nach hinten, bis
die Eingangs-Adaptereinrichtungen 101, 102 erreicht
sind. Der Ursachenanalyse-Prozess 300 betrachtet jeweils
einen einzelnen Operator und betrachtet das Ausgangsereignis von
diesem Operator und stellt fest, welche Eingangsereignisse an diesem
Operator mit dem Ausgangsereignis zusammenhängen. Es ist anzumerken, dass
sich in der folgenden Beschreibung ”Ausgangsereignis” auf das
Ereignis bezieht, das von dem einzelnen Operator ausgegeben wird,
auf den der Ursachenanalyse-Algorithmus aktuell fokussiert ist.
Desgleichen bezieht sich ”Eingangsereignis” auf ein
Ereignis, das in den einzelnen Operator eingegeben wird, auf den
der Ursachenanalyse-Algorithmus aktuell fokussiert ist. Dies ist
nicht zu verwechseln mit ”Ursprungsereignis”, bei dem
es sich um diejenigen Ereignisse handelt, die den Eingangs-Adaptereinrichtungen
bereitgestellt werden, sowie mit ”abgeleitetes Ereignis”, bei dem
es sich um die Ereignisse handelt, die von den Ausgangs-Adaptereinrichtungen
erzeugt werden.
-
Der
Ursachenanalyse-Prozess 300 beginnt mit dem abgeleiteten
Ereignis, das analysiert wird. Der Ursachenanalyse-Prozess 300 wählt zunächst in 301 den
Operator in dem Verarbeitungsblock 103, der das abgeleitete
Ereignis als ein Ausgangsereignis aufweist. Der RCA-Prozess 300 verwendet
die bekannte Struktur der Engine 100 zum Verarbeiten komplexer
Ereignisse, um den Operator auszuwählen, der das Ausgangsereignis
erzeugt hat. Bei dem Beispiel in 1 bewegt
sich der RCA-Prozess von der Ausgangs-Adaptereinrichtung 109 zurück zu dem
Zusammenführ-Operator 108.
-
Dann
wird auf den Aufzeichnungsdaten-Speicher 111 zugegriffen,
und die darin für
das Ausgangsereignis von dem ausgewählten Operator gespeicherten
Daten werden in 302 gelesen. Dies umfasst, wie oben beschrieben,
die durch die Aufzeichnungseinheit gespeicherten ausgewählten Daten.
-
Der
RCA-Prozess 300 bestimmt dann in 302 eine Gruppe
aus einem oder mehreren Ereignis/en, das/die in diesen ausgewählten Operator
eingegeben wurde/n. Bei dem Beispiel in 1 stellt
der RCA-Prozess alle Ereignisse fest, die in den Zusammenführ-Operator 108 eingegeben
wurden. Das erste Ereignis in der Gruppe von Ereignissen, die in
den Operator eingegeben wurden, wird in 304 ausgewählt, und
der RCA-Prozess 300 greift dann auf den Aufzeichnungsdaten-Speicher 111 zu
und liest in 305 die gespeicherten Aufzeichnungsdaten für das ausgewählte Eingangsereignis
in den betreffenden Operator.
-
Der
RCA-Prozess 300 stellt in 306 fest, ob das ausgewählte Eingangsereignis
mit dem Ausgangsereignis an dem Operator korreliert, d. h., es wenigstens
teilweise verursacht hat. Die Feststellung der Korrelation wird
unter Verwendung der gespeicherten Aufzeichnungsdaten für das ausgewählte Eingangsereignis und
das Ausgangsereignis durchgeführt.
Daher wird das Vorhandensein einer Beziehung zwischen dem Eingangsereignis
und dem Ausgangsereignis unter Verwendung des Korrelationsprozesses
und der gespeicherten Aufzeichnungsdaten bestimmt, ohne dass Informationen
gespeichert werden müssen,
die die Beziehung ausdrücklich
detailliert beschreiben.
-
Um
den Korrelationsprozess durchzuführen,
wird ein Vergleich zwischen dem Eingangsereignis und dem Ausgangsereignis
ausgeführt.
Dieser Vergleich basiert auf einer Anzahl von Datenelementen, die
sowohl mit dem Eingangs- als auch dem Ausgangsereignis zusammenhängen und
aus dem Aufzeichnungsdaten-Speicher 111 gelesen wurden.
Ein Beispiel dafür
ist der Vergleich der Ereignisse entsprechend den für jedes
Ereignis gespeicherten Zeitinformationen. Ein weiteres Beispiel
ist der Vergleich der Nutzinformation jedes Ereignisses. Ein weiteres
Beispiel besteht im Vergleich der Ereignis-Kennung jedes Ereignisses.
Es können auch
andere Daten verglichen werden. Der Ereignis-Typ der Ereignisse
kann verwendet werden, um einen bestimmten zu verwendenden Korrelationsprozess
auszuwählen,
wie dies weiter unten ausführlicher
beschrieben ist. Eine ausführliche
Beschreibung des Korrelationsprozesses folgt unter Bezugnahme auf 4–15,
wenn die Beschreibung von 3 abgeschlossen
ist.
-
Wenn
der RCA-Prozess 300 in 306 feststellt, dass keine
Korrelation zwischen dem ersten Eingangsereignis in der Gruppe von
Eingangsereignissen und dem Ausgangsereignis vorliegt, wird in 307 geprüft, ob noch
weitere Eingangsereignisse in der Gruppe von Eingangsereignissen
zu analysieren sind. Wenn dies der Fall ist, wird das nächste Ereignis
in der Gruppe von Eingangsereignissen in 308 ausgewählt, und
die Korrelation für
dieses Ereignis wird durchgeführt.
Wenn dies nicht der Fall ist, endet der RCA-Prozess 300 in 309.
-
Wenn
jedoch der RCA-Prozess 300 in 306 feststellt,
dass eine Korrelation zwischen dem Eingangsereignis an dem betreffenden
Operator und dem Ausgangsereignis vorliegt, wird das Eingangsereignis
in 310 zu einer Baum-Datenstruktur hinzugefügt. Die
Baum-Datenstruktur ist eine Datenstruktur, in der alle Ereignisse gespeichert
werden, für
die der RCA-Prozess 300 feststellt,
dass sie mit dem abgeleiteten Ereignis zusammenhängen, das untersucht wird,
und auch die Beziehungen zwischen den Ereignissen gespeichert werden.
Das abgeleitete Ereignis, das untersucht wird, befindet sich an
der Wurzel des Baums, und jede Stufe darunter in dem Baum entspricht
Ereignissen, für
die festgestellt wird, dass sie mit den Ereignissen auf den Stufen
darüber zusammenhängen. Schließlich entsprechen
die Blattknoten an dem Baum Ursprungsereignissen, so dass die gesamte
Beziehung zwischen den Ursprungsereignissen und dem hergeleiteten
Ereignis vorliegt, das untersucht wird.
-
Wenn
das Ereignis in 310 zu dem Baum hinzugefügt worden
ist, wird der RCA-Prozess rekursiv ausgeführt, so dass das korrelierende
Eingangsereignis nunmehr das Ausgangsereignis für die nächste Ausführung des RCA-Prozesses 300 wird.
Das heißt,
der RCA-Prozess 300 wird erneut durchgeführt, jedoch
wird diesmal der nächste
zurückliegende
Operator (d. h. der Operator, dessen Ausgang das Ereignis ist, das
das korrelierende Ereignis bei der vorhergehenden Ausführung war)
in der Engine zum Verarbeiten komplexer Ereignisse ausgewählt. Beispielsweise
weist in dem Fall in 1 der Zusammenführ-Operator 108 ein
Eingangsereignis auf, das ein Ausgangsereignis von dem Vereinigungs-Operator 107 ist.
Wenn sich erweist, dass dieses Eingangsereignis an dem Zusammenführ-Operator 108 mit
dem Ausgangsereignis des Zusammenführ-Operators 108 korreliert,
verläuft
die rekursive Ausführung
des RCA-Prozesses 300 so, dass sich der RCA-Prozess 300 zu
dem Vereinigungs-Operator 107 bewegt. Das Ausgangsereignis
für diese
Ausführung des
RCA-Prozesses ist der Ausgang des Vereinigungs-Operators (der in
der vorhergehenden Ausführung
der Eingang zu dem Zusammenfüge-Operator 108 war).
-
Die
Rekursion des RCA-Prozesses 300 setzt sich so fort, bis
alle Eingänge
von allen Operatoren berücksichtigt
worden sind. Es ist anzumerken, dass, wenn ein RCA-Prozess 100 in 309 endet,
damit nicht der gesamte Prozess beendet ist. Stattdessen endet an
diesem Punkt nur die in Ausführung
befindliche Instanz des Prozesses. Der Prozess geht dann zu der
vorhergehenden Ausführung über und
fährt von
dort aus fort.
-
Der
RCA-Prozess
300 kann mit dem folgenden Pseudo-Code zusammengefasst
werden:
-
Die
gesamte RootCauseAnalysis-Funktion hat ein Ereignis als ein Argument.
Bei der ersten Ausführung
der Funktion ist das Argument das abgeleitete Ereignis, das untersucht
wird. Folgende (rekursive) Ausführungen
der Funktion haben andere Ereignisse zum Argument. Die Funktion
wählt den
Operator für
das Ereignis aus, liest die mit dem Ereignis zusammenhängenden
Daten und bestimmt die Gruppe von Eingangsereignissen für den Operator,
wie dies oben umrissen ist. Dann wird für jedes der Eingangsereignisse
in den Operator (d. h. jedes der Eingangsereignisse in der Gruppe
von Eingangsereignissen) festgestellt, ob das Eingangsereignis mit
dem Argument der RootCauseAnalysis-Funktion korreliert. Wenn dies
der Fall ist, wird das Eingangsereignis zu dem Baum hinzugefügt, und
die Funktion ruft sich dann selbst auf, wobei das korrelierende
Eingangsereignis als Eingang in die Funktion verwendet wird.
-
Im
Folgenden wird auf 4 Bezug genommen, die den Prozess
darstellt, mit dem der RCA-Prozess 300 in 306 feststellt,
ob ein Eingangsereignis mit einem Ausgangsereignis an einem Operator
korreliert, wie dies oben unter Bezugnahme auf 3 erwähnt wird.
Der in 4 gezeigte Prozess dient dazu, bestimmte Korrelations-Algorithmen
auszuwählen,
die für
bestimmte Typen von Ereignissen verwendet werden.
-
Der
Typ des Eingangsereignisses wird zunächst in 400 anhand
der Aufzeichnungsdaten bestimmt, die mit dem Eingangsereignis zusammenhängen (wie
in 3 in 305 gelesen).
-
Die
Ereignisse bei diesem Beispiel werden, wie oben beschrieben, als
zu einem von drei Typen gehörend
klassifiziert, d. h. ein Einfüge-Ereignis,
ein Aktualisierungs-Ereignis oder ein CTI-Ereignis.
-
Wenn
in 400 festgestellt wird, dass das Eingangsereignis von
dem Typ Einfüge-Ereignis
ist, wird die Operator-Identität
verwendet, um in 401 festzustellen, ob der Operator, der
das Ausgangsereignis ausgibt, ein Modifikations-Operator oder ein
Operator für
neue Ereignisse ist. Wenn festgestellt wird, dass der Operator ein Modifikations-Operator
ist, wird ein Modifikations-Korrelationsalgorithmus 402 verwendet,
um festzustellen, ob das Ausgangsereignis mit dem betreffenden Eingangsereignis
korreliert oder nicht.
-
Ein
Modifikations-Korrelationsalgorithmus ist in 5 dargestellt.
Um festzustellen, ob ein Eingangsereignis mit dem Ausgangsereignis
bei einem Einfüge-Ereignis
und einem Modifikations-Operator korreliert, wird zunächst in 500 festgestellt,
ob eine Ereignis-Kennung für
das Eingangs- und das Ausgangsereignis existiert (diese wurden oben
als optional zu speichernde Aufzeichnungsdaten erwähnt). Wenn
diese existiert, wird in 501 festgestellt, ob die Ereignis-Kennungen
für das
Eingangs- und das Ausgangsereignis übereinstimmen. Wenn dies der
Fall ist, korrelieren das Eingangs- und das Ausgangsereignis. Wenn
sie nicht übereinstimmen, korrelieren
das Eingangs- und das Ausgangsereignis nicht.
-
Wenn
in 500 festgestellt wurde, dass keine Ereignis-Kennung
für das
Eingangs- und/oder das Ausgangsereignis vorhanden war, werden in 502 die
Lebensdauer-Daten für
das Eingangs- und das Ausgangsereignis verglichen. Wenn die Lebensdauer-Daten übereinstimmen,
korrelieren das Eingangs- und das Ausgangsereignis. Wenn die Lebensdauer-Daten
nicht übereinstimmen,
werden in 503 die Nutzinformationen des Eingangs- und des
Ausgangsereignisses verglichen. Wenn die Nutzinformationen nicht übereinstimmen,
korrelieren das Eingangs- und das Ausgangsereignis nicht, während, wenn
die Nutzinformationen übereinstimmen,
das Eingangs- und das Ausgangsereignis korrelieren.
-
Dies
ist weitergehend in 6 dargestellt, wo ein Eingangsereignis 600 in
einen Operator 105 eingegeben wird, der die Nutzinformation
des Ereignisses modifiziert und ein Ausgangsereignis 601 ausgibt.
Bei diesem Beispiel weist das Eingangsereignis 600 Daten
auf, die einen ”Einfüge”-Ereignistyp
(ET) umfassen, Lebensdauer-Daten, die eine Anfangszeit (Ts) 19,
eine Endzeit (Te) 23 sowie eine modifizierte Endzeit (Tn) 23 umfassen,
sowie eine Nutzinformation ”ABC”. Das Ausgangsereignis 601 weist
Daten auf, die einen ”Einfüge”-Ereignistyp (ET)
umfassen, Lebensdauer-Daten, die eine Anfangszeit Ts 19, eine Endzeit 23
und eine modifizierte Endzeit Tn 23 umfassen, sowie eine Nutzinformation ”XYZ”. Daher
stimmen bei diesem Beispiel die Lebensdauer-Daten überein,
und es wird festgestellt, dass das Eingangs- und das Ausgangsereignis
korrelieren.
-
Ein
weiteres Beispiel ist in 7 dargestellt, bei dem das Eingangsereignis 600 in
einen Operator 106 eingegeben wird, der die Lebensdauer
des Ereignisses modifiziert und ein Ausgangsereignis 601 ausgibt.
Das Eingangsereignis 600 weist eine Anfangszeit 19, eine
Endzeit 23, eine modifizierte Endzeit 23 sowie eine Nutzinformation ”ABC” auf, und
das Ausgangsereignis 601 weist eine Anfangszeit 5, eine
Endzeit 20, eine modifizierte Endzeit 20 sowie eine Nutzinformation ”ABC” auf. Daher
stimmen die Lebensdauer-Daten nicht überein, die Nutzinformationen
stimmen jedoch überein,
und das Eingangs- und das Ausgangsereignis korrelieren.
-
Wenn,
um auf 4 zurückzukommen,
in 401 festgestellt wird, dass der Operator ein Operator
für neue
Ereignisse ist, wird ein Korrelationsalgorithmus 403 für neue Ereignisse
verwendet, um festzustellen, ob das Ausgangsereignis mit dem betreffenden
Eingangsereignis korreliert oder nicht. Ein Korrelationsalgorithmus
für neue
Ereignisse ist in 8 dargestellt. Um bei einem
Einfüge-Ereignis
und einem Operator für
neue Ereignisse festzustellen, ob ein Eingangsereignis mit dem Ausgang
korreliert, werden die Lebensdauer-Daten für das Eingangs- und das Ausgangsereignis
miteinander verglichen. Insbesondere die Eingangszeit des Eingangsereignisses
(Tsi) wird mit der Anfangszeit des Ausgangsereignisses
(Tso) verglichen, und die Endzeit des Eingangsereignisses
(Tei) wird mit der Endzeit des Ausgangsereignisses
(Teo) verglichen. Das Eingangsereignis korreliert,
wie in 8 dargestellt, mit dem Ausgangsereignis, wenn
die folgenden Aussagen wahr sind:
- 1). Tsi < Tso UND Tei > Teo (800)
- 2). Tsi = Tso UND
Tei ≥ Teo (801)
- 3). Tsi ≤ Tso UND
Tei = Teo (802)
- 4). Tsi = Tso UND
Tei = Teo (803)
-
Ein
Beispiel dafür
ist in 9 dargestellt, bei dem ein Zusammenführ-Operator 108 zwei
Eingänge
hat und ein erstes Eingangsereignis 600 sowie ein zweites
Eingangsereignis 900 empfängt, und ein Ausgangsereignis 601 ausgibt.
Das erste Eingangsereignis 600 korreliert als Ergebnis
von Aussage 3) mit dem Ausgangsereignis 601, und das zweite
Eingangs ereignis 900 korreliert als Ergebnis von Aussage
2) mit dem Ausgangsereignis 601. Ein weiteres Beispiel
für das
gleiche Szenario ist in 10 dargestellt,
bei dem das erste Eingangsereignis 600 als Resultat von
Aussage 1) mit dem Ausgangsereignis 601 korreliert und
das zweite Eingangsereignis 900 als Resultat von Aussage
4) mit dem Ausgangsereignis 601 korreliert. Ein weiteres
Beispiel ist in 11 dargestellt, bei dem ein
Vereinigungs-Operator 107 mehrere
Eingangsereignisse an einem Eingang empfängt (Eingangsereignis 600, 1100 und 1101),
und das Eingangsereignis aufgrund der obenstehenden Aussage 4) mit
jedem Eingangsereignis 600, 1100 und 1101 korreliert.
Das Szenario in 11 kann in dem Fall auftreten,
in dem eine Anzahl von Quellen Ereignis-Daten des gleichen Typs
senden, die sämtlich dem
gleichen Zeitintervall entsprechen.
-
Um
auf 4 zurückzukommen,
wird, wenn in 400 festgestellt wird, dass das Eingangsereignis
vom Aktualisierungs-Ereignis-Typ ist, ein Korrelationsalgorithmus 404 für Aktualisierungs-Ereignisse
verwendet, um festzustellen, ob das Ausgangsereignis mit dem betreffenden
Eingangsereignis korreliert oder nicht. Ein Korrelationsalgorithmus
für Aktualisierungs-Ereignisse
ist in 12 dargestellt.
-
Ein
Aktualisierungs-Ereignis ist, wie erwähnt, eine Korrektur eines zuvor
eingefügten
Ereignisses. Ein Aktualisierungs-Ausgangsereignis bezieht sich auf
ein Eingangsereignis oder ein anderes Aktualisierungs-Ereignis.
Des Weiteren wird ein Aktualisierungs-Eingangsereignis von einem
Eingangsereignis abgeleitet. Das heißt, für einen Operator, der ein Aktualisierungs-Ereignis
als Eingang empfängt,
existiert eine vorhergehende Abfolge von N Ereignissen, die mit
einem Einfüge-Ereignis
endet (wobei das Einfüge-Ereignis
das 0-te Ereignis ist und das betreffende Eingangs-Aktualisierungs-Ereignis
das N-te Ereignis ist).
-
Des
Weiteren modifiziert ein Aktualisierungs-Ereignis die Anfangszeit
eines Ereignisses nicht. Jedoch kann ein Aktualisierungs-Ereignis
die Endzeit eines Ereignisses modifizieren und kann die Nutzinformation
eines Ereignisses modifizieren. Daher werden das Eingangs- und das Ausgangsereignis
bezüglich
der Lebenszeit-Daten und des Ereignis-Typs verglichen.
-
Ein
Eingangsereignis korreliert, wie unter Bezugnahme auf 12 zu
sehen ist, mit einem Ausgangsereignis, wenn alle der folgenden Aussagen
wahr sind:
- I). Tsi =
Tso (1200)
- II). Die Abfolge von Ereignissen an diesem Eingang des Operators
führt zu
einem Eingangsereignis zurück (ETi0 = ”Einfügen”) (1201)
- III). Die Abfolge von Ereignissen an diesem Eingang des Operators
nach dem Eingangsereignis sind Aktualisierungs-Ereignisse (ETi1...N ) = ”Aktualisierung”) (1202)
- IV). Die modifizierte Endzeit jedes Aktualisierungs-Ereignisses
an diesem Eingang des Operators entspricht der Endzeit des folgenden
Aktualisierungs-Ereignisses (d. h. Tnia =
Teia+1 bei a = 1 bis N (1203).
-
Wenn
irgendeine dieser Aussagen nicht wahr ist, wird in 1204 festgestellt,
ob der Operator ein Multiplikations-Operator ist. Wenn dies nicht
der Fall ist, korrelieren das Eingangs- und das Ausgangsereignis
nicht. Wenn dies der Fall ist, wird in 1205 festgestellt,
ob die Ereignis-Kennungen übereinstimmen,
falls sie vorhanden sind. Wenn dies der Fall ist, korrelieren das
Eingangs- und das Ausgangsereignis, und wenn dies nicht der Fall
ist, korrelieren sie nicht.
-
Ein
Beispiel eines Aktualisierungs-Ereignisses ist in 13 dargestellt.
Ein erster Eingang eines Zusammenführ-Operators 108 empfängt eine
Abfolge von Eingangsereignissen. Das erste Eingangsereignis 600 ist
ein Aktualisierungs-Ereignis, dem zwei vorhergehende Aktualisierungs-Ereignisse 1300, 1301 und
ein Eingangsereignis 1302 vorangehen. Bei diesem Beispiel
sind alle oben aufgeführten
Aussagen erfüllt,
und daher korreliert das Eingangsereignis 600 mit dem Ausgangsereignis 601.
Bei dem zweiten Eingangsereignis 900 handelt es sich um
ein Einfüge-Ereignis,
so dass die Korrelation entsprechend dem oben beschriebenen Korrelationsalgorithmus
für neue
Ereignisse bestimmt wird.
-
Wenn,
um zu 4 zurückzukehren,
in 400 festgestellt wird, dass das Eingangsereignis vom
CTI-Ereignis-Typ ist, dann wird ein Korrelationsalgorithmus 405 für CTI-Ereignisse
verwendet, um festzustellen, ob das Ausgangsereignis mit dem betreffenden
Eingangsereignis korreliert oder nicht. Ein Korrelationsalgorithmus
für CTI-Ereignisse
ist in 14 dargestellt.
-
Ein
CTI-Ereignis wird durch Operatoren in der Engine 100 zur
Verarbeitung komplexer Ereignisse nicht modifiziert. Dies bedeutet,
dass ein CTI-Ausgangsereignis gegenüber einem CTI-Eingangsereignis
unverändert
ist. Daher können
Lebensdauer-Daten für
das CTI-Eingangsereignis verwendet werden, um das Eingangs- und
das Ausgangsereignis miteinander zu korrelieren. Es wird, wie in 14 dargestellt,
in 1400 festgestellt, ob die Lebens dauer-Daten für das Eingangsereignis
und das Ausgangsereignis übereinstimmen. Wenn
dies der Fall ist, korrelieren das Eingangs- und das Ausgangsereignis.
Wenn dies nicht der Fall ist, korrelieren das Eingangs- und das
Ausgangsereignis nicht.
-
In 15 ist
ein Beispiel dargestellt, bei dem ein erstes Eingangsereignis 600 und
ein zweites Eingangsereignis 900, die beide vom CTI-Typ
sind, in einen Zusammenführ-Operator 108 eingegeben
werden und ein Ausgangsereignis 601 ausgegeben wird. Da
die Lebensdauer-Daten übereinstimmen,
korrelieren beide Eingangsereignisse mit dem Ausgangsereignis 601.
-
Als
Ergebnis der Durchführung
des Prozesses in 3, 4, 5, 8, 12 und 14 wird jedes
der Ereignisse an jedem der Operatoren in der Engine 100 zur
Verarbeitung komplexer Ereignisse analysiert, und jedes der Ereignisse,
das Korrelationen zu dem abgeleiteten Ereignis aufweist, wird zu
dem Fehlerbaum hinzugefügt.
Daher wird, wenn der Prozess endet, ein vollständiger Fehlerbaum erzeugt,
der die Beziehungen zwischen dem abgeleiteten Ereignis und den Ursprungsereignissen
zeigt.
-
Wenn
der Fehlerbaum erstellt worden ist, kann, wie in 2 gezeigt,
dieser bewertet werden und die Ergebnisse genutzt werden. Eine Möglichkeit,
die Ergebnisse der Ursachenanalyse zu nutzen, ist Zurückführen der
ermittelten Ergebnisse in die Aufzeichnungseinheiten 110,
so dass sie ”selektives
Aufzeichnen” durchführen können. Dies
kann erreicht werden, indem Ursachenanalyse durchgeführt wird,
um den Fehlerbaum für ausgewählte Ausgangsereignisse
zu bestimmen, für
die bekannt ist, dass sie von Interesse sind. Der Fehlerbaum für diese
Ereignisse kann dann bewertet werden, und die Ergebnisse können verwendet
werden, um zu bestimmen, welche Ereignisse die Aufzeichnungseinheiten 110 in
dem Datenspeicher 111 aufzeichnen.
-
Ursachenanalyse
kann beispielsweise verwendet werden, um den Fehlerbaum für bestimmte
außergewöhnliche
Ereignisse zu verwenden. Die Aufzeichnungseinheiten 110 können dann
so eingerichtet sein, dass sie nur diejenigen Ereignisse aufzeichnen,
die zu diesem außergewöhnlichen
Ereignissen führen.
Andere Ereignisse werden von den Aufzeichnungseinheiten 110 nicht
aufgezeichnet. Damit wird Speicheraufwand in der Engine 100 zum
Verarbeiten komplexer Ereignisse weiter verringert.
-
Wenn
der Fehlerbaum unter Verwendung der oben beschriebenen Prozesse
erzeugt worden ist, kann er für
den Benutzer der Engine 100 zum Verarbeiten komplexer Ereignisse über eine
Benutzerschnittstelle auf einer Anzeige angezeigt werden. Ein Debugger-Tool
ist so eingerichtet, dass es den Fehlerbaum empfängt und für den Benutzer anzeigt. Das
Debugger-Tool kann automatisch Filter und Ansichten der Ereignisse
in dem Fehlerbaum erzeugen. Dies ermöglicht es dem Benutzer, die
Ereignisse zu visualisieren, die ein bestimmtes abgeleitetes Ereignis
verursachen, ohne dass die Daten manuell analysiert und zerlegt
werden müssen,
wodurch die Ursachenanalyse für
den Benutzer vereinfacht wird.
-
16 stellt
verschiedene Komponenten einer beispielhaften computerbasierten
Vorrichtung 1600 dar, die als eine beliebige Form einer
Computer- und/oder Elektronikvorrichtung implementiert werden kann und
in der Ausführungsformen
der Ursachenanalyse für
Verarbeitung komplexer Ereignisse implementiert werden können.
-
Die
computerbasierte Vorrichtung 1600 umfasst einen oder mehrere
Eingang/Eingänge 1601,
der/die von jedem beliebigen geeigneten Typ zum Empfangen von Benutzereingabe,
IP-Eingabe (Internet Protocol input) ist/sind.
-
Die
computerbasierte Vorrichtung 1600 umfasst des Weiteren
eine oder mehrere Verarbeitungseinrichtung/en 1602, die
Mikroprozessoren, Controller oder jeder beliebige andere geeignete
Typ Verarbeitungseinrichtung sein kann/können, mit dem durch Computer
ausführbare
Befehle verarbeitet werden können,
um die Funktion der Vorrichtung zu steuern und Verarbeitung komplexer
Ereignisse sowie Ursachenanalyse durchzuführen. Die Plattform-Software,
die ein Betriebssystem 1603 umfasst, oder jede beliebige
andere geeignete Plattform-Software kann an der computerbasierten
Vorrichtung bereitgestellt werden, um die Ausführung von Anwendungs-Software 1604 auf
der Vorrichtung zu ermöglichen.
-
Die
durch Computer ausführbaren
Befehle können
unter Verwendung jedes beliebigen computerlesbaren Mediums, beispielsweise
des Speichers 1605, bereitgestellt werden. Der Speicher
ist von jedem beliebigen geeigneten Typ, wie beispielsweise ein
Direktzugriffsspeicher (RAM), eine Plattenspeichervorrichtung eines
beliebigen Typs, wie beispielsweise eine magnetische oder optische
Speichervorrichtung, ein Festplattenlaufwerk oder ein CD-, DVD-
oder ein anderes Plattenlaufwerk. Auch Flash-Speicher, EPROM oder
EEPROM kann eingesetzt werden.
-
Des
Weiteren ist ein Ausgang, wie beispielsweise ein Audio- und/oder
Video-Ausgang, zu einem Anzeigesystem 1606 vorhanden, das
integral mit der computerbasierten Vorrichtung ausgebildet ist oder
mit ihr in Verbindung steht. Das Anzeigesystem kann eine grafische Benutzerschnittstelle
oder eine andere Benutzerschnittstelle jedes beliebigen geeigneten
Typs bereitstellen, obwohl dies nicht von grundlegender Bedeutung ist.
-
Der
hier verwendete Begriff ”Computer” bezieht
sich auf jede beliebige Vorrichtung, die Verarbeitungsfähigkeit
dahingehend aufweist, dass sie Befehle ausführen kann. Für den Fachmann
liegt auf der Hand, dass derartige Verarbeitungsfähigkeiten
in viele verschiedene Vorrichtungen integriert sind und daher der
Begriff ”Computer” Personal
Computer, Server, Mobiltelefone, PDA und viele andere Vorrichtungen
einschließt.
-
Die
hier beschriebenen Verfahren können
durch Software in maschinenlesbarer Form auf einem physischen Speichermedium
durchgeführt
werden. Die Software kann zur Ausführung auf einem parallelem
Prozessor oder einem seriellen Prozessor geeignet sein, so dass
die Verfahrensschritte in jeder beliebigen geeigneten Reihenfolge
oder simultan ausgeführt
werden.
-
Damit
wird anerkannt, dass Software eine Ware sein kann, die einen Wert
besitzt und separat gehandelt werden kann. Dies schließt Software
ein, die auf ”nicht
intelligenter” bzw.
Standard-Hardware läuft
bzw. diese steuert, um die gewünschten
Funktionen auszuführen.
Des Weiteren soll dies Software einschließen, die die Konfiguration
von Hardware ”beschreibt” oder definiert,
so beispielsweise HDL-Software (hardeware description language software),
wie sie für
das Design von Halbleiterchips oder zum Konfigurieren universeller programmierbarer
Chips eingesetzt wird, um gewünschte
Funktionen auszuführen.
-
Der
Fachmann weiß,
dass Speichervorrichtungen, die zum Speichern von Programmbefehlen
eingesetzt werden, über
ein Netzwerk verteilt sein können.
Ein Remote-Computer kann z. B. ein Beispiel des beschriebenen Prozesses
als Software speichern. Ein lokaler bzw. Endstellencomputer kann
auf den Remote-Computer zugreifen und die Software teilweise oder
vollständig
herunterladen, um das Programm auszuführen. Als Alternative dazu
kann der lokale Computer Teile der Software nach Bedarf herunterladen
oder einige Softwarebefehle an dem lokalen Endgerät und einige
an dem Remote-Computer (oder Computernetzwerk) ausführen. Der
Fachmann weiß auch,
dass unter Verwendung herkömmlicher
Methoden, die dem Fachmann bekannt sind, die Softwarebefehle vollständig oder
teilweise durch eine spezielle Schaltung, wie beispielsweise einen
DSP, ein programmierbares Logikfeld oder dergleichen ausgeführt werden
kann.
-
Jeder
hier angegebene Bereich oder Vorrichtungs-Wert kann erweitert oder
verändert
werden, ohne dass dies den Verlust des beabsichtigten Effektes zur
Folge hat, wie dies der Fachmann weiß.
-
Es
versteht sich, dass die beschriebenen Vorteile und Vorzüge mit einer
Ausführungsform
oder mit mehreren Ausführungsformen
zusammenhängen
können.
Die Ausführungsformen
sind nicht auf diejenigen beschränkt,
die eines oder alle der ausgeführten
Probleme lösen
oder diejenigen, die einen oder alle der aufgeführten Vorteile und Vorzüge aufweisen.
Es versteht sich des Weiteren, dass sich ein Verweis auf ”ein Element” auf eines
oder mehrere dieser Element/e bezieht.
-
Die
Schritte der hier beschriebenen Verfahren können in jeder beliebigen geeigneten
Reihenfolge oder, wenn angebracht, simultan ausgeführt werden.
Des Weiteren können
einzelne Blöcke
aus jedem der Verfahren entfernt werden, ohne vom Geist und vom
Schutzumfang des hier beschriebenen Gegenstandes abzuweichen. Aspekte
aller hier beschriebenen Beispiele können mit Aspekten aller anderen
beschriebenen Beispiele kombiniert werden, um weitere Beispiele
zu schaffen, ohne dass dies den Verlust des beabsichtigten Effektes
zur Folge hat.
-
Der
Begriff ”umfasst” wird hier
in der Bedeutung gebraucht, dass die genannten Verarbeitungsblöcke oder
Elemente enthalten sind, diese Blöcke oder Elemente jedoch keine
ausschließliche
Liste bilden und ein Verfahren oder eine Vorrichtung weitere Blöcke oder
Elemente beinhalten kann.
-
Es
versteht sich, dass die obenstehende Beschreibung einer bevorzugten
Ausführungsform
lediglich als Beispiel dient und dass verschiedene Abwandlungen
von dem Fachmann vorgenommen werden können. Die obenstehende/n Patentbeschreibung,
Beispiele und Daten bilden eine vollständige Beschreibung des Aufbaus
und des Einsatzes beispielhafter Ausführungsformen der Erfindung.
Obwohl verschiedene Ausführungsformen
der Erfindung oben mit einem bestimmten Grad an Detailliertheit
beschrieben worden sind, könnte
der Fachmann zahlreiche Veränderungen
an den offenbarten Ausführungsformen
vornehmen, ohne vom Geist oder vom Schutzumfang der Erfindung abzuweichen.