DE69432746T2 - Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems - Google Patents

Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems Download PDF

Info

Publication number
DE69432746T2
DE69432746T2 DE69432746T DE69432746T DE69432746T2 DE 69432746 T2 DE69432746 T2 DE 69432746T2 DE 69432746 T DE69432746 T DE 69432746T DE 69432746 T DE69432746 T DE 69432746T DE 69432746 T2 DE69432746 T2 DE 69432746T2
Authority
DE
Germany
Prior art keywords
event data
node
event
nodes
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69432746T
Other languages
English (en)
Other versions
DE69432746D1 (de
Inventor
Keith Alexander Woodcroft Harrison
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69432746D1 publication Critical patent/DE69432746D1/de
Publication of DE69432746T2 publication Critical patent/DE69432746T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0604Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Ereignisverarbeitungssystem zum Empfangen und Verarbeiten von Ereignisinformationen über Ereignisse, die in einem System auftreten, das überwacht wird, wie z. B. einem Telekommunikationsnetz. Ferner bezieht sich die vorliegende Erfindung auf ein Verfahren zum Konstruieren eines solchen Systems von Grundverarbeitungsblöcken.
  • Erörterung des Stands der Technik
  • Komplexen Systemen, wie z. B. Telekommunikationssystemen und Computernetzen, sind allgemeine Überwachungssysteme zugeordnet, deren Zweck es ist, ein anormales Verhalten zu erfassen. Zu diesem Zweck sind entweder das überwachte System an sich oder zugeordnete Überwachungssonden angeordnet, um Ereignisnachrichten auf ein Auftreten von bestimmten Ereignissen in dem überwachten System hin zu erzeugen, wobei diese Ereignisse typischerweise Veränderungen des Zustands eines Teils des Systems sind. Die erfaßten Ereignisse umfassen allgemeine Ereignisse, die eine Systemüberlastung oder einen Systemausfall anzeigen. Die Ereignisnachrichten werden an einen entsprechenden Abschnitt des Überwachungssystems zum Interpretieren durch Ereignishandhabungseinrichtungen des Überwachungssystems geleitet. Eine typische bekannte Ereignishandhabungseinrichtung untersucht jede eingehende Ereignisnachricht, um zu ermitteln, ob das Ereignis, das dadurch dargestellt wird, erfordert, daß eine beliebige Maßnahme ergriffen wird. Daher wird z. B. im U.S.-Patent US-A-5.063.523 ein System beschrieben, in dem die Attribute von jedem eingehenden Ereignis gegenüber einem Satz von vorbestimmten Regeln mustermäßig auf Übereinstimmung geprüft werden, und wenn eine Übereinstimmung festgestellt wird, dann eine entsprechende Befehlsdatei ausgeführt wird. Ein Beispiel von einem regelbasierten Er eigniskorrelationssystem ist in „Knowledge based GUI for network surveillance and fault analysis", IEEE Network Operations and Management Symposium, Band 3, Februar 1994, U.S.-Seiten 846–855, J. Jakobson u. a., offenbart.
  • Bei komplexen Systemen kann jedoch die Anzahl von Ereignissen, die erzeugt wird, sehr hoch sein – z. B., wenn eine SONET-OC48-Faser geschnitten wird, dann könnten bis zu 300.000 Ereignisse in einem 60-Sekundenzeitraum erzeugt werden. Unter solchen Umständen ist es nicht praktikabel oder tatsächlich nützlich, eine volle Analyse bezüglich jedes Ereignisses auszuführen. Um solche Ströme von Ereignissen zu handhaben, ist es bekannt, eine mustermäßige Übereinstimmungsprüfung bezüglich eines Fensters der letzten n Ereignisse auszuführen, wobei das zugrundeliegende Konzept beinhaltet, daß spezielle Fehler Anlass zu speziellen Mustern von Ereignissen geben.
  • Existierende Ereignisverarbeitungssysteme, egal, ob diese regelbasiert oder auf einer Musterübereinstimmung von Ereignismustern basieren, tendieren alle dazu, für ein spezielles System, das überwacht wird, per Hand bedient zu werden. Allgemein liefert kein aktuelles Ereignisverarbeitungssystem eine ohne weiteres skalierbare Architektur, die Ereignisse in einer einfach verständlichen Weise verarbeitet und kombiniert.
  • Hierarchische Verwaltungssysteme sind bekannt (siehe: „DOMAINS: Concepts for networking systems management and their realization", GLOBECOM, 93, Band 2, Dezember 1993, New York, U.S.-Seiten 1.222–1.226, K Becker u. a.), bei denen Verwalter einer höheren Ebene Ziele für Verwalter einer niedrigeren Ebene setzen, wobei die Verwalter der untersten Ebene die Ressourcen direkt verwalten, wobei die Ressourcenverwaltungen Informationen über den Erfolg oder das Scheitern einer angeforderten Aufgabe zurückmelden.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Ereignisverwaltungssystem, das Ereignisse in einer verständlichen und skalierbaren Weise handhabt, und ein Verfahren zum Konstruieren desselben zu schaffen.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Ereignisüberwachungs- und Verarbeitungssystem vorgesehen, das eine Überwachungseinrichtung zum Überwachen von Grundereignissen in der Form von Veränderungen im Zustand eines überwachten Systems und eine Ereignisverarbeitungseinrichtung zum Empfangen und Verarbeiten von Ereignisinformationen über die Grundereignisse von der Überwachungseinrichtung aufweist; dadurch gekennzeichnet, daß die Ereignisverarbeitungseinrichtung folgende Merkmale aufweist:
    • – eine Mehrzahl von diskreten Ereingisverarbeitungsknoten von mehreren unterschiedlichen Typen, wobei jeder Typ eines Knotens zur Vornahme einer jeweiligen Verarbeitungsoperation bezüglich Ereignisdatenelementen bestimmt ist, wobei sich jedes Ereignisdatenelement entweder auf das Grundereignis oder eine Kombination von solchen Ereignissen bezieht und Ereignisdaten aufweist, die die Beschaffenheit und die Zeit des Auftretens derselben im System, das überwacht wird, anzeigen, wobei jeder Knoten zumindest einen Eingabestrom oder Ereignisdatenelemente empfängt, die er verarbeitet, um zumindest einen Ausgabestrom der Ereignisdatenelemente zu erzeugen; und
    • – eine Einrichtung zum Kommunizieren zwischen den Knoten, um ein Netz von Knoten zu bilden, in dem die Ausgabeströme von zumindest einigen der Knoten die Eingabeströme der anderen der Knoten bilden, wobei zumindest ein solcher Knoten einen Eingabeknoten zum Überwachen der Ereignisinformationen von der Überwachungs einrichtung in der Form von zumindest einem solchen Eingabestrom darstellt.
  • Die Ereignisverarbeitungsknoten weisen allgemein sowohl Einzelereignis-Verarbeitungsknoten auf, die wirksam sind, um eine Verarbeitung auf Basis von jedem eingegebenen Ereignisdatenelement zu bewirken, das isoliert genommen wird; und Kreuzereignis-Verarbeitungsknoten, die wirksam sind, um eine vorbestimmte Beziehung zwischen den Ereignissen, durch die Ereignisdatenelemente dargestellt werden, zu erfassen, wobei das Vorliegen dieser vorbestimmten Beziehung eine notwendige (jedoch möglicherweise nicht ausreichende) Bedingung für die Ausgabe von einem Ereignisdatenelement ist. Durch Liefern eines Standardsatzes von solchen Knoten wird es möglich, viele verschiedene unterschiedliche Ereignisverarbeitungssysteme zu konstruieren, die die meisten Bedürfnisse erfüllen können.
  • Ein möglicher Typ von Kreuzereignis-Verarbeitungsknoten nimmt die Form eines Produktknotens zum Empfangen einer Mehrzahl von Eingabeströmen von Ereignisdatenelementen an, wobei die vorbestimmte Beziehung, nach der durch den Knoten gesucht wird, zwischen den Ereignisdatenelementen ist, die in den Eingabeströmen vorliegen und auf eine Existenz von Ereignisdatenelementen in den Eingabeströmen hin erfüllt wird, die in einer gegebenen Zeitbeziehung zueinander sind, wobei jedes Ereignisdatenelement des Ausgabestroms sich auf eine Kombination der Ereignisse bezieht, die durch die Ereignisdatenelemente der Eingabeströme dargestellt werden.
  • Ein weiterer möglicher Typ von Kreuzereignis-Verarbeitungsknoten nimmt die Form eines Wenn-Nicht-Knotens (Unless) zum Empfangen von einem ersten und einem zweiten Eingabestrom von Ereignisdatenelementen an, wobei die vorbestimmte Beziehung, nach der durch den Knoten gesucht wird, zwischen den Ereignisdatenelementen der Eingabeströme ist und auf eine Existenz von einem Ereignisdatenelement in dem ersten Eingabestrom hin erfüllt wird, ohne das Vorlie gen eines Ereignisdatenelement in dem zweiten Eingabestrom, der in einer gegebenen Zeitbeziehung zum Ereignisdatenelement des ersten Eingabestroms ist, wobei jedes Ereignisdatenelement von dem Ausgabestrom einem Ereignisdatenelement des ersten Eingabestroms entspricht.
  • Noch ein weiterer Typ eines Kreuzereignis-Verarbeitungsknotens nimmt die Form eines Tabellenreferenzierungsknotens an, wobei ein solcher Knoten in Verbindung mit einem Tabellenknoten verwendet wird. Ein Tabellenknoten ist ein Knoten, der angeordnet ist, um einen Eingabestrom von Ereignisdatenelementen zu empfangen und um Ereignisdaten von demselben einschließlich der Zeit des Auftretens des entsprechenden Ereignisses oder der Kombination aus Ereignissen zu speichern, wobei der Tabellenknoten darauf anspricht, zu einer spezifischen Zeit abgefragt zu werden, um die Ereignisdaten, die zu diesem Zeitpunkt aktuell sind, zurückzusenden. Ein Tabellenreferenzierungsverarbeitungsknoten ist einer, für den die vorbestimmte Beziehung, nach der durch den Knoten gesucht wird, eine gegebene Zeitbeziehung zwischen einem eingegebenen Ereignisdatenelement und einem speziellen Datenelement ist, das, wenn es aufgetreten ist, seine Ereignisdaten in einem Tabellenknoten speichert. Die gegebene Zeitbeziehung gilt als erfüllt, wenn zu einem speziellen Zeitpunkt das spezielle Ereignisdatenelement das aktuelle Element war, das in dem Tabellenknoten gespeichert ist; dementsprechend testet der Tabellenreferenzierungsknoten die erforderliche Zeitbeziehung durch Abfragen des Tabellenknotens mit dem vorstehend erwähnten speziellen Zeitpunkt und durch Untersuchen der zurückgesendeten Ereignisdaten, um zu ermitteln, ob sie das Vorliegen von dem speziellen Ereignisdatenelement anzeigen. Allgemein weisen die Ereignisdaten, die in dem Tabellenknoten gespeichert sind, für jedes Ereignisdatenelement den Wert eines gegebenen Parameters des Systems, das überwacht wird, auf, wobei das spezielle Datenelement von Interesse dann ein beliebiges solches Element ist, dessen gespeicher ter Parameterwert in einem vorbestimmten Bereich von Werten liegt.
  • Bezüglich der Einzelereignis-Verarbeitungsknoten ist ein solcher möglicher Typ von solchen Knoten ein Filterknoten zum Auswählen von einem Eingabestrom eines beliebigen Ereignisdatenelements, dessen Ereignisdaten vorbestimmte Auswahlkriterien erfüllen, wobei die ausgewählten Ereignisdatenelemente in einem Ausgabestrom von dem Knoten ausgegeben werden.
  • Ein weiterer möglicher Typ eines Einzelereignis-Verarbeitungsknotens ist ein Verzögerungsknoten zum Empfangen von Ereignisdatenelementen in einem Eingabestrom und zum Verzögern der Ausgabe von solchen Ereignisdatenelementen in einem Ausgabestrom bis zu einem vorbestimmten Zeitraum nach dem Zeitpunkt des Auftretens, der diesem Element zugeordnet ist.
  • Vorzugsweise ist für jeden Typ von Ereignisverarbeitungsknoten ein funktioneller Verarbeitungscode zum Ausführen der Verarbeitung, die dem Knoten zugeordnet ist, vorgesehen, wobei jeder Ereignisverarbeitungsknoten zugeordnete Daten aufweist, die folgende Merkmale umfassen:
    • – erste Daten, die gleichen für alle Typen desselben Typs, die den funktionellen Verarbeitungscode identifizieren, der für den Knotentypen relevant ist, wodurch der funktionelle Verarbeitungscode durch alle Knoten desselben Typs gemeinsam verwendet wird; und
    • – zweite Daten, die für jeden Knoten spezifisch sind, die Daten umfassen, die für den oder jeden Ausgabestrom, der dem Knoten zugeordnet ist, die Destination des Stroms identifizieren.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung, ist ein Verfahren zum Bauen eines Ereignisverarbeitungssystems zum Empfangen und Verarbeiten von Ereignisinformationen über Grundereignisse, die in einem System auftreten, das überwacht wird, vorgesehen, wobei das Verfahren folgende Schritte aufweist:
    • – Bereitstellen einer Bibliothek von Ereignisverarbeitungsknoten von mehreren unterschiedlichen Typen, wobei jeder Typ von Knoten einem Bewirken einer jeweiligen vorbestimmten Verarbeitungsoperation auf Ereignisdatenelementen dediziert ist, wobei jedes Ereignisdatenelement entweder auf ein Grundereignis oder eine Kombination von solchen Ereignis bezogen ist und Ereignisdaten aufweist, die die Beschaffenheit und den Zeitpunkt des Auftretens derselben in dem System, das überwacht wird, anzeigen, wobei jeder Knoten zumindest einen Eingabestrom von Ereignisdatenelementen empfangen soll, die er dann verarbeiten kann, um zumindest einen Ausgabestrom von Ereignisdatenelementen zu erzeugen; und
    • – Auswählen von Knoten von der Bibliothek und Kommunizieren der Knoten, um ein Netz von Knoten zu bilden, bei dem die Ausgabeströme von zumindest einigen der Knoten die Eingabeströme von anderen der Knoten bilden, wobei zumindest ein Knoten einen Eingabeknoten zum Empfangen von Ereignisinformationen von dem System, das überwacht wird, in der Form von zumindest einem Ausgabestrom bildet.
  • Kurze Beschreibung der Zeichnungen
  • Ein Ereignisverarbeitungssystem, das die Erfindung verkörpert, und ein Verfahren zum Konstruieren eines solchen Systems gemäß der Erfindung wird nun speziell mittels eines nicht einschränkenden Beispiels beschrieben, wobei auf die beigefügten diagrammatischen Zeichnungen Bezug genommen wird:
  • 1 ist ein Zeitdiagramm, das drei Ereignissequenzen A, B und C zeigt;
  • 2 ist ein Blockdiagramm eines Ereignisverarbeitungssystems zum Verarbeiten der Ereignissequenzen von 1, um Übergangsereignisse zu erfassen;
  • 3A ist ein Blockdiagramm eines Busknotens;
  • 3B ist ein Blockdiagramm eines Filterknotens;
  • 3C ist ein Blockdiagramm eines Verzögerungsknotens;
  • 3D ist ein Blockdiagramm eines Umwandlerknotens;
  • 4A ist ein Blockdiagramm eines Produktknotens;
  • 4B ist ein Blockdiagramm eines Wenn-Nicht-Knotens;
  • 4C ist ein Blockdiagramm eines Tabellenreferenzierungsknotens;
  • 5A ist ein Blockdiagramm eines Aktionsknotens;
  • 5B ist ein Blockdiagramm eines Tabellenknotens;
  • 5C ist ein Zeitdiagramm bezüglich der Operation des Tabellenknotens von 5B;
  • 6A ist ein Diagramm eines Netzwerks, das aus Knoten von 3 und 4 konstruiert ist, wobei dieses Netz das Ereignisverarbeitungssystems von 2 implementiert;
  • 6B ist ein Diagramm, das die Operation eines Tabellenreferenzierungsknotens darstellt, der eine Filterfunktion ausführt;
  • 7 ist ein Diagramm, das darstellt, wie ein Makroknoten, wie z. B. ein „Verbrauch"-Knoten aus elementaren Knoten, wie jenen, die in 3 und 4 gezeigt sind, konstruiert werden kann;
  • 8 zeigt eine modifizierte Form des Netzes von 6A, das den „Verbrauch"-Knoten von 7 nutzt;
  • 9 zeigt das Netz von 8, jedoch mit dem „Verbrauch"-Knoten, der in seinen konstituierenden Elementarknoten erweitert ist;
  • 10A ist ein Diagramm, das die Konstruktion des Produktknotens von 4A aus einem primitiven Produktknoten und Speicherknoten darstellt;
  • 10B ist ein Zeitdiagramm, das ein Verständnis bezüglich der Speicherdaueranforderungen des Speicherknotens von 10 vereinfacht;
  • 10C ist ein Diagramm ähnlich 10, gibt jedoch ein numerisches Beispiel der Speicherknoten-Speicherdauer an;
  • 11A ist ein Diagramm, das darstellt, wie der Wenn-Nicht-Knoten von 4B aus einem primitiven Wenn-Nicht-Knoten und einem Speicherknoten konstruiert werden kann;
  • 11B ist ein Zeitdiagramm, das ein Verständnis der Speicherdaueranordnungen des Speicherknotens und des primitiven Wenn-Nicht-Knotens von 11B vereinfacht;
  • 11C ist ein Diagramm ähnlich 12, zeigt jedoch ein numerisches Beispiel der erforderlichen Spei cherdauern des Speicherknotens und des primitiven Wenn-Nicht-Knotens;
  • 12 zeigt das Netz von 9, jedoch mit dem Wenn-Nicht- und Produktknoten, die in ihre Formen, die in 11 und 10 gezeigt sind, erweitert sind;
  • 13 das Netz von 12 nach einer Optimierung;
  • 14 ein Diagramm, das die Datenstrukturen darstellt, die für Ereignisdatenelemente verwendet werden, die zwischen den Knoten geleitet werden;
  • 15A ist ein Diagramm eines einfachen Netzes, das drei Produktknoten aufweist, die arbeiten, um fünf Eingabeereignisströme von Grundereignissen in einen Ausgabeereignisstrom von zusammengesetzten Ereignissen zu kombinieren;
  • 15B ist ein Diagramm, das die Zusammensetzung von jedem Ereignisdatenelement in dem Ausgabeereignisstrom von 15A zeigt;
  • 16 ist ein Diagramm, das die Grunddatenstruktur darstellt, die verwendet wird, um jeden Ereignisverarbeitungsknoten zu implementieren;
  • 17 ist ein Diagramm, das für vier Knoten darstellt, wie die Datenstrukturen der Knoten aufeinander bezogen sind;
  • 18 ist ein Diagramm, das die Schritte darstellt, die beim Erzeugen und Laden eines neuen Ereignisverarbeitungssystems, das die Erfindung verkörpert, involviert sind; und
  • 19 ist ein Diagramm, das darstellt, wie die Ereignisverarbeitungssysteme, die aus den Ereignisver arbeitungsknoten gebaut sind, in einer hierarchischen Weise angeordnet sein können.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Die Ereignisverarbeitungssysteme, die nachstehend beschrieben werden sollen, werden genommen, um in einer Umgebung zu existieren, in der sie geleitete Ereignisinformationen über ein System sind, das als ein oder mehrere Ströme von Ereignisdatenelementen überwacht wird. Jedes solcher Ereignisdatenelemente bezieht sich auf ein Grundereignis, das in dem System, das überwacht wird, eingetreten ist, oder auf eine Kombination von solchen Grundereignissen. Jedes Ereignisdatenelement umfaßt Informationen über die Beschaffenheit des Grundereignisses oder des zusammengesetzten Ereignisses und einen Zeitstempel der die Zeit des Auftretens dieses Elements anzeigt. Um sicherzustellen, daß die Ereignisdatenelemente, die in das Ereignisverarbeitungssystem eingegeben werden, ein Standardformat aufweisen, wird das Ereignisverarbeitungssystem allgemein durch eine entsprechende Formatierungshardware-/Software, die Ereignisnachrichten von dem System, das überwacht wird, empfängt und dieselben in ein Standardereignisdatenelement-Format versetzt, geschützt. Obwohl es höchst wünschenswert ist, daß jede Ereignisnachricht nach einer Erzeugung einem Zeitstempeln unterzogen wird, ist es denkbar, daß dies nicht erfolgt, und in diesem Fall kann das Formatierungsvorderende an sich einen Zeitstempel für jede Ereingisnachricht liefern, die dem Zeitpunkt des Empfangs dieser Nachricht entspricht. Dieser Zeitstempel wird dann genommen, um der Zeitpunkt des Auftretens des zugrundeliegenden Ereignisses in dem System, das überwacht wird, zu sein.
  • Allgemein besteht ein globaler Begriff für die Zeit über dem System, das überwacht wird, und das Ereignisverarbeitungssystem, so daß ein Zeitstempel, der durch das System gegeben wird, das überwacht wird, eine direkte Bedeutung für das Ereignisverarbeitungssystem hat. Bei dem vorstehend erwähnten Ausnahmefall, wo das System, das überwacht wird, seine Ereignisnachrichten keiner Zeitstempelung unterzieht, muß sich der globale Begriff für die Zeit natürlich nur über das Ereignisverarbeitungssystem und sein Formatierungsvorderende erstrecken.
  • Weil Ereignisnachrichten, die durch das System, das überwacht wird, erzeugt werden, an einer Vielzahl an Positionen in diesem System erzeugt werden können und weil die Einrichtung zum Leiten der Ereignisnachrichten an das Ereignisverarbeitungssystem variable Verzögerungen einführen können, kann der Strom (oder die Ströme) von Ereignisdatenelementen, die an das Ereignisverarbeitungssystem geleitet werden, nicht streng geordnet werden. Es ist jedoch möglich, anzunehmen, daß die Ströme nahezu geordnet sind. Ferner ist es praktischerweise allgemein möglich, obere und untere Grenzen auf der Verzögerung zu plazieren, die durch jedes Ereignisdatenelement während des Durchgangs zum Ereignisverarbeitungssystem erfahren wird, wobei diese Verzögerungen nachstehend als „maxTD" und „minTD" bezeichnet werden. Der Betrag dieser Verzögerungen wird in Situationen von Bedeutung, wo es wünschenswert ist, zu testen, ob ein spezielles Ereignis in einer gegebenen Zeitbeziehung zu einem anderen Ereignis aufgetreten ist oder nicht.
  • Allgemeine Begriffe
  • Ein Ereignisverarbeitungssystem, das die Erfindung verkörpert, weist ein Netz von Ereignisverarbeitungsknoten auf, die jeweils angeordnet sind, um einen oder mehrere Ströme von Ereignisdatenelementen zu empfangen und um Ereignisdatenelemente zusammenzuführen, zu filtern oder zu kombinieren, um einen neuen Strom zu erzeugen, der an einen anderen Knoten geleitet wird. Durch entsprechendes Strukturieren dieses Netzes von Knoten und entsprechendes Wählen der Funktionalität von jedem Knoten ist es möglich, spezielle Kombinationen auch von Ereignissen zu erfassen, wobei die entsprechenden Ereignisdatenelemente dann verwendet werden, um eine entsprechende externe Aktion (wie z. B. Auslösen eines Alarms oder Ergreifen einer Korrekturaktion) zu initiieren.
  • Um den allgemeinen Lösungsansatz darzustellen, der durch ein Ereignisverarbeitungssystem, das die vorliegende Erfindung verkörpert, ergriffen wird, zeigt 1 ein einfaches Beispiel, wo das System, das überwacht wird, angeordnet ist, um ein NIEDRIG-Ereignis Abwärtspfeil in Linie A, 1) auszugeben, nachdem eine Systemversorgungsspannung einen bestimmten Pegel unterschritten hat, und um ein HOCH-Ereignis (Aufwärtspfeil, Linie A, 1) auszugeben, nachdem die Systemversorgungsspannung wieder eingerichtet worden ist. Es kann wünschenswert sein, zwischen zwei Situationen unter Verwendung des Ereignisverarbeitungssystems zu unterscheiden, wobei die erste Situation jene ist, wo der Spannungsverlust sich für mehr als 0,25 Sekunden erstreckt (ein erweiterter Spannungsverlust – siehe Linie A, 1), und eine Situation, wo der Spannungsverlust für weniger als 0,25 Sekunden (ein Spannungsverlustübergang – siehe Linie B in 1) andauert.
  • Die Linie C in 1 zeigt eine Situation, wo zwei Spannungsverlustübergänge innerhalb 0,5 Sekunden auftreten, wobei dieses Beispiel nachstehend verwendet wird.
  • 2 zeigt ein konzeptionelles Modell dessen, wie das Ereignisverarbeitungssystem das gewünschte Ergebnis erzeugen könnte. Dieses Modell weist einen Übergangserfassungsblock 10 auf, dem zwei Eingabeströme von Ereignisdatenelementen zugeführt werden. Der erste dieser Eingabeströme 11 ist ein Strom von Ereignisdatenelementen, der Spannung-Niedrig-Ereignisse darstellt, während der zweite dieser Ströme 12 ein Strom von Ereignisdatenelementen ist, der Spannung-Hoch-Ereignisse darstellt. Der Übergangserfassungsblock 10 ist angeordnet, um eine Ausgabe 13 von Ereignisdatenelementen zu erzeugen, wobei ein jedes solches Element erzeugt wird, wenn einem Spannung-Niedrig-Ereignis (wie durch ein Ereignisdatenelement in Strom 11 dargestellt) ein Spannung-Hoch-Ereignis (wie durch ein Ereignisdatenelement in Strom 12 angezeigt) innerhalb eines kurzen Zeitraums, wie z. B. 0,25 Sekunden, folgt. Somit könnte der Ausgabestrom 13 für die Situation, die durch Linie C von 1 dargestellt ist, zwei Ereignisdatenelemente 14 enthalten (wobei diese Ereignisdatenelemente jeweils als eine Darstellung eines zusammengesetzten Ereignisses im Gegensatz zu den Ereignisdatenelementen der Ströme 11 und 12 betrachtet werden können, die Grundereignisse darstellen, die in dem System, das überwacht wird, auftreten).
  • In dem Modell von 2 werden zwei Eingabeströme 11 und 12 ebenfalls einem Erweiterte-Spannungsverlust-Block 15 zugeführt, der angeordnet ist, um ein Ereignisdatenelement auf Leitung 16 nur bei Vorliegen eines Spannungsverlustes auszugeben, der mehr als 0,25 Sekunden (wie in Linie A, 1) andauert.
  • Ein wichtiger Begriff bei den Ereignisverarbeitungssystemen und Konstruktionsverfahren, die nachstehend beschrieben werden sollen, ist die Bereitstellung eines begrenzten Satzes von Grundknoten von unterschiedlich definierter Funktionalität, die als ein Standardsatz von Baublöcken verwendet werden können, um viele verschiedene Ereignisverarbeitungssysteme zu bauen. Der nächste Abschnitt beschreibt einen Satz von geeigneten Grundknoten, die verwendet werden können, um das Ereignisverarbeitungssystem von 2 sowie eine fast unendliche Vielfalt an anderen solchen Systemen zu bauen.
  • Grundknoten
  • Eine Bibliothek von Grundknoten wird nun unter Bezugnahme auf 3, 4 und 5 beschrieben, wobei 3 und 4 Ereignisverarbeitungsknoten zeigen, die einen oder mehrere Ströme von Ereignisdatenelementen und Ausgabeströmen von Ereignisdatenelementen empfangen, und 5 zeigt Knoten, die Ströme von Ereignisdatenelementen einnehmen und eine Ausgabe in einer anderen Form liefern.
  • Einzelereignis-Verarbeitungsknoten – 3 zeigt Ereignisverarbeitungsknoten, die jedes Eingabeereignisdatenelement in Isolation von anderen Ereignisdatenelementen behandeln. Diese Knoten weisen folgende Merkmale auf:
    • – Einen Busknoten 20 (siehe 3A), dessen Zweck es ist, einen Eingabestrom von Ereignisdatenelementen zu verdoppeln, um eine Mehrzahl von entsprechenden Ausgabeströmen zu erzeugen, die jeweils die gleichen Ereignisdatenelemente wie der Eingabestrom enthalten. Für diesen Knoten sind die maximalen und minimalen Durchgangsverzögerungen, die den Ereignisdatenelementen zugeordnet sind, zwischen dem Eingabe- und Ausgabestrom unverändert. Dies ist im Beispiel von 3 durch die in Klammern gesetzten Paare von Nummern dargestellt, die dem Eingabe- und Ausgabestrom zugeordnet sind (wobei diese Konvention hierin allgemein verwendet wird).
    • – Ein Filterknoten 21 (siehe 3B) der einen neuen Strom von Ereignissen durch Verwenden eines Teilsatzes des Eingabestroms erzeugt. Dieser Teilsatz ist auf der Grundlage eines Parameters definiert, der durch jedes eingegebene Ereignisdatenelement getragen wird. Wenn z. B. jedes Ereignisdatenelement einen Ereignistyp aufweist, dann kann der Filterknoten seine Auswahl basierend auf einem Typ ausführen. Somit ist in 3B der Filterknoten 21 gezeigt, der Ereignisdatenelemente empfängt, die sich auf Ereignisse der Typen „a", „b", „c" und „d" beziehen, und nur diese Ereignisdatenelemente, die sich auf Ereignisse des Typs „a" oder „c" beziehen, selektiv weiterleitet. Allgemein arbeitet das Auswahlprädikat auf einem oder mehreren der nachstehenden Parameter, die normalerweise einem Ereignisdatenelement zugeordnet sind:
    • – eindeutige ID
    • – Erzeugungs- (Zeitstempel) -Zeit
    • – Ankunftszeit
    • – Wert eines Attributs Wie bei dem Busknoten sind die minimalen und die maximalen Verzögerungszeiten, die dem Ausgabestrom zugeordnet sind, mit jenen identisch, die dem Eingabestrom zugeordnet sind.
    • – Ein Verzögerungsknoten 22 (siehe 3C). Dieser Knoten gibt jedes eingegebene Ereignisdatenelement aus, sobald das Alter dieses Elements, wie durch seinen Zeitstempel angezeigt ist, einen spezifizierten Betrag überschritten hat. Damit der Knoten diese Verarbeitung vornehmen kann, ist es natürlich für den Knoten notwendig, eine Zeitreferenz zu empfangen, die auf jene bezogen ist, die verwendet wird, um den Zeitstempel für das Ereignisdatenelement zu liefern. Es wird darauf hingewiesen, daß, wenn der spezifizierte Alterbetrag gleich der maximalen Durchgangverzögerung für den Eingabestrom ist oder dieselbe überschreitet, der Verzögerungsknoten 22 dann die Ereignisdatenelemente in einer absteigenden Zeitstempelreihenfolge ausgibt. Dieser Neuordnungseffekt ist der normale Verwendungszweck des Verzögerungsknoten. Jedoch existiert in Bezug auf die Tabellenknoten, wie nachstehend ausführlicher beschrieben wird, ein weiterer Verwendungszweck. Die minimale Durchgangverzögerung des Ausgabestroms von diesem Knoten ist das Maximum des spezifizierten Alterbetrags und der minimalen Durchgangverzögerung des Eingabestroms. Die maximale Durchgangverzögerung des Ausgabestroms ist gleich dem Maximum des spezifizierten Alterbetrags und der maximalen Durchgangverzögerung des Eingabestroms.
    • – Ein Umwandlerknoten 23 (siehe 3D). Dieser Knoten dient dazu, neue Ereignisdatenelemente aus bestehenden durch selektives Verwenden der Daten von einem Eingabeereignisdatenelement zu erzeugen, um ein neues Ereignisdatenelement eines anderen Typs zu erzeugen. Somit kann der Umwandlerknoten verwendet werden, um ein Zusammengesetztes-Ereignis-Ereignisdatenelement (dessen Form nachstehend beschrieben wird) in ein Einzelereignis-Ereignisdatenelement (das ebenfalls beschrieben wird) zu ändern, wobei das betreffende Einzelereignis ein benutzerdefiniertes Ereignis auf höherer Ebene und kein Grundereignis ist, das in dem System, das überwacht wird, auftritt. Mehrere neue Ereignisdatenelemente von unterschiedlichen Typen können von jedem eingegebenen Ereignisdatenelement produziert werden.
    • – Kreuzereignis-Verarbeitungsknoten – 4 zeigt Ereignisverarbeitungsknoten, die Ereignisdatenelemente ausgeben, nachdem eine vorbestimmte Beziehung zwischen den Ereignisdatenelementen erfaßt worden ist. Diese Knoten weisen folgende Merkmale auf:
    • – Einen Produktknoten 24 (siehe 4A). Dieser Knoten erfaßt die Verwendung und definiert die Muster, die ein Ereignisdatenelement von jedem der mehreren Eingabeströme involvieren. Dieses Muster ist unter Verwendung der folgenden Merkmale definiert, wobei ersteres zwingend ist und die anderen zwei optional sind:
    • – die maximale Breite des Zeitintervalls, das die Kandidatenereignis-Datenelemente enthält (dieses Zeitintervall wird relativ zu einer Ereigniserzeugungszeit referenziert;
    • – einen Satz von erforderlichen Ordnungen (z. B. die Kandidatenereignis-Datenelemente von einem ersten Eingabestrom müssen vor dem Kandidatenereignis-Datenelement von einem zweiten Eingabestrom ankommen);
    • – ein benutzerdefiniertes Prädikat, das bestimmte Parameterwerte in den Ereignisdatenelementen testet, wobei das Prädikat als wahr zurückgesendet wird, wenn der Satz von Kandidatendatenelementen akzeptabel ist.
  • Der akzeptable Satz von Ereignisdatenelementen wird in ein zusammengesetztes Datenelement und eine Ausgabe verpackt. Dem neuen Ereignisdatenelement wird ein Erzeugungszeitstempel gleich dem letzten Erzeugungszeitstempel der Ereignisdatenelemente gegeben. 4A zeigt einen Produktknoten mit zwei Eingabeströmen, die angeordnet sind, um ein zusammengesetztes Ereignisdatenelement auszugeben, wenn einem Ereignisdatenelement auf dem oberen Eingabestrom (Eingabe „0") ein spezielles Ereignisdatenelement auf dem unteren Eingabestrom (Eingabe „1") innerhalb eines Zeitraums von 0,5 Sekunden folgt. Das Prädikat wird verwendet, um zu definieren, welche Typen von Ereignisdatenelementen auf dem unteren Eingabestrom für jeden Typ von Ereignisdatenelement, der auf dem oberen Eingabestrom empfangen wird, gültig sind. Es wird darauf hingewiesen, daß die Funktionalität der Intervallsbreite, der Ordnung und des Prädikats überlappen. Es wäre beispielsweise möglich, die Intervallbreite und die Ordnung innerhalb des Prädikats zu erreichen. In der Praxis ist es besser, die Mustermerkmale deutlicher zu gestalten, indem der Benutzer die Intervallbreite und die Ordnung separat definiert. Die minimalen und maximalen Durchgangverzögerungen des Ausgabestroms werden später berücksichtigt.
    • – Ein Wenn-Nicht-Knoten 26 (siehe 4B). Dieser Knoten weist eine Erregereingabe 27 und eine Inhibitoreingabe 28 auf. Der Knoten emittiert in seinem Ausgabestrom ein beliebiges Ereignisdatenelement, das auf dem Erregereingang empfangen wurde, wenn nicht ein Ereignisdatenelement auf dem Inhibitoreingang innerhalb eines bestimmten Zeitfensters relativ zu dem Erzeu gungszeitstempel des Erregerereignisdaten-Elements empfangen wird. Die Inhibitor- und/oder Erregerereignisdaten-Elemente können auch erforderlich sein, um ein Prädikat zu befriedigen. Somit wird in dem Beispiel, das in 4B gezeigt ist, das Ereignisdatenelement „b" auf dem Erregereingang herausgefiltert (z. B. aufgrund des Vorliegens des Ereignisdatenelements „p" auf dem Inhibitoreingang). Die minimalen und maximalen Durchgangverzögerungen des Ausgabestroms werden später berücksichtigt.
    • – Tabellenreferenzierungsknoten 29 (siehe 4C). Dieser Kreuzereignis-Verarbeitungsknoten ist ein beliebiger Knoten, der ein Prädikat enthält, das eine Bezugnahme auf einen Tabellenknoten (der nachstehend beschrieben wird) vornimmt. Ein Tabellenknoten enthält Ereignisdaten, die von einem Strom von Ereignisdatenelementen extrahiert worden sind. Ein Tabellenreferenzierungsknoten gibt nur ein Ereignisdatenelement aus, wenn sein zugeordnetes Prädikat nach einer Bezugnahme auf den Tabellenknoten erfüllt ist. Ein Tabellenreferenzierungsknoten ist allgemein einer von den Knoten, die bereits beschrieben wurden, der ein Prädikat nutzt (den Filterknoten 21, den Produktknoten 25, den Wenn-Nicht-Knoten 26), jedoch mit einem Prädikat, das eine Bezugnahme auf Ereignisdaten erfordert, die nicht in den Ereignisdatenelementen sind, die direkt durch den Knoten verarbeitet werden. Die Durchgangverzögerungscharakteristika und die anderen Merkmale des Tabellenreferenzierungsknotens hängen von den zugrundeliegenden Knotencharakteristika ab (d. h. ob er ein Filter-, ein Produkt- oder ein Wenn-Nicht-Knoten ist).
  • Spezielle Knoten. Neben den Ereignisverarbeitungsknoten, die vorstehend unter Bezugnahme auf 3 und 4 beschrieben sind, weist die Grundbibliothek von Knoten allgemein die folgenden Knoten auf, die keinen Strom von Ereignisdatenelementen ausgeben:
    • – einen Aktionsknoten 30 (siehe 5A). Der Aktionsknoten nimmt einen Strom von Ereignisdatenelementen und führt eine benutzerdefinierte Prozedur für jedes empfangene Element aus. Typischerweise wandelt diese Prozedur das Ereignisdatenelement in ein gewünschtes Format um und sendet es außerhalb des Ereignisverarbeitungssystems.
    • – einen Tabellenknoten 35 (siehe 5B). Es ist häufig nützlich, in der Lage zu sein, Fragen der Form „Was war der Wert des Parameters X zum Zeitpunkt t" zu beantworten. Es ist der Zweck des Tabellenknotens, zu erlauben, daß solche Fragen gestellt werden, speziell in Bezug auf die Ausführung von Knotenprädikaten. Ein Tabellenknoten weist einen oder mehrere Eingänge zum Empfangen von Ereignisdatenelementen auf, wobei die Ereignisdatenelemente, die bei einem Eingang eintreten, verwendet werden können, um der Tabelle Ereignisdaten hinzuzufügen, während Ereignisdatenelemente, die an einem anderen Eingang eintreten, verwendet werden können, um die Ereignisdaten zu entfernen. Typischerweise weist ein Tabellenknoten tatsächlich einfach einen Eingang zum Empfangen von Ereignisdatenelementen auf, und der Tabellenknoten wird konfiguriert sein, um den Wert eines Parameters zu speichern, der in jedem Ereignisdatenelement gegenüber dem Zeitstempelwert dieses Elements enthalten ist. Ein Tabellenknoten weist eine Abfrageschnittstelle 36 auf, durch die er bezüglich des Werts eines speziellen Parameters zu einem speziellen Zeitpunkt befragt werden kann. Der Tabellenknoten antwortet auf eine solche Befragung durch Erteilen des Parameterwerts, der zu diesem spezifizierten Zeitpunkt aktuell ist, d. h. dem letzten Parameterwert zu diesem spezifizierten Zeitpunkt (tatsächlich wird der Parameterwert indirekt durch den Knoten, der einen Zeiger zu dem betreffenden Ereignisdatenelement zurücksendet, erteilt). Ein Tabellenknoten soll nur mit einer Parameterwertbefragung für Zeitpunkte innerhalb eines speziellen Zeitfensters arbeiten. Um jedoch eine solche Befragung zu erfüllen, ist es eventuell notwendig, einen Parameterwert zu speichern, der älter als das Zeitfenster ist, da dies der Parameterwert sein kann, der immer noch für den Teil des Zeitfensters (oder für alle Zeitfenster) aktuell ist. Somit wird Bezug auf 5C genommen, bei der der Speicher eines Tabellenknotens als in zwei Zonen aufgeteilt betrachtet werden kann, nämlich eine aktive Zone, die dem Tabellenknoten-Zeitfenster entspricht, und eine prähistorische Zone, die sich von dem Alter des Zeitfensters (der Grenzzeit) nach hinten erstreckt. Sobald das Alter der Ereignisdaten in der aktiven Speicherzone die Zeitfensterdauer für den Knoten überschreitet, dann wird es in die prähistorische Speicherzone übertragen; gleichzeitig wird die prähistorische Zone auf ältere Ereignisdaten untersucht, die nun gelöscht werden können. Es ist zu beachten, daß die Dauer des Speicherfensters die maximalen Durchgangverzögerungen des Eingabeereignisstroms (oder der Ströme) überschreiten sollten, so daß sich die Ereignisdaten in ihrer korrekten Ordnung zurückziehen können. Es sollte ebenfalls beachtet werden, daß darauf geachtet werden soll, sicherzustellen, daß der abfragende Knoten keine Informationen über einen Parameterwert zu einem speziellen Zeitpunkt sucht, wenn es möglich ist, daß das Ereignisdatenelement, das diese Informationen trägt, immer noch im Durchgang ist. Um zu verhindern, daß dies geschieht, kann ein Verzögerungsknoten eines entsprechenden Wertes stromaufwärts von dem abfragenden Knoten eingebracht werden.
  • Beispielhafte Ereignisverarbeitungsknotennetze
  • 6A zeigt, wie das Übergangserfassungs-Ereignisverarbeitungssystem von 2 unter Verwendung der Standardknoten, die in 3 und 4 dargestellt sind, implementiert werden kann. Ein einzelner Eingabeereignisstrom SO wird angenommen. Anhand dessen werden ein Spannung-Niedrig-Strom S1 und ein Spannung-Hoch-Strom S2 (entsprechend den Ereignisdatenelementströmen an den Eingängen 11 und 12 in 2) durch Verwendung eines Busknotens 40 und zwei Filterknoten 41 und 42 abgeleitet. Beide Ströme S1 und S2 werden dann einem Wenn-Nicht-Knoten 45, einem Wenn-Nicht-Knoten 46 und einem Produktknoten 47 zugeführt, wobei die Verteilung durch die Busknoten 43 und 44 vorgenommen wird.
  • Der Wenn-Nicht-Knoten 45 leitet Niedrig-Spannung-Ereignisse, die an seinem Erregereingang (durch „e" angezeigt) empfangen werden, im Ausgabestrom S3 weiter, wenn nicht ein Spannung-Hoch-Ereignisdatenelement auf dem Inhibitoreingang („i") innerhalb von 0,25 Sekunden empfangen wird. Der Strom S3 enthält somit Ereignisdatenelemente, die den Start einer erweiterten Niedrig-Spannung-Situation anzeigen, und entspricht somit der Ausgabe von Block 15 in 2. Der Wenn-Nicht-Knoten 46 leitet Spannung-Hoch-Ereignisdatenelemente weiter, die an seinem Erregereingang empfangen werden, wenn nicht ein Spannung-Niedrig-Ereignisdatenelement in den vorhergehenden 0,25 Sekunden eingetreten ist. Der Ausgabestrom S4 vom Wenn-Nicht-Knoten 46 weist somit Ereignisdatenelemente auf, die dem Ende einer erweiterten Niedrig-Spannung-Ssituation entsprechen. Die im Strom S4 enthaltenen Informationen sind nicht unbedingt für die Implementierung des Ereignisverarbeitungssystems von 2 notwendig, obwohl diese Informationen in praktischen Systemen nützlich sein können.
  • Der Produktknoten 47 weist die Niedrig-Spannung-Ereignisdatenelemente auf, die seinem Eingang 0 zugeführt werden, und die Spannung-Hoch-Ereignisdatenelemente, die seinem Eingang 1 zugeführt werden. Der Produktknoten 47 gibt ein zusammengesetztes Ereignisdatenelement im Strom S5 aus, wenn einem Ereignisdatenelement am Eingang innerhalb von 0,25 Sekunden ein Ereignisdatenelement an seinem Ausgang 1 folgt (diese Ordnung und dieses Zeitintervall werden innerhalb des Knotensymbols in 6A angezeigt). Der Strom S5 enthält somit zusammengesetzte Ereignisdatenelemente, die Paare von Spannung-Niedrig- und Spannung-Hoch-Ereignissen sind, so daß Spannung-Niedrig ein Spannung-Hoch innerhalb von 0,25 Sekunden folgt – in anderen Worte ist der Strom S5 ein Strom von Ereignisdatenelementen, die Übergänge darstellen. Tatsächlich enthält der Strom S5 auch einige unerwünschte Ereignisdatenelemente, wie durch erneute Bezugnahme auf 1C verständlich wird. In dem Beispiel von 1C treten die vier Ereignisse alle innerhalb von 0,25 Sekunden auf, wobei dies in der Ordnung von einem Spannung-Niedrig-Ereignis L1, einem Spannung-Hoch-Ereignis H1, einem Spannung-Niedrig-Ereignis L2 und einem Spannung-Hoch-Ereignis H2 ist. Die Operation des Produktknotens 47 umfaßt ein Kombinieren einer beliebigen Paarung eines Spannung-Niedrig-Ereignisses, dem innerhalb von 0,25 Sekunden ein Spannung-Hoch-Ereignis folgt. Es gibt tatsächlich drei solche Paarungen für die 1C, die wie folgt sind:
    L1;H1 L2;H2 L1;H2
  • Diese letzte Paarung führt zu einer Ausgabe eines unerwünschten Ereignisdatenelements von dem Produktknoten 47 insofern als das Ereignisdatenelement keinem wahren Übergangsereignis entspricht. Der Zweck des Wenn-Nicht-Knotens 48 ist es, solche unerwünschten Ereignisdatenelemente zu eliminieren, und er nimmt dies durch Blockieren der Weiterübertragung von Strom S5 zum Strom S6 von einem beliebigen Ereignisdatenelement vor, dessen Spannung-Niedrig-Ereigniskomponente vor einem Spannung-Niedrig-Ereignis erzeugt wurde, das an sich eintrat, bevor das Spannung-Hoch-Ereignis des S5-Strom-Ereignisdatenelements auftrat. In an deren Worten erlaubt der Wenn-Nicht-Knoten 47 nur eine Paarung eines Spannung-Hoch-Ereignisses mit dem naheliegendsten vorhergehenden Spannung-Niedrig-Ereignis. Dies wird durch Liefern der Spannungsniedrig-Ereignisdatenelemente an den Inhibitoreingang des Knotens und dann durch Überprüfen eines jeden zusammengesetzten Ereignisdatenelements in Strom S5 erreicht, ob ein beliebiges der Spannung-Niedrig-Ereignisse, das in den 0,25 Sekunden erzeugt wurde, vor der Erzeugungszeit des S5-Ereignisses (und somit vor der Erzeugungszeit der Spannung-Hoch-Komponente dieses Ereignisses) eine Erzeugungszeit aufweist, die später ist als die des Spannung-Niedrig-Ereignis im S5-Ereignisdatenelement. Diese Erzeugungszeitprüfung ist in dem Prädikat des Wenn-Nicht-Knotens spezifiziert. Der Ausgabestrom S6 von dem Wenn-Nicht-Knoten enthält somit nur die erforderlichen Übergangsereignisdatenelemente.
  • 6B zeigt ein Beispiel der Verwendung eines Tabellenknotens 50 durch einen Tabellenreferenzierungsknoten 51, der eine Filterfunktionalität aufweist, die in diesem Fall ausschließlich von den Daten abhängig ist, die durch den Tabellenknoten gehalten werden. Das Netz von 6B soll Ereignisdatenelemente im Strom S1 empfangen, der einen bestimmten Systemfehler X meldet, und dann einen Alarm ausgeben, nur wenn die Temperatur des überwachten Systems zum Zeitpunkt des Auftretens des Fehlers 50°C überschreitet. Veränderungen der Systemtemperatur werden beispielsweise für jede Veränderung von 2°C durch Ereignisdatenelemente in dem Ereignisstrom gemeldet. Der Ereignisstrom S2 wird dem Tabellenknoten 50 zugeführt, der ein Speicherungszeitfenster von 10 Zeiteinheiten aufweist. Der Strom S2 weist minimale und maximale Durchgangverzögerungswerte von 5 und 10 auf.
  • Die Grundoperation des Netzes von 6B ist für die Fehlerdatenelemente, daß sie an den Tabellenreferenzierungsknoten 51 geleitet werden, der dann die Temperatur des überwachten Systems zum Erzeugungszeitpunkt des Fehlerer eignisdatenelements nachsieht. Wenn diese Temperatur höher als 50°C ist, dann wird das Fehlerereignisdatenelement ausgegeben. Bei dem vorliegenden Beispiel sind jedoch die minimalen und maximalen Durchgangverzögerungen, die dem Fehlerereignisstrom 1 zugeordnet sind, 1 bzw. 20, und dies bedeutet, daß, wenn die Fehlerereignisse direkt an den Knoten 51 geleitet werden, der Tabellenknoten 50 referenziert werden könnte, bevor er eine Chance hätte, mit der Temperatur des überwachten Systems zu dem Zeitpunkt, zu dem ein Fehler auftrat (wobei die minimale Durchgangverzögerung des Fehlerereignisses eine Zeiteinheit beträgt, während die Temperaturveränderungs-Ereignisdatenelemente für bis zu 10 Einheiten verzögert werden können), aktualisiert zu werden. Um diese Situation zu vermeiden, wird eine Verzögerung 52 mit einem Verzögerungswert von 10 in den Fehlerereignisstrom S1 eingebracht, wobei dem letzteren eine minimale Durchgangzeit von 10 erteilt wird, wodurch sichergestellt wird, daß die relevanten Temperaturveränderungen in dem Tabellenknoten bis zu dem Zeitpunkt, wenn sie notwendig sind, aufgezeichnet worden sind.
  • Konstruieren von neuen Knoten
  • Die Standardgrundknoten von 3 bis 5 können kombiniert werden, um Makroknoten zu bilden – in anderen Worten kann es nützlich sein, einen neuen Knoten mit einer speziellen Funktionalität zu spezifizieren, um einen Netzentwurf zu vereinfachen, wobei dieser Knoten in der Praxis durch eine Kombination von Grundknoten implementiert wird. Somit kann es beispielsweise nützlich sein, einen „Verbrauch"-Knoten 60 (siehe 7) zu definieren, der aus einem Produktknoten 61, einem Busknoten 62 und einem Wenn-Nicht-Knoten 63 konstruiert ist. Der Makro-"Verbrauch"-Knoten weist zwei Eingänge mit einen Ereignis auf einem Eingang auf, das durch das früheste übereinstimmende Ereignis auf dem anderen Eingang verbraucht wird; sobald das angepaßte Ereignis angepaßt worden ist, spielt es bei der Verarbeitung keine weitere Rolle mehr.
  • Der „Verbrauch"-Knoten von 7 kann durch den Produktknoten 47 und den Wenn-Nicht-Knoten 48 in 6A ersetzt werden, um das Netz zu ergeben, das in 8 gezeigt ist. Die Ausdehnung des Netzes von 8 ist in 9 gezeigt. Es ist zu ersehen, daß die Netze von 6A und 9 tatsächlich insofern nicht identisch sind, da der Inhibitoreingang zu dem finalen Wenn-Nicht-Knoten, aus dem der Strom S6 ausgegeben wird, Niedrig-Spannung-Ereignisse in dem Netzwerk von 6A aufweist, wohingegen er Übergangsereignisse in dem Netz von 9 aufweist. Es wird darauf hingewiesen, daß dieser Unterschied keine Wirkung auf die Gesamtfunktionalität des Netzes hat.
  • Die Primitives-Produkt- und Wenn-Nicht-Knoten
  • Sowohl der Produkt- als auch der Wenn-Nicht-Knoten (und ihre zugeordneten Tabellenreferenzierungsformen) weisen eine Anforderung auf, um Ereignisdatenelemente für einen begrenzten Zeitraum zu speichern, nicht nur weil sie einen Vergleich von Ereignisdatenelementen über einem Zeitfenster erfordern, sondern auch weil die variable Durchgangverzögerung von Ereignisdatenelementen berücksichtigt werden muß, wenn Vergleiche angestellt werden. Tatsächlich erweist es sich als vorteilhaft, einen primitiven Speicherknoten zu definieren, der dann mit einem primitiven Knoten verwendet wird, der die gewünschte Grundfunktionalität (Produkt- oder Wenn-Nicht-Funktionalität) enthält, um die Produkt- und Wenn-Nicht-Knoten von 4 zu liefern.
  • Die Funktionalität eines primitiven Speicherknotens ist wie folgt. Alle Ereignisdatenelemente, die den Knoten betreten, werden ausgegeben. Die minimalen Durchgangverzögerungen der Eingabe- und Ausgabeströme sind identisch, und auch die maximalen Übergangsverzögerungen der Eingabe- und Ausgabeströme sind identisch. Der Speicherknoten führt eine Aufzeichnung aller Ereignisdatenelemente, bis sie ein bestimmtes Alter erreichen, wobei sie an diesem Punkt vergessen werden. Der Speicherknoten wird durch die Erzeugungszeit von Ereignissen sortiert gehalten. Eine Abfrageschnittstelle wird bereitgestellt, durch die die Inhalte des Speicherknotens durchsucht werden können.
  • 10A stellt dar, wie die Speicherknoten 70 (Mem) und der Primitives-Produktknoten 71 verwendet werden, um einen Standardproduktknoten 72 mit den drei Eingabeströmen zu bilden. Der Primitives-Produktknoten 71 sowie die empfangenden Eingabeströme von den Speicherknoten 70 können ebenfalls diese Knoten durch ihre Abfrageschnittstelle abfragen, wobei dies durch die gestrichelten Pfeile in 10A dargestellt ist. Der Primitives-Produktknoten 71 überprüft beim Empfangen eines Ereignisdatenelements an einem Eingang, ob die erforderlichen Ereignisdatenelemente in dem Speicherknoten vorliegen, die den anderen Eingängen für das spezifizierte Zeitintervall zugeordnet sind (wobei dies mit dem Primitives-Produktknoten wie für die Produktknoten 72 identisch ist). Damit der Primitives-Produktknoten 71 diese Überprüfung unmittelbar nach einem Empfangen eines Ereignisdatenelements ausführen kann, müssen die Speicherknoten 70 Ereignisse lange genug halten können, um Variationen der Durchgangverzögerung zu berücksichtigen und auch um das Fensterintervall zu berücksichtigen. Ferner wird darauf hingewiesen, daß, wenn es z. B. erforderlich ist, daß ein Ereignisdatenelement, das einem Eingang 1 zugeordnet ist, innerhalb von 5 Zeiteinheiten nach einem Ereignisdatenelement, das einem Eingang 0 zugeordnet ist, auftritt, der Primitives-Produktknoten beide nachfolgenden Schritte ausführen können muß:
    • – Überprüfen des Speicherknotens, der einem Eingang 1 zugeordnet ist, nach einem Empfang eines Ereignisdatenelements am Eingang 0 (wobei diese Überprüfung dazu dient, um zu sehen, ob ein Ereignisdatenelement am Eingang 1 als innerhalb der 5 Zeiteinheiten nach dem Zeiteintreten des Ereignisdatenelements am Eingang 0 auftretend aufgezeichnet worden ist), und
    • – Überprüfen des Speicherknotens, der einem Eingang 0 zugeordnet ist, nach einem Empfang eines Ereignisdatenelements am Eingang 1 (wobei dieses Mal die Überprüfung dazu dient, um zu sehen, ob ein Ereignisdatenelement am Eingang 0, das in den 5 Zeiteinheiten aufgetreten ist, die der Erzeugungszeit des Ereignisdatenelements am Eingang 1 vorhergingen, eingetreten ist).
  • Das Zeitdiagramm von 10B dient dazu, darzustellen, wie die Speicherdaueranforderungen des Speicherknotens 70 eingestellt sind. Bei diesem Diagramm wird davon ausgegangen, daß ein Ereignisdatenelement, das an einem Eingang (Eingang 0) dieses Produktknotens auftritt, eine Erzeugungszeit von T aufweist. Der Einfachheit halber wird davon ausgegangen, daß sich dieses Ereignisdatenelement auf ein Ereignis 0 bezieht. Der Produktknoten ist angeordnet, um auf das Auftreten eines Ereignisdatenelements an einem zweiten Eingang (Eingang 1) innerhalb eines Fensterintervalls W der Erzeugungszeit T des Ereignisses 0 anzusprechen. Dieses zweite Ereignisdatenelement wird verwendet, um ein Ereignis 1 darzustellen. In 10B wird der Kasten 77 verwendet, um das Fensterintervall der Dauer W darzustellen, während der das Ereignis 1 für die Produktknoten-Intervallbeziehung eingetreten sein muß, um erfüllt worden zu sein. Der Kasten 78 stellt das Empfangsfenster für das Ereignis 0 am Produktknoten 72 dar, wobei dieses Fenster zu einem Zeitpunkt minTD0 nach einem Zeitpunkt T startet und zu einem Zeitpunkt maxTD0 nach einem Zeitpunkt T endet (wobei minTD0 und maxTD0 jeweils die minimalen und maximalen Durchgangzeiten für das Ereignis 0 sind). Der Kasten 79 stellt das Empfangszeitfenster für das Ereignis 1 am Produktknoten dar, damit Ereignis 1 die Produktknoten-Zeitintervallrelation mit dem Ereignis 0 erfüllt. Der Kasten 79 beginnt bei Zeitpunkt minTD1 nach dem Start des Fensterintervallkastens 77 (d. h. nach dem Zeitpunkt T) und endet beim Zeitpunkt maxTD1 nach dem Ende des Zeitintervallkastens 77.
  • Wenn Ereignis 0 am Ende seines Fensters (Kasten 78) empfangen wird, dann hat der Speicherknoten, der dem Eingang 1 zugeordnet ist, das Ereignis 1 seit dem Beginn des Empfangsfensterkastens 79 von Ereignis 1, d. h. für den Zeitraum: maxTD0 – minTD1 eventuell speichern müssen.
  • Andererseits, wenn das Ereignis 0 zu Beginn des Empfangsfensterkastens 78 des Ereignisses 0 empfangen wird, dann muß der Speicherknoten am Eingang 0 dieses Ereignis eventuell ab seinem Zeitpunkt bis zum Ende des Empfangsfensterkastens 79 vom Ereignis 0 speichern, d. h. für eine Speicherungsdauer von: W + maxTD1 – minTD0
  • Nimmt man den allgemeinen Fall, wo die Ordnung des Empfangs der Ereignisse nicht berücksichtigt wird, dann ist es für jedes Paar von Produktknoteneingängen möglich, zwei Speicherungsdauerwerte für jeden Speicherknoten der vorstehend gegebenen Form abzuleiten. In nahezu allen Fällen setzt die Speicherungsknotendauer, die (W + maxTD1 – minTD0) entspricht, die Speicherungsdauer für den Speicherknoten. Wird der gleiche Grundsatz für jede Paarung von Knoten und für ein praktisches Ignorieren der minimalen Durchgangverzögerungswerte angewendet, kann die Speicherungsdauer von jedem Speicherknoten als Fensterintervallwert W plus das Maximum der maximalen Durchgangverzögerungen für alle Produktknoteneingänge außer jenen, deren Fensterknoten berücksichtigt wird, spezifiziert werden.
  • Somit zeigt 10C beispielsweise einen Produktknoten 72 mit drei Eingabeströmen mit minimalen und maximalen Durchgangverzögerungen von (10, 30), (10, 20) und (5, 10). Der Produktknoten weist ein Fensterzeitintervall von 20 auf. In diesem Fall weist der Speicherknoten 70, der dem Eingang 0 zugeordnet ist, eine Dauer des Fensterintervalls (20) plus der maximalen Durchgangverzögerung (20), die den Strömen für die Eingänge 1 und 2 des Produktknotens zugeordnet ist, auf. Die Speicherknoten, die den Eingängen 1 und 2 zugeordnet sind, weisen jedoch eine Dauer gleich dem Fensterintervall (20) plus der maximalen Durchgangverzögerung (30), die dem Strom am Eingang 0 zugeordnet ist, auf.
  • Bezüglich der maximalen Durchgangverzögerung des Ausgabestroms von dem Primitives-Produktknoten ist dies gleich dem Minimum der maximalen Durchgangverzögerungen der Eingabeströme. Desgleichen ist die minimale Durchgangverzögerung des Ausgangsstroms gleich dem Minimum der minimalen Durchgangverzögerungen der Eingabeströme.
  • 11A stellt dar, wie ein Grund-Wenn-Nicht-Knoten 74 aus einem primitiven Speicherknoten 75 und einem primitiven Wenn-Nicht-Knoten 76 aufgebaut sein kann. In diesem Fall weist nur der Inhibitorstromeingang einen Speicherknoten auf, während es allgemein immer noch erforderlich ist, die Erregerereignisdatenelemente zu speichern, wobei diese Fähigkeit einer Annahme zufolge Teil des primitiven Wenn-Nicht-Knotens sein soll (der Grund dafür ist, daß die Speicheranforderungen für die Erregerereignisdatenelemente nicht exakt mit den Charakteristika der primitiven Standardspeicherknoten übereinstimmen).
  • Das Prädikat- und Fensterintervall sind für den Grund-Wenn-Nicht-Knoten 74 und den primitiven Wenn-Nicht-Knoten 76 identisch.
  • Die Speicherknoten-Speicherungsdaueranforderung wird in einer ähnlichen Weise zu den Speicherknoten eines Produktknotens abgeleitet, wie unter Bezugnahme auf 11B erörtert wird. Für einen Wenn-Nicht-Knoten kann sich jedoch das Fensterintervall W, in dem ein Inhibitorereignis relativ zu einem Erregerereignis auftreten kann, auf beiden Seiten der Erzeugungszeit des Erregerstroms erstrecken, wie in 11B durch Block 81 dargestellt ist. Das Erregerereignisempfangsfenster ist durch Kasten 82 dargestellt, wobei dieser Kasten sich zwischen den Zeiten minTDEX und maxTDEX nach der Erregerereignis-Erzeugungszeit T erstreckt. Das Inhibitorereignis-Empfangsfenster wird durch Kasten 83 dargestellt. Wenn Start und Ende des Fensterintervalls W als zu den Zeiten WS und WE relativ zu dem Erregerereignis-Erzeugungszeitpunkt T auftretend gelten, dann startet das Inhibitorereignis-Empfangsfenster bei Zeitpunkt minTD1 + WS, und das Ende des Inhibitorereingis-Empfangszeitfenster wird zum Zeitpunkt WE + maxTDI sein.
  • Die Speicherdauer, die für den Speicherknoten 75 erforderlich ist, muß so sein, um die Situation bewältigen zu können, wo das Erregerereignis an dem Ende eines Empfangsfensters 82 empfangen wird, während das Inhibitorereignis zu Beginn seines Fensters 83 empfangen wird. Diese Zeitdauer ist gleich: maxTDE – (WS + minTDI)
  • Der Einfachheit halber wird die minimale Durchgangverzögerungszeit ignoriert, was einen Wert für die Speicherdauer des Speicherknotens gleich (maxTDEX – WE) ergibt, wobei der Wert WE negativ ist, wenn das Fensterintervall vor dem Zeitpunkt T beginnt.
  • Bezüglich der Speicherdaueranforderung für den primitiven Wenn-Nicht-Knoten in bezug auf die Erregerereignis-daten-Elemente ist die Situation des schlimmsten Falls, wenn das Erregerereignis nach der minimalen Durchgangverzögerung minTDEX empfangen wird, während ein Inhibitorereignis nicht empfangen wird, bis die maximale Durchgangverzögerungszeit maxTD1 nach dem Ende des Fensterintervalls zum Zeitpunkt WE empfangen wird. Dies führt zu einer Speicherdaueranforderung von: WE + maxTD1 – minTDEX
  • Erneut ist es angebracht, den Wert minTDEX zu ignorieren.
  • 11C zeigt ein numerisches Beispiel, bei dem der Erregereingangsstrom einen minimalen und einen maximalen Verzögerungswert von 1 bzw. 4 aufweist und der Inhibitoreingangsstrom einen minimalen und einen maximalen Durchgangverzögerungswert von 2 bzw. 3 aufweist. Das Fensterintervall, das dem Wenn-Nicht-Knoten zugeordnet ist, erstreckt sich von 10 Zeiteinheiten zu 5 Zeiteinheiten vor der Erzeugungszeit des Erregerereignisses. Unter Verwendung der vorstehend abgeleiteten Formeln weist der Speicherknoten eine Speicherdaueranforderung von maxTDEX – WS (d. h.: 4 – (–10)) auf, was einen Wert von 14 ergibt. Der primitive Wenn-Nicht-Knoten weist einen Erregerspeicherdauerwert von maxTD1 – WE (d. h. 3 + (–5)) auf. Dabei handelt es sich um eine negative Speicherungszeit, die natürlich in der Praxis eine Nullspeicherungszeit bedeutet.
  • Die maximale Durchgangszeit für den Ausgabestrom ist gleich dem Maximum der maximalen Durchgangverzögerung des Erregerereignisses und der Kombination des Maximums der Durchgangverzögerungen der Inhibitorereignisströme plus dem Wert WE. Die minimale Durchgangverzögerung des Ausgabestroms ist gleich dem Maximum der minimalen Durchgangverzögerungen des Erregerstroms und der Kombination der maximalen Durchgangsverzögerung des Inhibitorstroms plus dem Wert WE.
  • Werden die Produktknoten und Wenn-Nicht-Knoten zusammen mit den Speicherknoten in Primitivknoten aufgeteilt, erleichtert dies nicht nur ihre Implementierung, sondern ermöglicht auch eine Netzoptimierung, wie nachstehend erörtert wird.
  • Netzoptimierung
  • Wie bei Booleschen Standardlogikschaltungen eigenen sich die Ereignisverarbeitungsknotennetze von einer beliebigen Komplexität allgemein zu einer Optimierung, speziell wo Produkt- und Wenn-Nicht-Knoten involviert sind. Daher, wenn die Produkt- und Wenn-Nicht-Knoten des Übergangsereignis-Erfassungsnetzes von 9 in ihre entsprechenden primitiven Knoten plus Speicherknoten ausgedehnt werden, ergibt sich das Netz, das in 12 gezeigt ist. Das Netz von 12 kann optimiert werden, um die Anzahl von Speicherknoten zu reduzieren. 13 zeigt eine solche Optimierung des Netzes von 12.
  • Implementierung
  • Es wird darauf hingewiesen, daß die vorstehend beschriebenen Knoten in vielen verschiedenen Formen, die von einem zweckgebundenen Hardwareschaltungsaufbau zu Softwareimplementierungen basierend auf objektorientierten Programmierungstechniken reichen, implementiert sein können. Bei dem derzeit bevorzugten Ausführungsbeispiel sind die Knoten als Softwaredatenstrukturen mit Knoten des gleichen Typs implementiert, der einen Verarbeitungsfunktionalitätscode gemeinsam verwendet. Obwohl erwartet wird, daß ein Fachmann eine solche bevorzugte Implementierung vornehmen kann, sind nachstehend bestimmte weitere Details angegeben, um das Verständnis der Operation des bevorzugten Ausführungsbeispiels zu vereinfachen.
  • Taktgebungsstrategien – Bestimmte Knoten, wie z. B. die Verzögerungs- und Wenn-Nicht-Knoten, erfordern eine Anschlußaktion, die ergriffen werden muß. Wenn ein Ereignisdatenelement beispielsweise in den Verzögerungsknoten eintritt, wird er nicht unmittelbar ausgebreitet, stattdessen wird er nach einer vordefinierten Verzögerung ausgebreitet. Wenn die Knoten in einer Software implementiert sind, stellt sich die Frage, welche Terminierungsstrategie verwendet werden soll, um sich daran zu erinnern, die Verzögerungsknoten zum korrekten Zeitpunkt erneut zu besuchen, um das suspendierte Datenelement freizugeben. Eine Anzahl von Lösungsansätzen ist möglich, wobei dieselben folgende umfassen:
    • – eine terminierte Unterbrechung könnte als Takttick verwendet werden, in anderen Worten könnte jeder Knoten eine Unterbrechung terminieren, um mit dem Zeitpunkt zusammenzufallen, zu dem eine Nachverarbeitung erforderlich war. Obgleich dieser Lösungsansatz offensichtlich der eleganteste ist, ist er bezüglich der Verarbeitung auch kostspielig;
    • – die Ankunft eines neuen Ereignisdatenelements am Ereignisverarbeitungssystem könnte als ein Takttick für das gesamte System verwendet werden – diese Lösung funktioniert gut, wenn ein zuverlässiger und häufiger Vorrat an Ereignissen für das gesamte System vorliegt (obwohl die Gefahr besteht, daß die Häufigkeit einer Anschlußverarbeitung zu hoch werden könnte, wobei in diesem Fall eine Anschlußverarbeitung auf ein Eintreten von nicht mehr als sagen wir eine Sekunde beschränkt sein könnte);
    • – die Ankunft eines Ereignisdatenelements könnte als ein Takttick für ausschließlich diesen Knoten verwendet werden – obgleich dieser Lösungsansatz ohne weiteres implementiert wird, ist er nur machbar, wenn ein zuverlässiger und häufiger Fluß von Ereignisdatenelementen zu den Knoten, die eine Anschlußaktion erfordern, vorliegt.
  • Der zweite Lösungsansatz liefert allgemein einen vernünftigen Kompromiß.
  • Ereignisdatenelemente – Zwei unterschiedliche Formen von Datenstrukturen werden für Ereignisdatenelemente abhängig davon, ob sich das Ereignisdatenelement auf ein einzelnes Ereignis (entweder ein Grundereignis, das in dem System, das überwacht wird, eintritt, oder ein benutzerdefiniertes Ereignis höherer Ebene) bezieht oder auf ein zusammengesetztes Ereignis, das aus einer Kombination von Einzelereignissen besteht. 14 zeigt das Format der Datenstruktur, die für die Ereignisdatenelemente verwendet wird, und, wie zu sehen ist, gibt es einen Block 90 von gemeinsamen Feldern für jedes Ereignisdatenelement. Zusätzlich weisen die Ereignisdatenelemente, die sich auf Einzelereignisse beziehen, einen weiteren Block von Feldern 91 auf, während die Ereignisdatenelemente, die sich auf zusammengesetzte Ereignisse beziehen, einen weiteren Block von Feldern 92 aufweisen. Die Felder des Blocks 90, die für alle Ereignisdatentypen gemein sind, sind:
    • – ein Typfeld, der anzeigt, ob sich das Ereignisdatenelement auf ein Einzelereignis oder ein zusammengesetztes Ereignis bezieht;
    • – ein Erzeugungszeitfeld, das einen Zeitstempel enthält, der die Erzeugungszeit des Ereignisses in dem System, das überwacht wird, anzeigt (wobei der Zeitstempel bei dessen Ausfall die Zeit des Empfangs an dem Ereignisverarbeitungssystem anzeigt);
    • – ein Eintragszeitfeld, das den Zeitpunkt anzeigt, zu dem das Ereignis durch das Ereignisverarbeitungssystem empfangen wurde;
    • – ein eindeutiges ID-Feld, das das Ereignisdatenelement innerhalb des Ereignisverarbeitungssystems eindeutig identifiziert (wobei diese ID zugewiesen wird, wenn das Ereignisdatenelement erzeugt wird);
    • – ein Referenzzählfeld, das verwendet wird, um die Anzahl von Knoten oder anderen Systemobjekten (wie z. B. zusammengesetzten Ereignisdatenelementstrukturen) aufzuzeichnen, die auf das Ereignisdatenelement zeigen, das betroffen ist – sobald der Referenzzählwert auf Null fällt, dann kann das Ereignisdatenelement aussortiert werden.
  • Die Felder in Block 91, die einem Einzelereignis-Ereignisdatenelement zugeordnet sind, sind ein Ereignistypfeld und ein Satz von Feldern, die für jeden Ereignistyp vorbestimmt sind. Die Felder in Block 92, die einem zusammengesetzten Ereignisdatenelement zugeordnet sind, sind ein Feld, das die Anzahl von Komponenten des zusammengesetzten Ereignisses und dann ein jeweiliges Feld für jede Komponente anzeigen, das einen Zeiger auf diese Komponente enthält. Jede solche Komponente ist entweder ein Einfachereignis-Ereignisdatenelement oder weiteres zusammengesetztes Datenelement. 15 stellt die Verwendung einer Ereignisdatenelementdatenstruktur eines zusammengesetzten Ereignisses dar. 15A zeigt ein Netz, das aus drei Produktknoten 93, 94 und 95 besteht, wobei die Produktknoten 93 an separaten Eingängen Einzelereignis-Ereignisdatenelemente „a", „b" und „c" empfangen, die in ein zusammengesetztes Ereignisdatenelement X zum Weiterleiten an einen Produktknoten 95 kombiniert werden. Der Produktknoten 94 empfängt Einzelereignis-Ereignisdatenelemente „d" und „e", die er zu einem zusammengesetzten Ereignis-Ereignisdatenelement Y zum Weiterleiten an den Produktknoten 95 kombiniert. Der Produktknoten 95 kombiniert die zwei Zusammengesetztes-Ereignis-Ereignisdatenelemente X und Y zu einem weiteren Zusammengesetztes-Ereignis-Ereignisdatenelement Z. 15B zeigt, wie die Datenstruktur für das Zusammengesetztes-Ereignis-Ereignisdatenelement Z indirekt wieder mit den Einzelereignis-Ereignisdatenelement-Datenstrukturen verknüpft wird. Somit enthält die Datenstruktur 100 für das zusammengesetzte Ereignis Z zwei Komponentenzeiger, die auf die Datenstruktur 100 und 102 für die zusammengesetzten Ereignisse X bzw. Y zeigen. Die Datenstruktur für das zusammengesetzte Ereignis X weist drei Komponentenzeiger auf, die auf jeweilige Datenstrukturen 102, 103 bzw. 104 zeigen, die den Einzelereignissen „a", „b" und „c" zugeordnet sind. Die Datenstruktur 102 für das zusammengesetzte Ereignis Y enthält zwei Komponentenzeiger, die auf die Datenstrukturen 106 und 107 für die Einzelereignisse „d" und „e" zeigen.
  • Es sollte beachtet werden, daß die Kombination aus Grundereignissen entweder in einer Zusammengesetztes-Ereignis-Ereignisdatenelement-Datenstruktur oder in einer Einzelereignis-Ereignisdatenelement-Datenstruktur dargestellt sein können. In letzterem Fall hat der Benutzer ein Ereignis einer höheren Ebene entsprechend der Kombination aus Grundelementen definiert (und einen Umwandlerknoten, der dann verwendet wird, um eine Zusammengesetztes-Ereignis-Datenstruktur, die die Kombination aus Grundelementen darstellt, in eine Einzelereignis-Datenstruktur umzuwandeln, die für das Ereignis höhere Ebene definiert ist).
  • Knotendatenstruktur – Jede Instanz eines Netzknotens weist eine entsprechende Datenstruktur auf, deren Form in 16 gezeigt ist. Diese Datenstruktur weist drei Teile auf, nämlich einen Knotenanfangsblockteil 110, einen Typenprozedurteil 111 und einen typeninstanzspezifischen Teil 112. Der Knotenanfangsblockteil 110 enthält Zeiger 113 und 114 auf die zwei anderen Teile der Datenstruktur.
  • Neben den Zeigern 113 und 114 enthält der Knotenanfangsblockteil Felder, die allen Knoten gemein sind. Diese Felder umfassen ein eindeutiges ID-Feld und ein nächster Knotenzeigerfeld, das verwendet wird, um alle Knoten zu einer einzelnen verknüpften Liste zu verknüpfen. Daneben gibt es zwei Felder, die mit einer Aufräumverarbeitung betraut sind; dies liegt daran, daß einige Knoten eine solche Verarbeitung benötigen, die zu periodischen Intervallen vorgenommen wird (Beispiele umfassen den Verzögerungsknoten und den Wenn-Nicht-Knoten). Knoten, die eine Aufräumverarbeitung erfordern, sind in einer Liste durch einen „Nächster-zum-Aufräumen"-Zeiger im Knotenanfangsblock der betroffenen Knoten verknüpft. Die Aufräumverarbeitung eines Knotens wird durch eine Aufräumprozedur vorgenommen, auf die durch einen Zeiger gezeigt wird, der in einem Aufräumprozedurfeld des Knotenanfangsblocks gehalten wird; tatsächlich wird eine Aufräumprozedur allgemein für jeden Typ von Knoten definiert, und diese Art von Aufräumprozedur wird verwendet, wenn nicht ein Eintrag in dem Aufräumprozedurfeld des Knotenanfangsblocks vorliegt.
  • Der Typprozedurteil 111 der Knotendatenstruktur enthält Identifizierer für alle Verarbeitungsfunktionalitätsprozeduren, die den Knoten des betreffenden Typs zugeordnet sind. Diese Prozeduren umfassen eine Prozedur zum Handhaben von Ereignissen, die an den Knoten ankommen, eine Prozedur zum Aufräumen eines Knotens und eine Prozedur zum Ausdrucken von Knotendaten. Der Typenprozedurteil 111 ist für alle Instanzen von Knoten des gleichen Typs gemein.
  • Der typeninstanzspezifische Teil 112 der Knotendatenstruktur enthält Felder, die für jeden Knotentypen mit den Werten, die in diesen Feldern gespeichert sind, die jene sind, die für die aktuelle Typeninstanz spezifisch sind, spezifisch sind. Speziell umfaßt der Teil 112 für die Ereignisverarbeitungsknoten, die einen Ausgabestrom von Ereignisdatenelementen erzeugen, Felder, die den Destinationsport oder die Ports für den Ausgabestrom oder die Ströme, die durch den Knoten erzeugt werden, anzeigen, wobei ein Destinationsport eine Kombination aus der Destinationsknoten-ID und eine Portzahl für diesen Knoten ist (wobei die Portzahl dazu dient, z. B. zwischen den Erreger- und Inhibitoreingängen eines Wenn-Nicht-Knotens zu unterscheiden).
  • 17 stellt ein Beispiel dessen dar, wie die Datenstrukturen von vier Knoten 115 bis 119 miteinander in einem spezifischen Netz in Beziehung stehen können. In 17:
    d = Eingangsport
    h = Knotenanfangsblock
    p = Typenprozeduren
    s = typeninstanzspezifische Daten
  • Die in dem typeninstanzspezifischen Teil 112 von jeder Knotendatenstruktur enthaltenen Felder sind nachstehend für jeden Knotentyp aufgeführt. Es wird darauf hingewiesen, daß für die Knotentypen, die Eingangsereignisdatenelemente speichern müssen, eines der Felder, die im Teil 112 enthalten sind, ein Zeiger auf die Sequenz der gespeicherten Ereignisse ist. Jeder Knotentyp enthält auch ein Feld zum Aufzeichnen der Zahl von eingegebenen Ereignisdatenelementen und, wo angebracht, ein Feld zum Zählen der Anzahl von ausgegebenen Eereignisdatenelementen, wobei diese Felder beim Analysieren der Gesamtnetzoperationen nützlich sind.
    Aktionsknoten Anzahl von Ereignissen, die eintreten Prozedur zum Aufrufen Zeiger auf private Speicherung
    Busknoten Anzahl von Ereignissen, die eintreten Anzahl von Destinationen Destination Nummer 1 Destination Nummer 2
    Verzögerungsknoten Anzahl von Ereignissen, die eintreten Anzahl von Ereignissen, die austreten Rückzugsalter Zeiger auf Sequenz von Ereignissen Destination
    Filterknoten Anzahl von Ereignissen, die eintreten Anzahl von Ereignissen, die austreten Zeiger auf Prädikatprozedur Destination
    Speicherknoten Anzahl von Ereignissen, die eintreten Rückzugsalter Zeiger auf Sequenz von Ereignissen Destination
    Produktknoten Anzahl von Ereignissen, die eintreten Anzahl von emittierten Ereignissen Akzeptanzintervallbreite Prädikat Anzahl von Eingängen Zeiger auf Speicherknoten 1 Zeiger auf Speicherknoten 2 Zeiger auf Speicherknoten n Anzahl von Reihefolgepaaren Reihenfolge von bis Reihenfolge von bis Etc. Destination
    Tabellenknoten Anzahl von Ereignissen, die eintreten Anzahl von Ereignissen, die zurückzogen Zeiger auf Sequenz von Ereignissen Zeiger auf prähistorische Ereignisse Rückzugsalter Zeiger auf Rückzugsprozedur
    Wenn-Nicht-Knoten Anzahl von Erregereignissen Anzahl von Inhibitorereignissen Anzahl von emittierten Ereignissen Zeiger auf Erregersequenz Zeiger auf Inhibitorspeicherknoten Maximale Durchgangverzögerung für Inhibitoren Versatz zum Fensterstart Versatz zum Fensterende Inhibitor-/Erregerprädikat Destination
  • Nutzung
  • 18 stellt die Hauptschritte dar, die beim Implementiren eines Ereignisverarbeitungssystems involviert sind, das die vorliegende Erfindung verkörpert. Allgemein erfolgt ein Systementwurf an einer Arbeitsstation unter Verwendung ei nes graphischen Editorpakets 120, das einen Zugriff auf eine Bibliothek 121 der Knotenobjekte gewährt, wobei diese Objekte die Grundknoten (z. B. einen Satz von Grundknoten, der vorstehend unter Bezugnahme auf 3 bis 5 beschrieben wurde) und beliebige benutzerkonstruierte Knoten darstellen, die ein Nutzer zum Plazieren in die Bibliothek 121 für nützlich erachtet. Der Benutzer entwirft dann das gewünschte Ereignisverarbeitungsnetz, indem er Knoten von der Bibliothek hochzieht und dieselben unter Verwendung von Tools von dem graphischen Editor 120 entsprechend zuordnet. Während dieses Prozesses spezifiziert der Benutzer alle erforderlichen Parameter, wie z. B. Verzögerungszeit, Ereignisordnungen für Produktknoten etc. Das Ergebnis dieses Prozesses ist die Erzeugung einer Netzbeschreibungsdatei 122 hoher Ebene.
  • Diese Beschreibungsdatei hoher Ebene wird dann automatisch verarbeitet, um die benutzerkonstruierten Knoten zu Grundknoten zu erweitern und die Basisprodukt- und Wenn-Nicht-Knoten in ihre entsprechenden primitiven Gegenstücke und die Speicherknoten zu erweitern. Anschließend wird ein automatischer Optimierungsprozeß 124 ausgeführt, um eine Datei 125 eines optimierten Netzentwurfs zu erzeugen. Diese Datei 125 wird dann kompiliert (Kasten 126), um alle entsprechenden Prozeduren und Datenstrukturen zu erzeugen. Der kompilierte Code 127 wird dann (Bereitstellungsprozeß 128) auf die Zielmaschine oder Maschinen 129 geladen, die die eingegebenen Ereignisdatenelemente von dem System, das überwacht wird 130, liefern. Es wird darauf hingewiesen, daß für die Knoten des Verarbeitungssystems, die auf der gleichen Maschine existieren, die Ereignisdatenelemente zwischen den Knoten allgemein durch das Leiten von Zeigern zwischen den Knotenprozeduren weitergeleitet werden; in dem Fall, wo das Ereignisverarbeitungssystem über den mehreren Maschinen verteilt ist, muß dann eine entsprechende entfernte Kommunikationsprozedur verwendet werden. Natürlich ist es nur praktikabel, ein Ereignisverarbeitungssystem über mehreren Maschinen zu verteilen, wenn kein Bedarf be steht, daß ein Teil des Systems kontinuierlich auf Daten Bezug nimmt, die durch den anderen Teil gehalten werden.
  • 19 ist ein Diagramm, das darstellt, daß es zum Überwachen großer Systeme, wie z. B. von Telekommunikationsnetzen, allgemein angemessen ist, EPS auf mehreren Ebenen bereitzustellen, z. B. auf einer Netzverwaltungsebene und auf einer Diensteverwaltungsebene. Die Beschaffenheit der Ereignisverarbeitungssysteme, die hierin beschrieben sind, macht diese Systeme zur Verwendung in einer Hierarchie äußerst geeignet, wo die Grundereignisse auf unterer Ebene, die durch das System erzeugt werden, das überwacht wird, progressiv in Ereignisse höherer Ebene (zusammengesetzte Ereignisse oder benutzerdefinierte Ereignisse) in einer progressiven Weise umgewandelt werden.
  • Verschiedenes
  • Es wird natürlich darauf hingewiesen, daß für das vorstehend beschriebene Ereignisverarbeitungssystem viele Varianten möglich sind. Speziell kann der Satz von Grundgruppen, die mit Bezug auf 3 bis 5 beschrieben sind, verändert werden, wenn diese als angemessen gilt. Somit könnte es beispielsweise als nützlich gelten, einen OR-Knoten zum Zusammenführen von Strömen eines identischen Typs zu haben.

Claims (18)

  1. Ein Ereignisüberwachungs- und Verarbeitungssystem, das eine Überwachungseinrichtung zum Überwachen von Grundereignissen in der Form von Veränderungen des Zustands eines überwachten Systems und eine Ereignisverarbeitungseinrichtung zum Empfangen und Verarbeiten von Ereignisinformationen über die Grundereignisse von der Überwachungseinrichtung aufweist; dadurch gekennzeichnet daß die Ereignisverarbeitungseinrichtung folgende Merkmale aufweist: – eine Mehrzahl von diskreten Ereignisverarbeitungsknoten (2126, 29) von mehreren unterschiedlichen Typen, wobei jeder Typ eines Knotens zur Vornahme einer jeweiligen vorbestimmten Verarbeitungsoperation bezüglich Ereignisdatenelementen bestimmt ist, wobei sich jedes Ereignisdatenelement entweder auf das Grundereignis oder auf eine Kombination von solchen Ereignissen bezieht und Ereignisdaten aufweist, die das Wesen und die Zeit des Eintretens derselben im System, das überwacht wird, anzeigen, wobei jeder Knoten zumindest einen Eingabestrom der Ereignisdatenelemente empfängt, die er verarbeitet, um zumindest einen Ausgabestrom der Ereignisdatenelemente zu erzeugen; und – eine Einrichtung zum Kommunizieren zwischen den Knoten, um ein Netz von Knoten zu bilden, in dem die Ausgabeströme von zumindest einigen der Knoten die Eingabeströme der anderen der Knoten bilden, wobei zumindest ein solcher Knoten einen Eingabeknoten zum Empfangen der Ereignisinformationen von der Überwachungseinrichtung in der Form von zumindest einem solchen Eingabestrom darstellt.
  2. Ein System gemäß Anspruch 1, bei dem zumindest einer der Ereignisverarbeitungsknoten ein Kreuzereignis-Verarbeitungsknoten (25, 26, 29) ist, der wirksam ist, um eine vorbestimmte Zwischenbeziehung zwischen Ereignissen zu erfassen, die durch die Ereignisdatenelemente dargestellt werden, wobei das Vorhandensein der vorbestimmten Beziehung eine notwendige Bedingung für die Ausgabe eines Ereignisdatenelements in dem Ausgabestrom ist, der dem Knoten zugeordnet ist.
  3. Ein System gemäß Anspruch 2, das den Kreuzereignis-Verarbeitungsknoten in der Form eines Produktknotens (25) zum Empfangen einer Mehrzahl von Eingabeströmen von Ereignisdatenelementen umfaßt, wobei die vorbestimmte Beziehung zwischen den Ereignisdatenelementen, die in den Eingabeströmen vorhanden sind, ist und auf das Vorhandensein von Ereignisdaten in den Eingabeströmen hin erfüllt wird, die in einer gegebenen Zeitbeziehung zueinander sind, wobei sich jedes Ereignisdatenelement des Ausgabestroms auf eine Kombination der Ereignisse bezieht, die durch die Ereignisdatenelemente der Eingabeströme dargestellt sind.
  4. Ein System gemäß Anspruch 2, das den Kreuzereignis-Verarbeitungsknoten in der Form eines Wenn-Nicht-Knotens (26) zum Empfangen von ersten und zweiten Eingabeströmen von Ereignisdatenelementen umfaßt, wobei die vorbestimmte Beziehung zwischen den Ereignisdatenelementen der Eingabeströme ist und auf das Vorhandensein eines Ereignisdatenelements in dem ersten Eingabestrom hin ohne das Vorhandensein von einem Ereignisdatenelement in dem zweiten Eingabestrom erfüllt wird, das in einer gegebenen Zeitbeziehung zu dem Ereignisdatenelement des ersten Eingabestroms ist, wobei jedes Ereignisdatenelement des Ausgabestroms einem Ereignisdatenelement des ersten Eingabestroms entspricht.
  5. Ein System gemäß Anspruch 2, das ferner einen Tabellenknoten (35) aufweist, der angeordnet ist, um einen Eingabestrom von Ereignisdatenelementen zu empfangen und um Ereignisdaten von demselben einschließlich der Zeit des Eintretens zu speichern, wobei der Tabellenknoten (35) auf ein Abfragen mit einer spezifizierten Zeit anspricht, um die Ereignisdaten, die zu der Zeit aktuell sind, zurückzusenden; wobei die Ereignisverarbeitungseinrichtung den Kreuzereignis-Verarbeitungsknoten (29), für den die vorbestimmte Beziehung die Form einer gegebenen Zeitbeziehung zwischen einem eingegebenen Ereignisdatenelement und einem speziellen Ereignisdatenelement annimmt, das, wenn es eingetreten ist, seine Ereignisdaten in dem Tabellenknoten speichern läßt, wobei die gegebene Zeitbeziehung erfüllt wird, wenn zu einer speziellen Zeit das spezielle Ereignisdatenelement das aktuellste Element mit in dem Tabellenknoten (35) gespeicherten Ereignisdaten ist, wobei der Kreuzereignis-Verarbeitungsknoten (29) auf diese Zeitbeziehung durch Abfragen des Tabellenknotens (35) mit der speziellen Zeit testet und die zurückgesendeten Ereignisdaten untersucht, um festzustellen, ob sie die Präsenz des speziellen Ereignisdatenelements anzeigen.
  6. Ein System gemäß Anspruch 5, bei dem die Ereignisdaten, die in dem Tabellenknoten (35) gespeichert sind, für jedes Ereignisdatenelement den Wert eines gegebenen Parameter des Systems, das überwacht wird, aufweisen; wobei das spezielle Ereignisdatenelement von Interesse für den Kreuzereignis-Verarbeitungsknoten ein beliebiges solches Element ist, dessen gespeicherter Parameterwert in einem vorbestimmten Bereich von Werten liegt.
  7. Ein System gemäß Anspruch 1, bei dem zumindest einer der Ereignisverarbeitungsknoten ein Einzelereignis-Verarbeitungsknoten (2023) ist, der wirksam ist, um seine Verarbeitung auf der Basis von jedem eingegebenen Ereignisdatenelement isoliert genommen vorzunehmen.
  8. Ein System gemäß Anspruch 7, das den Einzelereignis-Verarbeitungsknoten in der Form eines Filterknotens (21) zum Auswählen aus einem Eingabestrom eines beliebigen Ereignisdatenelements umfaßt, dessen Ereignisdaten vorbestimmte Auswahlkriterien erfüllen, wobei die ausgewählten Ereignisdatenelemente in einem Ausgabestrom von dem Knoten ausgegeben werden.
  9. Ein System gemäß Anspruch 7, das ferner eine Takteinrichtung zum Liefern einer Zeitreferenz aufweist, die jener entspricht, die zum Liefern der Zeitstempel der Ereignisdatenelemente verwendet werden, wobei die Ereignisverarbeitungseinrichtung den Einzelereignis-Verarbeitungsknoten in der Form eines Verzögerungsknotens (22) zum Empfangen von Ereignisdatenelementen in einem Eingabestrom und zum Verzögern der Ausgabe von jedem solchen Ereignisdatenelement in einem Ausgabestrom bis zu einem vorbestimmter Zeitraum nach der Zeit des Eintretens, der diesem Element zugeordnet ist, umfasst, wobei der Verzögerungsknoten (22) beurteilt, wann der vorbestimmte Zeitraum verstrichen ist, indem auf die Zeitreferenz Bezug genommen wird.
  10. Ein System gemäß Anspruch 1, das ferner eine Ausgabeaktionseinrichtung (30) zum Empfangen des Ausgabestroms und zum Vornehmen einer entsprechenden Aktion ansprechend auf die Ereignisdatenelemente desselben aufweist.
  11. Ein System gemäß Anspruch 1, bei dem für jeden Typ des Ereignisverarbeitungsknotens bezüglich der durch den selben ausgeführten Verarbeitung ein funktioneller Verarbeitungscode zum Ausführen dieser Verarbeitung bereitgestellt wird, wobei jeder Ereignisverarbeitungsknoten zugeordnete Daten aufweist, die folgende Merkmale aufweisen: – erste Daten (111), die gleichen für alle Knoten des gleichen Typs, die den funktionellen Verarbeitungscode, der für diesen Knotentyp relevant ist, identifizieren, wodurch der funktionelle Verarbeitungscode durch alle Knoten des gleichen Typs gemeinsam verwendet wird; und – zweite Daten (112), spezifisch für jeden Knoten, die Daten umfassen, die für jeden des zumindest einen Ausgabestroms, der dem Knoten zugeordnet ist, die Destination des Stroms identifizieren.
  12. Ein System gemäß Anspruch 11, bei dem die Einrichtung zum Kommunizieren zwischen den Knoten eine Einrichtung zum Weiterleiten eines Ereignisdatenelementzeigers von einem Knoten zu einem anderen aufweist.
  13. Ein System gemäß Anspruch 1, bei dem das Ereignisdatenelement, das sich auf eine Kombination von Grundereignissen bezieht, einen Satz (100) von Komponentenereignisdaten-Elementen aufweist, wobei diese Strukturierung für jedes Komponentenereignisdaten-Element (101, 102) rekursiv implementiert ist, bis sich jedes Komponentenereignisdatenelement direkt auf das Grundereignis (103107) bezieht.
  14. Verfahren zum Aufbauen eines Ereignisverarbeitungssystems zum Empfangen und Verarbeiten von Ereignisinformationen über Grundereignisse, die in einem System, das überwacht wird, eintreten, wobei die Grundereignisse Veränderungen des Zustands in dem System, das überwacht wird, aufweisen, wobei das System folgende Schritte aufweist: – Bereitstellen einer Bibliothek (12) von Ereignisverarbeitungsknoten (2126, 29) von mehreren unterschiedlichen Typen, wobei jeder Typ des Knotens bestimmt ist, um eine jeweilige vorbestimmte Verarbeitungsoperation bezüglich der Ereignisdatenelemente vorzunehmen, wobei sich jedes der Ereignisdatenelemente entweder auf ein Grundereignis oder auf eine Kombination von solchen Ereignissen bezieht und Ereignisdaten aufweist, die das Wesen und die Zeit des Eintretens derselben im System, das überwacht wird, anzeigen, wobei jeder Knoten zumindest einen Eingabestrom von Ereignisdatenelementen empfangen soll, die er dann verarbeiten kann, um zumindest einen Ausgabestrom der Ereignisdatenelemente zu erzeugen; und – Auswählen von Knoten aus der Bibliothek und Kommunizieren zwischen den Knoten, um ein Netz von Knoten zu bilden, in dem die Ausgabeströme von zumindest einigen der Knoten die Eingabeströme von anderen der Knoten bilden, wobei zumindest ein solcher Knoten einen Eingangsknoten zum Empfangen der Ereignisinformationen von dem System, das überwacht wird, in der Form von zumindest einem solchen Eingabestrom bildet.
  15. Ein Verfahren gemäß Anspruch 14, bei dem die Bibliothek Knoten der folgenden Typen aufweist: – Einzelereignis-Verarbeitungsknoten (2023), die jeweils wirksam sind, um ihre Verarbeitung auf der Basis von jedem eingegebenen Ereignisdatenelement isoliert genommen wird vorzunehmen, – Kreuzereignis-Verarbeitungsknoten (25, 26, 29), die jeweils wirksam sind, um eine vorbestimmte Zwischenbeziehung zwischen Ereignissen, die durch die Ereignisdatenelemente dargestellt werden, zu erfassen, wobei das Vorhandensein der vorbestimmten Beziehung eine notwendige Bedingung für die Ausgabe eines Ereignisdatenelements in dem Ausgabestrom ist, der dem Knoten zugeordnet ist.
  16. Ein Verfahren gemäß Anspruch 15, bei dem die Einzelereignis-Verarbeitungsknoten einen Knoten der folgenden Typen aufweisen: – einen Filterknoten (21) zum Auswählen aus einem Eingabestrom eines beliebigen Ereignisdatenelements, dessen Ereignisdaten vorbestimmte Kriterien, die in dem Knoten gespeichert sind, erfüllen, wobei die ausgewählten Ereignisdatenelemente in einem Ausgabestrom aus dem Knoten ausgegeben werden; und – einen Verzögerungsknoten (22) zum Empfangen von Ereignisdatenelementen in einem Eingabestrom und zum Verzögern des Ausgabe von jedem solchen Ereignisdatenelement in einem Ausgabestrom bis zu einem vorbestimmten Zeitraum nach der Zeit des Eintretens, der diesem Element zugeordnet ist, wobei der Verzögerungsknoten beurteilt, wann der vorbestimmte Zeitraum verstrichen ist, indem auf die Zeitreferenz Bezug genommen wird; und bei dem die Kreuzereignis-Verarbeitungsknoten Knoten der folgenden Typen aufweisen: – einen Produktknoten (25) zum Empfangen einer Mehrzahl von Eingabeströmen von Ereignisdatenelementen, wobei die vorbestimmte Beziehung zwischen den Ereignisdatenelementen, die in den Eingabe strömen vorhanden sind, ist und auf das Vorhandensein von Ereignisdatenelementen in den Eingabeströmen hin erfüllt wird, die in einer gegebenen Zeitbeziehung zueinander sind, wobei sich jedes Ereignisdatenelement des Ausgabestroms auf eine Kombination der Ereignisse bezieht, die durch die Ereignisdatenelemente der Eingabeströme dargestellt werden; – einen Wenn-Nicht-Knoten (26) zum Empfangen des ersten und des zweiten Eingabestroms von Ereignisdatenelementen, wobei die vorbestimmte Beziehung zwischen den Ereignisdatenelementen der Eingabeströme ist und auf das Vorhandensein eines Ereignisdatenelements in dem ersten Eingabestrom ohne das Vorhandensein eines Ereignisdatenelements in dem zweiten Eingabestrom, der in einer gegebenen Zeitbeziehung zu dem Ereignisdatenelement des ersten Eingabestroms ist, hin erfüllt wird, wobei jedes Ereignisdatenelement des Ausgabestroms einem Ereignisdatenelement des ersten Eingabestroms entspricht.
  17. Ein Verfahren gemäß Anspruch 16, das ferner Knoten des folgenden Typs aufweist: – einen Tabellenknoten (35), der angeordnet ist, um einen Eingabestrom von Ereignisdatenelementen zu empfangen und um Ereignisdaten von demselben einschließlich der Zeit des Eintretens zu speichern, wobei der Tabellenknoten auf ein Abfragen mit einer spezifizierten Zeit anspricht, um die Ereignisdaten, die zu dieser Zeit aktuell sind, zurückzusenden; – der Kreuzereignis-Verarbeitungsknoten in der Form eines Tabellenbezugnahmeknotens (29), für den die vorbestimmte Beziehung die Form einer gegebenen Zeitbeziehung zwischen einem eingegebenen Ereignisdatenelement und einem speziellen Ereignisdatenelement annimmt, daß, wenn es eingetreten ist, seine Ereignisdaten in dem Tabellenknoten speichern läßt, wobei die gegebene Zeitbeziehung erfüllt wird, wenn, zu einer speziellen Zeit, das spezielle Ereignisdatenelement das aktuelle Element mit in dem Tabellenknoten gespeicherten Ereignisdaten ist, wobei der Tabellenbezugnahmeverarbeitungsknoten auf diese Zeitbeziehung durch Abfragen des Tabellenknotens mit der speziellen Zeit testet und die zurückgesendeten Ereignisdaten untersucht, um zu ermitteln, ob sie die Präsenz des speziellen Ereignisdatenelements anzeigen.
  18. Ein Verfahren gemäß Anspruch 14, bei dem für jeden Typ des Ereignisverarbeitungsknotens bezüglich der Verarbeitungsoperationen, die durch denselben vorgenommen werden, ein funktioneller Verarbeitungscode zum Ausführen dieser Verarbeitung vorgesehen ist, wobei jeder Ereignisverarbeitungsknoten zugeordnete Datenelemente aufweist, die folgende Merkmale aufweisen: – erste Daten (111), die gleichen für alle Knoten des gleichen Typs, die den funktionellen Verarbeitungscode, der für diesen Knotentyp relevant ist, identifizieren; und – zweite Daten (112), spezifisch für jeden Knoten, die Daten umfassen, die für jeweils zumindest einen Ausgabestrom, der dem Knoten zugeordnet ist, die Destination des Stroms identifizieren.
DE69432746T 1994-06-10 1994-06-10 Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems Expired - Lifetime DE69432746T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP94304210A EP0687089B1 (de) 1994-06-10 1994-06-10 Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems

Publications (2)

Publication Number Publication Date
DE69432746D1 DE69432746D1 (de) 2003-07-03
DE69432746T2 true DE69432746T2 (de) 2004-03-25

Family

ID=8217737

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69432746T Expired - Lifetime DE69432746T2 (de) 1994-06-10 1994-06-10 Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems

Country Status (4)

Country Link
US (1) US5691917A (de)
EP (1) EP0687089B1 (de)
JP (2) JP3739108B2 (de)
DE (1) DE69432746T2 (de)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781769A (en) * 1995-12-29 1998-07-14 Symbios, Inc. Method and apparatus for using a content addressable memory for time tagged event processing
AUPN786896A0 (en) * 1996-02-02 1996-02-29 Telstra Corporation Limited A network fault system
US6192358B1 (en) * 1997-07-10 2001-02-20 Internatioanal Business Machines Corporation Multiple-stage evaluation of user-defined predicates
US6163874A (en) * 1997-09-23 2000-12-19 National Semiconductor Corporation Apparatus and method for doubling speed of random events generator
JP3507681B2 (ja) * 1998-01-08 2004-03-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理方法及び情報処理装置、情報処理システム、情報処理装置を制御するプログラムを格納した記憶媒体
EP0939515A1 (de) * 1998-02-18 1999-09-01 Siemens Aktiengesellschaft Verfahren und Netzelement zum Weiterleiten von Ereignisnachrichten
US6154849A (en) * 1998-06-30 2000-11-28 Sun Microsystems, Inc. Method and apparatus for resource dependency relaxation
US6587857B1 (en) 1998-06-30 2003-07-01 Citicorp Development Center, Inc. System and method for warehousing and retrieving data
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US6263362B1 (en) 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US8914507B2 (en) 1998-09-01 2014-12-16 International Business Machines Corporation Advice provided for offering highly targeted advice without compromising individual privacy
US7246150B1 (en) 1998-09-01 2007-07-17 Bigfix, Inc. Advice provided for offering highly targeted advice without compromising individual privacy
US6256664B1 (en) 1998-09-01 2001-07-03 Bigfix, Inc. Method and apparatus for computed relevance messaging
US6341279B1 (en) * 1998-10-12 2002-01-22 Starwave Corporation Method and apparatus for event modeling
US6332117B1 (en) 1998-10-22 2001-12-18 International Business Machines Corporation General event stamping scheme
US7277919B1 (en) 1999-03-19 2007-10-02 Bigfix, Inc. Relevance clause for computed relevance messaging
US6598078B1 (en) * 1999-04-29 2003-07-22 Aspect Communications Corporation Method and apparatus for generating a record from a time-marked information stream
GB2353664B (en) * 1999-08-20 2003-12-17 Nokia Telecommunications Oy Event reporting in telecommunications systems
AU2001261258A1 (en) * 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Help desk systems and methods for use with communications networks
WO2001086380A2 (en) * 2000-05-05 2001-11-15 Aprisma Management Technologies, Inc. Systems and methods for isolating faults in computer networks
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
US7237138B2 (en) * 2000-05-05 2007-06-26 Computer Associates Think, Inc. Systems and methods for diagnosing faults in computer networks
US7752024B2 (en) * 2000-05-05 2010-07-06 Computer Associates Think, Inc. Systems and methods for constructing multi-layer topological models of computer networks
US7024662B2 (en) * 2001-03-14 2006-04-04 Microsoft Corporation Executing dynamically assigned functions while providing services
US7302634B2 (en) 2001-03-14 2007-11-27 Microsoft Corporation Schema-based services for identity-based data access
US7451110B2 (en) * 2001-05-18 2008-11-11 Network Resonance, Inc. System, method and computer program product for providing an efficient trading market
US7936693B2 (en) * 2001-05-18 2011-05-03 Network Resonance, Inc. System, method and computer program product for providing an IP datalink multiplexer
US7464154B2 (en) * 2001-05-18 2008-12-09 Network Resonance, Inc. System, method and computer program product for analyzing data from network-based structured message stream
US7124299B2 (en) * 2001-05-18 2006-10-17 Claymore Systems, Inc. System, method and computer program product for auditing XML messages in a network-based message stream
EP1286498A1 (de) 2001-08-21 2003-02-26 Alcatel Verfahren, Dienst-Agent und Netzwerk-Management-System zur Bedienung eines Telekommunikationsnetzes
US6874089B2 (en) * 2002-02-25 2005-03-29 Network Resonance, Inc. System, method and computer program product for guaranteeing electronic transactions
US7769997B2 (en) * 2002-02-25 2010-08-03 Network Resonance, Inc. System, method and computer program product for guaranteeing electronic transactions
US9886309B2 (en) * 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US6829602B2 (en) * 2002-12-12 2004-12-07 Microsoft Corporation System and method for using a compressed trie to estimate like predicates
DE60309286T2 (de) * 2003-04-23 2007-05-31 Comptel Corp. Ereignisvermittlung
US7636919B2 (en) * 2003-09-16 2009-12-22 International Business Machines Corporation User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
WO2007022560A1 (en) * 2005-08-23 2007-03-01 Position Networks Pty Ltd A stream-oriented database machine and method
US8661113B2 (en) * 2006-05-09 2014-02-25 International Business Machines Corporation Cross-cutting detection of event patterns
US7529849B2 (en) 2006-07-27 2009-05-05 International Business Machines Corporation Reduction of message flow between bus-connected consumers and producers
US7865887B2 (en) * 2006-11-30 2011-01-04 Sap Ag Context based event handling and execution with prioritization and interrupt management
US8775450B2 (en) * 2007-04-19 2014-07-08 Sap Ag Systems and methods for information exchange using object warehousing
US20080313607A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Unified input stack
US7945628B1 (en) * 2007-08-09 2011-05-17 VaVu, Inc. Method for facilitating human social interaction using a computing system
US8315990B2 (en) * 2007-11-08 2012-11-20 Microsoft Corporation Consistency sensitive streaming operators
US8826242B2 (en) 2007-11-27 2014-09-02 Microsoft Corporation Data driven profiling for distributed applications
US20090158286A1 (en) * 2007-12-18 2009-06-18 International Business Machines Corporation Facility for scheduling the execution of jobs based on logic predicates
JPWO2009107511A1 (ja) * 2008-02-29 2011-06-30 日本電気株式会社 複合イベント検出/配信システム、複合イベント検出/配信方法、及び複合イベント検出/配信用プログラム
US7614047B1 (en) * 2008-08-21 2009-11-03 International Business Machines Corporation Change indication for a service offering
US20100088325A1 (en) * 2008-10-07 2010-04-08 Microsoft Corporation Streaming Queries
US8219581B2 (en) * 2009-05-13 2012-07-10 Teradata Us, Inc. Method and system for analyzing ordered data using pattern matching in a relational database
JP5610730B2 (ja) * 2009-09-04 2014-10-22 株式会社日立システムズ コンピュータシステム故障時における不良部位特定システム
US8132184B2 (en) * 2009-10-21 2012-03-06 Microsoft Corporation Complex event processing (CEP) adapters for CEP systems for receiving objects from a source and outputing objects to a sink
US8413169B2 (en) * 2009-10-21 2013-04-02 Microsoft Corporation Time-based event processing using punctuation events
US9158816B2 (en) * 2009-10-21 2015-10-13 Microsoft Technology Licensing, Llc Event processing with XML query based on reusable XML query template
US8195648B2 (en) * 2009-10-21 2012-06-05 Microsoft Corporation Partitioned query execution in event processing systems
CN102907021B (zh) * 2010-05-17 2016-06-01 瑞典爱立信有限公司 优化定时分组传输
US9262479B2 (en) 2012-09-28 2016-02-16 Oracle International Corporation Join operations for continuous queries over archived views
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) * 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US10102028B2 (en) 2013-03-12 2018-10-16 Sas Institute Inc. Delivery acknowledgment in event stream processing
US9823905B2 (en) 2013-11-11 2017-11-21 International Business Machines Corporation Event based code generation
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9122651B1 (en) 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9369406B2 (en) * 2014-07-03 2016-06-14 Sas Institute Inc. Resource server providing a rapidly changing resource
US9356986B2 (en) 2014-08-08 2016-05-31 Sas Institute Inc. Distributed stream processing
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US10423468B2 (en) * 2015-02-10 2019-09-24 Red Hat, Inc. Complex event processing using pseudo-clock
US9891966B2 (en) 2015-02-10 2018-02-13 Red Hat, Inc. Idempotent mode of executing commands triggered by complex event processing
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
JP6896759B2 (ja) * 2016-03-23 2021-06-30 フォグホーン システムズ, インコーポレイテッドFoghorn Systems, Inc. リアルタイムデータフロープログラミングにおけるパターン駆動型反応の合成
US10275298B2 (en) * 2016-10-12 2019-04-30 Salesforce.Com, Inc. Alerting system having a network of stateful transformation nodes
US11803219B2 (en) 2021-03-24 2023-10-31 Apple Inc. Current measurement for power converter circuits

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581732A (en) * 1984-03-10 1996-12-03 Encore Computer, U.S., Inc. Multiprocessor system with reflective memory data transfer device
US5063523A (en) * 1989-11-16 1991-11-05 Racal Data Communications Inc. Network management system with event rule handling
US5223827A (en) * 1991-05-23 1993-06-29 International Business Machines Corporation Process and apparatus for managing network event counters
JPH0815277B2 (ja) * 1991-08-09 1996-02-14 インターナショナル・ビジネス・マシーンズ・コーポレイション パフォーマンス測定値を得るためのシステムおよび方法
US5321837A (en) * 1991-10-11 1994-06-14 International Business Machines Corporation Event handling mechanism having a process and an action association process
US5572674A (en) * 1993-01-07 1996-11-05 Bmc Software, Inc. Method of dynamically adjusting SNA network control program parameters
US5375070A (en) * 1993-03-01 1994-12-20 International Business Machines Corporation Information collection architecture and method for a data communications network
US5500855A (en) * 1994-01-26 1996-03-19 International Business Machines Corporation Realtime event classification for a data communications network

