Apparatus and method for event correlation and problem reporting
Abstract
A computer implemented method on a computer readable media is provided for determining the source of a problem in a complex system of managed components based upon symptoms. The problem source identification process is split into different activities. Explicit configuration non-specific representations of types of managed components, their problems, symptoms and the relations along which the problems or symptoms propagate are created that can be manipulated by executable computer code. A data structure is produced for determining the source of a problem by combining one or more of the representations based on information of specific instances of managed components in the system. Computer code is then executed which uses the data structure to determine the source of the problem from one or more symptoms.

Term
Term ended
Expired 24 May 2015, 11.3 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
80 claims: 80 independent, 0 dependent
- 1A method for detecting problems in a system which generates a plurality of symptoms, said problems being exceptional operating conditions requiring handling and said plurality of symptoms being observable events generated by said problems, the method comprising steps of:(1) providing a computer-accessible codebook comprising a plurality of values each corresponding to a mapping between one of said plurality of symptoms and one of a plurality of likely problems in said system wherein each of a plurality of groups of said values provides a distinct code corresponding to each of said plurality of likely problems;(2) monitoring a plurality of symptoms data values representing said plurality of symptoms generated by said system over time;(3) determining a mismatch measure between each of said groups of said values in said codebook and said plurality of symptom data values through the use of a computer, and selecting one of said plurality of likely problems corresponding to one of said plurality of groups having the smallest mismatch measure, said mismatch measure gauging a degree of correlation between each group and said plurality of symptom data values;and(4) generating a report comprising said one selected likely problem from said codebook. Procédé de détection de problèmes dans un système générant une pluralité de symptômes, les problèmes étant des conditions de fonctionnement exceptionnelles demandant le traitement de la pluralité de symptômes, qui sont constitués par des événements observables générés par les problèmes, le procédé comprenant les étapes consistant à : (1) fournir une table de codes, accessible par ordinateur, comprenant une pluralité de valeurs, chacune portant sur une correspondance entre l'une de la pluralité de symptômes et d'une pluralité de problèmes probables dans le système, dans laquelle chacun d'une pluralité de groupes de ces valeurs fournit un code distinct correspondant à chacun de cette pluralité de problèmes probables ;(2) surveiller une pluralité de valeurs de données de symptômes représentant la pluralité de symptômes générés par le système au cours du temps ;(3) déterminer une valeur de mesure de défaut d'assortiment entre chacun des groupes de ces valeurs dans la table de codes et la pluralité de valeurs de données de symptômes, par l'utilisation d'un ordinateur, et sélection d'un parmi la pluralité de problèmes probables, correspondant à l'un parmi la pluralité de groupes ayant la plus petite valeur de mesure de défaut d'assortiment, la mesure de défaut d'assortiment constituant une indication quantitative du degré de corrélation entre chaque groupe et la pluralité de valeurs de données de symptômes;et(4) délivrer un rapport comprenant le problème probable sélectionné, à partir de la table de codes. Verfahren zum Erfassen von Problemen in einem System, das eine Vielzahl von Symptomen erzeugt, wobei es sich bei den Problemen um betriebliche Ausnahmezustände, die eine Behandlung erfordem, und bei der Vielzahl von Symptomen um von den Problemen erzeugte beobachtbare Ereignisse handelt, mit folgenden Schritten: (1) Erstellen eines für einen Rechner zugänglichen Codebuchs aus einer Vielzahl von Werten, die jeweils einer Abbildung eines der Vielzahl von Symptomen auf eines der Vielzahl wahrscheinlicher Probleme im System entspricht, wobei jede der Vielzahl von Wertegruppen einen unterscheidungskräftigen Code entsprechend jedem der Vielzahl wahrscheinlicher Probleme liefert,(2) Überwachen einer Vielzahl von Symptomdatenwerten, die die Vielzahl der vom System im Verlauf der Zeit erzeugten Symptome darstellen,(3) Bestimmen eines Fehlanpassungsmaßes zwischen allen Wertegruppen im Codebuch und den Symptomdatenwerten durch Verwendung eines Rechners und Auswahl eines der Vielzahl wahrscheinlicher Probleme, das einer der Vielzahl von Gruppen entspricht, die das kleinste Fehlanpassungsmaß aufweist, wobei das Fehlanpassungsmaß einen Grad der Korrelation zwischen jeder Gruppe und der Vielzahl von Symptomdatenwerten angibt, und(4) Erzeugen eines Berichts, der das eine gewählte wahrscheinliche Problem aus dem Codebuch aufweist.
- 2Procédé selon la revendication 1, dans lequel l'étape (3) comprend l'étape de détermination d'une distance de Hamming entre chacun de la pluralité de groupes et cette pluralité de valeurs de données de symptômes. The method of claim 1, wherein step (3) comprises the step of determining a Hamming distance between each of said plurality of groups and said plurality of symptom data values. Verfahren nach Anspruch 1, bei dem der Schritt (3) den Schritt der Bestimmung einer Hamming-Distanz zwischen jeder der Vielzahl von Gruppen und der Vielzahl von Symptomdatenwerten aufweist.
- 3Procédé selon la revendication 1, dans lequel l'étape (3) comprend l'étape d'addition des mesures individuelles de défaut d'assortiment dans une pluralité de paires, chaque paire comprenant l'une de cette pluralité de symptômes et l'une de cette pluralité de valeurs. The method of claim 1, wherein step (3) comprises the step of adding individual mismatch measures across a plurality of pairs, each pair comprising one of the plurality of symptom data values and one of the plurality of values. Verfahren nach Anspruch 1, bei dem der Schritt (3) den Schritte der Addition einzelner Fehlanpassungsmaße über eine Vielzahl von Paaren aufweist, wobei die Paare jeweils einen der Vielzahl von Symptomdatenwerte und einen der Vielzahl der genannten Wertenaufweisen.
- 4Procédé selon la revendication 3, dans lequel l'étape (3) comprend l'étape d'utilisation d'une mesure de défaut d'assortiment, qui attribue une pondération différente, en l'absence d'une valeur de données, de celle en présence d'une valeur de données de symptômes. The method of claim 3, wherein step (3) comprises the step of using a mismatch measure which gives a different weight to absence of a symptom data value than to presence of a symptom data value. Verfahren nach Anspruch 3, bei dem der Schritt (3) den Schritt des Verwendens eines Fehlanpassungsmaßes aufweist, das das Fehlen eines Symptomdatenwerts anders gewichtet als das Vorliegen eines solchen.
- 5Procédé selon la revendication 3, dans lequel l'étape (3) comprend l'étape de délivrance, en tant que problèmes probables, de tous les problèmes probables dans la table de codes qui tombent dans une marge de tolérance prédéterminée autour d'un meilleur assortiment possible. The method of claim 3, wherein step (3) comprises the step of outputting as likely problems all likely problems in said codebook which fall within a predetermined tolerance from a best fit match. Verfahren nach Anspruch 3, bei dem der Schritt (3) den Schritt des Ausgebens aller wahrscheinlichen Probleme im Codebuch, die in einem vorbestimmten Toleranzbereich von einem "Best Fit" her liegen, als wahrscheinliches Problem aufweist.
- 6Procédé selon la revendication 1, dans lequel l'étape (1) comprend l'étape d'exprimer chacune des valeurs sous forme de probabilité, cette probabilité reflétant une vraisemblance qu'un symptôme correspondant provienne d'un problème correspondant. The method of claim 1, wherein step (1) comprises the step of specifying each of said values as a probability, said probability reflecting a likelihood that a corresponding symptom was caused by a corresponding problem. Verfahren nach Anspruch 1, bei dem der Anspruch (1) den Schritt eines Angebens jedes der genannten Werte als Wahrscheinlichkeitswert aufweist, wobei dieser eine Wahrscheinlichkeit wiedergibt, dass ein entsprechendes Symptom von einem entsprechendem Problem verursacht wurde.
- 7Procédé selon la revendication 6, dans lequel l'étape (1) comprend l'étape d'expression de chacune des valeurs sous la forme d'une paire de données, cette paire comprenant une première donnée désignant la probabilité, une deuxième donnée désignant un indicateur temporel correspondant à un intervalle de temps qui contient la probabilité. The method of claim 6, wherein step (1) comprises the step of specifying each of said values as a pair of data, said pair comprising a first datum designating said probability and a second datum designating a temporal indicator corresponding to a time frame within which said probability holds. Verfahren nach Anspruch 6, bei dem der Schritt (1) den Schritt eines Angebens jedes der genannten Werte als Datenpaar aufweist, das jeweils ein erstes Datum, das die Wahrscheinlichkeit bezeichnet, sowie ein zweites Datum enthält, das einen Zeitindikator bezeichnet, der einem Zeitrahmen entspricht, innerhalb dessen die Wahrscheinlichkeit gilt.
- 8Procédé selon la revendication 6, dans lequel l'étape (1) comprend l'étape d'expression de chaque probabilité sous forme de valeurs discrètes. The method of claim 6, wherein step (1) comprises the slap of specifying each said probability as a discrete value. Verfahren nach Anspruch 6, bei dem der Schritt (1) den Schritt eines Angebens jedes der Wahrscheinlichkeitswerte als diskreten Wert aufweist.
- 9Procédé selon la revendication 1, dans lequel le système comprend un réseau de noeuds d'ordinateurs, et dans lequel l'étape (2) comprend l'étape de réception de messages provenant des noeuds d'ordinateurs, les messages comprenant la pluralité de valeurs de données de symptômes. The method of claim 1, wherein said system comprises a network of computer nodes, and wherein step (2) comprises the step of receiving messages from said computer nodes, said messages comprising said plurality of symptom data values. Verfahren nach Anspruch 1, bei dem das System ein Netz von Rechnerknoten und der Schritt (2) den Schritt des Empfangens von Meldungen aus den Rechnerknoten aufweist, wobei die Meldungen die Vielzahl von Symptomdatenwerten beinhalten.
- 10Procédé selon la revendication 1, dans lequel le système comprend un réseau de télécommunication, et dans lequel l'étape (2) comprend l'étape de réception des signaux provenant de l'équipement situé dans le réseau de télécommunication, les signaux comprenant la pluralité de valeurs de données de symptômes. The method of claim 1, wherein said system comprises a telecommunication network, and wherein step (2) comprises the step of receiving signals from equipment in said telecommunication network, said signals comprising said plurality of symptom data values. Verfahren nach Anspruch 1, bei dem das System ein Telekommunikationsnetz und der Schritt (2) den Schritt des Empfangens von Signalen aus Gerätschaften dieses Telekommunikationsnetzes aufweist, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten.
- 11Procédé selon la revendication 1, dans lequel le système comprend un ordinateur ayant des périphériques, et dans lequel l'étape (2) comprend l'étape de réception des signaux provenant des périphériques, les signaux comprenant la pluralité des valeurs de données de symptômes. The method of claim 1, wherein said system comprises a computer having peripherals, and wherein step (2) comprises the step of receiving signals from said peripherals, said signals comprising said plurality of symptom data values. Verfahren nach Anspruch 1, bei dem das System einen Rechner mit Peripherie und der Schritt (2) den Schritt des Empfangens von Signalen aus der Peripherie aufweist, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten.
- 12Procédé selon la revendication 1, dans lequel le système comprend une pluralité de satellites, et dans lequel l'étape (2) comprend l'étape de réception des signaux provenant des satellites, les signaux comprenant la pluralité des valeurs de données de symptômes. The method of claim 1, wherein said system comprises a plurality of satellites, and wherein step (2) comprises the step of receiving signals from said satellites, said signals comprising said plurality of symptom data values. Verfahren nach Anspruch 1, bei dem das System eine Vielzahl von Satelliten und der Schritt (2) den Schritt des Empfangens von Signalen von den Satelliten aufweist, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten.
- 13Procédé selon la revendication 1, dans lequel le système comprend un patient humain, et dans lequel l'étape (2) comprend l'étape de réception des signaux provenant de capteurs couplés au patient humain, ces signaux comprenant les valeurs de données de symptômes. The method of claim 1, wherein said system comprises a human patient, and wherein step (2) comprises the step of receiving signals from sensors coupled to said human patient, said signals comprising said symptom data values. Verfahren nach Anspruch 1, bei dem das System einen Humanpatienten und de Schritt (2) den Schritt des Empfangens von Signalen aus Sensoren aufweist, die mit dem Humanpatienten gekoppelt sind, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten.
- 14Procédé selon la revendication 1, dans lequel l'étape (3) comprend l'étape de détermination de la mesure de défaut d'assortiment par consultation d'une mesure prédéterminée obtenue depuis une table précalculée. The method of claim 1, wherein step (3) comprises the step of determining said mismatch measure by looking up a predetermined measure from a precomputed table. Verfahren nach Anspruch 1, bei dem der Schritt (3) den Schritt des Bestimmens des Fehlanpassungmaßes durch Aufsuchen eines vorbestimmten Maßes aus einer vorberechneten Tabelle aufweist.
- 15Procédé selon la revendication 1, comprenant en outre l'étape, avant l'étape (1), de prévoir une matrice de causalité comprenant un plus grand ensemble de valeurs que la table de codes, le plus grand ensemble de valeurs correspondant également à des correspondances opérées entre la pluralité de valeurs de données de symptômes et la pluralité de problèmes probables leur correspondant ;et dans lequel l'étape (1) comprend l'étape de génération de cette table de codes, par réduction dans la table de codes de ce plus grand ensemble de valeurs contenues dans la matrice de causalité. The method of claim 1, further comprising the step of, prior to step (1), providing a causality matrix comprising a larger set of values than said codebook, said larger set of values also corresponding to mappings between said plurality of symptom data values and said plurality of likely problems corresponding thereto;and wherein step (1) comprises the step of generating said codebook by reducing said larger set of values contained in said causality matrix into said codebook. Verfahren nach Anspruch 1 weiterhin mit dem Schritt, vor dem Schritt (1) eine Kausalitätsmatrix mit einer größeren Wertemenge als das Codebuch zu erstellen, wobei die größere Wertemenge ebenfalls Abbildungen zwischen der Vielzahl von Symptomdatenwerten und der entsprechenden Vielzahl von wahrscheinlichen Problemen entspricht, und wobei der Schritt (1) den Schritt des Generierens des Codebuchs durch Reduzieren der in der Kausalitätsmatrix enthaltenen größeren Wertemenge zu dem Codebuch aufweist.
- 16Procédé selon la revendication 15, dans lequel l'étape (1) comprend l'étape d'élimination de lignes et de colonnes redondantes dans la matrice de causalité. The method of claim 15, wherein step (1) comprises the step of eliminating redundant rows and columns from said causality matrix. Verfahren nach Anspruch 15, bei dem de Schritt (1) den Schritt des Eliminierens redundanter Zeilen und Spalten aus der Kausalitätsmatrix aufweist.
- 17Procédé selon la revendication 15, dans lequel l'étape (1) comprend l'étape de réduction du nombre de lignes dans la matrice de causalité, en fonction d'un dégré souhaité de sélection entre des groupes de la pluralité de symptômes. The method of claim 15, wherein step (1) comprises the step of reducing the number of rows in said causality matrix in accordance with a desired degree of distinction between groups of said plurality of symptoms. Verfahren nach Anspruch 15, bei dem der Schritt (1) den Schritt des Reduzierens der Anzahl der Zeilen in der Kausalitätsmatrix entsprechend einem gewünschten Unterscheidungsgrad zwischen Gruppen der Vielzahl von Symptomen aufweist.
- 18Procédé selon la revendication 1, comprenant en outre, avant l'étape (1), l'étape de délivrance d'un graphique de causalité comprenant une pluralité de noeuds correspondant chacun à un événement, une pluralité de vecteurs pointant chacun depuis l'un de la pluralité de noeuds vers un autre de la pluralité de noeuds et correspondant à une relation causale entre deux ou plus d'événements, dans lequel certain des noeuds sont marqués comme étant des noeuds de problèmes et d'autres sont marqués comme étant des noeuds de symptômes ;et dans lequel l'étape (1) comprend l'étape de génération de la table de codes en traversant les vecteurs reliant les noeuds de problèmes aux noeuds de symptômes. The method of claim I, further comprising the step of, prior to step (1), providing a causality graph comprising a plurality of nodes each corresponding to an event, a plurality of directed edges each pointing from one of the plurality of nodes to another of the plurality of nodes and corresponding to a causal relation between two or more of said events, wherein certain of said nodes are marked as problem modes and others are marked as symptom nodes;and wherein step (1) comprises the step of generating said codebook by traversing said directed edges leading from problem nodes to symptom nodes. Verfahren nach Anspruch 1 weiterhin mit dem Schritt, vor dem Schritt (1) einen Kausalitätsgraph mit einer Vielzahl von Knoten, die jeweils einem Ereignis entsprechen, und einer Vielzahl gerichteter Kanten zu erstellen, die jeweils von einem zu einem anderen der Vielzahl von Knoten weisen und einem Kausalzusammenhang zwischen zwei oder mehreren der Ereignisse entsprechen, wobei bestimmte der Knoten als Problemknoten und andere als Symptomknoten markiert sind, und bei dem der Schritt (1) den Schritt des Generierens des Codebuchs durch Durchlaufen der gerichteten Kanten, die von Problem- zu Symptomknoten verlaufen, aufweist.
- 19Procédé selon la revendication 18, dans lequel l'étape (1) comprend les étapes consistant à :éliminer du graphique de causalité les noeuds de symptômes redondants pouvant être atteints via des vecteurs, depuis le même ensemble de noeuds de problèmes ;etéliminer les noeuds de problèmes indiscernables, menant, via des vecteurs, au même ensemble de noeuds de symptômes. The method of claim 18, wherein ins step (1) comprises the steps of: eliminating from said causality graph redundant symptom nodes that may be reached via directed edges from same set of problem nodes;andeliminating indistinguishable problem nodes that lead via directed edges to the same set of symptom nodes. Verfahren nach Anspruch 18, bei dem der Schritt (1) folgende Schritte aufweist: Eliminieren redundanter Symptomknoten, die über gerichtete Kanten aus der gleichen Menge von Problemknoten erreichbar sind, aus dem Kausalitätsgraph undEliminieren nicht unterscheidbarer Problemknoten, die über gerichtete Kanten zur gleichen Menge von Symptomknoten führen.
- 20Procédé selon la revendication 18, dans lequel l'étape (1) comprend l'étape d'élimination, du graphique de causalité, des noeuds de symptômes, selon un degré souhaité de sélection entre les groupes de la pluralité de symptômes. The method of claim 18, wherein step (1) comprises the step of eliminating from said causality graph symptom nodes in accordance with a desired degree of distinction between groups of said plurality of symptoms. Verfahren nach Anspruch 18, bei dem der Schritt (1) den Schritt des Eliminierens von Symptomknoten entsprechend einem gewünschten Unterscheidungsgrad zwischen Gruppen der Vielzahl von Symptomen aus dem Kausalitätsgraph aufweist.
- 21Procédé selon la revendication 17, comprenant en outre l'étape de sélection du degré souhaité de sélection entre chacun des groupes de la pluralité de symptômes, chaque groupe correspondant à un problème différent de probabilité, et dans lequel l'étape (1) comprend l'étape de suppression de valeurs à partir du plus grand ensemble de valeurs ne satisfaisant pas le degré de sélection souhaité, les suppressions étant effectuées sur la base de comparaisons opérées entre une ou plusieurs des valeurs, à partir du plus grand ensemble de valeurs, avec le degré de sélection souhaité. The method of claim 17, further comprising the step of selecting the desired degree of distinction between each of said groups of said plurality of symptoms, each group corresponding to a different likely problem, and wherein step (1) comprises the step of deleting values from said larger set of values which do not satisfy said desired degree of distinction, said deletions made on the basis of comparisons between one or more of said values from said larger set of values with said desired degree of distinction. Verfahren nach Anspruch 17 weiterhin mit dem Schritt des Wählens des gewünschten Unterscheidungsgrads zwischen allen Gruppen der Vielzahl von Symptomen, wobei jede Gruppe einem anderen wahrscheinlichen Problem entspricht und wobei der Schritt (1) den Schritt des Löschens von Werten aus der größeren Wertemenge aufweist, die den gewünschten Unterscheidungsgrad nicht erfüllen, und die Löschungen auf Grund von Vergleichen zwischen einem oder mehreren Werten der größeren Wertemenge des gewünschten Unterscheidungsgrads erfolgen.
- 22Procédé selon la revendication 1, dans lequel les comparaisons sont faites par rapport à une distance de Hamming déterminée par rapport à une ou plusieurs des valeurs à partir de cette première matrice. The method of claim 21, wherein said comparisons are made with respect to a Hamming distance determined with respect to one or more of said values from said first matrix. Verfahren nach Anspruch 21, bei dem die Vergleiche bezüglich einer Hamming-Distanz erfolgen, die bezüglich eines oder mehrerer Werte aus der ersten Matrix bestimmt wird.
- 23A method of generating a code book for use in a process of detecting problems in a system which generates a plurality of symptoms, said problems being exceptional operational conditions requiring handling and said plurality of symptoms being observable events generated by said problems, the method comprising the steps of:(1) preparing a causality representation that describes causal relationships between said problems and said plurality of symptoms;(2) making said causality representation well-formed by deleting redundant information from the causality representation;(3) selecting a desired degree of distinction between groups of said plurality of symptoms, each group corresponding to a different likely problem and providing a distinct code for each likely problem;(4) generating, through the use of a computer, an optimal codebook from said well-formed causality representation based on said desired degree of distinction;and(5) storing said optimal codebook in a computer storage device. Procédé de génération d'une table de codes pour utilisation dans un processus de détection de problèmes dans un système générant une pluralité de symptômes, les problèmes étant des conditions de fonctionnement opérationnelles demandant le traitement de la pluralité de symptômes qui sont des événements observables ayant été générés par les problèmes, le procédé comprenant les étapes consistant à : (1) préparer une représentation de causalité décrivant les relations causales intervenant entre les problèmes et la probabilité de symptômes ;(2) aboutir à ce que la représentation de causalité soit optimisée, par suppression de toute information redondante dans la représentation de causalité ;(3) sélection d'un degré de sélection souhaité entre des groupes de la pluralité de symptômes, chaque groupe correspondant à un problème probable différent et fournissant un code distinct pour chaque problème probable ;(4) génération, par utilisation d'un ordinateur, d'une table optimale de codes à partir de la représentation optimisée de causalité, en se basant sur le degré de sélection souhaité ;et(5) mettre en mémoire la table optimale dans un dispositif de mémoire d'ordinateur. Verfahren zum Erzeugen eines Codebuchs zur Verwendung in einem Verfahren zum Erfassen von Problemen in einem System, das eine Vielzahl von Symptomen generiert, wobei es sich bei den Problemen um betriebliche Ausnahmezustände, die eine Behandlung erfordern, und bei der Vielzahl von Symptomen um von den Problemen verursache beobachtbare Ereignisse handelt, mit folgenden Schritten: (1) Erstellen einer Kausalitätsdarstellung, die Kausalzusammenhänge zwischen den Problemen und der Vielzahl von Symptomen beschreibt,(2) Löschen redundanter Informationen aus der Kausalitätsdarstellung, um diese wohlgeformt zu machen,(3) Auswählen eines gewünschten Unterscheidungsgrades zwischen Gruppen aus der Vielzahl von Symptomen, wobei die Gruppen jeweils einem anderen wahrscheinlichen Problem entsprechen, und Erstellen eines unterscheidungskräftigen Codes für jedes wahrscheinliche Problem,(4) Generieren eines optimalen Codebuchs aus der wohlgeformten Kausalitätsdarstellung auf Grund des gewünschten Unterscheidungsgrades unter Verwendung eines Rechners und(5) Speichern des optimalen Codebuchs in einer Rechner-Speichereinrichtung.
- 24Procédé de génération d'une table de codes selon la revendication 23, dans lequel la représentation de causalité est une matrice de causalité comprenant une matrice de valeurs correspondant chacune à une correspondance établie entre l'une de la pluralité de symptômes et l'une de la pluralité de problèmes probables dans le système ;dans lequel l'étape (2) comprend l'étape d'optimisation de la matrice de causalité par suppression des ensembles de valeurs redondants dans la matrice de valeurs ;etdans lequel l'étape (4) comprend l'étape de génération de la table optimale de codes à partir de la matrice de causalité optimisée, par sélection de groupes minimaux de symptômes dans la matrice de causalité optimisée, de manière que les groupes sélectionnés de symptômes correspondant à deux problèmes probables satisfassent au degré de sélection souhaité. The method of generating a codebook as claimed in claim 23, wherein the causality representation is a causality matrix comprising a matrix of values each corresponding to a mapping between one of said plurality of symptoms and one of a plurality of likely problems in said system;wherein step (2) comprises the step of making said causality matrix well-formed by deleting redundant sets of values from said matrix of values;andwherein step (4) comprises the step of generating the optimal codebook from said well-formed causality matrix by selecting minimal groups of symptoms from said well-formed causality matrix such that selected groups of symptoms corresponding to any two likely problems satisfy the desired degree of distinction. Verfahren zum Generieren eines Codebuchs nach Anspruch 23, bei dem die Kausalitätsdarstellung eine Kausalitätsmatrix aus einer Matrix von Werten ist, die jeweils einer Abbildung zwischen einem der Vielzahl von Symptomen und einem einer Vielzahl von wahrscheinlichen Problemen im System sind, wobei der Schritt (2) den Schritt des Löschens redundanter Wertemengen aus der Wertematrix, um die Kausalitätsmatrix wohlgeformt zu machen, undwobei der Schritt (4) den Schritt des Generierens des optimalen Codebuchs aus der wohlgeformten Kausalitätsmatrix durch Auswahl von Minimalgruppen von Symptomen aus der wohlgeformten Kausalitätsmatrix aufweist derart, dass gewählte Symptomgruppen, die beliebigen zwei wahrscheinlichen Problemen entsprechen, den gewünschten Unterscheidungsgrad erfüllen.
- 25Procédé selon la revendication 24, dans lequel l'étape (1) comprend l'étape de préparation d'une exprèssion formelle d'un modèle d'événements définissant des relations entre des événements dans le système et des causes de ceux-ci. The method of claim 24, wherein step (1) comprises the step of preparing a formal specification of an event model which defines relationships between events in said system and causes thereof. Verfahren nach Anspruch 24, bei dem der Schritt (1) den Schritt des Erstellens einer Formalspezifikation eines Ereignismodells aufweist, das Zusammenhänge zwischen Ereignissen im System und deren Ursachen definiert.
- 26Procédé selon la revendication 25, dans lequel l'étape de préparation comprend l'étape d'introduction des instructions susceptibles d'être compilées sur ordinateur, utilisant les probabilités pour définir ces relations. The method of claim 25, wherein said preparing step comprising the step of inputting to a compiler compilable statements which use probabilities to define said relationships. Verfahren nach Anspruch 25, bei dem der Erstellungsschritt den Schritt des Eingebens kompilierbarer Anweisungen in einen Compiler aufweist, die zum Definieren der Zusammenhänge Wahrscheinlichkeitswerte benutzen.
- 27Procédé selon la revendication 26, comprenant en outre les étapes consistant à :compiler ces instructions susceptibles d'être compilées, en des méthodes et structures de données, etutiliser ces méthodes et structures de données pour générer la matrice de causalité par détermination d'un domaine de causalité des problèmes, contenu dans une spécification de configuration. The method of claim 26, further comprising the steps of: compiling said compilable statements into methods and data structures, andusing said methods and data structures to generate said causality matrix by determining a causality closure of problems contained in a configuration specification. Verfahren nach Anspruch 26 weiterhin mit folgenden Schritten: Kompilieren der kompilierbaren Statements zu Methoden und Datenstrukturen undVerwenden der Methoden und Datenstrukturen zum Generieren der Kausalitätsmatrix durch Bestimmen eines Kausalitätsverschlusses ("causality closure") von Problemen, die in einer Konfigurations-Spezifikation enthalten sind.
- 28Procédé selon la revendication 24, dans lequel l'étape (1) comprend les étapes consistant à :(a) répertorier chronologiquement des événements se produisant dans le système sur une période de temps, dans un dispositif de mémoire sur ordinateur ;(b) analyser ces événements ayant été répertoriés chronologiquement, afin d'établir des corrélations statistiques ;(c) filtrer ces événements analysés en se basant sur un seuil de corrélation et générer un ensemble filtré de données comprenant les symptômes et les problèmes probables ;et(d) générer la matrice de causalité par utilisation de l'ensemble filtré de données. The method of claim 24, wherein step (1) comprises the steps of: (a) logging events occurring in said system over a period of time to a computer storage device;(b) analyzing said logged events for statistical correlations;(c) filtering said analyzed events based on a correlation threshold and producing a filtered set of data comprising symptoms and likely problems;and(d) generating said causality matrix using said filtered set of data. Verfahren nach Anspruch 24, bei dem der Schritt (1) folgende Schritte aufweist: (a) Protokollieren von im System über einen gewissen Zeitraum auftretenden Ereignissen in einer Rechner-Speichereinrichtung,(b) Analysieren der protokollierten Ereignisse auf statistische Korrelationen hin,(c) Filtern der analysierten Ereignisse auf Grund eines Korrelationsschwellenwerts und Erzeugen einer gefilterten Datenmenge, die Symptome und wahrscheinliche Probleme aufweist, und(d) Generieren der Kausalitätsmatrix unter Verwendung der gefilterten Datenmenge.
- 29Procédé de génération d'une table de codes selon la revendication 23, dans lequel la représentation de causalité est un graphique de causalité comprenant une pluralité de noeuds correspondant chacun à un problème ou à un symptôme, et une pluralité de vecteurs pointant chacun d'un de la pluralité de noeuds vers un autre de la pluralité de noeuds et correspondant à une relation causale entre deux ou plus de cette pluralité de noeuds ;dans lequel l'étape (2) comprend l'étape d'obtention du graphique optimisé de causalité, par suppression des noeuds redondants ;dans lequel l'étape (4) comprend l'étape de génération de la table optimale de codes, à partir du graphique optimisé de causalité, en sélectionnant un ensemble minimal de noeuds de symptômes, de manière que l'ensemble minimal de noeuds de symptômes provoqué par deux noeuds de problèmes éventuels safisfasse au degré souhaité de sélection. The method of generating a codebook as claimed in claim 23 wherein the causality representation is a causality graph comprising a plurality of nodes each corresponding to a problem or a symptom, and a plurality of directed edges each pointing from one of the plurality of nodes to another of the plurality of nodes and corresponding to a causal relation between two or more of said plurality of nodes;wherein step (2) comprises the step of making said causality graph well-formed by deleting redundant nodes;andwherein step (4) comprises the step of generating the optimal codebook from said well-formed causality graph by selecting a minimal set of symptom nodes such that the minimal set of symptom nodes caused by any two problem nodes satisfy the desired degree of distinction. Verfahren nach Anspruch 23 zum Generieren eines Codebuchs, bei dem es sich bei der Kausalitätsdarstellung um einen Kausalitätsgraphen mit einer Vielzahl von Knoten, die jeweils einem Problem oder einem Symptom entsprechen, und einer Vielzahl gerichteter Kanten handelt, die jeweils von einem zu einem anderen der Vielzahl von Knoten weisen und einem Kausalzusammenhang zwischen zwei oder mehr der Vielzahl von Knoten entsprechen, wobei der Schritt (2) den Schritt des Löschens redundanter Knoten, um den Kausalitätsgraphen wohlgeformt zu machen, undder Schritt (4) den Schritt des Generierens des optimalen Codebuchs aus dem wohlgeformten Kausalitätsgraph durch Auswahl einer Minimalmenge von Symptomknoten aufweist derart, dass die Symptomknoten der Minimalmenge, die von zwei beliebigen Problemknoten verursacht werden, den gewünschten Unterscheidungsgrad erfüllen.
- 30Procédé selon la revendication (29), dans lequel l'étape (1) comprend l'étape d'introduction d'une expression formelle d'un modèle d'événements dans un ordinateur, l'expression formelle définissant les relations intervenant entre des événements dans le système et leurs causes. The method of claim 29, wherein step (1) comprises the step of inputting a formal specification of an event model into a computer, said formal specification defining relationships between events in said system and causes thereof. Verfahren nach Anspruch 29, bei dem der Schritt (1) den Schritt des Eingebens einer Formalspezifikation eines Ereignismodells in einen Rechner aufweist, wobei die Formalspezifikation Zusammenhänge zwischen Ereignissen im System und deren Ursachen definiert.
- 31Procédé selon la revendication 30, dans lequel l'étape (1) comprend l'étape d'introduction d'instructions susceptibles d'être compilées dans un ordinateur, les instructions susceptibles d'être compilées comprenant des probabilités de définir les relations. The method of claim 30, wherein step (1) comprises the step of inputting compilable statements into a compiler, said compilable statements comprising probabilities to define said relationships. Verfahren nach Anspruch 30, bei dem der Schritt (1) den Schritt des Eingebens kompilierbarer Statements in einen Compiler aufweist, wobei die kompilierbaren Statements zum Definieren der Zusammenhänge Wahrscheinlichkeiten beinhalten.
- 32Procédé selon la revendication 30, comprenant en outre les étapes consistant à :compiler cette expression formelle en méthodes et structures de données ;etutiliser ces méthodes et structures de données pour générer le graphique de causalité, par détermination d'un domaine de causalité des problèmes dans une spécification de configuration. The method of claim 30, further comprising the steps of: compiling said formal specification into methods and data structures;andusing said methods and data structures to generate said causality graph by determining a causality closure of problems in a configuration specification. Verfahren nach Anspruch 30 weiterhin mit folgenden Schritten: Kompilieren der Formalspezifikation zu Methoden und Datenstrukturen undVerwenden der Methoden und Datenstrukturen zum Generieren des Kausalitätsgraphen durch Bestimmen eines Kausalitätsverschlusses von Problemen in einer Konfigurationsspezifikation.
- 33Anordnung zum Erfassen von Problemen in einem System, das eine Vielzahl von Symptomen erzeugt, wobei des sich bei den Problemen um betriebliche Ausnahmezustände, die eine Behandlung erfordern, und bei der Vielzahl von Symptomen um von den Problemen verursachte beobachtbare Ereignisse handelt, wobei die Anordnung aufweist:eine Speichervorrichtung zum Speichern eines Codebuchs aus einer Vielzahl von Werten, die jeweils einer Abbildung zwischen einem der Vielzahl von Symptomen und einem einer Vielzahl wahrscheinlicher Probleme im System entsprechen, wobei jede einer Vielzahl von Wertegruppen einen unterscheidungskräftigen Code liefert, der einem der Vielzahl von wahrscheinlichen Problemen entspricht,Kontrolleinrichtungen zum Überwachen einer Vielzahl von Symptomdatenwerten, die die Vielzahl von Symptomen darstellen, die das System über eine gewissen Zeitspanne erzeugt,eine Einrichtung zum Bestimmen eines Fehlanpassungsmaßes zwischen jeder der Vielzahl von Wertegruppen im Codebuch und der Vielzahl von Symptomdatenwerten und zum Auswählen einer der Vielzahl wahrscheinlicher Probleme, die einer der Vielzahl von Gruppen mit dem kleinsten Fehlanpassungswert entspricht, wobei das Fehlanpassungsmaß einen Korrelationsgrad zwischen jeder Gruppe und der Vielzahl von Symptomdatenwerten angibt, undeine Einrichtung zum Generieren eines Berichts, der das eine gewählte Problem beinhaltet. Apparatus for detecting problems in a system which generates a plurality of symptoms, said problems being exceptional operational conditions requiring handling and said plurality of symptoms being observable events generated by said problems, the apparatus comprising: a storage device for storing a codebook comprising a plurality of values each corresponding to a mapping between one of said plurality of symptoms and one of a plurality of likely problems in said system, wherein each of a plurality of groups of said values provides a distinct code corresponding to each of said plurality of likely problems;monitoring means for monitoring a plurality of symptom data values representing said plurality of symptoms generated by said system over time;means for determining a mismatch measure between each of said a plurality of groups of said values in said codebook and said plurality of symptom data values, and selecting one of said plurality of likely problems corresponding to one of said plurality of groups having the smallest mismatch measure, said mismatch measure gauging a degree of correlation between each group and said plurality of symptom data values;andgenerating means for generating a report comprising said one selected problem. Appareil pour la détection de problèmes intervenant dans un système, générant une pluralité de symptômes, les problèmes étant des conditions de fonctionnement exceptionnelles demandant un traitement et la pluralité de symptômes étant des événements observables générés par les problèmes, l'appareil comprenant : un dispositif de mémoire pour mettre en mémoire une table de codes comprenant une pluralité de valeurs, chacune correspondant à une correspondance entre une de la pluralité de symptômes et une de la pluralité de problèmes probables dans le système, dans lequel chacun de cette pluralité de groupes de valeurs fournit un code distinct correspondant à chacun de la pluralité des problèmes probables ;des moyens de surveillance afin de surveiller une pluralité de valeurs de données de symptômes représentant la pluralité de symptômes générée par le système au cours du temps ;des moyens pour déterminer une mesure de défaut d'assortiment, entre chacun de la pluralité de groupes de valeurs dans la table de codes et la pluralité de valeurs de données de symptômes, et sélection d'une de cette pluralité de problèmes probables correspondant à l'une de cette pluralité de groupes ayant la valeur de mesure la plus faible de défaut d'assortiment, la mesure de défaut d'assortiment donnant une indication quantitative du degré de corrélation existant entre chaque groupe et la pluralité de valeurs de données de symptômes ;etdes moyens de délivrance d'un rapport comprenant ce problème sélectionné.
- 34Anordnung nach Anspruch 33, bei dem die Dekodiereinrichtung eine Einrichtung zum Bestimmen einer Hamming-Distanz zwischen allen der Vielzahl von Symptomdatenwerten aufweist. Appareil selon la revendication 33, dans lequel les moyens de décodage comprennent des moyens pour déterminer une distance de Hamming entre chacune de cette pluralité de valeurs de données de symptômes. The apparatus of claim 33, wherein said decoding means comprises means for determining a Hamming distance between each of said plurality of symptom data values.
- 35Anordnung nach Anspruch 33, bei der die Einrichtung zum Bestimmen eines Fehlanpassungsmaßes einzelne Fehlanpassungsmaßwerte über eine Vielzahl von Paaren addiert, wobei jedes Paar einen der Vielzahl von Symptomdatenwerten und einen der Vielzahl von Werten beinhaltet. Appareil selon la revendication 33, dans lequel les moyens de détermination d'une mesure de défaut d'assortiment ajoutent des mesures de défauts d'assortiment individuel dans une pluralité de paires, chaque paire comprenant une de la pluralité de données de valeurs de données de symptômes et une de la pluralité de valeurs. The apparatus of claim 33, wherein said means for determining a mismatch measure adds individual mismatch measures across a plurality of pairs, each pair comprising one of the plurality of symptom data values and one of the plurality of values.
- 36Anordnung nach Anspruch 35, bei der der "Best fit"-Bestimmung ein Fehlanpassungsmaß verwendet, dass das Fehlen anders gewichtet als das Vorliegen eines Symptomdatenwerts. Appareil selon la revendication 35, dans lequel la meilleure détermination d'assortiment utilise une mesure de défaut d'assortiment attribuant une pondération pour une absence de valeur de données de symptômes, différente de celle attribuée pour une présence de valeur de données de symptômes. The apparatus of claim 35, wherein said best fit match determination uses a mismatch measure which gives a different weight to absence of a symptom data value than to presence of a symptom data value.
- 37Anordnung nach Anspruch 35, bei dem die Dekodiereinrichtung als wahrscheinliche Probleme alle wahrscheinlichen Probleme im Codebuch ausgibt, die in einem vorbestimmten Toleranzbereich von einem "Best Fit" her liegen. Appareil selon la revendication 35, dans lequel les moyens de décodage génèrent à titre de problèmes probables, tous les problèmes probables situés dans la table de codes qui tombent dans une marge de tolérance prédéterminée à partir d'un meilleur assortiment possible. The apparatus of claim 35, wherein said decoding means outputs as likely problems all likely problems in said codebook which fall within a predetermined tolerance from a best fit match.
- 38Anordnung nach Anspruch 33, bei der jeder der Werte einen Wahrscheinlichkeitswert aufweist, der eine Wahrscheinlichkeit wiedergibt, dass ein entsprechendes Symptom von einem entsprechenden Problem verursacht wurde. Appareil selon la revendication 33, dans lequel chacune des valeurs comprend une probabilité reflétant une chance qu'un symptôme correspondant ait été provoqué par un problème correspondant. The apparatus of claim 33, wherein each of said values comprises a probability reflecting a likelihood that a corresponding symptom was caused by a corresponding problem.
- 39Anordnung nach Anspruch 38, bei der jeder der Werte ein Datenpaar aufweist, das ein erstes Datum, das den Wahrscheinlichkeitswert angibt, und ein zweites Datum enthält, das einen Zeitindikator bezeichnet, der einem Zeitrahmen entspricht, innerhalb dessen der Wahrscheinlichkeitswert gilt. Appareil selon la revendication 38, dans lequel chacune des valeurs comprend une paire de données, la paire comprenant des premières données de référence, désignant la probabilité, et des deuxièmes données de référence, désignant un indicateur temporel correspondant à un intervalle de temps dans lequel se situe la probabilité. The apparatus of claim 38, wherein each of said values comprises a pair of data, said pair comprising a first datum designating said probability and a second datum designating a temporal indicator corresponding to a time frame within which said probability holds.
- 40Anordnung nach Anspruch 38, bei der jeder der Wahrscheinlichkeitswerte als diskreter Wert spezifiziert ist. Appareil selon la revendication 38, dans lequel chacune des valeurs de probabilité est exprimée sous forme de valeur discrète. The apparatus of claim 38, wherein each of said probability values is specified as discrete value.
- 41Anordnung nach Anspruch 33, bei der das System ein Netz von Rechnerknoten und die Kontrolleinrichtung eine Einrichtung zum Empfangen von Meldungen aus den Rechnerknoten aufweist, wobei die Meldungen die Vielzahl von Symptomdatenwerten beinhalten. Appareil selon la revendication 33, dans lequel le système comprend un réseau de noeuds d'ordinateurs, et dans lequel les moyens de surveillance comprennent des moyens pour recevoir des messages provenant des noeuds d'ordinateurs, les messages comprenant la pluralité de valeurs de données de symptômes. The apparatus of claim 33, wherein said system comprises a network of computer nodes, and wherein said monitoring means comprises means for receiving messages from said computer nodes, said messages comprising said plurality of symptom data values.
- 42Anordnung nach Anspruch 33, bei der das System ein Telekommunikationsnetz und die Kontrolleinrichtung eine Einrichtung zum Empfangen von Signalen aus Gerätschaften innerhalb des Netzes aufweisen, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten. Appareil selon la revendication 33, dans lequel le système comprend un réseau de télécommunication, et dans lequel les moyens de surveillance comprennent des moyens pour recevoir des signaux provenant de l'équipement se trouvant dans le réseau, les signaux comprenant la pluralité de valeurs de données de symptômes. The apparatus of claim 33, wherein said system comprises a telecommunication network, and wherein said monitoring means comprises means for receiving signals from equipment in said network, said signals comprising said plurality of symptom data values.
- 43Anordnung nach Anspruch 33, bei der das System einen Rechner mit Peripherie und die Konttrolleinrichtung eine Einrichtung zu Empfang von Signalen aus der Peripherie aufweisen, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten. Appareil selon la revendication 33, dans lequel le système comprend un ordinateur comportant des périphériques, et dans lequel les moyens de surveillance comprennent des moyens pour recevoir des signaux provenant des périphériques, les signaux comprenant la pluralité de valeurs de données de symptômes. The apparatus of claim 33 wherein said system comprises a computer having peripherals, and wherein said monitoring means comprises means for receiving signals from said peripherals, said signals comprising said plurality of symptom data values.
- 44Anordnung nach Anspruch 33, bei der das System eine Vielzahl von Satelliten und die Kontrolleinrichtung eine Einrichtung zum Empfang von Signale von den Satelliten aufweisen, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten. Appareil selon la revendication 33, dans lequel le système comprend une pluralité de satellites, et dans lequel les moyens de surveillance comprennent des moyens pour recevoir des signaux provenant des satellites, les signaux comprenant la pluralité de valeurs de données de symptômes. The apparatus of claim 33, wherein said system comprises a plurality of satellites, and wherein said monitoring means comprises means for receiving signals from said satellites, said signals comprising said plurality of symptom data values.
- 45Anordnung nach Anspruch 33, bei dem das System einen Humanpatienten und die Kontrolleinrichtung eine Einrichtung zum Empfangen von Signalen aus Sensoren aufweisen, die mit dem Humanpatient gekoppelt sind, wobei die Signale die Vielzahl von Symptomdatenwerten beinhalten. Appareil selon la revendication 33, dans lequel le système comprend un patient humain, et dans lequel les moyens de surveillance comprennent des moyens pour recevoir des signaux provenant de capteurs couplés au patient humain, les signaux comprenant la pluralité de valeurs de données de symptômes. The apparatus of claim 33, wherein said system comprises a human patient, and wherein said monitoring means comprises means for receiving signals from sensors coupled to said human patient, said signals comprising said plurality of symptom data values.
- 46Anordnung nach Anspruch 33, bei der das Fehlanpassungsmaß durch Suche in einer vorberechneten Tabelle nach einem vorbestimmten Maß bestimmt wird. Appareil selon la revendication 33, dans lequel la mesure de défaut d'assortiment est déterminée par consultation d'une mesure prédéterminée d'après une table précalculée. The apparatus of claim 33, wherein said mismatch measure is determined by looking up a predetermined measure from a precomputed table.
- 47Anordnung nach Anspruch 33, die weiterhin aufweist:eine Einrichtung zum Speichern einer Kausalitätsmatrix, die eine größere Wertemenge als das Codebuch aufweist, wobei die Werte auch Abbildungen zwischen den Symptomdatenwerten und der Vielzahl zugehöriger wahrscheinlicher Probleme entsprechen, undeine Einrichtung zum Generieren des Codebuchs durch Reduzieren der größeren Wertemenge der Kausalitätsmatrix zu Werten für das Codebuch. Appareil selon la revendication 33, comprenant en outre : des moyens pour mettre en mémoire une matrice de causalité comprenant un plus grand ensemble de valeurs que la table de codes, les valeurs concernant également des correspondances entre les valeurs de données de symptômes et la pluralité de problèmes probables leur correspondant ;des moyens pour générer la table de codes par réduction du plus grand ensemble de valeurs contenues dans la matrice de causalité, à des valeurs destinées à la table de codes. The apparatus of claim 33, further comprising: means for storing a causality matrix comprising a larger set of values than said codebook, said values also corresponding to mappings between said symptom data values and said plurality of likely problems corresponding thereto;andmeans for generating said codebook by reducing said larger set of values contained in said causality matrix into values for said codebook.
- 48Anordnung nach Anspruch 47, bei der das Codebuch durch Elimineren redundanter Zeilen und Spalten aus der Kausalitätsmatrix generiert wird. Appareil selon la revendication 47, dans lequel la table de codes est générée par élimination de lignes et de colonnes redondantes dans la matrice de causalité. The apparatus of claim 47, wherein said codebook is generated by eliminating redundant rows and columns from said causality matrix.
- 49Anordnung nach Anspruch 47, bei der das Codebuch durch Reduzieren der Anzahl der Zeilen in der Kausalitätsmatrix entsprechend einem gewünschten Unterscheidungsgrad zwischen Gruppen der Vielzahl von Symptomen generiert wird. Appareil selon la revendication 47, dans lequel la table de codes est générée par réduction du nombre de lignes dans la matrice de causalité en fonction d'un degré souhaité de sélection entre des groupes de la pluralité de symptômes. The apparatus of claim 47, wherein said codebook is generated by reducing the number of rows in said causality matrix in accordance with a desired degree of distinction between groups of said plurality of symptoms.
- 50Anordnung nach Anspruch 33 weiterhin mit einer Einrichtung zum Speichern eines Kausalitätsgraphen mit einer Vielzahl von Knoten, die jeweils einem Ereignis entsprechen, und einer Vielzahl gerichteter Kanten, die jeweils von einem zu einem anderen der Vielzahl von Knoten weisen und einem Kausalzusammenhang zwischen zweien der Ereignisse entsprechen, wobei bestimmte Knoten als Probleme und andere als Symptome markiert sind, und wobei das Codebuch durch Durchlaufen der gerichteten Kanten im Kausalitätsgraph generiert wird, die von als Problem markierten Knoten zu als Symptome markierten Knoten führen. Appareil selon la revendication 33, comprenant en outre des moyens pour mettre en mémoire un graphique de causalité comprenant une pluralité de noeuds correspondant chacun à un événement, et une pluralité de vecteurs pointant chacun d'un de la pluralité de noeuds à un autre de la pluralité de noeuds et correspondant à une relation causale entre deux des événements, dans lequel certains noeuds sont marqués comme étant des problèmes et certains noeuds sont marqués comme étant des symptômes ;et dans lequel la table de codes est générée par la traversée, par les vecteurs, du graphique de causalité, en allant de noeuds marqués comme étant des problèmes à des noeuds marqués comme étant des symptômes. The apparatus of claim 33, further comprising means for storing a causality graph comprising a plurality of nodes each corresponding to an event, and a plurality of directed edges each pointing from one of the plurality nodes to another of the plurality of nodes and corresponding to a causal relation between two of said events, wherein certain nodes are marked as problems and certain nodes are marked as symptoms;and wherein said codebook is generated by traversing said directed edges in said causality graph leading from nodes marked as problems to nodes marked as symptoms.
- 51Anordnung nach Anspruch 50, bei der das Codebuch generiert wird, indem man aus dem Kausalitätsgraph redundante Symptomknoten, die entlang gerichteter Kanten aus der gleichen Menge von Problemknoten erreichbar sind, sowie nicht unterscheidbare Problemknoten eliminiert, die entlang gerichteter Kanten zur gleichen Menge von Symptomknoten führen. Appareil selon la revendication 50, dans lequel la table de codes est générée par élimination à partir du graphique de causalité des noeuds de symptômes redondants qui peuvent être atteints, via des vecteurs, depuis le même ensemble de noeuds de problèmes, et par élimination de noeuds de problèmes indiscernables menant, via des vecteurs, au même ensemble de noeuds de symptômes. The apparatus of claim 50, wherein said codebook is generated by eliminating from said causality graph redundant symptom nodes that may be reached via directed edges from the same set of problem nodes, and by eliminating indistinguishable problem nodes that lead via directed edges to the same set of symptom nodes.
- 52Anordnung nach Anspruch 50, bei der das Codebuch generiert wird, indem man aus dem Kausalitätsgraph Symptomknoten entsprechend einem gewünschten Unterscheidungsgrad zwischen Gruppen der Vielzahl von Symptome eliminiert. Appareil selon la revendication 50, dans lequel la table de codes est générée par élimination à partir du graphique de causalité des noeuds de symptômes en fonction d'un degré souhaité de sélection entre des groupes de la pluralité de symptômes. The apparatus of claim 50, wherein said codebook is generated by eliminating from said causality graph symptom nodes in accordance with a desired degree of distinction between groups of said plurality of symptoms
- 53Anordnung nach Anspruch 49 weiterhin mit einer Einrichtung zur Eingabe des gewünschten Unterscheidungsgrades zwischen den Gruppen der Vielzahl von Symptomen, wobei jede Gruppe einem anderen wahrscheinlichen Problem entspricht und das Codebuch generiert wird, indem man aus der größeren Wertemenge Werte löscht, die den gewünschten Unterscheidungsgrad nicht erfüllen, und wobei die Löschungen auf Grund von Vergleichen zwischen einem oder mehreren der Werte aus der größeren Wertemenge des gewünschten Unterscheidungsgrads erfolgen. Appareil selon la revendication 49, comprenant en outre des moyens pour introduire le degré souhaité de sélection entre chacun des groupes de la pluralité de symptômes, chaque groupe correspondant à un problème probable différent, et dans lequel la table de codes est générée par suppression de valeurs du plus grand ensemble de valeurs qui ne satisfont pas au degré souhaité de sélection, les suppressions étant faites sur la base de comparaisons, opérées entre une ou plusieurs des valeurs obtenues à partir du plus grand ensemble de valeurs avec le degré souhaité de sélection. The apparatus of claim 49, further comprising means for inputting the desired degree of distinction between each of said groups of said plurality of symptoms, each group corresponding to a different likely problem, and wherein said code book is generated by deleting values from said larger set of values which do not satisfy said desired degree of distinction, said deletions made on the basis of comparisons between one or more of said values from said larger set of values with said desired degree of distinction.
- 54Anordnung nach Anspruch 53, bei dem die Vergleiche bezüglich einer Hamming-Distanz erfolgen, die bezüglich eines oder mehrerer der Werte aus der ersten Matrix bestimmt wird. Appareil selon la revendication 53, dans lequel les comparaisons sont opérées par rapport à une distance de Hamming déterminée par rapport à une ou plusieurs des valeurs depuis la première matrice. The apparatus of claim 53, wherein said comparisons are made with respect to a Hamming distance determined with respect to one or more of said values from said first matrix.
- 55Anordnung zum Generieren eines Codebuchs zur Verwendung bei der Problemerfassung in einem System, das eine Vielzahl von Symptomen erzeugt, wobei es sich bei den Problemen um betrieblich Ausnahmezuständ, die eine Behandlung erfordern, und bei der Vielzahl von Symptomen um von den Problemen verursachte beobachtbare Ereignisse handelt, wobei die Anordnung aufweist:eine Erstellungseinrichtung zum Erstellen einer Kausalitätsdarstellung, die Kausalzusammenhänge zwischen den Problemen und der Vielzahl von Symptomen beschreibt,eine Einrichtung zum Löschen redundanter Informationen aus der Kausalitätsdarstellung, um diese wohlgeformt zu machen,eine Eingabeeinrichtung zum Eingeben eines gewünschten Unterscheidungsgrades zwischen Gruppen der Vielzahl von Symptomen, wobei jede Gruppe einem anderen wahrscheinlichen Problem entspricht,eine Generiereinrichtung zum Generieren eines für einen Rechner zugänglichen optimalen Codebuchs aus der wohlgeformten Kausalitätsdarstellung auf Grund des gewünschten Unterscheidungsgrades, wobei jede der Gruppen aus der Vielzahl von Symptomen im optimalen Codebuch einen unterscheidungskräftigen Code entsprechend den verschiedenen wahrscheinlichen Problemen liefert, undeine Speichereinrichtung zum Speichern des für einen Rechner zugänglichen Codebuchs. Apparatus for generating a codebook for use in detecting problems in a system which generates a plurality of symptoms, said problems being exceptional operational conditions requiring handling and said plurality of symptoms being observable events generated by said problems, the apparatus comprising: preparing means for preparing a causality representation that describes causal relationships between said problems and said plurality of symptoms;means for making said causality representation well-formed by deleting redundant information from the causality representation;inputting means for inputting a desired degree of distinction between groups of said plurality of symptoms, each group corresponding to a different likely problem;generating means for generating a computer-accessible optimal codebook for said well-formed causality representation based on said desired degree of distinction, wherein each of said groups of said plurality of symptoms provides a distinct code in said optimal codebook corresponding to said different likely problems;anda storage device for storing said computer-accessible optimal codebook. Appareil pour générer une table de codes pour l'utilisation dans la détection de problèmes dans un système générant une pluralité de symptômes, les problèmes étant des conditions de fonctionnement exceptionnelles demandant un traitement et la pluralité de symptômes étant des événements observables générés par les problèmes, l'appareil comprenant : des moyens de préparation pour préparer une représentation de causalité décrivant des relations causales entre les problèmes et la pluralité de symptômes ;des moyens pour obtenir que la représentation de causalité soit optimisée par suppression de toute information redondante dans la représentation de causalité ;des moyens d'entrée pour introduire un degré souhaité de sélection entre des groupes de la pluralité de symptômes, chaque groupe correspondant à un problème probable différent ;des moyens de génération pour générer une table de codes accessible par ordinateur, pour la représentation optimisée de causalité, en se basant sur le degré souhaité de sélection, dans lequel chacun des groupes de la pluralité de symptômes fournit un code distinct dans la table optimale de codes, correspondant aux problèmes probables ;etun dispositif de mise en mémoire pour mettre en mémoire la table optimale de codes accessible par ordinateur.
- 56Anordnung nach Anspruch 55, bei der die Kausalitätsdarstellung eine Kausalitätsmatrix ist, die aus eine Matrix von Werten beinhaltet, die jeweils einer Abbildung zwischen einem der Vielzahl von Symptomen und einem einer Vielzahl von wahrscheinlichen Problemen im System entspricht, wobei die Einrichtung, mit der die Kausalitätsmatrix wohlformbar ist, redundante Wertemengen aus der Wertematrix löscht, undwobei die Generiereinrichtung aus der wohlgeformten Kausalitätsmatrix Minimalgruppen von Symptomen auswählt derart, dass die gewählten Symptomgruppen, die beliebigen zwei wahrscheinlichen Problemen entsprechen, den gewünschten Unterscheidungsgrad erfüllen. Appareil selon la revendication 55, dans lequel la représentation de causalité est une matrice de causalité comprenant une matrice de valeurs, chacune concernant une correspondance entre l'un de la pluralité de symptômes et l'un d'une pluralité de problèmes probables dans ce système ;dans lequel le moyen de produire la matrice optimisée de causalité opère par suppression des ensembles de valeurs redondants dans la matrice de valeurs ;etdans lequel les moyens de génération sélectionnent des groupes minimaux de symptômes dans la matrice optimisée de causalité, de manière que les groupes sélectionnés de symptômes correspondant à deux problèmes probables satisfassent au degré de sélection souhaitée. The apparatus of claim 55 wherein the causality representation is a causality matrix comprising a matrix of values each corresponding to a mapping between one of said plurality of symptoms and one of a plurality of likely problems in said system;wherein the means for making said causality matrix well-formed deletes redundant sets of values from said matrix of values;andwherein the generating means selects minimal groups of symptoms from said well-formed causality matrix such that selected groups of symptoms corresponding to any two likely problems satisfy the desired degree of distinction.
- 57Anordnung nach Anspruch 56, bei der die Erstellungseinrichtung aufweist:eine Einrichtung zur Eingabe einer Spezifikation eines Ereignismodells, das Zusammenhänge zwischen Ereignissen im System und deren Ursachen definiert, sowieeinen Compiler zum Kompilieren der Spezifikation zu Datenstrukturen. Appareil selon la revendication 56, dans lequel les moyens de préparation comprennent : des moyens pour introduire une spécification d'un modèle d'événement définissant des relations entre des événements dans ce système et leurs causes ;etun compilateur pour compiler la spécification en des structures de données. The apparatus of claim 56, wherein said preparing means comprises: means for inputting a specification of an event model defining relationships between events in said system and causes thereof;anda compiler for compiling said specification into data structures.
- 58Anordnung nach Anspruch 57, bei der die Spezifikation Anweisungen aufweist, die die Zusammenhänge unter Verwendung von Wahrscheinlichkeitswerten definieren. Appareil selon la revendication 56, dans lequel la spécification comprend des instructions définissant les relations utilisant des valeurs de probabilité. The apparatus of claim 57, wherein said specification comprises statements which define said relationships using probability values.
- 59Anordnung nach Anspruch 57 weiterhin mit einem Matrix-Generator zum Umformen der Datenstrukturen zu der Kausalitätsmatrix, indem ein Kausalitätsverschluss von Problemen bestimmt wird, die in einer Konfigurations-Spezifikation enthalten sind. Appareil selon la revendication 57, comprenant en outre un générateur de matrices, pour transformer les structures de données en la matrice de causalité, par détermination d'un domaine de causalité des problèmes contenus dans une spécification de configuration. The apparatus of claim 57, further comprising a matrix generator for transforming said data structures into said causality matrix by determining a causality closure of problems contained in a configuration specification.
- 60Anordnung nach Anspruch 56, bei der die Erstellungseinrichtung aufweist:eine Einrichtung zum Protokollieren von über einen gewissen Zeitraum im System auftretende Ereignisse auf einer Rechner-Speichereinrichtung,eine Einrichtung zum Analysieren der protokollierten Ereignisse auf statistische Korrelationen hin,eine Einrichtung zum Filtern der analysierten Ereignisse auf Grund eines Korrelationsschwellenwerts und zum Erzeugen eines gefilterten Datensatzes, der Symptome und wahrscheinliche Probleme aufweist, undeine Einrichtung zum Generieren der Kausalitätsmatrix unter Verwendung des gefilterten Datensatzes. Appareil selon la revendication 56, dans lequel les moyens de préparation comprennent : des moyens pour répertorier chronologiquement des événements se produisant dans le système sur une période de temps, dans un dispositif de mémoire sur ordinateur ;des moyens pour analyser les événements répertoriés chronologiquement, afin d'établir des corrélations statistiques ;des moyens pour filtrer les événements analysés en se basant sur un seuil de corrélation, et génération d'un ensemble filtré de données comprenant des symptômes et des problèmes probables;etdes moyens pour générer la matrice de causalité par utilisation de l'ensemble filtré de données. The apparatus of claim 56, wherein said preparing means comprises: means for logging events occurring in said system over a period of time to a computer storage device;means for analyzing said logged events for statistical correlations;means for filtering said analyzed events based on a correlation threshold and producing a filtered set of data comprising symptoms and likely problems;andmeans for generating said causality matrix using said filtered set of data.
- 61Anordnung zum Generieren eines Codebuchs nach Anspruch 55, bei der die Kausalitätsdarstellung ein Kausalitätsgraph mit einer Vielzahl von Knoten, die jeweils ein Problem oder ein Symptom darstellen, und einer Vielzahl von gerichteten Kanten ist, die jeweils von einem zu einem anderen der Vielzahl von Knoten weisen und einem Kausalzusammenhang zwischen zwei oder mehreren der Vielzahl von Knoten ensprechen, wobei die Einrichtung, die den Kausalitätsgraph wohlgeformt macht, redundante Knoten löscht undwobei die Generiereinrichtung eine Minimalgruppe von Symptomknoten auswählt derart, dass die gewählten Gruppen den Unterscheidungsgrad erfüllen. Appareil pour générer une table de codes selon la revendication 55, dans lequel la représentation de causalité est un graphique de causalité comprenant une pluralité de noeuds, chacun correspondant à un problème ou à un symptôme, et une pluralité de vecteurs pointant chacun d'un de la pluralité de noeuds à un autre de la pluralité de noeuds et correspondant à une relation causale établie entre deux ou plusieurs noeuds de la pluralité de noeuds ;dans lequel les moyens pour générer le graphique optimisé de causalité opère par suppression des noeuds redondants ;etdans lequel les moyens de génération sélectionnent un groupe minimal de noeuds de symptômes, de manière que des groupes sélectionnés satisfassent au degré de sélection. The apparatus for generating a codebook as claimed in claim 55, wherein the causality representation is a causality graph comprising a plurality of nodes each corresponding to a problem or a symptom, and a plurality of directed edges each pointing from one of the plurality of nodes to another of the plurality of nodes and corresponding to a causal relation between two or more of said plurality nodes;wherein the means for making said causality graph well-formed deletes redundant nodes;andwherein the generating means selects a minimal group of symptom nodes such that selected groups satisfy the degree of distinction.
- 62Anordnung nach Anspruch 61, bei der die Erstellungseinrichtung Einrichtungen zum Eingeben einer Spezifikation eines Ereignismodells aufweist, das Zusammenhänge zwischen Ereignissen im System sowie deren Ursachen definiert. Appareil selon la revendication 61, dans lequel les moyens de préparation comprennent des moyens pour introduire une spécification du modèle d'un événement qui définit des relations entre des événements dans ce système et leurs causes. The apparatus of claim 61, wherein said preparing means comprises means for inputting a specification of an event model which defines relationships between events in said system and causes thereof.
- 63Anordnung nach Anspruch 62, bei der die Spezifikation kompilierbare Anweisungen aufweist, die zum Definieren der Zusammenhänge Wahrscheinlichkeitswerte verwenden. Appareil selon la revendication 62, dans lequel la spécification comprend des instructions susceptibles d'être compilées, utilisant des probabilités pour définir les relations. The apparatus of claim 62, wherein said specification comprises compilable statements which use probabilities to define said relationships.
- 64Anordnung nach Anspruch 62, bei der die Erstellungseinrichtung eine Einrichtung zum Kompilieren der Spezifikation zu Methoden und Datenstrukturen aufweist und die Methoden und Datenstrukturen dazu dienen, den Kausalitätsgraph zu generieren, indem ein Kausalitätsverschluss von in einer Konfigurationsspezifikation enthaltenen Problemen bestimmt wird. Appareil selon la revendication 62, dans lequel les moyens de préparation comprennent des moyens pour compiler la spécification en des méthodes et des structures de données, et dans lequel les méthodes et les structures de données sont utilisées pour générer le graphique de causalité, par détermination d'un domaine de causalité des problèmes contenus dans une spécification de configuration. The apparatus of claim 62, wherein said preparing means comprises means for compiling said specification into methods and data structures, and wherein said methods and data structures are used to generate said causality graph by determining a causality closure of problems contained in a configuration specification.
- 65Anordnung nach Anspruch 61, bei der die Erstellungseinrichtung aufweist:eine Einrichtung zum Protokollieren von im System über einen gewissen Zeitraum auftretenden Ereignissen auf einer Rechner-Speichereinrichtung,eine Einrichtung zum Analysieren der protokollierten Ereignisse auf statistische Korrelationen hin,eine Einrichtung zum Filtern der analysierten Ereignisse auf Grund eines Korrelations-Schwellenwerts und zum Erzeugen einer gefilterten Datenmenge aus Symptomen und wahrscheinlichen Problemen undeine Einrichtung zum Generieren des Kausalitätsgraphen unter Verwendung des gefilterten Datensatzes. Appareil selon la revendication 61, dans lequel les moyens de préparation comprennent : des moyens pour répertorier chronologiquement des événements se produisant dans le système, sur une période de temps, dans un dispositif de mémoire sur ordinateur ;des moyens pour analyser les événements répertoriés chronologiquement, afin d'établir des corrélations statistiques ;des moyens pour filtrer les événements analysés en se basant sur un seuil de corrélation et produire un ensemble filtré de données, comprenant des symptômes et des problèmes probables ;etdes moyens pour générer le graphique de causalité par utilisation de l'ensemble filtré de données. The apparatus of claim 61, wherein said preparing means comprises: means for logging events occurring in said system over a period of time to a computer storage device;means for analyzing said logged events for statistical correlations;means for filtering said analyzed events based on a correlation threshold and producing a filtered set of data comprising symptoms and likely problems;andmeans for generating said causality graph using said filtered set of data.
- 66Anordnung nach Anspruch 1, bei dem der Schritt (1) den Schritt des Erstellens eines für einen Rechner zugänglichen Codebuchs aufweist und es sich bei dem Codebuch um eine Wertematrix handelt, die durch Eliminieren redundanter Information aus einer Kausalitätsmatrix generiert worden ist. Procédé selon la revendication 1, dans lequel l'étape (1) comprend l'étape de fourniture d'une table de codes accessible par ordinateur, comprenant une matrice de valeurs qui a été réduite à partir d'une matrice de causalité, par élimination de toute information redondante dans la matrice de causalité. The method according to claim 1, wherein step (1) comprises the step of providing a computer-accessible codebook comprising a matrix of values which has been reduced from a causality matrix by eliminating redundant information from the causality matrix.
- 67Anordnung nach Anspruch 33, bei dem die Werte im Codebuch durch Eliminieren redundanter Informationen aus der Kausalitätsmatrix generiert worden sind. Appareil selon la revendication 33, dans lequel les valeurs de la table de codes sont la conséquence d'une réduction d'une matrice de causalité, résultant d'une élimination de toute information redondante dans la matrice de causalité. The apparatus according to claim 33, wherein the values in the codebook have been reduced from a causality matrix by eliminating redundant information from the causality matrix.
- 68An optimal codebook generated in accordance with the method of claim 24. Optimales, nach dem Verfahren des Anspruch 24 generiertes Codebuch. Table optimale de codes générée suivant le procédé selon la revendication 24.
- 69An optimal codebook generated using the apparatus of claim 56. Optimales, unter Verwendung der Anordnung nach Anspruch 56 generiertes Codebuch. Table optimale de codes générée par utilisation de l'appareil de la revendication 56.
- 70A computer implemented method of generating a causality mapping for analyzing events in a system having a plurality of components arranged in a particular configuration, the method comprising the steps of:(1) defining a set of events which may occur for each class of components in the system independently of the particular configuration of the system;(2) defining propagations of events across one or more classes of components in the system independently of the particular configuration of the system;(3) creating a configuration specification for the system defines instances of the components specific to the configuration of the system;and(4) in said computer, converting the first and second definitions into the causality mapping based on the configuration specification, wherein the causality mapping comprises a mapping of events in the system to likely problems in the system. Procédé, mis en oeuvre sur ordinateur, de génération d'une correspondance de causalité pour analyser des événements dans un système, ayant une pluralité de composantes agencées sous une configuration particulière, le procédé comprenant les étapes consistant à : (1) définir un ensemble d'événements pouvant se produire pour chaque classe de composantes dans le système, indépendamment de la configuration particulière du système ;(2) définir des déplacements d'événements sur une ou plusieurs classes de composantes dans le système, indépendamment de la configuration particulière du système ;(3) créer une spécification de configuration pour le système définissant des occurrences de composantes spécifiques à la configuration du système ;et(4) dans l'ordinateur, convertir des première et deuxième définitions en correspondance de causalité, en se basant sur la spécification de configuration, dans lequel la correspondance de causalité comprend une correspondance des événements dans ce système, selon les problèmes probables rencontrés dans ce système. Rechnerimplementiertes Verfahren zum Generieren einer Kausalitätsabbildung zwecks Analyse von Ereignissen in einem System mit einer Vielzahl von Systemkomponenten, die in einer bestimmen Konfiguration angeordnet sind, wobei das Verfahren folgende Schritte aufweist: (1) Definieren einer Menge von Ereignissen, die für jede Klasse von Komponenten im System unabhängig von der jeweiligen Systemkonfiguration auftreten können,(2) Definieren der Ausbreitung von Ereignissen über eine oder mehreren Klassen von Komponenten im System unabhängig von der jeweiligen Systemkonfiguration,(3) Erzeugen einer Konfigurationsspezifikation für das System, die für die Systemkonfiguration spezifische Vorkommensfälle von Systemkomponenten definiert, und(4) Umwandeln der ersten und der zweiten Definition in die Kausalitätsabbildung auf Grund der Konfigurationsspezifikation im Rechner, wobei die Kausalitätsabbildung eine Abbildung von Ereignissen im System auf wahrscheinliche Probleme im System beinhaltet.
- 71Procédé selon la revendication 70, dans lequel l'étape (4) comprend les étapes consistant à :(a) déterminer un ensemble d'événements pouvant se produire pour la configuration spécifique du système en prenant une union de tous les événements qui peuvent se produire pour chaque occurrence de chaque composante dans toutes les classes de composantes dans la configuration spécifique ;et(b) déterminer un domaine de causalité pour chaque événement déterminé à l'étape (a) par constitution d'une union de tous les événements observables que chaque événement peut produire. The method of claim 70, wherein step (4) comprises the steps of: (a) determining a set of events that can occur for the specific configuration of the system by taking a union of all events which can occur for each instance of each component across all classes of components in the specific configuration;and(b) determining a causality closure of each event determined in step (a) by taking a union of all observable events which each event may cause. Verfahren nach Anspruch 70, bei dem der Schritt (4) folgende Schritte aufweist: (a) Bestimmen einer Menge von Ereignissen, die für die jeweilige Konfiguration des Systems auftreten können, indem man eine Vereinigungsmenge aller Ereignisse nimmt, die für jeden Vorkommensfall jeder Komponente über alle Komponentenklassen in der jeweiligen Konfiguration auftreten können, und(b) Bestimmen eines Kausalitätsverschlusses jedes im Schritt (a) bestimmten Ereignisses, indem man die Vereinigungsmenge aller beobachtbaren Ereignisse nimmt, die jedes Ereignis verursachen kann.
- 72Procédé selon la revendication 71, dans lequel l'étape (b) comprend les étapes consistant pour chaque événement à :(i) déterminer si l'événement est observable ou non observable et, s'il est déterminé que l'événement est observable, délivrer, à titre de domaine de causalité, un ensemble constitué de l'événement ;(ii) déterminer si l'événement peut provoquer un ensemble de symptômes et, s'il est déterminé que l'événement peut provoquer un ensemble de symptômes, générer, à titre de domaine de causalité, une union des domaines de causalité pour chaque symptôme dans l'ensemble de symptômes;(iii) déterminer si l'événement peut se propager sur des classes d'objets et, s'il est déterminé que l'événement peut se propager, pour chaque occurrence d'objet dans la spécification de configuration qui peut générer cet événement, produire une union des domaines de causalité pour chaque cas d'objet sur lequel l'événement peut se propager. The method of claim 71, wherein step (b) comprises the steps of, for each event: (i) determining whether the event is observable or not observable and, if it is determined that the event is observable, outputting as the causality closure a set consisting of the event;(ii) determining whether the event can cause a set of symptoms and, if it is determined that the event can cause a set of symptoms, outputting as the causality closure a union of the causality closures for each symptom in the set of symptoms;and(iii) determining whether the event can propagate across object classes and, if it is determined that the event can propagate, for each object instance in the configuration specification which can generate that event, outputting a union of the causality closures for each object instance to which the event can propagate. Verfahren- nach Anspruch 71, bei dem der Schritt (b) für jedes Ereignis folgende Schritte aufweist: (i) Bestimmen, ob das Ereignis beobachtbar oder nicht und, falls die Bestimmung ergibt, dass das Ereignis beobachtbar ist, Ausgeben einer aus dem Ereignis bestehenden Menge als Kausalitätsverschluss,(ii) Bestimmen, ob das Ereignis eine Menge von Symptomen erzeugen kann, und, falls ja, Ausgabe einer Verbindungsmenge der Kausalitätsverschlüsse für jedes Symptom in der Symptommenge als Kausalitätsverschluss, und(iii) Bestimmen, ob das Ereignis sich über Klassen von Objekten fortpflanzen kann, und, falls ja, für jeden Vorkommensfall eines Objekts in der Konfigurations-Spezifikation, der das jeweilige Ereignis erzeugen kann, Ausgabe einer Vereinigungsmenge der Kausalitätsverschlüsse für alle Objektvorkommen, auf die das Ereignis sich fortpflanzen kann.
- 73Procédé selon la revendication 71, dans lequel l'étape (1) définit un événement qui peut être généré par l'occurrence d'une composante dans une classe de composantes dans le système. The method of claim 71, wherein step (1) defines an event which can be generated by each instance of a component in one class of components in the system. Verfahren nach Anspruch 71, bei dem der Schritt (1) ein Ereignis definiert, das von jedem Vorkommensfall einer Komponente in einer Komponentenklasse im System generierbar ist.
- 74Procédé selon la revendication 71, dans lequel l'étape (2) définit un ou plusieurs événements qui peuvent se propager vers une occurrence d'une composante dans l'une des classes de composantes. The method of claim 71, wherein step (2) defines one or more events which can propagate to an instance of a component in one of the classes of components. Verfahren nach Anspruch 71, bei dem der Schritt (2) ein oder mehrere Ereignisse definiert, die sich auf einen Vorkommensfall einer Komponente in einer der Komponentenklassen fortpflanzen kann.
- 75A causality matrix generated in accordance with the method of claim 70. Matrice de causalité générée selon le procédé de la revendication 70. Nach dem Verfahren des Anspruchs 70 generierte Kausalitätsmatrix.
- 76Procédé selon la revendication 70, comprenant en outre l'étape (5) de réduction de la matrice de causalité en une table de codes comprenant moins de valeurs que la matrice de causalité, par élimination dans la matrice de causalité des ensembles de valeurs en double. The method of claim 70, further comprising the step (5) reducing the causality matrix in a codebook comprising fewer values than the causality matrix by eliminating duplicative sets of values form the causality matrix. Verfahren nach Anspruch 70 weiterhin mit dem Schritt (5) des Reduzierens der Kausalitätsmatrix zu einem Codebuch mit weniger Werten als diese durch Eliminieren von Duplikaten von Wertemengen aus der Kausalitätsmatrix.
- 77Procédé selon la revendication 76, comprenant en outre les étapes consistant à :(6) surveiller une pluralité de valeurs de données de symptômes représentant des symptômes générés par le système, dans le temps;(7) déterminer une mesure de défaut d'assortiment entre chacun d'une pluralité de groupes de valeurs dans la table de codes, par utilisation d'un ordinateur et sélection d'un problème probable correspondant à l'un de la pluralité de groupes ayant la plus petite valeur de mesure de défaut d'assortiment ;et(8) délivrer un rapport concernant le problème probable sélectionné à partir de la table de codes ;The method of claim 76, further comprising the steps of (6) monitoring a plurality of symptom data values representing symptoms generated by the system over time;(7) determining a mismatch measure between each of a plurality of groups of values in the codebook through the use of a computer, and selecting a likely problem corresponding to one of the plurality of groups having the smallest mismatch measure;and(8) reporting one of the selected likely problem from the codebook. Verfahren nach Anspruch 76 weiterhin mit folgenden Schritten: (6) Überwachen einer Vielzahl von Symptomdatenwerten, die Symptome darstellen, die das System über eine gewisse Zeit generiert,(7) Bestimmen eines Fehlanpassungsmaßes zwischen jedem einer Vielzahl von Wertegruppen im Codebuch durch Verwendung eines Rechners und Auswahl eines wahrscheinlichen Problems, das einer der Vielzahl von Gruppen mit dem kleinsten Fehlanpassungsmaß entspricht, und(8) Berichten eines der gewählten wahrscheinlichen Probleme aus dem Codebuch.
- 78Procédé selon la revendication 76, dans lequel l'étape (5) comprend les étapes consistant à :(a) sélectionner un degré souhaité de sélection entre des groupes de valeurs dans la table de codes, chaque groupe correspondant à un problème probable différent ;(b) générer une table optimale de codes, par sélection de groupes minimaux de valeurs, de manière que les groupes sélectionnés de valeurs, correspondant à deux problèmes probables quelconques, satisfassent au degré souhaité de sélection. The method of claim 76, wherein step (5) comprises the steps of: (a) selecting a desired degree of distinction between groups of values in the codebook, each group corresponding to a different likely problem;and(b) generating an optimal codebook by selecting minimal groups of values such that selected groups of values corresponding to any two likely problems satisfy the desired degree of distinction. Verfahren nach Anspruch 76, bei dem der Schritt (5) folgende Schritte aufweist: (a) Auswählen eines gewünschten Unterscheidungsgrades zwischen Gruppen von Werten im Codebuch und(b) Erzeugen eines optimalen Codebuchs durch Auswählen von Minimalgruppen von Werten derart, dass gewählte Gruppen von Werten, die beliebigen zwei wahrscheinlichen Problemen entsprechen, den gewünschten Unterscheidungsgrad erfüllen.
- 79A computer programmed to generate a causality mapping for use in analyzing events in a system having a plurality of components arranged in a particular configuration, the computer being programmed to receive a set of events which may occur for each class of components in the system independently of the particular configuration of the system, a set of propagations of event across one or more classes of components in the system independently of the particular configuration of the system, and a configuration specification for the system which defines instances of components specific to the configuration of the system, wherein the computer converts the set of events and the set of propagations of event into the causality mapping on the basis of the particular system configuration;wherein the causality mapping comprises a mapping of events in the system, said problems being exceptional operational conditions requiring handling. Ordinateur programmé pour générer une correspondance de causalité pour son utilisation dans l'analyse d'événements dans un système comportant une pluralité de composantes agencées sous une configuration particulière, l'ordinateur étant programmé pour recevoir un ensemble d'événements qui peuvent se produire pour chaque classe de composantes dans le système, indépendamment de la configuration particulière du système, un ensemble de propagation d'événements sur une ou plusieurs classes de composantes dans le système, indépendamment de la configuration particulière du système, et une spécification de configuration, pour le système, qui définit des cas de composantes spécifiques à la configuration du système, dans lequel l'ordinateur convertit l'ensemble d'événements et l'ensemble de propagation d'événements en correspondance de causalité, sur la base de la configuration système particulière, dans lequel la correspondance de causalité comprend une correspondance entre des événements dans le système, les problèmes étant des conditions de fonctionnement exceptionnelles demandant un traitement. Rechner, der auf das Generieren einer Kausalitätsabbildung zur Verwendung bei der Analyse von Ereignissen in einem System programmiert ist, das eine Vielzahl von Komponenten aufweist, die in einer bestimmten Konfiguration angeordnet sind, wobei der Rechner programmiert ist, eine Menge von Ereignisse, die für jede Klasse von Komponenten im System unabhängig von der jeweiligen Systemkonfiguration auftreten können, eine Menge von Fortpflanzungen von Ereignissen über eine oder mehrere Klasse von Komponenten im System unabhängig von der jeweiligen System konfiguration sowie eine Konfigurations-Spezifikation für das System zu empfangen, die für die Systemkonfiguration spezifische Komponenten-Vorkommensfälle definiert, wobei der Rechner die Ereignismenge und die Menge von Ereignisfortpflanzungen zu der Kausalitätsabbildung auf Grund der jeweiligen Systemkonfiguration umwandelt, die Kausalitätsabbildung eine Abbildung von Ereignissen im System beinhaltet und es sich bei den Problemen um betriebliche Ausnahmezustände handelt, die eine Behandlung erfordern.
- 80Anordnung nach Anspruch 79, bei der der Rechner die Menge der Ereignisse und der Ereignisfortpflanzungen zu der Kausalitätsabbildung umsetzt, indem er nach einer vorbestimmten Syntax erstellte Anweisungen verarbeitet. Appareil selon la revendication 79, dans lequel on effectue dans l'ordinateur la conversion de l'ensemble d'événements et les propagations des événements en correspondance de causalité par des instructions de traitement ayant été préparées selon une syntaxe prédéterminée. The apparatus of claim 79, wherein in the computer converts the set of events and the propagations of events into the causality mapping by processing statements prepared according to a predetermined syntax.
Independent claims80
159 paragraphs in 1 section, as filed
<u>BACKGROUND OF THE INVENTION</u>
1.
Technical Field
This invention relates to the field of event correlation and, more particularly, to a method and apparatus for efficiently determining the occurrence of and the source of problems in a complex system based on observable events. The invention has broad application to any type of complex system including computer networks, satellites, communication systems, weapons systems, complex vehicles such as spacecraft, medical diagnosis, and financial market analysis.
2.
Related Information
As computer networks and other systems have become more complex, their reliability has become dependent upon the successful detection and management of problems in the system. Problems can include faults, performance degradation, intrusion attempts and other exceptional operational conditions requiring handling. Problems generate observable events, and these events can be monitored, detected, reported, analyzed and acted upon by humans or by programs. However, as systems have become more complex, the rate at which observable events occur has increased super-linearly, making problem management more difficult.
As an example, when the number of computer nodes in a network increases, the network complexity increases super-linearly with the number of nodes, with a concomitant increase in the fault rate. Compounding this problem of network complexity is fault propagation between both machines and network protocol layers; these propagated faults can generate additional events.
Automated management systems can help to cope with this increase in the number and complexity of events by (1) automating the collection and reporting of events, thereby reducing the load on human operators or programs; (2) using event correlation techniques to group distinct events, thereby compressing the event stream into a form more easily managed by human operators; (3) mapping groups of events to their underlying causes, thus reducing the time between faults and repairs; and (4) automatically correcting diagnosed problems, thereby minimizing operator intervention.
Event correlation and management techniques are a particularly important method of reducing the number of symptoms in a system which need to be analyzed and accurately determining the number and identity of discrete problems which need to be rectified. Unless events are correlated, a single problem in a single subsystem could result in multiple, uncoordinated corrective actions. This can lead to wasteful resources spent on duplicate efforts and inconsistent corrective actions which result in an escalation of problems.
Conventional and previously proposed approaches to managing faults in a system have failed to fully address the increase in complexity and have failed to provide adequate performance for large systems, as outlined more particularly herein. In order to discuss these problems, it is first necessary to understand these other approaches.
Event correlation and management approaches can be generally grouped into five categories: (1) rule-based reasoning; (2) case-based reasoning; (3) reasoning with generic models; (4) probability networks; and (5) model-based reasoning. In addition, a number of different architectures have been considered to carry out event correlation and management. In order to review these approaches, the following terminology is defined: <ul id="ul0001" list-style="none" compact="compact"><li><u>KNOWLEDGE REPRESENTATION:</u> The format and means for representing knowledge about the system being monitored, such as the types of network components and the network topology. Such knowledge may be stored in a hierarchical relational or object-oriented database.</li><li><u>KNOWLEDGE ACQUISITION:</u> The methods and means for acquiring the knowledge about the system to be monitored. Ideally, knowledge is automatically obtained during system operation to minimize human resource requirements. However, in actuality much knowledge acquisition involves humans familiar with the operation and idiosyncrasies of a system.</li><li><u>EVENT CORRELATION:</u> The methods and means for detecting the occurrence of exceptional events in a complex system and identifying which particular event occurred and where it occurred. The set of events which occur and can be detected in the system over a period of time will be referred to as an "event stream." It will be noted that the location of the event is not necessarily the location where it is observed, because events can propagate across related entities in a system. Although every possible reportable measurement (such as voltage level, disk error, or temperature level) could be considered to be an "event", many of these measurements do not contribute to identifying exceptional events in the system. Event correlation takes as input an event stream, detects occurrence of exceptional events, identifies the particular events that have occurred, and reports them as an output.</li></ul>
Event correlation can take place in both the space and time dimensions. For example, two events whose sources are determined to be in the same protocol layer in the same network element may be related spatially. However, they may not be correlated if they occur on different days, because they would not be related temporally.
1. Rule-Based Reasoning Methods
One approach for correlating events in complex systems involves rule-based reasoning, such as expert systems. Rule-based expert systems generally contain two components: <ul id="ul0002" list-style="none" compact="compact"><li>(1) a working memory which represents knowledge of the current state of the system being monitored; and</li><li>(2) a rule base which contains expert knowledge in the form of "if-then" or "condition-action" rules. The condition part of each rule determines whether the rule can be applied based on the current state of the working memory; the action part of a rule contains a conclusion which can be drawn from the rule when the condition is satisfied.</li></ul>
Rule-based reasoning can proceed in one of two possible modes of operation. In FORWARD CHAINING mode, the working memory is constantly scanned for facts which can be used to satisfy the condition part of each rule. When a condition is found, the rule is executed. Executing a rule means that the working memory is updated based on the conclusion contained in the rule. These newly updated data can be used to satisfy the conditions of other rules, resulting in a "chain reaction" of rule executions.
In BACKWARD CHAINING mode, the system is presented with a "goal" working memory datum, which it is asked to either confirm or deny. The system searches for rules whose action part could assert the goal; for each such rule, the condition corresponding to the action is checked against the working memory to see if it is satisfied. The conditions can be satisfied by either finding the appropriate working memory data or by finding other rules whose conditions are satisfied which could assert the desired working memory data.
Rule-based expert systems benefit from straightforward knowledge acquisition because the "if-then" format of the rules often mimics the format of expert knowledge. The knowledge base can be incrementally modified because rules can be added or modified easily. However, attempts to automate knowledge acquisition for such systems have produced limited results.
Rule-based expert systems can be used to perform event detection and event correlation by providing a link between the working memory and the event stream. However, there are several inherent disadvantages. For example, for a very large knowledge base, the performance of the system can suffer exponentially with the number of condition parts of the rules. The search associated with rule-based systems can be of exponential complexity in the number of rules (size of knowledge base). It is difficult to ensure that firing sequences of a complex rule-based system actually terminate. The complexity of the search is also exponential in the size of the working memory. The working memory includes the events to be correlated. If the system involves a large number of events, the working memory (and therefore the search) may be unbounded. A rule based system can be very sensitive to lost or spurious event data. Such perturbations in the input can have unpredictable or controllable results. Furthermore, a rule-based system can be sensitive even to the order in which input patterns are provided. Different orders may lead to different results and time to converge. There are no techniques to ensure that a rule based system contains sufficient rules to resolve correlations. Moreover, like any computer program, an arbitrary set of rules may execute an indefinite or even infinite number of rules before completion; a rule-based algorithm can involve an arbitrarily long or even infinite cycle of rule firings. A minor defect in the knowledge base could render the system useless. The knowledge base is "brittle" in that if the problem domain changes in any way, the system will no longer perform.
2. Case-Based Reasoning Methods
Case-based reasoning methods and systems involve storing knowledge as a repository of successful cases of solved problems called a <u>case base.</u> When the system is presented with a problem, it searches the case base for similar cases. Once the similar cases are retrieved, various problem-solving strategies must be adapted to the case at hand. If the adapted strategy successfully solves the problem, then the newly solved problem can be added to the case base with the adapted solution.
One way to more closely match problems with those in the case base is to use "determinators." Determinators are a way of narrowing the similarity criteria to attributes of a problem which are relevant to solving the problem. For example, the solution to the problem "file transfer throughput is slow" could be determined by looking at bandwidth, network load, packet collision rate and packet deferment rate; these would constitute determinators. Parameterized adaptation such as interpolating among solutions to similar problems located in the case base can be used to provide solutions to new problems.
However, case-based approaches have inherent disadvantages. For example, the case base grows as problems are solved over a long period of time, and there may be more cases in the case base than is strictly necessary to solve the range of problems encountered. Effort must be expended not only on acquiring knowledge for storage in the case base, but also on identifying and creating appropriate determinators to operate the system effectively. It may be necessary for experts to directly enter cases into the system to fully capture their value, and it may be difficult to determine when the case base is sufficiently large to solve a prescribed range of problems. In some cases, the experts may even need to participate directly in knowledge acquisition while the system is operating. The system may not be usable until a large number of problems have been encountered and solved. It is difficult to maintain a case-based system through changes in a networked system. Changes will invalidate certain cases, leading to inconsistencies. Like rule based systems, case-based systems can involve significant and slow search, can be difficult to validate and may be sensitive to loss or spurious generation of symptoms (these may be seen as different cases).
3. Reasoning With Generic Models
Generic models rely on generic algorithms, rather than expert knowledge, to correlate events based on an abstraction of the system architecture and its components. As an example, each event can be normalized to include a list of all possible faults which could have been responsible for the event. (This is an abstraction of a real event which could carry much more varied information). Then all the various events are collected and the intersection of their sources is determined and output as the diagnosis.
As an example, if events A and B are detected, and it is known that event A could have been caused by problems 1, 2, or 3, and event B could have been caused by problems 2, 4, or 6, then the diagnosis is that problem 2 has occurred because it represents the intersection of the possible sources of events A and B. The complexity of this approach is generally the number of events multiplied by the number of source faults which could have generated the events. For very large and complex systems, the storage and search requirements can be unacceptable.
4. Probability Networks
The various approaches outlined above can be augmented with probability information. For example, a rule of the form "if A then B" can be augmented with a certainty factor: "if A then B with certainty 90%."
The element of a probability network is a proposition, which is a hypothesis about the state of the system being monitored. For example, the hypothesis "node A is faulty" is a proposition. A probability is associated with each proposition, which is its a priori probability of truth. Additionally, probabilities can be assigned to the relationships between propositions. For example, "the truth of proposition A causes the truth of proposition B with probability 90%." When an event occurs, the probability of the proposition representing the occurrence of that event is updated to 100%, and this change is propagated to other propositions in the network based on the relationships. A diagnosis can be generated by simply listing those propositions having the highest probabilities.
Probability networks may be advantageous in that they can produce hypotheses with a precise confidence level. However, in the worst case, every proposition has a causal relationship with every other proposition, in which case the number of connections in the probability network would be approximately equal to the square of the number of propositions in the network. Moreover, the complexity of an event correlation algorithm using probability networks is typically high.
Another approach which can be included in this category is often referred to as Fuzzy Backward Reasoning (FBR), based on principles of fuzzy logic. Fuzzy logic describes uncertain knowledge in terms of subintervals of [0,1]. For example, the likelihood of a problem can be represented as an interval [0,0.4]. The certainty (fuzziness) of the problem is given by 0.4. Fuzzy logic, in a manner similar to Boolean logic, defines operations in terms of intervals. The product of two intervals is their intersection, while the sum is their union.
FBR can be used to model causality among problems and symptoms using a matrix R of fuzziness indicators. For a vector <u>a</u> of problems and a vector <u>b</u> of symptoms, the problem of fuzzy backward reasoning can be defined as computing the problem vector <u>a</u> that solves the equation <u>b</u> = <u>a</u> * R. However, this approach has severe disadvantages. For example, there may be no solutions to the equation, or there may be many solutions to the equation. Moreover, a small error in the model (e.g., in the fuzziness indicators of R) can lead to significant errors in the result. A small error can also transform an equation with multiple solutions into one with no solutions and vice versa, or yield completely different solutions. Lost or spurious symptoms may result in no solution to the equation rather than detecting the possible loss. Moreover, the FBR approach does not permit simple reduction of symptoms to be observed (e.g., reducing a fuzziness matrix R to a much smaller matrix R'). Finally, the complexity of FBR can be exponential in the number of problems, because it seeks to compute all possible combinations of problems that could yield a particular observation. In short, the FBR approach does not solve the problems outlined above with respect to complexity and performance.
5. Model-Based Reasoning
Model-based reasoning involves creating a model which represents the underlying system being monitored. One example of a model is a finite state machine (FSM) for modelling possible states of the system. As messages are observed at any location in the system, the model is used to update the estimate of the current state of the system.
However, it may be difficult or impossible to accurately model the underlying system, particularly if it is complex. Moreover, for complex phenomena, an FSM representation can quickly grow to unmanageable size because of the simplicity of the model. The time complexity of an event correlation algorithm using an FSM is typically linear in the number of events at each machine.
EVENT CORRELATION AND MANAGEMENT ARCHITECTURES
A number of different architectures have been proposed for carrying out event correlation and management along the principles discussed above. These can be generally grouped into: (A) blackboard architectures; (B) event detection architectures; (C) network modelling architectures; and (D) simulation architectures. A brief discussion of each, including their disadvantages, follows.
A. Blackboard Architectures
A blackboard architecture generally comprises one or more knowledge sources (KS's), a blackboard, and a control shell. Each KS is a knowledge base which has a specific domain of expertise. The blackboard is a data structure which acts as a shared memory for the KS's; each KS can read from and write to the blackboard. The control shell coordinates the activities of the various KS's based on "triggering" blackboard events. Once a KS is scheduled by the control shell, it scans the blackboard for knowledge that it needs to perform its inference. The output of a scheduled KS may be further blackboard events (i.e., changes to the data on the blackboard).
For example, a basic system could have two knowledge sources: a protocol diagnoser and a hardware diagnoser. The protocol diagnoser KS could be implemented with model-based reasoning using an FSM model of the protocol, while the hardware diagnoser could use a rule-based system as outlined above. The protocol diagnoser KS could write a diagnosis to the blackboard indicating that a given router is not obeying the protocol specifications. The hardware diagnoser KS could then read this diagnosis from the blackboard and initiate a hardware diagnosis for the given router. To achieve this sequence, the control shell would be instructed to activate the hardware diagnoser KS whenever the protocol diagnoser indicates a hardware fault.
While blackboard architectures are modular (i.e., they allow the integration of many types of reasoning methods for a single system) and allow various KS's to be developed independently (i.e., knowledge can be acquired independently from experts of each domain and then assembled into a complete system), they also have disadvantages. For example, because the blackboard must act as a global memory for all KS's, all communication must be converted into a common format understandable by all other KS's. Thus, the integration task can be enormous. Furthermore, it may be impossible to decide which KS should be scheduled without special knowledge about what is contained in the KS's themselves.
B. Event Detection Architectures
A rule-based system can be implemented for event detection whereby generated events are converted into working memory elements and inserted into the working memory of the rule-based system. The rule base would contain rules matching these memory elements, and would report a subset or summary of the events to an event correlator by inserting other working memory elements into the correlator's working memory.
For example, suppose it is desired that an OVERLOAD event be generated when a delay on 20% of the communications links in a network exceeds 5 seconds. One approach would be to continuously insert all current delays on all communications links into the working memory of the event detector, and the event detector could define the OVERLOAD event. However, this would cause a large load on the system whether or not the OVERLOAD event was of interest.
One proposal is to view all of the management information available in the network as a "network database." This network database can then be queried using a standard database query language such as SQL. Thus, the OVERLOAD event can be defined as a data pattern event which is generated whenever one of the event retrieval queries returns a value.
One advantage of this approach is that new events can be defined in a declarative manner using a database query language. However, it may be difficult to implement because there must be a mapping from the query language to actual queries to the objects in the network. Moreover, when a new query is produced, it may be difficult to determine the cost of producing the event to which the query maps; not all queries which can be generated are capable of an efficient implementation. Therefore, the complexity of this approach could be difficult to predict.
C. Network Modeling Architectures
The system under observation (such as a computer network) can be modelled as an object-oriented hierarchy, where network elements are modelled as objects having associated functions for querying the values of the object's attributes. Calls to these functions would invoke a query to the database or return a value which was stored from a previous query. For example, GET_CPU_UTILIZATION would return the current CPU utilization rate for a particular CPU. Logical objects representing abstractions of other objects can be defined to further expand the model. Diagnostic knowledge may be derived and represented in an object-oriented fashion, thus providing a manageable database. However, as with other object-oriented approaches, the performance of the system can be poor. Moreover, this model only provides one component of an event correlation system (i.e., the knowledge base); it does not address how to correlate events and provide a problem diagnosis.
D. Simulation Architectures
Simulation can be used to help predict underlying problems in a system. If the simulator can be made to operate in real-time, then the performance of the system can be tested under realistic conditions. The simulation can be monitored more easily than a real system, so that hidden trends may be uncovered and added to an event correlation system. Simulation techniques, however, do not generally address the problem of correlating events and producing a diagnosis of underlying problems.
Summary of Related Fields
The foregoing discussion has highlighted related approaches for event correlation and detection in systems such as computer networks. Although each of these approaches has certain advantages, these approaches generally fail to address four key problems: (1) general extensibility of the approaches to very large and complex systems having many components with interrelated events; (2) performance difficulties encountered when implementing any of the approaches to perform event correlation in real-time or near real-time; (3) extremely large data storage requirements when implemented for very large and complex systems; and (4) difficulty in capturing knowledge about relationships among events in the system being monitored. Additionally, these related approaches have failed to recognize that significant data reduction can be accomplished prior to decoding of symptoms to thereby increase overall performance and reduce complexity. Finally, the related approaches fail to overcome difficulties encountered in translating relationships among objects, symptoms and problems in a system into data structures which can be used for decoding symptoms in the system.
<u>SUMMARY OF THE INVENTION</u>
The present invention overcomes the aforementioned problems by providing a method and apparatus for efficiently determining problem events from observable symptoms. The inventors of the present invention have discovered that by treating the detection and identification of exceptional events in a system as a coding problem, it can be performed extremely efficiently. More specifically, event correlation (correlating observed events to specific problems) can be split into two separate activities: (1) generating efficient codes (sets of symptom events) for problem identification, and (2) decoding the event stream. Detection and identification of problems in the system can be done efficiently because (1) redundant and inefficient data is eliminated during code generation, leaving a greatly reduced amount of data to be analyzed during the decoding phase, and (2) comparing codes against observed symptoms is of minimal computational complexity.
Various embodiments of the method of the invention generally contemplate a four-step process, simplified here for the purposes of introduction: <ul id="ul0003" list-style="none" compact="compact"><li>(1) <u>Specifying an event model and a propagation model for classes of components in the system.</u> This specification can be provided as early as component design time or later. The specification may include the exceptional events associated with each class of component, their corresponding local symptoms, and the potential relationships with other components along which events can propagate. An exceptional event may be an event that requires some handling action (e.g., a problem such as a defective disk drive, or adding a workstation to a LAN) while a symptom may be an observable event (e.g., excessive read/write errors for the disk, or a change in routing tables) caused by the exceptional event. Events may propagate between objects along relationships associated with their classes. For example, components of a type "LINK" may have an exceptional event "LINK FAILURE". Links may have a relationship "connected-to" with components of type NODE. Link failure can propagate from a LINK to a NODE along this "connected-to" relationship, being observed in NODE via the symptom "NODE-UNREACHABLE".</li><li>(2) <u>Creating a causality data representation of problems and symptoms for</u> the system to be monitored (the term "problem" as used in this specification will be understood to mean any exceptional event). The causality data representation includes data to describe problems, events and their causal relations both within a component and across components. This representation may associate with causal relations probabilities, or other measures of likelihood, that certain events cause each other. It may also associate other performance measures that may be useful in correlating events, such as the expected time for the causal relations among events to happen. In a preferred embodiment the causality data representation utilizes a matrix. This causality matrix contains a mapping of symptoms to likely problems in the systems, with probabilities for each cell of the matrix. The matrix is manipulated to ensure that columns are sufficiently distinguishable from one another (i.e., no two problems are close to one another under a defined distance measure). A distance measure, which can be defined arbitrarily, adds robustness by allowing the invention to tolerate a loss of events or spurious symptoms. (In a rule-based system, a large number of combinations of subsets of the rules would need to be tried to get the same effect). The causality data representation may be created by a human, or it may be automatically generated based on an event/propagation model such as that specified in step (1) and a configuration specification (which may be stored in a database), or by other means. For complex systems, a causality matrix may be very large and unwieldy. In such systems, other causality data representations may be more advantageous. </li><li>(3) <u>Finding an optimal codebook</u> by reducing the amount of information in the causality structure to the minimum required to identify problems. This may be done by finding a minimal subset of the symptoms that provide an acceptable level of problem identification. The optimal codebook can also be used to identify those symptoms which would provide the greatest information benefit if monitored. The resulting codebook provides an efficient arrangement of information for real-time decoding by a computer. The manipulations to the codebook are typically done prior to decoding.</li><li>(4) <u>Continuously monitoring and decoding the symptoms</u> by locating the "best fit" problem in the optimal codebook which matches a particular set of symptoms. Various best-fit approaches can be used, such as determining a Hamming distance among vectors. Error correcting bits can also be introduced into the codebook to handle noisy symptoms.</li></ul>
An output such as a report is generated indicating the most likely problem or problems based on the observable events. The decoding step can occur very efficiently because (1) the codebook has a greatly reduced amount of information and (2) determination of the "best fit" codes for the observed symptoms can be carried out very quickly.
This and other objects are solved in advantageous manner basically by applying the features laid down in the independent claims. Further enhancements are provided by the subclaims.
An additional feature of the invention is the ability to handle "second-order" symptoms (artificial symptoms created by analyzing changes and patterns in existing symptoms). As an example, the rate at which a particular group of symptoms changes can be monitored itself as a "symptom".
Thus, the invention provides a method and apparatus for using a formal machine-compilable language to capture event information and event propagation information in a system based on classes of components in the system. This captured information may then be used to determine which symptoms can be most effectively monitored in order to achieve a selected degree of certainty with respect to problem identification and isolation. The captured information may also be selectively reduced to increase the efficiency of automated problem identification.
Thus, the invention further provides a method and apparatus for generating a causality matrix for a dynamically changing system from static event information and event propagation information for component classes, and the dynamic specification of a particular system configuration. The causality matrix may be used to decode problems in the system based on observable symptoms with increased efficiency.
Thus, the invention further provides a method and apparatus for detecting problems in a dynamically changing system through the use of efficient "codes" (sets of symptom events); the "codes" may be determined and optimized outside the critical real-time path, making it possible to optimize performance in the real-time path.
Thus, the invention further provides a method and apparatus for decoding observed symptoms in a dynamically changing system to efficiently detect and identify problems in real-time by comparing vectors of observed symptoms to "codes" for the problems. A mismatch measure can be used to vary the degree of certainty required in reporting particular problems.
Additional advantages of the present invention will become apparent through the following detailed explanation and the drawings incorporated herein.
<u>BRIEF DESCRIPTION OF THE DRAWINGS</u>
<ul id="ul0004" list-style="none" compact="compact"><li>FIG. 1A shows a system of computer nodes employing apparatus 5 in accordance with various embodiments of the present invention, and FIG. 1B shows a method for employing the principles of the present invention. FIG. 1C shows details of one possible embodiment of event decoder 10, and FIG. 1D shows details of one possible embodiment of codebook generator 12.</li><li>FIG. 2A shows a causality graph of events which may occur in a system. FIG. 2B shows the same information of FIG. 2A in an incidence matrix comprising rows and columns. FIG. 2C shows a simplified causality graph in which certain nodes have been deleted. FIG. 2D shows certain nodes of FIG. 2C having been designated as problems (rectangles) and symptoms (triangles). FIG. 2E shows a further simplification to the graph of FIG. 2D. FIG. 2F shows a correlation matrix corresponding to the simplified graph of FIG. 2E. FIG. 2G shows a matrix in which redundant symptoms have been eliminated.</li><li>FIG. 2 shows a transformation process from a causality graph in FIG. 2(a) to an optimized codebook in FIG. 2(g).</li><li>FIG. 3 shows a process for generating an optimized codebook in accordance with various embodiments of the invention.</li><li>FIG. 4 shows a process for decoding problems using a codebook in accordance with various embodiments of the invention.</li><li>FIG. 5A shows a well-formed correlation matrix for 6 problems producing 20 symptoms. FIG. 5B shows progressive generation of an optimal codebook with a distance measure of d = 1. FIG. 5C shows a simplified matrix (optimal codebook) having a distance measure of d = 1. FIG. 5D shows a simplified matrix (optimal codebook) having a distance measure of d = 2. FIG. 5E shows a sample mismatch measure for use in a decoding process.</li><li>FIG. 6 is a block diagram showing how the principles of the present invention can be applied to a satellite system.</li><li>FIG. 7 is a block diagram showing how the principles of the present invention can be applied to medical diagnosis of patient symptoms.</li><li>FIG. 8 shows how a causality matrix may be generated either through a semi-automatic process or through a systematic process using event/propagation model specifications (such as GDME specifications which are compiled), and a specification of the system configuration.</li><li>FIG. 9 illustrates steps used by matrix generator 811 of FIG. 8 to generate a causality matrix.</li></ul>
<u>DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS</u>
FIG. 1A shows a networked computer system connected to apparatus 5 in accordance with the principles of the present invention. Three computer nodes 1, 2, and 3 are shown connected to a computer network N. The network N is interconnected with other networks (N1, N2, N3, N4) via communication nodes, a bridge node 17 and a router node 18. The phrase "network of computer nodes" as used herein and in the claims will be understood to refer to both a network which only includes computer nodes and to a network which further includes communication nodes. Each computer node may also be connected to peripherals such as 1a, 2a, and 3a-3c. Moreover, two or more computer nodes may be connected via an interface 4. Each computer node may generate one or more signals on network N, or through other means, corresponding to symptoms in the system. Examples of symptoms for which signals may be generated could include power failure, peripheral failure, temperature limit exceeded, network interface error, adding a new address on the network, or the like. Of course, any conceivable type of symptom which can be detected could be generated. Through the use of apparatus 5, the networked computer system may be monitored and problems reported based on observed symptoms.
Apparatus 5, which may be implemented on a computer of any of various types, is connected to network N, although it may be connected to the system through any other means such as direct I/O connections to the various computer nodes or by a wireless link. Apparatus 5 includes event detector 6 which receives and monitors events representing symptoms and determines that a particular event has occurred (for example, a power failure message received from one of the computer nodes). These events, generated by computer nodes 1-3, may be transmitted by any suitable means, such as sending data packets over an Ethernet™ which are received by apparatus 5.
Apparatus 5 also includes event decoder 10 which receives detected events from event detector 6 and, by way of codebook 11, determines one or more "best fit" problems corresponding to the detected event. Codebook 11 may be stored in a computer storage device such as a disk file or in computer memory, and event decoder 10 comprises means for reading values from codebook 11. After determining the best fit problem, event decoder 10 causes report generator 13 to generate a report 14 which provides an indication of a problem for which corrective action might be taken. Report 14 may be generated in any of various forms such as a message sent to computer systems responsible for automated handling of problems, a record of the problem logged in a storage device (such as a file or a database), a computer-generated printout, a computer display 15, data sent to a software client 16, indicators on a control panel, or the like. Additionally, the reported information may be displayed in alphanumeric or graphical form, or it may comprise a signal containing the reported information which may be further transmitted to another location. Codebook 11 may be generated by codebook generator 12 in accordance with the principles of the invention as outlined in more detail herein. The term "file" as used herein will be understood to include any computer-accessible storage including memory, disk, or the like.
A causality matrix 9 contains a mapping of system symptoms to likely problems, preferably with probabilities corresponding to each mapping. Thus, for example, the likelihood that a reported power failure in one of the computer nodes is the result of a blown fuse might be assigned a probability of 0.25. Although causality matrix 9 may be generated by manual means, it may be generated automatically using event capture 7 and event validation 8 based on events which are observed over a period of time, or it may be generated by interpreting a formal specification of an event model and an event propagation model in a specific domain, both described in more detail herein. For example, the latter may be performed by generating a causality matrix by compiling a formal language that specifies the event and propagation model into methods and data structures that interpret the models in a specific configuration. This process is described in more detail herein. Event capture 7 and event validation 8 may be controlled interactively by way of control means C1 and C2, respectively, such as through operator input using a suitable command stream.
FIG. 1B illustrates a method for employing the principles of the present invention in various embodiments. Beginning with step 20, a causality matrix is created, the matrix comprising a mapping of observable symptoms in the system to likely problems corresponding thereto. At step 21, the causality matrix is made "well-formed" by eliminating redundant information in rows and columns. At step 22, an optimal codebook is generated which further reduces the amount of information in the matrix; this optimal codebook may be tailored for a particular level of error tolerance or symptom loss as described in more detail herein. At step 23, observable symptoms generated by the system are monitored, and at step 24 these monitored symptoms are decoded into problems, preferably using a mismatch measure to determine their closeness to the observable symptoms contained in the optimized codebook. At step 25, a report is generated corresponding to the one or more likely problems decoded from the optimized codebook. The process may then either repeat at step 23, or the generated report can be fed to either step 20 or step 22 to refine the causality matrix or the codebook respectively.
FIG. 1C shows details of one possible embodiment for event decoder 10. Codebook 30, which represents the same element as codebook 11 of FIG. 1A, contains an illustrative set of numerical probability values shown as 30M. Event sequencer 10b receives events such as vectors of symptoms and, for each such vector, retrieves values from codebook 30. Mismatch measuring circuit 10a is used by event sequencer 10b to compare symptom vectors with values contained in codebook 30. The "best fit" matches between values contained in codebook 30 and incoming symptom vectors are provided to problem set generator 10c, which outputs a likely problem set.
FIG. 1D shows details of one possible embodiment for codebook generator 12. Causality matrix 40, which represents the same element as causality matrix 9 in FIG. 1A, contains an illustrative set of discrete probability values shown as 40M. Optimized codebook 60, which represents the same element as codebook 11 in FIG. 1A, contains an illustrative set of discrete probability values shown as 60M. Well-formed matrix generator 12a reads values from causality matrix 40 and, through various operations described in more detail herein, removes redundant data from the matrix and generates well-formed causality matrix 50 as an intermediate product. In the illustrative example, rows 5 and 6 of causality matrix 40M have been deleted as shown in 50M. Optimizer 12b reads values from well-formed causality matrix 50 and, through the use of mismatch measuring circuit 12c and a desired radius R, reduces the amount of information in well-formed causality matrix 50 to a smaller set which meets a given set of desirable criteria. Optimizer 12b produces optimized codebook 60 as an output, having illustrative values shown as 60M.
FIGs. 2A to 2G show one example of how codebook 11 can be generated from causality matrix 9. FIG. 2A shows a causality graph of events which may occur in the computer system being monitored by apparatus 5. The causality graph comprises a set of numbered nodes, each representing an event in the system, and directed edges (arrows) connecting these nodes, each representing a causality relationship between the events at the tail and head of the edge. As can be seen in FIG. 2A, event 1 causes event 3, which causes event 4, which in turn causes event 5, and so on.
As an example, event 1 may be a disk drive failure in a peripheral attached to one of the computer nodes in FIG. 1A. Event 3, caused by event 1, may be an error message generated by the computer to which the failed disk drive is attached, the error message indicating the detected disk drive failure. In this context, event 1 can be classified as a problem (i.e., it can be fixed), while event 3 can be classified as a symptom caused by the problem. Of course, event 3 might have other causes, such as event 5, as indicated in FIG. 2A.
The method and means for converting the causality graph of FIG. 2A into codebook 11 will now be described in detail.
Generating a Well-Formed Correlation Matrix
FIG. 2B shows the same information in the causality graph of FIG. 2A in the form of an incidence matrix comprising a plurality of rows and columns which define a plurality of cells, each cell corresponding to an intersection of one row and one column. Each cell contains a value (in this example, either 0 or 1) indicating whether or not a particular event is caused by another event. Thus, for example, event 3 (third column) causes events 3, 4, and 7 because these rows contain a "1" for the third column. Although zeros and ones are shown in FIG. 2B, the cell values can be any value which would indicate the probability that the given event causes a corresponding event.
The information in the incidence matrix of FIG. 2B can be simplified by noting that certain events always occur in combination. For example, in FIG. 2A, the events {3,4,5} form a correlated set (i.e., one cannot occur without the other), and they can therefore be combined into a single event 3 as illustrated in FIG. 2C where nodes 4 and 5 have been deleted. This first simplification of the information is thus done by replacing "cycles" in the causality graph with single aggregate nodes. The information in FIGs. 2A to 2G may be stored in a computer memory or the like in various data structures, or it may be displayed graphically on a computer screen for manipulation by a human. One of ordinary skill in the art will recognize that this information may be represented and manipulated in various ways, and further elaboration is not required.
Each node in the simplified causality graph of FIG. 2C may be designated as either a problem or a symptom. A problem is an event that requires handling, while a symptom is an event that may be observed. An event can be designated as both a problem and a symptom, or it may be neither. For example, in FIG. 2D, rectangles have been used to designate nodes which are problems, and triangles have been used to designate nodes which are symptoms. Thus, in keeping with the above example, event 1 is a disk drive failure (problem), and event 3 is an I/O error message generated by the computer connected to the failed disk drive (symptom of the problem).
Some events are of no interest and can be eliminated from the causality graph without losing any useful information. As an example, it will be noted in FIG. 2D that event 1 causes event 8, which in turn causes event 9. However, event 8 is only an "intermediate" event and contributes no new useful information. The graph of FIG. 2D can thus be simplified by the following steps: <ul id="ul0005" list-style="none" compact="compact"><li>(1) Select an undesignated event in the causality graph (i.e., one which has not been designated with a rectangle or triangle).</li><li>(2) For each edge leading to the event node from a first node X and for each edge exiting the node to a second node Y, create a direct edge from X to Y.</li><li>(3) Delete the undesignated event node and the lines attached to it.</li></ul>
In accordance with this simplification, node 8 has been deleted from the causality graph of FIG. 2D in the simplified graph of FIG. 2E. All remaining nodes are now designated as either an observable symptom or a problem that requires handling.
The information in the simplified graph of FIG. 2E can now be represented in a <u>correlation matrix</u> as shown in FIG. 2F. The matrix of FIG. 2F contains columns corresponding to the problems of FIG. 2E and rows corresponding to the observable symptoms of FIG. 2E. In this matrix, a symptom is correlated with a problem if there is a causal path leading from the problem to the symptom. Thus, for example, problem 1 leads to (directly or indirectly) symptoms 3, 7, 9, and 10. Accordingly, these rows of column 1 are indicated with a "1" while remaining row 6 is indicated with a "0" because there is no causal relationship between problem 1 and symptom 6.
Because the correlation matrix of FIG. 2F may contain symptoms which do not contribute useful information for detecting problems, or it may contain problems that cannot be distinguished by the given symptoms, it is desirable to further reduce the correlation matrix to eliminate such non-informative rows and columns. The first simplification is to eliminate identical rows, because such rows indicate that the respective sets of symptoms provide identical information about the problems. For example, rows 3, 7, 9, and 10 of the correlation matrix in FIG. 2F contain identical information, and these redundant symptoms may be eliminated as shown in FIG. 2G and replaced with row 3 only.
The second simplification is to eliminate identical columns, because such columns indicate that the respective problems cannot be distinguished by the observed symptoms. Indistinguishable problems can be aggregated into a single abstract problem. This is particularly useful when a large collection of similar problems need to be handled in a similar manner. For example, various different problems with an Ethernet™ interface card (e.g. loose connector, defective collision-detection circuits) all lead to similar symptoms. The problem can therefore be generally abstracted as an "interface problem" and the correlation process will only identify that such a problem exists, but will not determine which specific condition (loose connector or defective circuits) exists. Further resolution of the specific problem could then be pursued by running diagnostics. Where it is not acceptable to aggregate indistinguishable problems into abstract ones, new symptoms that yield distinct columns can be added. In accordance with the above described simplification, problems 1 and 11 in FIG. 2F have been aggregated into a "problem 1/11" in FIG. 2G.
After the foregoing steps, the correlation matrix of FIG. 2G is considered to be <u>well formed</u> because it has distinct rows and columns. Each column provides a distinct signature of the respective problem. A column vector will hereinafter be referred to as a "code" of the problem corresponding to the column representing the problem.
Generating an Optimal Codebook From a Well-Formed Correlation Matrix
A <u>codebook</u> is a set of symptoms whose respective rows in the correlation matrix provide a distinct code for every problem. The various data reductions described above can be used to convert a correlation matrix into such a codebook. However, the codebook may still contain a very large number of symptoms which contribute little to detecting or identifying problems (although the example outlined above is, of course, small). Therefore, additional mechanisms are needed to reduce the size of codebooks while providing optimal identification of problems.
One approach for further reducing the size of codebooks is to develop a measure of distance among codes and use this measure to determine the distinguishability among the codes. A process can then be used to generate codebooks that accomplish a desired level of distinguishability using a minimal set of symptoms.
The <u>Hamming distance</u> between two codes p and q is the number of coordinates where the two codes are not similar. This distance between problems p and q relative to a set of symptoms S (rows) is referred to as <sub>s</sub>(p,q), which measures the distinguishability between codes of the respective problems for a given set of symptoms. The distance of a problem p from an entire set of problems P relative to a set of symptoms S will be designated as d<sub>s</sub>(p,P), which is the minimal distance between p and members of P for the given set of symptoms S. Moreover, d<sub>s</sub>(p,{}), i.e., the distance of a problem p from an empty set, is infinite. Similarly, the <u>radius</u> of a set of problems P, denoted by r<sub>s</sub>(P), is the minimal distance between the codes of the set of problems P relative to a set of symptoms S. The radius measures the minimal (worst case) distinguishability between the codes of P.
Given a correlation matrix such as that in FIG. 2G, an optimal codebook can be generated by finding a minimal subset of the symptoms that provides an acceptable level of identification of the problems, where the radius provides a measure of the identification level. A codebook of a given radius is <u>minimal</u> if none of its symptoms can be eliminated without decreasing its radius.
To summarize, given a set of problems P, a well formed correlation matrix for P, and a distance measure d such that r(P) ≥ d where S is the set of symptoms of the correlation matrix, the objective is to find a minimal set of symptoms S' ⊆ S (codebook) such that r<sub>s</sub>,(P) ≥ d.
The creation of an optimal codebook may be performed in a "preprocessing" stage, which allows one to trade off computation time in creating the codebook for faster execution time during a decoding stage using the optimized codebook. The process for generating an optimal codebook in accordance with the aforementioned objectives will now be described with reference to FIG. 3.
In step 301 of FIG. 3, the optimized codebook S is initialized to the null set (S = {}), and the set of problems in P (from the well-formed correlation matrix) covered by the codebook is also initialized to the null set (Q = {}). In step 302, a test is made to determine whether the problems covered by the codebook are identical to the problems covered by the well-formed correlation matrix. If all the problems are covered by the codebook S, the process continues to step 317 to generate the optimized codebook S by eliminating symptoms from S while maintaining the radius above the required one d. Accordingly, step 317 is executed in which the next symptom s (not already examined) is retrieved from S. In step 318, if there are no more symptoms, i.e., all the symptoms in S have been examined, the codebook S is considered to be complete and minimal in step 303 and the process terminates and exits at step 304, the optimized codebook being represented by S. Otherwise, if there are more symptoms, the process continues to step 319, in which the radius of the set of problems P relative to codebook S minus the symptom s is compared to the required distance d. If the radius is not smaller than d, the symptom s is removed from S in step 320. In any case, the process iterates to step 317. If in step 302 not all problems are covered by the codebook S, the process continues to step 305.
At step 305, the next problem p is selected from the problem set P\Q, and the Hamming distance between this problem and the problem set Q covered by the optimized codebook is determined in step 306. In step 307, if this distance is greater than or equal to the specified distance measure d, then problem p is added to the set of problems covered by the codebook in step 308 (i.e., Q = Q U {p}) and processing resumes at step 302. Executing step 308 indicates that the codebook S already distinguishes p from Q by an appropriate distance.
If the determined Hamming distance is not greater than or equal to the distance measure d in step 307, this indicates that the codebook S does not provide sufficient distinction for problem p and needs to be extended to meet the desired quality measure d. Accordingly, step 309 is executed, in which the next symptom s (not already covered in S) is retrieved from the well-formed correlation matrix. In step 310, if there are no more symptoms, this indicates that all the symptoms not included in optimized codebook S have been examined, and step 311 is executed. In step 311, one symptom is selected from all the candidates previously generated in step 316 (discussed below), the one selected being the one which maximizes the distance d<sub>S∪{s}</sub>(p,Q). This selected symptom is added to S (i.e., S = S ∪ {s}) and processing resumes at step 307.
If, on the other hand, there are more symptoms to consider in step 310, the subset of problems Q' of Q is determined in step 313. Q' is the subset of problems of Q such that the Hamming distance of every problem q ∈ Q' from p relative to the codebook S, d<sub>s</sub>(p,q), is equal to the Hamming distance of p from the entire set of problems Q, d<sub>s</sub>(p,q). Then, s can be a candidate only if by adding it to the codebook S the distance of p from a member of Q' increases. Hence, in step 314, a search for a problem q ∈ Q' such that d<sub>S∪{s}</sub>(p,q) > d<sub>s</sub>(p,q) is performed. If such q does not exist, the symptom s is ignored (step 315). Otherwise, s is considered to be a candidate for S in step 316, and processing resumes at step 309.
The above process can be used to generate an optimal codebook from a well-formed correlation matrix. The process is finite due to the specified restriction r(P) ≥ d. When the process terminates at step 304, the set Q equals the set P and all problems are covered by the optimal codebook S. Moreover, the optimal codebook S satisfies the distinguishing criterion d ≤ r<sub>s</sub>(P) and is minimal. The complexity of the process is polynomial in the number of problems and symptoms.
The process can be incrementally applied with minor variations to handle additional new problems by simply extending the codebook to cover the new problems. There is no need to regenerate the entire codebook. Similarly, if certain symptoms become unavailable, they may be replaced with new symptoms by extending the codebook rather than regenerating it. This flexibility to handle changes in the codebook may be important in an environment where the problems of interest and the observable symptoms can vary. Distance measures other than Hamming distances can, of course, be used, and the invention is not limited in this regard.
The above discussion explains how to generate a codebook from a causality graph by first generating a causality matrix and then selecting a codebook. It will be recognized, however, that a codebook can be generated directly from a causality graph without first generating a causality matrix. As outlined above, the following mappings can be made between a causality graph and a causality matrix: <tables id="tabl0001" num="0001"><table frame="all"><tgroup cols="2" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="78.75mm" /><colspec colnum="2" colname="col2" colwidth="78.75mm" /><thead valign="top"><row><entry namest="col1" nameend="col1" align="center">GRAPH</entry><entry namest="col2" nameend="col2" align="center">CAUSALITY MATRIX</entry></row></thead><tbody valign="top"><row><entry namest="col1" nameend="col1" align="left">symptom node</entry><entry namest="col2" nameend="col2" align="left">row</entry></row><row><entry namest="col1" nameend="col1" align="left">problem node</entry><entry namest="col2" nameend="col2" align="left">column</entry></row><row><entry namest="col1" nameend="col1" align="left">directed path from event to a problem node</entry><entry namest="col2" nameend="col2" align="left">matrix cell</entry></row><row><entry namest="col1" nameend="col1" align="left">weight on path</entry><entry namest="col2" nameend="col2" align="left">probability (correlation symbol)</entry></row><row><entry namest="col1" nameend="col1" align="left">set of symptom nodes reachable from a problem node via directed paths. S(p) = symptoms of p.</entry><entry namest="col2" nameend="col2" align="left">code of a problem</entry></row><row><entry namest="col1" nameend="col1" align="left">size of difference among two sets of nodes |S(p1)<sub>Δ</sub>S(p2)|</entry><entry namest="col2" nameend="col2" align="left">Hamming distance among codes</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="left">a minimal difference set among symptoms set of two problems. r=Min{|S(p1)<sub>Δ</sub>S(p2)|; p1, p2}</entry><entry namest="col2" nameend="col2" align="left">radius</entry></row></tbody></tgroup></table></tables>
The mappings above can also be used to generate a codebook directly from a graph by mimicking the process for the causality matrix. Thus, direct generation of the codebook can be performed by the following steps: <ul id="ul0006" list-style="none" compact="compact"><li>(1) Simplify the causality graph as explained with reference to FIGs. 2A to 2E.</li><li>(2) Eliminate redundant nodes (problems and symptoms) from the causality graph. Two symptom nodes are distinguishable if they share the same set of problems that lead to them via directed paths. Two problem nodes are distinguishable if they lead via directed paths to the same set of symptoms. Thus, problem and symptom nodes that are redundant because of indistinguishability are eliminated.</li><li>(3) Select symptoms that distinguish problems to within a given desired distance.</li></ul>
Expanding Codebooks to Include Probabilistic and Temporal Codes
In many cases, symptoms may be randomly caused by problem events. A <u>probabilistic correlation model</u> is a matrix which contains for each problem p (column) and each symptom s (row) the conditional probability that s will be caused by p. This is really just a special case of the general model outlined previously where the probabilities were 0 or 1. Where it is difficult to obtain accurate estimates of the probabilities, discrete probability values such as high (h), medium (m), or low (l) may be used to indicate relative probability levels. That is, the elements of the correlation matrix may take on values from the set {h,m,l}.
Temporal correlations among events may also be indicated by values which represent a time period from the occurrence of the problem until generation of the symptom. Additionally, temporal correlations among symptoms may also be specified. In either case, a discrete measure from the set comprising {1 (long), m (medium), s (short), 0 (never)} may be used.
The above correlation measures may be combined to refine the correlation model. For example, the correlation matrix may include pairs of the form {Pr, t) where Pr is a probability indication from {h,m,l} and t is a time indication from {l,m,s,0}. The pair (h,s) in the correlation matrix would indicate that the respective problem may cause the symptom with high probability over a short time window.
A generalized correlation model may be defined to include: <ul id="ul0007" list-style="dash" compact="compact"><li>a set of problem events P and a set of symptom events S</li><li>a set of correlation indicators I</li><li>a correlation matrix whose columns correspond to members of P, whose rows correspond to members of S, and whose elements are indicators from I.</li><li>a distance measure δ : I x I → <img file="EP0760939B1_D0001.tif" />, where <img file="EP0760939B1_D0002.tif" /> is the set of non-negative real numbers. This measure δ provides the distance (asimilarity measure) between two correlation indicators.</li></ul>
For example, the deterministic correlation model described above is obtained when the set of indicators is I = {0,1} and the Hamming distance (a similarity measure) function is given by the relation: <tables id="tabl0002" num="0002"><table frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="52.50mm" /><colspec colnum="2" colname="col2" colwidth="52.50mm" /><colspec colnum="3" colname="col3" colwidth="52.50mm" /><tbody valign="top"><row><entry namest="col1" nameend="col1" align="center">δ<sub>H</sub></entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">1</entry></row><row><entry namest="col1" nameend="col1" align="center">0</entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">1</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="center">1</entry><entry namest="col2" nameend="col2" align="center">1</entry><entry namest="col3" nameend="col3" align="center">0</entry></row></tbody></tgroup></table></tables> where the columns and rows represent the indicator symbol and the numbers in the matrix represent the respective Hamming distance measure. Note that absence of a symptom (0) perfectly matches absence of a symptom (0) and therefore has no mismatch (0).
Given a generalized correlation model, the <u>code</u> of a problem p is the vector of indicator values of the respective correlation matrix column. The distance between two such codes p and q is given by the following function: d<sub>s</sub>(p,q) = Σ<sub>s∈S</sub>δ(p<sub>s</sub>,q<sub>s</sub>) where p<sub>s</sub> is the coordinate of p corresponding to the symptom s, that is, the component of the correlation matrix in column p and row s. In the case of the deterministic correlation model, the distance between two codes, determined using δ<sub>H</sub> in the table above, is the number of coordinates where the vectors have different components.
Once a distance function between codes is defined, the definition of radius described previously can be applied. Therefore, the codebook generation problem and process described above can be generalized, and the process of FIG. 3 can be used for a generalized correlation model when the appropriate distance function is used.
An example will now be provided to illustrate how this generalization can be applied to solve the problem of generating a codebook for a probabilistic correlation model.
Assuming a correlation matrix which uses indicators from the set I = {h,m,l} for high, medium or low probability, the following is an example of a distance measure (measure of mismatch) which can be used: <tables id="tabl0003" num="0003"><table frame="all"><tgroup cols="4" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="39.37mm" /><colspec colnum="2" colname="col2" colwidth="39.37mm" /><colspec colnum="3" colname="col3" colwidth="39.37mm" /><colspec colnum="4" colname="col4" colwidth="39.37mm" /><tbody valign="top"><row><entry namest="col1" nameend="col1" align="center">δ</entry><entry namest="col2" nameend="col2" align="center">I</entry><entry namest="col3" nameend="col3" align="center">m</entry><entry namest="col4" nameend="col4" align="center">h</entry></row><row><entry namest="col1" nameend="col1" align="center">1</entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">α</entry><entry namest="col4" nameend="col4" align="center">1</entry></row><row><entry namest="col1" nameend="col1" align="center">m</entry><entry namest="col2" nameend="col2" align="center">α</entry><entry namest="col3" nameend="col3" align="center">0</entry><entry namest="col4" nameend="col4" align="center">β</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="center">h</entry><entry namest="col2" nameend="col2" align="center">1</entry><entry namest="col3" nameend="col3" align="center">β</entry><entry namest="col4" nameend="col4" align="center">0</entry></row></tbody></tgroup></table></tables> In the above example, the factors 0 ≤ α, (β) ≤ 1 measure the similarity between medium and low probability (respectively, high and medium probability). A possible choice, for example, is α = β = 0.5.
The above defines a distance measure among probabilistic codes. For example, consider the following two codes for problems using a codebook of 6 observed symptoms:<maths id="math0001" num=""><math display="block"><mrow><mtext>p = (l,l,h,m,m,h)</mtext></mrow></math><img file="EP0760939B1_D0003.tif" /></maths><maths id="math0002" num=""><math display="block"><mrow><mtext>q = (m,l,m,h,l,l)</mtext></mrow></math><img file="EP0760939B1_D0004.tif" /></maths><maths id="math0003" num=""><math display="block"><mrow><mtext>d(p,q) = δ(l,m)+δ(l,l)+δ(h,m)+δ(m,h)+δ(m,l)+δ(h,l)</mtext><mspace linebreak="newline" /><mtext> = 0.5 + 0 + 0.5 + 0.5 + 0.5 + 1 = 3.</mtext></mrow></math><img file="EP0760939B1_D0005.tif" /></maths> By selecting various measures of similarity, different strategies can be reflected to measure distinction between codes. For example, in distinguishing among codes, all symptoms having a medium probability of occurring can be ignored. This would be reflected by setting α = β = 0. The distance between p and q in the above example would thus become:<maths id="math0004" num=""><math display="block"><mrow><mtext>d(p,q) = 0 + 0 + 0 + 0 + 0 + 1 = 1 .</mtext></mrow></math><img file="EP0760939B1_D0006.tif" /></maths> This distance reflects coordinates where one problem is very likely to show a symptom while the other problem is unlikely to show the symptom. Coordinates where symptoms provide uncertain signals are ignored. The described codebook generation process yields a minimal one whose codes are sufficiently distinct in the sense of distance between probabilistic codes defined above.
Of course, in the real world, many probabilistic correlations may be unknown, and the model cannot be tailored to take advantage of these relationships as described above. However, one of ordinary skill in the art will recognize that the correlation model can be easily tailored to accommodate different systems and make use of all available information as needed to practice this aspect of the invention.
Performing Correlation Through Decoding
Once an optimal codebook for a given set of problems and symptoms has been generated as outlined above, the optimal codebook can be used to decode symptoms which occur during system operation and to generate reports indicating detected and/or identified problems (see FIG. 1A). The event decoder 10 of FIG. 1A classifies a vector of observed symptoms into the most appropriate code. Generally, symptoms are either observed or not observed, but the principles of the invention are easily applied to probabilistic determinations where observations are uncertain.
For example, suppose that a codebook contains 6 symptoms. An observation described by a=(0,0,1,0,1,1) indicates that symptoms 3, 5, and 6 were detected while the other symptoms did not occur. Assuming there is no problem whose code is an exact match for a, the codes of problems p and q, given by p=(0,0,1,0,0,1) and q=(1,0,1,0,1,1) are very similar to a. In a real system, symptoms may be lost or generated spuriously, so it is necessary for the decoding process to find the "best fit" problem even though none matches exactly the set of symptoms. One method of finding the "best fit" problem is to use a mismatch measure.
The Hamming distances between the two observed symptom vectors d(p,a) = d(q,a) = 1 are identical since both codes differ from the observation vector in one symptom only (5 for p and 1 for q), However, there is an important difference between p and q with respect to their similarity to a. The observation a could be caused by p if symptom 5 were lost, but for q to be the cause of the observation a, symptom 1 would have to be spuriously generated, which in most systems is less likely than losing messages. The concept of a mismatch measure can help capture this likelihood to determine which problem is a better match for a given set of symptoms. Event decoder 10 of FIG. 1A would thus be able to select p as the more likely explanation of observation a.
A mismatch measure can be defined as a function ∂: {0,1}xI → <img file="EP0760939B1_D0007.tif" /> which assigns to a symptom (1 if the symptom is observed, 0 if it is not observed) and a corresponding correlation indicator i, a measure of mismatch between the observation and a code. The value of ∂(1,i) measures the mismatch between an observation of a symptom and a code where it occurs with correlation i. Similarly, ∂(0,i) measures the mismatch between the lack of observation of a symptom and a code where it occurs with correlation i.
For example, in the deterministic correlation model I={0,1}, if an observed symptom matches the expectation of a code (i.e., it matches that symptom's entry in the codebook), then the degree of mismatch is given by ∂(1,1) = ∂(0,0) = 0. This means that if the code expects the symptom to occur (or not to occur) and it is observed (or is not observed), there is a perfect match between the observation and the code. If the code expects a symptom to occur but the symptom is not observed (e.g., due to loss), the measure of mismatch ∂(0,1) = α assigns a weight to loss of the symptom. Similarly, a spurious generation of a symptom not anticipated by a code will carry a mismatch measure of ∂(1,0) = β. If α is chosen to be smaller than β, this would indicate a greater mismatch for a spurious event.
Mismatch measures may be described using tables in a manner similar to distance measures. Columns represent correlation symbols while rows represent observations {0,1}. For example, the mismatch measure for the deterministic model is given below: <tables id="tabl0004" num="0004"><table frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="52.50mm" /><colspec colnum="2" colname="col2" colwidth="52.50mm" /><colspec colnum="3" colname="col3" colwidth="52.50mm" /><tbody valign="top"><row><entry namest="col1" nameend="col1" align="center">∂</entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">1</entry></row><row><entry namest="col1" nameend="col1" align="center">0</entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">α</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="center">1</entry><entry namest="col2" nameend="col2" align="center">β</entry><entry namest="col3" nameend="col3" align="center">0</entry></row></tbody></tgroup></table></tables> For a probabilistic correlation model, a possible mismatch measure is given by: <tables id="tabl0005" num="0005"><table frame="all"><tgroup cols="4" colsep="1" rowsep="1"><colspec colnum="1" colname="col1" colwidth="39.37mm" /><colspec colnum="2" colname="col2" colwidth="39.37mm" /><colspec colnum="3" colname="col3" colwidth="39.37mm" /><colspec colnum="4" colname="col4" colwidth="39.37mm" /><tbody valign="top"><row><entry namest="col1" nameend="col1" align="center">∂</entry><entry namest="col2" nameend="col2" align="center">1</entry><entry namest="col3" nameend="col3" align="center">m</entry><entry namest="col4" nameend="col4" align="center">h</entry></row><row><entry namest="col1" nameend="col1" align="center">0</entry><entry namest="col2" nameend="col2" align="center">0</entry><entry namest="col3" nameend="col3" align="center">0</entry><entry namest="col4" nameend="col4" align="center">α</entry></row><row rowsep="1"><entry namest="col1" nameend="col1" align="center">1</entry><entry namest="col2" nameend="col2" align="center">β</entry><entry namest="col3" nameend="col3" align="center">0</entry><entry namest="col4" nameend="col4" align="center">0</entry></row></tbody></tgroup></table></tables>
The above mismatch measure can be interpreted as follows. When a code expects a symptom with low or medium probability, absence of the symptom has no mismatch with predictions ∂(0,1) = ∂(0,m) = 0. When the code expects a symptom with high probability, absence of a symptom has a mismatch of level α. Similarly, occurrence of a symptom expected with high or medium probability matches the expectation, while occurrence of a symptom expected with low probability represents a mismatch of level β.
A <u>mismatch measure m</u> can be defined between an observation vector a and code p as the sum of the mismatch measures between respective coordinates:<maths id="math0005" num=""><math display="block"><mrow><msub><mrow><mtext>m</mtext></mrow><mrow><mtext>s</mtext></mrow></msub><msub><mrow><mtext>(a,p) = Σ</mtext></mrow><mrow><mtext>s∈S</mtext></mrow></msub><msub><mrow><mtext>∂(a</mtext></mrow><mrow><mtext>s</mtext></mrow></msub><msub><mrow><mtext>,p</mtext></mrow><mrow><mtext>s</mtext></mrow></msub><mtext>).</mtext></mrow></math><img file="EP0760939B1_D0008.tif" /></maths> This mismatch measure represents the degree to which the observed and absent symptoms of a match the code of p. It is expressly understood that the term "mismatch measure" can be more generally referred to as a <u>correlation measure</u> or <u>correlation distance</u> without limiting its application in the present invention. The above described tables can thus be replaced by measures of correlation (similarity) to produce the same results.
A decoder for a correlation model over a codebook S can be defined as a process that maps an observation a to the set of problems whose codes have minimal mismatch with a. Thus, given a codebook S, a set of problems P with codes over S, and a mismatch measure m<sub>s</sub>, an input observation a over S will be decoded, and an output will be generated corresponding to all problems p that minimize m<sub>s</sub> over P. With reference to FIG. 4, the decoding process will now be described in detail in accordance with the above objectives.
In step 401, Q (the set of problems to be considered) is initialized to P, P* (the set of decoded problems) is initialized to the null set, and m* (the minimal mismatch) is initialized to infinity. In step 402, a test is made to see if the set of problems to be considered has been exhausted. If so, step 403 is executed, in which all decoded problems are returned and the process exits in step 404.
Assuming there are still problems to be considered, in step 405 a problem is selected from Q and the problem is removed from Q. In step 406, the mismatch m<sub>s</sub>(a,p) is determined between the observed vector a and the problem p as described previously. In step 407, the determined mismatch is compared with the current minimal mismatch m*. If the newly determined mismatch is less than the current minimal mismatch, then step 408 is executed. In step 408, a new value for m* is assigned corresponding to the newly determined mismatch, and the problem p corresponding thereto is inserted into P* (i.e., the decoded problem set). Processing then resumes at step 402.
If, in step 407, the determined mismatch is not less than the current minimum mismatch value, a test is performed in step 409 to determine whether the determined mismatch is equal to the current minimum mismatch value. If they are equal, step 410 is executed, in which the problem p is added to the decoded problem set P*. It will be noted that multiple problems could have the same degree of mismatch and thus more than one problem could be inserted into P* in this instance. Finally, if the newly determined mismatch is not equal to the current minimal mismatch m* in step 409, the only remaining possibility is that it is greater than m* (step 411). In this case, processing resumes at step 402. When all problems have been considered, the decoded problem set P* is generated as an output in step 403.
The complexity of the above process is determined by step 406. The mismatch measure requires additions of |S| terms and then this is repeated |P| times, so the overall complexity is of the order |P| |S| additions and |P| comparisons. The process is suitable for executing in real-time and, due to the reduced complexity and amount of data in the optimized codebook, the amount of computation over other approaches is greatly reduced. Particularly in very large and complex systems, the increase in performance can be substantial.
The decoding process can be modified slightly to identify, instead of "best fit" matches for a given observation, codes which match the observation up to a particular level of tolerance from the "best" mismatch. That is, a level of tolerance T can be set and all codes that are within a mismatch of T above the minimum mismatch will result in the corresponding problem being output as part of the decoded problem set P*. To accomplish this, steps 407 and 409 of FIG. 4 would be modified slightly to compare m<sub>s</sub>(a,p) with m* + T rather than m*.
To summarize the above description of the decoding process, the steps in FIG. 4 determine the minimally mismatched codes that would explain a given observation vector. The measure of mismatch used can be selected to reflect a variety of considerations and sensitivities specific to a given system. Due to the simplicity of the decoding process (i.e., involving simple operations such as additions and comparisons), the process can be executed very fast and in real time.
A Specific Example Illustrating Various Aspects of the Invention
In order to more clearly illustrate the principles of the invention, a specific example will now be described in detail with reference to FIGs. 5A to 5E. FIG. 5A shows a well-formed deterministic correlation matrix (i.e., all problems cause certain symptoms with certainty) for 6 problems P producing 20 symptoms S. The Hamming radius for these problems is r(P) = 7 (i.e., the minimal distance of 7 is obtained between problems 1 and 3 and between problems 2 and 3). One can thus generate optimal codebooks for P that accomplish a Hamming distance of up to 7.
FIG. 5B shows the generation of an optimal codebook with a target distance measure of d = 1. Assuming that the problems are considered in order of 1 to 6 and symptoms are considered in order from 1 to 20, FIG. 5B shows seven "snapshots" of codebook S and problem set Q as the process illustrated in FIG. 3 is performed. At the seventh snapshot in FIG. 5B, the optimal codebook is complete with S<sub>1</sub> = {1,3,4} and a corresponding matrix as shown in FIG. 5C. Thus, the correlation matrix of FIG. 5A has been simplified to that of FIG. 5C for a distance measure of 1.
As another example, FIG. 5D shows an optimal matrix for the same correlation matrix of FIG. 5A (codebook S<sub>2</sub> = {1,2,3,10,15}) generated with a radius of 2 instead of 1. This illustrates how even small codebooks can be optimized to accomplish a significant level of distinction.
In order to perform decoding using either codebook S<sub>1</sub> or S<sub>2</sub>, a sample mismatch measure shown in FIG. 5E will be used starting with α = 1 and β = 10 (this is sufficiently large to prefer lost symptoms to spurious ones in selecting codes). Assuming that codebook S<sub>1</sub> is used, note that there is only one combination of symptoms which does not directly match one of the problems (i.e., there will be only one mismatch), which is a=(0,0,1). The trivial observation vector a=(0,0,0) is always excluded. Using the values of α = 1 and β = 10, the mismatch measures of a with the codes of the 6 problems are given by 2, 11, 12, 11, 1, 1. In this case, problems 2, 3, and 4 would require a spurious generation of symptom 4 to generate a. Since spurious events are penalized with a high mismatch level (β = 10), these codes are greatly mismatched with a. The decoding process will thus result in {P<sub>5</sub>, P<sub>6</sub>} returned as the "best" decoding of symptom vector a. Thus, either problem 5 or problem 6 could have generated the observation through the loss of a single symptom.
The above example will now be repeated for codebook S<sub>2</sub>. With the 5 symptoms shown in FIG. 5D, the number of possible non-trivial observations is 31, of which only 6 are exact codes. Considering first observations resulting from the loss of 1 symptom in the codes, since the distance among the codes in FIG. 5D is at least 2, none of these observations can be a code. This set includes the following 15 observations: {11000, 10100, 01100, 00110, 01010, 01111, 10111, 11011, 11101, 11110, 10010, 00011, 00101, 00001, 10000}. These observations will be decoded into the codes at distance 1 from which a symptom is lost. This means that at most two codes will be decoded from these observations.
Considering observations generated when two symptoms are lost, this set includes the 10 observations {00100, 00010, 01000, 10101, 10011, 11001, 10110, 01110, 01101, 01011}. The first 3 may be generated by multiple codes, while the remaining 7 may only be generated from the code for problem 3 by deleting two symptoms. That is, each of these 7 observations will be decoded as problem 3.
FIG. 6 shows how the principles of the invention can be applied in a system which includes satellites communicating with a ground station. In FIG. 6, elements 606 to 613 perform functions identically or similar to those of elements 6 to 13 in FIG. 1A. A ground station 620 communicates with a plurality of satellites 621, 622 and 623 by way of radio wave propagation. Each satellite may typically comprise numerous processing components including sensors and devices which may generate symptoms such as low power, device failures, and the like. These symptoms can be transmitted to ground station 620, which is connected to event detector 606. In accordance with the previous detailed explanation, the invention decodes events which occur during system operation and generates a report 614 corresponding to the one or more likely problems in the system. Because the number of events in the system of satellites can be quite large and the relationships among events complex, the data reduction principles of the present invention can result in significant performance advantages over conventional approaches.
The satellites shown in FIG. 6 may comprise a telecommunication system, for example. Instead of satellites, elements 621-623 may instead comprise ground-based telecommunication nodes having switches and multiplexors which may generate symptoms.
FIG. 7 shows how the principles of the present invention can be applied in medical diagnosis applications. Elements 706 to 713 perform the same or similar functions as elements 6 to 13 of FIG. 1. One or more sensors 720 may receive symptoms from a patient such as temperature, blood pressure, chemical levels, breathing rate, and the like. Moreover, a doctor may manually enter other symptoms through input means 721, such as through a menu. These symptoms could include not only those directly observable such as skin color, pain locations and the like, but could also include derived symptoms such as partial diagnoses based on the doctor's own knowledge or suspicions. Symptoms from sensors 720 and input means 721 are fed to event detector 706 in a manner similar to that for other embodiments of the invention. Based on the observed symptoms, the invention produces a report 714 or other indication of the likely diagnosis, such as on a graphics display or the like.
The apparatus of FIG. 7 may also be used to analyze financial market events by replacing sensors 720 with an appropriate data collection device (such as a computer program or other statistical filtering device) to compile prices, ratios, trends, etc. into events for event detector 706. In place of doctor input 721, an input device suitable for receiving human-observable events may be provided so that a market analyst may input such events.
It is possible to use an alternative decoding process that is entirely built upon table lookup. A perturbation analysis can be undertaken to divide all possible observations into appropriate classes. For each such perturbation, one can determine all codes from which it obtains. The decoding table may be generated in advance, and decoding becomes a simple and fast table lookup process. This is particularly useful when the code is efficient. The size of the lookup table could be 2<sup>|S|</sup>. In general, this may be very large. However, for efficient codes, |S|∼log|P| and, therefore, the size of the lookup table is of a similar order as |P|.
If the codebook has a large radius, the codes could admit significant perturbations while accomplishing unique decoding. This is entirely analogous to the design of error-correcting codes. With sufficient redundancy in the codebook, decoding can be very robust to lost or spuriously generated symptoms.
The larger the radius of the codebook, the smaller the number of ambiguous observations that will exist. When the radius is r, the number of observations that decode into a given code is approximately 2<sup>r/2</sup>, leading to a total of some |P|2<sup>r/2</sup> points that decode unambiguously. This represents a fraction of the observations space of approximately |P|2<sup>r/2-|S|</sup>. When |P|∼log(|S| -r/2), then most problems will be decoded unambiguously.
In summary, the principles of the invention outlined herein offer significant advantages over other approaches to event correlation and management, including the following: <ul id="ul0008" list-style="none" compact="compact"><li>(1) Real-time correlation computations are reduced significantly by preprocessing event knowledge to generate codebooks prior to real-time event detection and correlation. This is in contrast to typical event correlation systems based on artificial intelligence techniques which conduct indefinite searches during real time to correlate events. In extremely large and complex systems, the reduction in real-time processing requirements can significantly reduce the amount of hardware required and can result in faster problem diagnosis.</li><li>(2) A wide range of correlation models can be used and tuned (through a choice of correlation indicators, distance and mismatch measures) to achieve different strategies for correlation while using the same generalized process.</li><li>(3) The set of events to be monitored can be narrowed to only those that provide the highest information benefit, rather than arbitrarily monitoring all possible events, or an ad hoc set of events. This reduces the complexity of the correlation process and minimizes the waste of computer processing resources.</li><li>(4) The instrumentalities of the invention can be implemented with a relatively small set of code that can be operated on a single computer.</li></ul>
Generation of Causality Matrices
In addition to creating causality matrices manually, they may be generated through the use of a formalized language which verifies various data relationships and creates a matrix, or they may be created semi-automatically using statistical analysis and filtering using well-known techniques. Thus, event capture 7 and event validation 8 shown in FIG. 1A may be used to generate causality matrix 9 using either approach shown in FIG. 8, as described below.
The left side of FIG. 8 shows how events which result from event detector 6 (see FIG. 1A) may be processed using elements 801 through 806 to generate causality matrix 807 (these elements also illustrate the process which may be used). Alternatively, the right side of FIG. 8 shows how causality matrix 807 may be generated from an event model 809, an event propagation model 810, and a configuration specification 812. The latter approach provides significant benefits in that a formal, automatable process is provided for generating causality matrix 807 for a dynamically changing system from static event knowledge associated with the types of components in the system and the dynamic specification of a particular configuration. Either approach may be implemented using computer software and corresponding data files; and the resulting causality matrix 807 may be stored in a storage device such as a computer disk for later access. Variations on the approach shown in FIG. 8 are possible, and the two illustrated are not intended to limit the scope of the invention.
Beginning with the left side of FIG. 8, events received from event detector 6 (see FIG. 1A) are logged in event logger 801. This element may time-stamp the event and record "what happened"; for example, a disk drive error in one of the networked computer nodes illustrated in FIG. 1A. These events may be stored in an intermediate data file (not shown) for statistical analysis by element 802. Statistical analysis 802 analyzes the data produced by element 801 to identify correlations among events, and may be performed either in quasi-real time or in an off-line mode using historical data collected over a long period of time. Statistical analysis 802 may be performed using any well-known method, such as multiple linear regression analysis, and a detailed explanation of these well-known methods is not provided here. The purpose of element 802 is to identify correlations among events which are detected in the system (i.e., identify events that occur in pairs, where one event probably causes another event), and to store the correlation information into a data file 803.
After correlations among events are stored in data file 803, a filter 804 is applied to this data to remove weakly correlated data. This may be done by allowing a user to specify a particular correlation threshold or any other means to weed out weakly correlated events. The filtered data is then formatted into causality matrix 807 through the use of matrix generator 806 in accordance with the description of this matrix as previously described. Each of these operations can be programmed easily using a digital computer and any suitable computer language, such as C, FORTRAN, or LISP.
Referring now to the right hand side of FIG. 8, a process and means for creating causality matrix 807 by applying an event model 809, an event propagation model 810, and a particular system configuration 812 will be described. The GDME specifications shown in FIG. 8 represent one possible embodiment of a formal language for specifying the event and propagation models. Such a language may be processed by a compiler 808, such as a GDME compiler which reads "statements" read from a file or entered by a user. Other possible embodiments include languages with a different syntax from that described herein, different data structures, graphical representations, or any other means of specifying the static information in event model 809 and propagation model 810.
Any particular system monitored using the principles of the present invention can be characterized by a domain consisting of a set of objects (hardware, software, communications or others) which can generate events. These objects within the domain will be called event source objects (ESOs), indicating that each such object can be the source of one or more events. Each ESO can be characterized as belonging to a particular class, and each can be related to other ESOs via certain relationships. For example, a power supply object may be related to a CPU board object via the relationship "provides-power-to". Events may propagate among such relationships. For example, a problem event in the power supply may cause symptom events (as well as problem events) at the CPU board and other objects to which it "provides-power-to".
The information required to analyze events can be divided into two kinds: <ul id="ul0009" list-style="none" compact="compact"><li>(1) Generic knowledge about events associated with ESO classes. This knowledge may comprise an event model and an event propagation model which can be provided by the designer of each component at design time. The class to which an ESO belongs determines the set of exceptional events (problems) that may occur in the component, the local symptoms they cause, and the probability that they may cause these local symptoms. This information constitutes the event model for the class. The class to which an ESO belongs also may determine the set of relationships that ESOs of the class may participate in. Events may propagate along relationships to and from related ESOs. For example, the knowledge of various events of a power supply component and the manner in which these events may cause events occurring at ESOs to which the component "provides-power-to". This knowledge is typically generic to various types (classes) of ESOs. The specification of which class events may propagate along which relationships constitutes the event propagation model for the class.</li><li>(2) Specific knowledge about the set of specific instances of ESOs in a domain, and their specific relationships. For example, a given domain may include 14 workstations, each of which contains an instance of a power supply object and of various boards which this specific power supply object "provides-power-to". This data is assumed to be organized into a configuration specification for the particular domain, illustrated by element 812 in FIG. 8. Any data representation may be used to store this data, such as a memory data structure, a file, an object-oriented database, or others. Matrix generator 811 generates causality matrix 807 by interpreting event and propagation models 809 and 810, respectively, in a domain specified by configuration specification 812. This process may be performed either with compiler 808 using compilable statements or specifications (as described in more detail herein), or directly from event model 809 and propagation model 810. The interpretation may be performed as follows: <ul id="ul0010" list-style="none" compact="compact"><li>(a) Determine the set of all events (exceptional and observable) that can occur in the specific configuration. Each object in the configuration may generate any of the events specified for its class in the event model. The set of events in a given configuration is thus the union of all events that can be generated by all the objects in that configuration.</li><li>(b) Determine the causality closure. For every event in the set determined in step (a) above, the causality closure is the union of all observable events the event may cause and the probability it may cause each of them. This causality closure may be determined through the following recursive steps: <ul id="ul0011" list-style="none" compact="compact"><li>(1) If the event is an observable event then its causality closure is the single set consisting of the event itself.</li><li>(2) If the event is specified as an event that may cause a set of symptoms s<sub>1</sub>, ... s<sub>m</sub>, then the causality closure of that event is the union of the causality closures of s<sub>i</sub>, where i = 1 ...m.</li><li>(3) If the event is specified in the propagation model as an event that can propagate via certain relationships, and the configuration specifies that the object generating this event is related to objects o<sub>l</sub> ...o<sub>n</sub> via those relationships, then the causality closure of that event is the union of the causality closures of the corresponding imported events in o<sub>i</sub>, where i = 1 ...n.</li></ul></li></ul></li></ul>
As illustrated in FIG. 8, GDME specifications may be input to compiler 808 in FIG. 8 in various embodiments of the invention as described in more detail below. However, alternative forms of specifications may be used, such as graphical representations, and the invention is not intended to be limited in this regard. In various preferred embodiments, the GDME specifications may comprise the following compilable statements input to compiler 808: <ul id="ul0012" list-style="none" compact="compact"><li><u>INTERFACE statement:</u> defines a class of event source objects and provides the start of a definition block. All statements between and INTERFACE statement and END statement are associated with a definition block. A preferred statement syntax is: INTERFACE class-name DERIVED-FROM parent-class-name; where class-name is an alphanumeric name of the new type of objects being defined, and parent-class-name is an alphanumeric name of the generic type of objects the new class inherits from. The parent class must be either a "basic" class of the data model or a previously defined class.</li><li><u>ATTRIBUTE statement:</u> specifies an attribute, property and/or real-time measurement of an object. A preferred syntax for this statement is: ATTRIBUTE attribute-type attribute-name; where attribute-name is an alphanumeric name of an attribute which is unique within the scope of the definition block, and attribute-type is the one of the predefined set of basic types.</li><li><u>EVENT statement:</u> specifies an event that might be generated by objects in the class. Each event is specified by an EVENT statement as a Boolean expression on properties of the class or as a user function. A preferred statement syntax is: EVENT event-name MEANS description IS expression; where event-name is an alphanumeric name of an event unique within the scope of the definition block, description is quoted free text that describes the event and/or associates an action with it (intended for presentation to human operators), and expression is either a Boolean expression in terms of the object's attributes and events or a function name to be used to detect the event.</li><li><u>IMPORT statement:</u> specifies an event that an object in the class may import from another object. The event may propagate from an object of this class to other objects via one of the relationships that exists between the respective objects. A preferred statement syntax for this statement is: IMPORT event-name MEANS description FROM class-name VIA relationship-name WHERE imported-event-name; where event-name is an alphanumeric name associated with the imported event used to uniquely identify the event within the scope of the definition block; description is a quoted free text string that describes the event and/or associates an action with it (a programmed action or one intended to be presented to human operators); class-name is an alphanumeric name of the class from which the following events are imported; relationship-name is an alphanumeric name of one of the relationship attributes of this class; and imported-event-name is an alphanumeric name of an event being imported from the specified class.</li><li><u>CAUSALITY statement:</u> specifies a problem which may cause a set of observable events in the instances of the class. Observable events are those specified by an EVENT or IMPORT statement. A preferred syntax is: PROBLEM problem-name MEANS description CAUSES symptom WITH probability; : symptom WITH probability; where problem-name is an alphanumeric name of a possible problem with an object of the class; description is a quoted free text string that describes the problem and/or associates an action with it (a programmed action or one intended to be presented to human operators); symptom is an alphanumeric name of an observable event specified by either an EVENT or IMPORT statement; and probability may be 1 (low), m (medium), or h (high).</li><li><u>EXPORT statement:</u> groups sets of events into a single abstract event. Only events specified by an export statement are exported to the external world outside the class instance. A preferred syntax for this statement is: EXPORT aggregate-name MEANS description IS event-name, ... , event-name; where aggregate-name is an alphanumeric name of an abstract problem exported by the object, description is a quoted free text string that describes the problem and\or associates an action with it (a programmed action or one intended to be presented to human operators); and event-name is an alphanumeric name of an event that is specified by an EVENT, IMPORT or PROBLEM statement.</li><li><u>END statement:</u> terminates each definition block; each END statement should have a corresponding INTERFACE statement. A preferred syntax is: END class-name; where class-name is an alphanumeric name of the class being defined in the INTERFACE statement.</li></ul>
To summarize the foregoing syntax, GDME specification statements specify event knowledge associated with each object class (EVENT statements); the events that may occur in objects of the class and the symptoms that each such problem may cause (CAUSALITY statements); the events that may propagate to objects of the class from other related objects (IMPORT statements), and the events that can be externally observed in objects of the class (EXPORT statements). Other choices of syntax for specifying event and event propagation information may be equally suitable for this purpose.
Having described in detail syntax for various preferred GDME specifications, the operation and construction shown in the right half of FIG. 8 will now be described for an embodiment which uses a GDME formal event model. GDME statements comprising a plurality of the above statements are entered by a user into GDME compiler 808. The statements may be tailored for the particular system being monitored and the specific classes, attributes, probabilities and other parameters will be selected according to the particular type of system. GDME compiler 808, which may be constructed using the normal parsers and other well-known components in the software engineering field details of which are not provided here, generates event model 809 and propagation model 810 for each ESO class. These models are used by matrix generator 811 to analyze the events and causality associated with a specific domain described by the collection of entities and relationships stored in configuration specification 812.
Event model 809, for an embodiment using a formal GDME event model, is a data structure comprising, in various preferred embodiments, three things: <ul id="ul0013" list-style="none" compact="compact"><li>(1) A list of all events associated with a class. Each event has a name and a method (or procedure) to evaluate the expression specified by the EVENT statement to determine whether the event condition holds. This list and the required methods are generated by compiler 808 from the EVENT statements.</li><li>(2) A list of problems associated with a class. For each problem, a list of events it may cause is included, each specifying the probability of this causality. This list is generated by compiler 808 from the CAUSALITY statements.</li><li>(3) A list of aggregated events associated with a class. Each aggregate event has a name and a method to evaluate it. An aggregate event holds if any of the events it aggregates holds. This list is generated by compiler 808 from the EXPORT statements.</li></ul>
Propagation model 810 is a data structure comprising a list of all relationships associated with a class. It may additionally contain methods that are generated for determining the closure of the events that may propagate to other objects. This information may be generated by compiler 808 from the IMPORT statements.
Matrix generator 811, which differs from matrix generator 806, generates causality matrix 807 from event model 809, propagation model 810, and configuration specification 812 using steps illustrated in FIG. 9. Referring to step 901 in FIG. 9, matrix generator 811 first determines the set of problems as the union of all the problems of all the ESOs in the domain. These are determined by the class of each ESO recorded in event model 809 and appearing in configuration specification 812 (FIG. 8). At step 902, matrix generator 811 determines the set of symptoms in the domain as the union of all the symptoms of all the entities in the domain. Finally, at step 903, each element of the causality matrix is generated using the direct causality stored in event model 809, and using the indirect causality (events imported from other objects via relationships) by using the transitive closure of causality propagation using propagation model 810. The transitive closure may be determined via methods generated by compiler 808, or by other means. These methods encapsulate the event propagation model and use the configuration specification to infer the possible paths for propagation of events required in computing the closure. The resulting causality matrix 904 is used to generate an efficient codebook as described previously with relation to FIG. 1A.
<u>SUMMARY</u>
According to the above description, a method and apparatus is provided for specifying, detecting and identifying exceptional events (such as problems) in a system having observable events. Although many of the examples contained herein relate to computer networks, it is expressly understood that such examples do not in any way limit the scope of the invention. Using the teachings contained herein, one of ordinary skill in the art will be able to practice the invention in any system which produces observable events. It is apparent that many modifications and variations of the present invention are possible in light of the above teachings, and references to specific values or paradigms are by way of example only. It is, therefore, to be understood that within the scope of the appended claims the invention may be practiced otherwise than as specifically described. As one example, the invention may be practiced by distributing the decoding process across a number of computers, such that a complex system domain is partitioned into smaller domains, each domain having a local event correlator. Event correlators for the different domains may operate concurrently and interact with one another to selectively import/export events from one another.
32 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10546239B2 | Cited by | United States of America | Applicant |
18 members in 6 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 249282 | United States of America | – | |
| 24928294 | United States of America | A | |
| 24928294 | United States of America | A | |
| 9506426 | United States of America | W | |
| 9506426 | United States of America | W | |
| 249282 | – | – | – |
| US19940249282 | – | – | – |
| US9506426 | – | – | – |
| WO1995US06426 | – | – | – |
Members18
| Document | Office | Kind | |
|---|---|---|---|
| WO9532411A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2599495A | Australia | A | |
| US5528516A | United States of America | A | |
| EP0760939A1 | European Patent Office (EPO) | A1 | |
| US5661668A | United States of America | A | |
| EP0760939A4 | European Patent Office (EPO) | A4 | |
| US6249755B1 | United States of America | B1 | |
| EP0760939B1This record | European Patent Office (EPO) | B1 | |
| AT208064T | Austria | T | |
| ATE208064T1 | Austria | T1 | |
| DE69523588D1 | Germany | D1 | |
| DE69523588T2 | Germany | T2 | |
| US2003204370A1 | United States of America | A1 | |
| US6868367B2 | United States of America | B2 | |
| US2005137832A1 | United States of America | A1 | |
| US7003433B2 | United States of America | B2 | |
| US7107185B1 | United States of America | B1 | |
| US7337090B1 | United States of America | B1 |
55 legal events, as 6 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Patent lapsedLapsedMM4A | MM4A | IE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Be: lapsedLapsedBERE | BERE | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| New agentNV | NV | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| European patent in force as of 2002-01-01IF02 | IF02 | GB | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Supplementary search report drawn up and despatchedA4 | A4 | EP | |
| Designated contracting statesAK | AK | EP | |
| Main classification (correction)RHK1 | RHK1 | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0760939
- Publication, DOCDB
- 0760939
- Publication, EPODOC
- EP0760939
- Application
- 95920589
- Application, DOCDB
- 95920589
- Application, EPODOC
- EP19950920589
Titles3
- German
- GERÄT UND METHODE ZUR EREIGNISKORRELATION UND PROBLEMMELDUNG
- English
- APPARATUS AND METHOD FOR EVENT CORRELATION AND PROBLEM REPORTING
- French
- APPAREIL ET PROCEDE POUR CORRELER DES EVENEMENTS ET ASSURER LE SUIVI DE PROBLEMES
Classification
- CPC, 4
- G06F11/2257
- G06F11/2273
- G06F11/3466
- G06F2201/86
- IPC, 3
- G06F11 22
- G06F11 25
- G06F11 34
Designated states17
- Contracting states, 17
- Austria
- Belgium
- Switzerland
- Germany
- Denmark
- Spain
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden