-
HINTERGRUND
-
Ein Aspekt der Technik bezieht sich auf ein Erkennen von Anomalien in einer Verarbeitungsumgebung.
-
Große Hosting-Infrastrukturen und Plattformen bilden viele Verarbeitungsumgebungen, unter anderem Computersysteme, die für das Cloud-Computing verwendet werden, sowie Datenzentren von Unternehmen. Die Größe dieser Computersysteme, die Zahl der Transaktionen, die von den Systemen durchgeführt werden, und der große Umfang an verarbeiteten Daten machen diese Systeme anfällig für Anomalien. Bei einer Anomalie handelt es sich um eine unerwartete Änderung bei den ankommenden Daten oder um ein Muster in den ankommenden Daten, das von dem erwarteten Verhalten abweicht. Anomalien entstehen zum Beispiel durch Engpässe, Speicherverluste, Hardware-Fehler usw.
-
Ein Überwachen von Daten in komplexen Computersystemen in Bezug auf Anomalien und ein Erkennen von Anomalien in Echtzeit verhindern, dass sich solche Anomalien häufen und die Leistungsfähigkeit des Systems beeinträchtigen und im schlimmsten Fall dazu führen, dass das System oder ein Teil davon ausfällt.
-
Die WO 2005 / 109 893 A1 offenbart ein System und Verfahren zum Erkennen von Anomalien in einem Video. Das System umfasst einen digitalen Bildeingang zum Empfangen einer Vielzahl von Frames. Jeder Frame hat eine Vielzahl von Pixeln, die jeweils einer Pixelposition in jedem der Frames entsprechen. Das System verwendet ein Hintergrundmodell, das auf räumlich-zeitlichen Filterantworten an jeder Pixelposition im Frame beruht, und einen Bewegungsanomaliedetektor, um eine Bewertung für jedes Pixel auf der Grundlage des Hintergrundmodells an der Pixelposition zu erzeugen. Die Bewertung wird mit einem Schwellenwert verglichen, der eine maximale Punktzahl für die Pixelposition angibt, um das Hintergrundmodell anzupassen. Ein Meldesystem für anomale Bewegung löst ein Signal für anomale Bewegung aus, wenn der Vergleich der Punktzahl für mindestens ein Pixel mit der Schwellenwertpunktzahl angibt, dass die räumlich-zeitlichen Filterrückmeldungen am Ort dieses Pixels ausreichend vom Hintergrundmodell abweichen.
-
Die US 2011 / 0 035 188 A1 offenbart ein Verfahren und eine Vorrichtung zum Feststellen, welcher oder welche Zeitreihenparameter aus einer Vielzahl von Zeitreihenparametern, die sich auf den Betrieb eines Systems beziehen, mit einem ersten Betriebszustand des Systems korreliert sind. Das Verfahren umfasst das Bereitstellen von Zeitreihendaten jedes der Vielzahl von Zeitreihenparametern; das Ermitteln von mindestens zwei ersten Zeitperioden, wobei sich das System während der mindestens zwei ersten Zeitperioden in dem ersten Betriebszustand befindet; das Ermitteln mindestens einer zweiten Zeitperiode, wobei sich das System während der mindestens einen zweiten Zeitperiode in einem zweiten Betriebszustand befindet; das Ermitteln, jeweils für jeden Zeitreihenparameter, eines ersten charakteristischen Parameters, der sich auf eine erste Charakteristik der Zeitreihe des jeweiligen Zeitreihenparameters für jede der mindestens zwei ersten Zeitperioden und die mindestens eine zweite Zeitperiode bezieht; und das Ermitteln, welche Zeitreihenparameter mit dem ersten Betriebszustand des Systems korreliert sind, indem für jeden Zeitreihenparameter auf Grundlage der jeweiligen ersten charakteristischen Parameter ermittelt wird, ob der jeweilige Zeitreihenparameter mit dem ersten Betriebszustand des Systems korreliert ist oder nicht.
-
KURZDARSTELLUNG
-
Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines Computerprogrammprodukts und eines Computersystems zum Erkennen einer Anomalie in einer Verarbeitungsumgebung, welches einem geringeren Bedarf an Computing-Ressourcen aufweist. Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
-
Die Mängel des Standes der Technik werden beseitigt, und zusätzliche Vorteile werden durch die Bereitstellung eines Computerprogrammprodukts zum Erkennen einer Anomalie in einer Verarbeitungsumgebung geboten. Zu dem Computerprogrammprodukt gehört zum Beispiel ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung gelesen werden kann und Befehle speichert, die von der Verarbeitungsschaltung zum Durchführen eines Verfahrens ausgeführt werden, das beinhaltet: Erhalten, durch einen Prozessor, einer Reihe von Werten, die in einem Verarbeitungsintervall des Prozessors der Verarbeitungsumgebung gesammelt werden; Normalisieren, durch den Prozessor, der Reihe von Werten, um eine erste Reihe von normalisierten Werten zu erhalten; Erzeugen einer zweiten Reihe von normalisierten Werten, indem bei der ersten Reihe von normalisierten Werten ein Voraussagefilter angewendet wird; Erzeugen eines Vergleichswertes (comparison score), indem die erste Reihe von normalisierten Werten mit der zweiten Reihe von normalisierten Werten verglichen wird; und Ermitteln, ob der Vergleichswert eine Anomalie in Bezug auf mindestens einen anderen Vergleichswert darstellt, der von Werten abgeleitet ist, welche in dem Verarbeitungsintervall gesammelt wurden.
-
Computersysteme und Verfahren in Bezug auf einen oder mehrere Aspekte der Technik werden ebenfalls beschrieben und können hierin beansprucht werden. Ferner werden auch Dienste in Bezug auf einen oder mehrere Aspekte der Technik beschrieben und können hierin beansprucht werden.
-
Zusätzliche Merkmale und [ ] werden durch die Techniken der vorliegenden Erfindung umgesetzt. Weitere Ausführungsformen und Aspekte der Erfindung werden hierin im Einzelnen beschrieben und als Teil der beanspruchten Erfindung angesehen.
-
Figurenliste
-
Ein oder mehrere Aspekte der vorliegenden Erfindung werden besonders hervorgehoben und in den Ansprüchen am Ende der Beschreibung eindeutig als Beispiele beansprucht. Das Vorstehende und Aufgaben, Merkmale und Vorteile eines oder mehrerer Aspekte der Erfindung ergeben sich aus der nachfolgenden ausführlichen Beschreibung in Verbindung mit den beigefügten Zeichnungen, in denen:
- 1 ein Beispiel einer Datenverarbeitungsumgebung zeigt, die verwendet wird, um einen oder mehrere Aspekte einer Ausführungsform der vorliegenden Erfindung auszuführen;
- 2 eine Ausführungsform der Logik zeigt, die verwendet wird, um einen Prozess auszuführen, der einen oder mehrere Aspekte einer Ausführungsform der vorliegenden Erfindung beinhaltet;
- 3 einen Graphen zeigt, der einen berechneten normalen Wertebereich veranschaulicht, welcher verwendet wird, um zu ermitteln, ob ein Vergleichswert eine Anomalie darstellt,
- 4 einen Arbeitsablauf einer Ausführungsform eines Verfahrens zum Erkennen einer Anomalie in einer Verarbeitungsumgebung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung zeigt;
- 5 eine Ausführungsform einer Datenverarbeitungsumgebung mit einem einzigen Prozessor zeigt, um einen oder mehrere Aspekte der vorliegenden Erfindung einzubinden und zu verwenden; und
- 6 eine Ausführungsform eines Computerprogrammprodukts zeigt, um einen oder mehrere Aspekte der vorliegenden Erfindung einzubinden.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Technik stellt gegenüber Systemen und Verfahren zur Anomalieerkennung nach dem Stand der Technik eine Verbesserung dar, da Anomalien in Echtzeit erkannt werden und keine Basisdaten wie etwa ein zuvor festgelegtes Voraussagemodell und/oder Trainingsdaten verwendet werden. Bevor gegenwärtige Lösungen zur Anomalieerkennung Anomalien erkennen können, benötigen sie zuerst Basisdaten. Bei einigen Erkennungslösungen muss ein Modell umgesetzt werden, das definiert, was eine Anomalie in diesem Computersystem ist. Andere Erkennungslösungen benötigen „Trainingsdaten“, d.h. Daten, die einem System beibringen, welche Eigenschaften in den Daten Anomalien darstellen. Aufgrund der anpassungsfähigen Qualitäten der Aspekte der vorliegenden Erfindung kann mit dem Erkennen von Anomalien in Echtzeit ohne Basisdaten begonnen werden.
-
1 zeigt eine technische Architektur 100 einer Ausführungsform der Technik. Bei dieser Ausführungsform wird ein Computersystem 110, das eine Cloud und/oder ein Unternehmenssystem beinhalten kann, von einem Server 120 überwacht, der über eine Netzwerkverbindung 131 mit dem Computersystem 110 verbunden ist. Diese Netzwerkverbindung 131 beinhaltet eine drahtlose und/oder eine drahtgebundene Verbindung, ohne auf diese beschränkt zu sein. Die Software zur Anomalieerkennung wird von einem oder mehreren Prozessoren (nicht dargestellt) auf dem Server 120 ausgeführt. Bei anderen Ausführungsformen der Technik wird die Software zur Anomalieerkennung auf einer Ressource des Computersystems 110 selbst ausgeführt. Bei einer weiteren Ausführungsform der Technik wird die Ausführung der Software auf eine oder mehrere Ressourcen verteilt, die sich außerhalb des Computersystems 110 befinden und/oder in dieses integriert sind. Bei dieser Ausführungsform empfängt mindestens ein Sensor 130 in dem Server Daten in einer Zeitreihe von einer Ressource in dem Computersystem 110. Bei Ausführungsformen, bei denen das Computersystem 110 eine Cloud oder ein Datenverarbeitungssystem eines Unternehmens ist, empfängt der mindestens eine Sensor 130 mehrere Zeitreihendaten, da diese Daten von mehr als einer Ressource empfangen werden. Bei weiteren Ausführungsformen befindet sich der eine oder die mehreren Sensoren 130 in dem Computersystem 110 oder außerhalb davon.
-
Mit Bezug auf 2 wird eine Darstellung 200 der Module einer Ausführungsform des Systems zur Anomalieerkennung der Technik bereitgestellt. Bei dieser Ausführungsform wird eine Reihe von Modulen verwendet, um zu ermitteln, ob eine Anomalie in einer Verarbeitungsumgebung vorhanden ist. Die Technik bewertet, ob gegebene Daten in einer Zeitreihe in einem Computersystem eine Anomalie enthalten. Ohne auf das Folgende beschränkt zu sein, enthalten die Module: 1) ein Normalisierungsmodul 210; 2) ein Modul 220 zur zeitpunktabhängigen Anpassung; 3) ein multivariates Transformationsmodul 230; 4) ein adaptives Voraussagefilter 240; 5) ein Wertberechnungsmodul 250; 6) ein Verteilungsintervallmodul 260; und 7) ein Klassifizierungsmodul 270. Diese Module führen zusammen eine adaptive Logik aus, um zu bewerten, ob Daten in einer Folge (Zeitreihe) eine Anomalie enthalten. Durch Festlegen und Anpassen von wesentlichen Leistungsindikatoren (key performance indicators, KPIs) in einer Zeitreihe stellt die Technik letztlich fest, ob Daten in einer Zeitreihe auf eine Systemanomalie hinweisen.
-
Die Technik bewertet schließlich einen Vergleichswert, einen Wert, der den Unterschied zwischen einem erwarteten Datenwert und einem tatsächlichen Datenwert zu einem gegebenen Zeitpunkt darstellt. Durch Vergleichen dieser Vergleichswerte mit Vergleichswerten, die während eines ähnlichen Zeitraums in einem Computersystem berechnet wurden, ermittelt die Technik, ob eine Systemanomalie während der von den Vergleichswerten dargestellten Zeit aufgetreten ist.
-
Das Trennen einzelner Aufgaben in Module in der Ausführungsform von 2 ist ein nicht einschränkendes Beispiel einer Prozessverteilung und deutet nicht auf die Struktur des Computerprogrammcodes hin oder darauf, wo dieser Code ausgeführt wird. Ein Fachmann erkennt, dass die Funktionalität des Computerprogrammcodes in einem oder mehreren physischen Modulen umgesetzt und auf einem oder mehreren Prozessoren in einer oder mehreren Datenverarbeitungsressourcen ausgeführt werden kann. 2 ist zur Veranschaulichung bereitgestellt, um verschiedene Aktivitäten in dem Verfahren zu kennzeichnen, die von einem speziellen konfigurierten Computersystem ausgeführt und/oder in einem Computerprogrammprodukt umgesetzt werden.
-
Mit Bezug auf 2 wird das Normalisierungsmodul 210 verwendet, um Transaktionsdaten inkrementell zu normalisieren, die von mehreren Quellen in dem Computersystem 110 in Zeitreihen für entweder einen festgesetzten Zeitraum oder kontinuierlich bereitgestellt werden. Bei einer Zeitreihe handelt es sich um eine Folge von Datenpunkten, die in der Regel an aufeinanderfolgenden Zeitpunkten gemessen werden, die sich im Abstand von gleichmäßigen Zeitintervallen befinden.
-
Das Normalisierungsmodul 210 überwacht die Daten in einer von dem Computersystem bearbeiteten Zeitreihe in Echtzeit, um Mittelwerte und eine Standardabweichung von den Mittelwerten festzulegen, d.h. wesentliche Leistungsindikatoren (KPIs). Jeder KPI stellt Eigenschaften von Daten in einer Zeitreihe zu einem gegebenen Zeitpunkt (t) dar. Je länger das Normalisierungsmodul 210 aktiv ist, desto genauer sind die Mittelwerte und die Standardabweichung.
-
Gemäß einem Aspekt der vorliegenden Erfindung werden Trainingsdaten oder ein Datenmodell zum Identifizieren einer Anomalie [ ]. Das Normalisierungsmodul 210 und andere Module des Systems sind stattdessen adaptiv, d.h., dass diese Module ihr Verhalten auf der Grundlage der vorhandenen Ressourcen ändern. Wenn sich die Muster in den empfangenen Daten ändern, passt sich das Normalisierungsmodul 210 somit an. Da sich mit der Zeit Daten anhäufen, erhöht sich die Genauigkeit des Systems. Was insbesondere anfänglich beim Initialisieren des Programms als eine Anomalie angesehen werden kann, erweist sich später als eine Abweichung, die nicht anormal ist. Die Ausgaben des Normalisierungsmoduls 210 sind normalisierte KPIs. Jeder normalisierte KPI stellt Werte dar, die sich auf Daten in einer Zeitreihe beziehen, welche zu einem gegebenen Zeitpunkt (t) von einem Sensor 130 empfangen wurden.
-
Bei der Ausführungsform von
1 beginnt der Normalisierungsprozess in dem Computersystem
110, sobald Daten von mindestens einem Sensor
130 zur Verfügung gestellt werden. Die Zeitreihe wird dargestellt durch x
t = (x
t(1) ... x
t(n)), wobei t im Laufe der Zeit unbegrenzt größer wird; die Dimension von n stellt die zu einem gegebenen Zeitpunkt überwachte Gesamtzeit dar. Die Komponenten von x sind heterogen, wenn jeder Sensor verschiedene Daten von verschiedenen Teilen des Systems sammelt. Bei einer Ausführungsform der Technik wird die Zeitreihe von Daten anhand der folgenden Gleichung 1 auf einen KPI normalisiert. Jede ankommende Stichprobe x
t wird wie folgt in Echtzeit normalisiert:
-
Die Mittelwerte µ
t und die Kovarianzmatrix Σ
t\ (von der angenommen wird, dass sie diagonal ist) werden zu einem Zeitpunkt t ebenfalls wie folgt inkrementell geschätzt:
wobei sich „Diag“ auf den Diagonaloperator bezieht (den Operator, der die Diagonale einer Matrix extrahiert) und T der Transponierungsoperator ist. Bei einer Ausführungsform der Technik ist es wünschenswert, das inkrementelle Schätzen von Mittelwerten und Kovarianzen an einem spezifizierten Zeitpunkt zu unterbrechen, um ein Normalisieren in einem anormalen Bereich zu vermeiden.
-
Zurück zu 2, wo das Modul 220 zur zeitpunktabhängigen Anpassung dargestellt ist. Das Modul 220 zur zeitpunktabhängigen Anpassung hilft bei der Anomalieerkennung, wenn zeitpunktabhängige Datenmuster die Daten in der Zeitreihe verglichen mit einer zu einem anderen Zeitpunkt empfangenen Zeitreihe beeinträchtigen. Bei einigen Ausführungsformen gibt der Benutzer zeitpunktabhängige Datenmuster in das System ein, so dass etwaige Anomalien in den Daten, die diesen Mustern zugeordnet werden können, aus den Zeitreihendaten und den KPIs extrahiert werden können. Bei Ausführungsformen der Technik, bei denen Daten nicht durch zeitpunktabhängige Faktoren beeinträchtigt werden, wird dieses Modul weggelassen und/oder übergangen.
-
Ein Eingeben zeitpunktabhängiger Datenmuster in das System verringert potenziell falsche Anomalieergebnisse. Während in einem gegebenen System 100 Transaktionen um 2 Uhr nachts an einem Sonntag zum Beispiel normal sein können, könnte diese geringe Anzahl an einem Montag um 14 Uhr nachmittags auf ein Problem hinweisen. Bei einer Eingabe würden zeitpunktabhängige Daten, die diese Bedingung darstellen, ein falsches Anomalieergebnis entfernen, wenn die Anzahl der an einem Sonntagmorgen verarbeiteten Transaktionen zum Beispiel weitaus geringer ist als an einem Montagnachmittag erwartet. In einem Computersystem, bei dem sich Zeitreihendaten je nach zeitpunktabhängigen Verwendungsmustern stark unterscheiden, ist das Modul 220 zur zeitpunktabhängigen Anpassung daher nützlich, denn das, was zu einem gegebenen Zeitpunkt als anormales Datenmuster identifiziert werden könnte, kann aufgrund zeitpunktabhängiger Faktoren zum gegenwärtigen Zeitpunkt tatsächlich als normal gelten. Falsche Anomalieergebnisse werden somit durch die Eingliederung dieses Moduls verringert. Durch ein Beseitigen zeitpunktabhängiger Einflüsse wird die Genauigkeit der Daten erhöht.
-
Neben zeitpunktabhängigen Faktoren stellt die Ressource in dem Computersystem 110, die die Zeitreihendaten erzeugt hat, einen weiteren Faktor dar, der die KPI-Werte beeinträchtigen kann. Der tatsächliche Wert des KPI kann irreführend sein, da die Leistung und die Merkmale der Datenverarbeitungsressourcen in einem Computersystem 110 wie beispielsweise einer Cloud oder einer Datenverarbeitungsumgebung eines Unternehmens variieren. Um die Auswirkungen dieser externen Faktoren zu beseitigen, wird der KPI daher weiter durch eine multivariate Transformation in dem multivariaten Transformationsmodul 230 von 2 angepasst.
-
Das multivariate Transformationsmodul 230 wandelt jeden KPI in einen multivariaten KPI (mKPI) um, indem wie nachstehend beschrieben eine Transformation angewendet wird. Bei der Transformation wird jeder von dem Normalisierungsmodul 210 berechnete KPI an einen neuen Platz verschoben, der für eine Anomalieüberwachung geeigneter ist. Das multivariate Transformationsmodul 230 verringert die tatsächlichen Dimensionen des KPI, indem die ursprünglichen Messwerte für jeden Zeitpunkt in der Zeitreihe in einen mKPI transformiert werden.
-
Anstatt den KPI zu verwenden, der eine Ansicht der Zeitreihendaten an dem Platz der Ressource ist, von der er stammt, werden somit, sobald der KPI in einen mKPI umgewandelt ist, diese Zeitreihendaten angezeigt und im Kontext des Computersystems 110 als Ganzes verstanden. An diesem Platz sind die Bewegung und die Muster der Daten von einer gegebenen Zeitreihe leichter erkennbar, unabhängig von der Ressource in dem Computersystem 110, von dem sie stammen.
-
In einem Computersystem ohne Spezifikationen ist das Auftreten von Abweichungen zwischen den Ressourcen, den externen Faktoren, die dieses Modul zu beseitigen versucht, weniger wahrscheinlich. Eine Ausführungsform der Technik ohne dieses Modul kann daher eine Anomalie in der Verarbeitungsumgebung anzeigen.
-
Zu den Techniken zum Ableiten des mKPI von dem KPI gehören, ohne auf diese beschränkt zu sein, diskrete Cosinustransformation (DCT), diskrete Wavelet-Transformation (DWT), eine Mehrdimensional-zu-Mehrdimensional-Abbildung und/oder eine statistisch geschätzte Transformation wie beispielsweise eine Hauptkomponentenanalyse (HKA). Ähnlich wie der KPI stellt der mKPI auch Eigenschaften von Daten in einer Zeitreihe zu einem gegebenen Zeitpunkt (t) dar.
-
Bei einer Ausführungsform der Technik, bei der das multivariate Transformationsmodul
230 DCT verwendet wird, um die mKPI-Werte jedes Mal in der Zeitreihe abzuleiten, erzeugt die Transformation den nachstehenden Wert. In diesem Beispiel ist z
t der in Gleichung 1 abgeleitete normalisierte Wert, y
t stellt den transformierten Wert dar.
-
Bei der Ausführungsform von 2 wird diese multivariate Transformation an das adaptive Voraussagefiltermodul 240 weitergeleitet, sobald ein mKPI abgeleitet wurde. Dieses Modul verwendet ein Voraussagefilter, das auch als adaptives Voraussagefilter bezeichnet wird, da die Intelligenz zunimmt, wenn dieses Filter mehr Daten von einem gegebenen Computersystem bewertet.
-
Durch Anwenden einer logischen Ableitung bei einem mKPI verwendet das adaptive Voraussagefiltermodul 240 einen mKPI für einen gegebenen Zeitpunkt und sagt den nächsten mKPI an einem nächsten Zeitpunkt in der Zeitreihe voraus. Bei einem ersten mKPI für einen ersten Zeitpunkt (t) sagt das adaptive Voraussagefiltermodul 240 den mKPI an einem zweiten Zeitpunkt voraus, zum Beispiel t + 5 Minuten. Der vorausgesagte mKPI an dem zweiten Zeitpunkt erscheint später verglichen mit dem tatsächlichen mKPI an dem zweiten Zeitpunkt, der von dem multivariaten Transformationsmodul 230 empfangen wird. Für jeden t und entsprechenden mKPI berechnet das adaptive Voraussagefiltermodul 240 einen vorausgesagten mKPI am nächsten Zeitpunkt (t+x). Wenn es in einer gegebenen Zeitreihe zehn Zeitpunkte gibt und damit zehn mKPI-Werte, sagt das adaptive Voraussagefiltermodul 240 einen nächsten Wert für jeden der zehn mKPI-Werte voraus. Bei einigen Ausführungsformen der Technik schätzt das Voraussagefiltermodul 240 auch die Varianz um jeden vorausgesagten Wert.
-
Für jeden in das adaptive Voraussagefilter eingegebenen Datenpunkt kann das Filter die Daten zu einem späteren Zeitpunkt voraussagen. Wenn zum Beispiel zehn Werte in das Voraussagefilter von 10:00 Uhr eingegeben werden, werden zehn Ergebnisse erzeugt, zehn voraussagte Werte für einen späteren Zeitpunkt, beispielsweise 10:05 Uhr.
-
Zu den verschiedenen Ausführungsformen der Technik in dem adaptiven Voraussagefiltermodul 240 verwendeten Filter können gehören: ein Kalman-Filter, ein Fading-Memory-Polynomialfilter und/oder ein autoregressives Filter (AR), einen Ein-Schritt-voraus-Prädiktor und Varianten davon, ohne auf diese beschränkt zu sein. Die Filter sind rekursiv und arbeiten nicht im Stapelmodus. Jedes Filter verwendet stattdessen das Ergebnis des zuvor vorausgesagten mKPI und den neuen mKPI, um den nächsten mKPI vorauszusagen. Wie bei dem Normalisierungsmodul 210 werden die Voraussagen des adaptiven Voraussagefiltermoduls 240 mit zunehmender Datenmenge besser.
-
Eine Ausführungsform der Technik verwendet ein Fading-Memory-Polynomialfilter (FMP) in dem adaptiven Voraussagefiltermodul 240.
-
Die in den Gleichungen 1 und 4 abgeleiteten Variablen werden in der nachstehenden Gleichung wiederholt. Bei dieser Ausführungsform stellt der transformierte Wert von Gleichung 4 in dem FMP y
t eine der Komponenten des multivariaten Vektors y
t zum Zeitpunkt t dar, und ε
t ist eine Schätzung eines Voraussagefehlers, der zum Zeitpunkt t für die Komponente y
t gemessen wurde.
wobei ŷ
t-1 die vorausgesagte Stichprobe zum Zeitpunkt t - 1 ist, nachdem die Daten bis zum Zeitpunkt t - 2 beobachtet wurden. Die Variable ŷ'
t bezeichnet die geschätzte Ableitung erster Ordnung von ŷ
t, und 0 sei ein Parameter, der die Zeitkonstante des FMP-Filters wirksam definiert. Die erwartete Stichprobe ŷ
t zum Zeitpunkt t - 1 wird wie folgt geschätzt:
-
Das Filter erzeugt eine Schätzung des erwarteten Wertes ŷ
t und die Schätzungen der Varianz
um diesen erwarteten Wert.
-
Bei der Ausführungsform von 2 wird ein Vergleichswert mit dem Wertberechnungsmodul 250 berechnet, sobald die Varianz zwischen dem vorausgesagten mKPI zu jedem Zeitpunkt (t) und dem tatsächlichen mKPI zu diesem Zeitpunkt t für eine Zeitreihe mit einer gegebenen Anzahl von Zeitpunkten bekannt ist. Dieser Vergleichswert, der auch Erkennungswert genannt wird, wird von dem Wertberechnungsmodul 250 anhand der Residuen berechnet, die von der Differenz zwischen dem vorausgesagten Wert von dem adaptiven Voraussagefiltermodul 240 und dem tatsächlichen Wert pro mKPI abgeleitet wurden. Bei verschiedenen Ausführungsformen der Technik werden unterschiedliche Verfahren zum Berechnen dieser Werte verwendet, darunter Mitteln der Residuen, Suchen des Zentralwerts der Residuen, Suchen des geometrischen Durchschnitts der Residuen und/oder Berechnen eines gewichteten Wertes für einige oder alle dieser aufgezählten Verfahren, ohne auf diese beschränkt zu sein.
-
Eine Ausführungsform des Wertberechnungsmoduls
250 der Technik verwendet die nachstehende Berechnung, um einen Vergleichswert zu berechnen. In der Regel wird ein Vergleichswert auf der Grundlage der Statistik x
2 erzeugt, die wie folgt definiert ist:
-
Die Variable in der Gleichung oben wird abgeleitet und bezieht sich auf die Gleichungen 1 bis 6. Bei einer weiteren Ausführungsform der Technik wird der Vergleichswert anhand einer Berechnung ermittelt, die die Änderungen im Verhalten der Zeitreihe bei verschiedenen Dimensionalitäten erfasst. Nachstehend ist eine dimensionsstabile Statistik dargestellt, die das Erfassen von Verhaltensänderungen bei verschiedenen Dimensionalitäten ermöglicht:
-
Der Vergleichswert eines mKPI zu einem gegebenen Zeitpunkt in einer Zeitreihe zeigt allein noch nicht an, ob die entsprechenden Daten eine Systemanomalie darstellen. Zurück zu 2 wird der Vergleichswert nach seiner Berechnung ausgewertet, um zu ermitteln, ob dieser quantitative Wert eine Datenanomalie in dem gegebenen Computersystem 110 darstellt. Zur Unterstützung dieser Auswertung wird bei der Ausführungsform von 2 ein Verteilungsintervallmodul 260 verwendet. Das Verteilungsintervallmodul 260 sammelt über einen Zeitraum Vergleichswerte und ermittelt, welcher Wertebereich der normale Wertebereich für Vergleichswerte ist, die während eines festgelegten Zeitraums erzeugt werden, d.h. ein Wertebereich, der eine normale Verarbeitungsaktivität darstellt.
-
Nach seiner Zuweisung gruppiert das Verteilungsintervallmodul 260 die Werte bei einer Ausführungsform der Technik in einer Speicherressource, auf die das Verteilungsintervallmodul 260 zugreifen kann. Bei den im selben Zeitraster (bucket) zusammengefassten Werten handelt es sich um die Werte, die während eines festgelegten Zeitintervalls gesammelt wurden. Bei einer Ausführungsform der Technik kann die Größe dieses Zeitrasters oder vielmehr des Zeitintervalls, für das das Zeitraster Vergleichswerte sammelt, von dem Benutzer konfiguriert werden. Bei einer anderen Ausführungsform der Technik beruht die Größe des Zeitrasters auf der Fehlertoleranz des Computersystems.
-
Das Zeitraster in diesem Verteilungsintervallmodul 260 sammelt Werte im Verlauf eines festgelegten Zeitintervalls. Bei einer Ausführungsform der Technik stellt jedes Zeitraster zum Beispiel eine halbe Stunde dar, in der das Computersystem eingeschaltet ist und ausgeführt wird. Nach dem Sammeln von Werten während des festgelegten Zeitintervalls berechnet das Verteilungsintervallmodul 260 das erste Quartil, das zweite Quartil, das dritte Quartil und den Zentralwert der Werte in Echtzeit, wobei durch das Sammeln von Daten im Laufe der Zeit festgelegt wird, was in den Werten und damit in den Zeitreihendaten „normal“ und was „abnormal“ ist. Da die Berechnungen jedoch in Echtzeit stattfinden, gibt es nie einen Zeitpunkt, an dem kein normaler Wertebereich vorhanden ist, mit dem Ansammeln von immer mehr Daten während des festgelegten Zeitrasters wird dieser Bereich gerade geändert und passt sich an. Mit dem Ankommen der Daten berechnet das Modul kontinuierlich den ersten oberen Ausreißer, den unteren Ausreißer sowie das Interquartilintervall, den Interquartilbereich (IQB) und den Abstand zwischen dem ersten und dem dritten Quartil. Bei einer Ausführungsform der Technik handelt es sich bei dem normalen Wertebereich um den Bereich zwischen dem höchsten Ausreißer minus der Standardabweichung von dem Mittelwert und dem niedrigsten Ausreißer plus der Standardabweichung von dem Mittelwert.
-
Bei einer Ausführungsform der Technik sendet das Klassifizierungsmodul 270 ein Ergebnis zurück, das angibt, dass eine Anomalie aufgetreten ist, wenn die ankommende Stichprobe außerhalb eines normalen Wertebereichs liegt, der von den Ausreißern definiert wird, welche in dem Verteilungsintervallmodul 260 berechnet wurden. Die Grenzwerte dieses Bereichs können als Schwellenwerte bezeichnet werden. Ein Vergleichswert kann zum Beispiel mit einem Merker versehen werden, der eine Anomalie anzeigt, wenn der Wert über dem höchsten ersten Ausreißer, unter dem niedrigsten ersten Ausreißer liegt und/oder wenn der Abstand von dem Mittelwert des Wertes mehr als das Eineinhalbfache (1,5) der Standardabweichung beträgt. Anhand dieser von dem Verteilungsintervallmodul 260 festgelegten Schwellenwerte ermittelt das Klassifizierungsmodul 270, ob eine Anomalie vorliegt.
-
3 ist eine grafische Darstellung von Vergleichswerten, die in einem gegebenen Intervall grafisch dargestellt sind und mit dem oberen Schwellenwert des ermittelten normalen Wertebereichs verglichen werden. Wie in 3 gezeigt, werden die grafisch dargestellten Vergleichswerte abgeleitet, indem der tatsächliche mKPI an jeder Zeitposition in der Reihe mit dem vorausgesagten mKPI für die gleiche Position in der Reihe verglichen wird. Wenn der Schwellenwert des normalen Wertebereichs überschritten wird, stellen die Daten an dem Punkt in der Reihe, der diesem Vergleichswert entspricht, eine Anomalie dar.
-
Zurück zu 2: bei einer Ausführungsform der Technik sendet das Klassifizierungsmodul 270 einen Wert „1“ zurück, um eine in den Daten gefundene Anomalie anzuzeigen, sowie den Wert „0“, um anzuzeigen, dass keine Anomalien in den Daten gefunden wurden.
-
4 stellt einen Arbeitsablauf 400 einer Ausführungsform der Technik dar. Dieser Arbeitsablauf 400 beinhaltet das Entfernen zeitpunktabhängiger Faktoren aus den Daten und die Verwendung einer multivariaten Transformation, die wie oben beschrieben abhängig von den Eigenschaften der überwachten Verarbeitungsumgebungen verwendet werden.
-
Der Arbeitsablauf 400 soll verdeutlichen, dass die Aktivitäten, die die Transformation der Daten und die Ermittlung aufweisen, ob spezifische Daten eine Anomalie darstellen, nicht an spezifische Module gebunden sind. 2 ist ein Beispiel eines möglichen Programmmodells. Der Arbeitsablauf 400 zeigt eine Ausführungsform der Logik eines Aspekts der Technik in einem nichtmodularen Modell.
-
Mit Bezug auf 4 empfangen zuerst ein oder mehrere Sensoren 130 die Zeitreihendaten (S410). Diese Daten sind normalisiert, um individuelle KPls für Daten zu gegebenen Zeitpunkten in den Reihen festzulegen (S420). Die zeitpunktabhängigen Muster werden aus den KPls entfernt (S430). Sobald die zeitpunktabhängigen Daten entfernt sind, werden die KPIs einer multivariaten Transformation unterzogen, so dass Daten im Zusammenhang mit dem System als Ganzem und nicht als einzelnes Element des Computersystems 110, das die Daten erzeugt hat, gesehen werden können. Um die KPls an einen neuen Platz zu verschieben, werden die KPls in mKPIs umgewandelt (S440).
-
Der mKPI wird zu einem gegebenen Zeitpunkt mit Hilfe eines adaptiven Voraussagefilters gefiltert, um den mKPI an einem nächsten Zeitpunkt in der Zeitreihe vorauszusagen (S450). Das adaptive Filter wird verwendet, um einen nächsten mKPI für jeden Datenpunkt vorauszusagen. Die tatsächlichen mKPIs für einen Zeitpunkt werden mit dem von dem adaptiven Filter vorausgesagten Zeitpunkt für diesen Zeitpunkt verglichen, um einen Vergleichswert festzulegen (S460). Vergleichswerte werden über einen vordefinierten Zeitraum gesammelt, und während dieses Sammelns werden die Werte als zum ersten Quartil, zweiten Quartil und dritten Quartal zugehörig klassifiziert. Der Zentralwert, der erste obere Ausreißer, der untere Ausreißer und das Interquartilintervall werden berechnet (S470). Kriterien für einen normalen Bereich werden definiert (S480). Während des Sammelns der Werte werden die Grenzen des Bereichs mit fortschreitender Zeit mit mehr Daten festgelegt.
-
Während Werte gesammelt und zum Festlegen von Schwellenwerten verwendet werden, werden ankommende Vergleichswerte als normal oder als Anomalien klassifiziert. Die Genauigkeit des Systems nimmt zu, wenn mehr mKPls gesammelt werden, die Feststellungen werden jedoch in Echtzeit getroffen. Jeder Vergleichswert wird mit dem normalen Bereich verglichen (S490), und wenn der Wert in diesen Bereich fällt, wird ein Ergebnis zurückgesendet, das anzeigt, dass die Daten normal sind. Wenn der Wert außerhalb des Bereichs liegt, wird ein Ergebnis zurückgesendet, das anzeigt, dass die Daten eine Anomalie enthalten.
-
5 veranschaulicht ein Blockschaubild einer Ressource 500 in einem Computersystem 110 und/oder Server 120, das/der Teil der technischen Architektur bestimmter Ausführungsformen der Technik ist. Die Ressource 500 kann eine Schaltung 502 enthalten, zu der in bestimmten Ausführungsformen ein Mikroprozessor 504 gehören kann. Das Computersystem 500 kann auch einen Arbeitsspeicher 506 (z.B. eine flüchtige Speichereinheit) und einen Datenspeicher 508 enthalten. Der Datenspeicher 508 kann eine nichtflüchtige Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flash, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. beinhalten. Der Datenspeicher 508 kann eine interne Datenspeichereinheit, eine angeschlossene Datenspeichereinheit und/oder eine im Netz adressierbare Datenspeichereinheit beinhalten. Das System 500 kann eine Programmlogik 510 mit einem Code 512 beinhalten, der in den Arbeitsspeicher 506 geladen werden kann und von dem Mikroprozessor 504 oder der Schaltung 502 ausgeführt wird.
-
Bei bestimmten Ausführungsformen kann die Programmlogik 510 mit dem Code 512 in dem Datenspeicher 508 oder dem Arbeitsspeicher 506 gespeichert werden. Bei bestimmten anderen Ausführungsformen kann die Programmlogik 510 in der Schaltung 502 ausgeführt sein. Zwar wird in 5 die Programmlogik 510 getrennt von den anderen Elementen gezeigt, die Programmlogik 510 kann jedoch in dem Arbeitsspeicher 506 und/oder der Schaltung 502 ausgeführt sein.
-
Ein Verwenden der Verarbeitungsressourcen einer Ressource 500 zum Ausführen von Software, computerlesbarem Code oder Befehlen schränkt nicht ein, wo dieser Code gespeichert werden kann. Mit Bezug auf 6 beinhaltet ein Computerprogrammprodukt 600 in einem Beispiel ein oder mehrere nichtflüchtige computerlesbare Datenspeichermedien 602, um computerlesbare Programmcodemittel oder eine Logik 604 darauf zu speichern, um einen oder mehrere Aspekte der Technik bereitzustellen und zu ermöglichen.
-
Für den Fachmann ist ersichtlich, dass Aspekte der Technik als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Aspekte der Technik können daher die Form einer kompletten Hardware-Ausführung, einer kompletten Software-Ausführung (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform haben, bei der Software- und Hardware-Aspekte kombiniert sind, die allgemein hierin als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Aspekte der Technik können des Weiteren die Form eines Computerprogrammprodukts haben, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, die über einen darin enthaltenen computerlesbaren Programmcode verfügen.
-
Es können beliebige Kombinationen von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit darin enthaltenem computerlesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen haben, darunter elektromagnetische, optische Formen oder eine geeignete Kombination davon, ohne darauf beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen übertragen, weitergeben oder transportieren kann.
-
Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder eine geeignete Kombination davon handeln, ohne darauf beschränkt zu sein. Zu genauen Beispielen (einer nicht vollständigen Liste) für das computerlesbare Speichermedium gehören wie folgt: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computer-Diskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges physisches Medium handeln, das ein Programm enthalten oder speichern kann, welches von oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen verwendet wird.
-
Es können beliebige Kombinationen von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit darin enthaltenem computerlesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielfalt von Formen haben, darunter elektromagnetische, optische Formen oder eine geeignete Kombination davon, ohne darauf beschränkt zu sein. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen übertragen, weitergeben oder transportieren kann.
-
Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder eine geeignete Kombination davon handeln, ohne darauf beschränkt zu sein. Zu genauen Beispielen (einer nicht vollständigen Liste) für das computerlesbare Speichermedium gehören wie folgt: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computer-Diskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges physisches Medium handeln, das ein Programm enthalten oder speichern kann, welches von oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen verwendet wird.
-
In einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines geeigneten Mediums übermittelt werden, das drahtlos, drahtgebunden, ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination davon sein kann, ohne darauf beschränkt zu sein.
-
Computerprogrammcode zum Ausführen von Operationen in Verbindung mit Aspekten der Technik kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, zu denen eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“, Assemblierer oder ähnliche Programmiersprachen gehören. Der Programmcode kann ganz auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder ganz auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über ein beliebiges Netzwerk mit dem Computer des Benutzers verbunden sein, zum Beispiel über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder es kann die Verbindung zu einem externen Computer hergestellt werden (beispielsweise über das Internet durch einen Internetdienstanbieter).
-
Aspekte der Technik werden hierin unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder in den Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalrechners, eines Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
-
Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten steuern kann, um auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsartikel einschließlich der Befehle erzeugen, die die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegte Funktion/Maßnahme umsetzen.
-
Die Computerprogrammbefehle können ferner in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Funktionsschritten auszulösen, die auf dem Computer, in der anderen programmierbaren Vorrichtung oder den anderen Einheiten durchgeführt werden, um einen auf einem Computer implementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder in der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse bereitstellen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der Technik. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, Segment oder einen Teil eines Codes darstellen, das/der eine oder mehrere ausführbare Befehle zur Umsetzung der festgelegten Logikfunktion(en) aufweist. Es ist ferner darauf hinzuweisen, dass die im Block angegebenen Funktionen bei einigen alternativen Ausführungen in einer anderen Reihenfolge als in den Figuren dargestellt ablaufen können. Zwei aufeinanderfolgend dargestellte Blöcke können zum Beispiel tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach entsprechender Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Des Weiteren ist darauf hinzuweisen, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, die die angegebenen Funktionen oder Maßnahmen durchführen, oder durch Kombinationen von spezieller Hardware und Computerbefehlen.
-
Zusätzlich zu dem oben Genannten können ein oder mehrere Aspekte der Technik durch einen Diensteanbieter, der eine Verwaltung von Kundenumgebungen anbietet, bereitgestellt, angeboten, eingesetzt, verwaltet, gepflegt usw. werden. Der Diensteanbieter kann zum Beispiel einen Computercode und/oder eine Computerinfrastruktur erstellen, verwalten, unterstützen usw., die einen oder mehrere Aspekte der Technik für einen oder mehrere Kunden ausführt. Im Gegenzug kann der Diensteanbieter eine Vergütung vom Kunden beispielsweise im Rahmen eines Abonnementvertrags und/oder eine Honorarvereinbarung erhalten. Zusätzlich oder alternativ kann der Diensteanbieter eine Vergütung aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte erhalten.
-
Bei einem Aspekt der Technik kann eine Anwendung eingesetzt werden, um einen oder mehrere Aspekte der Technik auszuführen. Beispielsweise weist das Einsetzen einer Anwendung ein Bereitstellen einer Computerinfrastruktur auf, die in der Lage ist, einen oder mehrere Aspekte der Technik auszuführen.
-
Als weiterer Aspekt der Technik kann eine Datenverarbeitungsinfrastruktur eingesetzt werden, die ein Einbinden eines computerlesbaren Codes in ein Datenverarbeitungssystem aufweist, wobei der Code zusammen mit dem Datenverarbeitungssystem in der Lage ist, einen oder mehrere Aspekte der Technik auszuführen.
-
Als noch weiterer Aspekt der Technik kann ein Prozess zum Einbinden einer Datenverarbeitungsinfrastruktur bereitgestellt werden, der ein Einbinden eines computerlesbaren Codes in ein Computersystem aufweist. Das Computersystem weist ein computerlesbares Medium auf, wobei das Computermedium einen oder mehrere Aspekte der Technik aufweist. Zusammen mit dem Computersystem ist der Code in der Lage, einen oder mehrere Aspekte der Technik auszuführen.
-
Des Weiteren können sonstige Arten von Datenverarbeitungsumgebungen einen Nutzen aus einem oder mehreren Aspekten der Technik ziehen. Beispielsweise kann eine Umgebung eine Nachbildungseinheit (z.B. eine Software oder sonstige Nachbildungsmechanismen) enthalten, in denen eine bestimmte Architektur (die zum Beispiel eine Befehlsausführung, architekturdefinierte Funktionen wie etwa Adressumsetzung und architekturdefinierte Register beinhaltet) oder ein Teilsatz davon nachgebildet wird (z.B. auf einem systemeigenen Computersystem, das über einen Prozessor und einen Speicher verfügt). In einer solchen Umgebung können eine oder mehrere Nachbildungsfunktionen der Nachbildungseinheit einen oder mehrere Aspekte der Technik ausführen, auch wenn ein Computer, der die Nachbildungseinheit ausführt, eine andere Architektur aufweisen kann als die Funktionen, die nachgebildet werden. Beispielsweise wird im Nachbildungsmodus der spezifische nachgebildete Befehl oder Vorgang decodiert, und es wird eine geeignete Nachbildungsfunktion erstellt, um den jeweiligen Befehl oder Vorgang auszuführen.
-
In einer Nachbildungsumgebung beinhaltet ein Host-Computer zum Beispiel einen Speicher zum Speichern von Befehlen und Daten; eine Befehlsabrufeinheit zum Abrufen von Befehlen aus dem Speicher und zum optionalen Bereitstellen einer lokalen Zwischenspeicherung des abgerufenen Befehls; eine Befehlsdecodiereinheit zum Empfangen der abgerufenen Befehle und zum Ermitteln des Typs der Befehle, die abgerufen worden sind; und eine Befehlsausführungseinheit zum Ausführen der Befehle. Eine Ausführung kann ein Laden von Daten aus einem Speicher in ein Register; ein Zurückspeichern von Daten aus einem Register in einen Speicher; oder ein Durchführen eines Typs einer arithmetischen oder logischen Operation beinhalten, wie durch die Decodiereinheit festgelegt. In einem Beispiel wird jede Einheit mit Software ausgeführt. Die von den Einheiten durchgeführten Operationen werden beispielsweise als eine oder mehrere Unterroutinen innerhalb einer Nachbildungssoftware ausgeführt.
-
Des Weiteren kann ein zum Speichern und/oder Ausführen von Programmcode geeignetes Datenverarbeitungssystem verwendet werden, das mindestens einen Prozessor enthält, der direkt oder indirekt über einen Systembus mit Speicherelementen verbunden ist. Bei den Speicherelementen handelt es sich zum Beispiel um einen lokalen Speicher, der während der eigentlichen Ausführung des Programmcodes eingesetzt wird, um einen Massenspeicher und einen Cachespeicher, die eine zeitweilige Speicherung von mindestens einem Teil des Programmcodes bereitstellen, um die Häufigkeit zu verringern, mit der der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss.
-
Eingabe/Ausgabe- oder E/A-Einheiten (darunter Tastaturen, Anzeigen, Zeigeeinheiten, Direktzugriffsspeichereinheiten (direct access storage devices, DASD), Magnetbänder, CDs, DVDs, USB-Speichersticks und sonstige Speichermedien usw., ohne auf diese beschränkt zu sein) können entweder direkt oder indirekt über dazwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden werden, um es dem Datenverarbeitungssystem zu ermöglichen, über dazwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten verbunden zu werden. Modems, Kabelmodems und Ethernet-Karten sind nur einige der derzeit erhältlichen Arten von Netzwerkadaptern.
-
Die hierin verwendete Terminologie dient lediglich zum Zweck des Beschreibens von speziellen Ausführungsformen und soll die Erfindung nicht einschränken. Wie hierin verwendet, sollen die Singularformen „ein/eine/einer/eines“ und „der/die/das“ ebenfalls die Pluralformen umfassen, es sei denn, der Zusammenhang zeigt eindeutig etwas anderes auf. Es versteht sich ferner, dass die Ausdrücke „aufweisen“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, die Anwesenheit von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht die Anwesenheit oder Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Maßnahmen und Äquivalente aller Mittel oder Schritt-plus-Funktion-Elemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Maßnahmen zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen umfassen, wie dies speziell beansprucht wird. Die Beschreibung der Technik wurde zum Zwecke der Veranschaulichung und Beschreibung vorgestellt, soll jedoch nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Für Fachleute ist offensichtlich, dass viele Änderungen und Abwandlungen möglich sind, ohne vom Umfang und Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu erläutern und um anderen Fachleuten ein Verständnis der Erfindung für verschiedene Ausführungsformen mit verschiedenen Änderungen zu ermöglichen, wie sie für die jeweils beabsichtigte Verwendung geeignet sind.