Also Published As

Publication number Publication date
JP3744933B2 (ja) 2006-02-15
JP3739108B2 (ja) 2006-01-25
US5691917A (en) 1997-11-25
JPH07334438A (ja) 1995-12-22
EP0687089B1 (de) 2003-05-28
EP0687089A1 (de) 1995-12-13
AU698146B2 (en) 1998-10-22
DE69432746D1 (de) 2003-07-03
JP2005346703A (ja) 2005-12-15
AU2006295A (en) 1995-12-21

Similar Documents

Publication Publication Date Title
DE69432746T2 (de) Ereignisverarbeitungssystem und Verfahren zur Herstellen eines solchen Systems
DE69313667T2 (de) Ereigniskorrelation in uebertragungsnetzen
DE69837180T2 (de) Korrelation von Netzwerkverwaltungs-Ereignissen in Umgebungen mit inaktiven Netzelementen
DE69611542T2 (de) Verfahren und vorrichtung zum ermitteln verbindungsorientierter kommunikationsfigurationen
DE69628718T2 (de) Netzwerk - Topologie-Verwaltungssystem
DE60214994T2 (de) Verfahren und system zur verringerung von falschalarmen in netzwerkfehlermanagementsystemen
DE3788189T2 (de) Verfahren und Gerät für eine Matrixanzeige zur Messung eines Paket-Vermittlungsnetzwerks.
DE602005001965T2 (de) Methodologie und Protokolle für Hochgeschwindigkeitsverkehrmessung und Analyse
DE60220287T2 (de) System und verfahren zur überwachung von software-warteschlangenanwendungen
DE602004001356T2 (de) System und Verfahren zur Fehlerdiagnose mittels verteilter Alarmkorrelation
DE60214862T2 (de) Methode für die verbesserte verwaltung von einer ereignisdatenbasis und system für ereignismeldung in einem netzwerk
DE69029082T2 (de) Verfahren zum Suchen von alternierenden Wegen in einem Kommunikationsnetz
DE69017193T2 (de) Automatische fehlererholung in einem paketnetz.
DE69126666T2 (de) Netzwerkverwaltungssystem mit modellbasierter intelligenz
DE69622026T2 (de) Verfahren und gerät zur verfahrensbasierter alarmmeldung in einer verteilter netzwerkverwaltingsumgebung
DE69935703T2 (de) Verfahren zur Bestimmung des kürzesten Vermittlungsweges unter Berücksichtigung von Randbedingungen
DE69829645T2 (de) Verfahren zur Änderung von dynamischen Entscheidungsbäume
DE69634928T2 (de) Netzwerkverwaltungssystem mit verbesserter Knotenerkennung und -überwachung
DE68928433T2 (de) Verwaltungssystem für verbundene einheiten in einem verteilten rechnersystem
DE69410447T2 (de) Ereigniskorrelation
DE69829759T2 (de) Verteilung von nachrichten zu dienststeuereinrichtungen
DE69129952T2 (de) Vorrichtung zur Paketübermittlungsregulierung
DE69933919T2 (de) Filterung eines sekundären Alarms
DE69310946T2 (de) Verfahren und Mittel zum Detektieren einer Leitweglenkungsschleife in einem Fernmeldenetz
DE19640346C2 (de) Verfahren zum Überprüfen eines gemäß einem Kommunikationsprotokoll durchgeführten Datenaustausches

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE