-
Technisches Anwendungsgebiet
-
Diese Erfindung betrifft das Gebiet der Ereignisverwaltung. Insbesondere betrifft die Erfindung das Erzeugen mehrerer Ereignisse aus einem einzelnen netzwerkeinheitsbezogenen Ereignis.
-
Hintergrundinformationen
-
Die Verwaltung von Netzwerken geht mit dem Erfassen von Daten von einer Reihe von Einheiten in einem Netzwerk einher. Bekannte Umsetzungen verwenden zur Durchführung dieser Aufgabe eine große Vielfalt von Überwachungseinheiten wie Sonden oder Agenten, die eine große Menge an Quelldaten von vielen Arten von Netzwerkeinheiten und Systemen bereitstellen können. Wenn diese Daten ohne Vorverarbeitung und Filterung an eine zentrale Datenbank gesendet werden, kann deren Verarbeitung in der zentralen Datenbank zu einem hohen Rechenaufwand führen und die Gesamtleistungsfähigkeit des Systems erheblich beeinflussen.
-
In bekannten Umsetzungen der Verwaltung von Netzwerken wird das Vorverarbeiten unter Anwendung einer Regelkonfigurationsdatei durchgeführt, die es dem Netzwerkverwalter gestattet, eingehende Ereignisdaten unter Verwendung einer Reihe von Verknüpfungsoperationen abzuwandeln, zu erweitern und zu verwerfen. Die Ausgabe aus diesen Operationen ist jedoch auf das Erzeugen eines einzigen Ereignisses beschränkt, das lediglich an eine einzige Tabelle in einer bestimmten zentralen Server-Datenbank gesendet werden kann.
-
Zur Verwaltung immer größerer Mengen von Netzwerkdaten wurden komplexe Server-Datenbank-Strukturen kombiniert, um den Rechenaufwand zu verteilen. Die Beschränkung auf ein einziges Datenereignis für jedes auf der Ebene der Überwachungseinheit eingehende Ereignis begrenzt jedoch die Anzahl von dem Systemverwalter zur Verfügung stehenden erweiterten Konfigurationsoptionen.
-
In bekannten Überwachungseinheiten können Ereignisdaten aus mehreren Eingangs-Prozesssträngen empfangen werden, aber es wird lediglich ein einziger Prozessstrang zum Verarbeiten dieser Daten unter Verwendung der Regeldatei und zum Senden derer an die Server-Datenbank verwendet.
-
Durch das Verwenden lediglich eines einzigen Prozessstrangs zum Verarbeiten und Senden von Ereignisdaten wird die Leistungsfähigkeit sowohl durch die Geschwindigkeit eines einzigen Prozessors in der Maschine, auf der er läuft, sowie durch den Datenübertragungsaufwand für das Senden von Daten an die Server-Datenbank beschränkt. Falls die Host-Maschine der Überwachungseinheit mehrere Prozessorkerne aufweist (wie heute bei den meisten der Fall ist), erhöht das nicht die Geschwindigkeit der Ereignisverarbeitung und Datenübermittlung.
-
Folglich gibt es auf dem Fachgebiet den Bedarf, sich dem oben genannten Problem zu widmen.
-
ZUSAMMENFASSUNG
-
Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Verarbeiten von Netzwerkereignissen bereitgestellt, das Folgendes umfasst: Empfangen eines eingegebenen Netzwerkereignisses von einer Überwachungseinheit an einem Verarbeitungsprozessstrang; Erzeugen mehrerer Datenausgaben aus dem Netzwerkereignis; und Erzeugen mehrerer Datenübertragungs-Prozesstränge, jeweils zum Übermitteln der mehreren Datenausgaben an eine von mehreren Server-Datenbanken.
-
Ein Verarbeitungsprozessstrang kann ein eingegebenes Ereignis empfangen und für das eingegebene Ereignis Regeldateien verarbeiten, darunter ein Befehl zum Erzeugen eines Ereignisses, um einen neuen Datenübertragungs-Prozessstrang zu erstellen. Ein Datenübertragungs-Prozessstrang kann Ereignisdaten ordnen und an eine Server-Datenbank übermitteln. Die Datenübertragungs-Prozessstränge können Verbindungen zu benötigten Server-Datenbanken öffnen, und diese Verbindungen können in einem offenen Zustand gehalten werden, während eine Überwachungseinheit läuft.
-
Das Verfahren kann Folgendes enthalten: Verarbeiten einer Regeldatei, um Exemplare von registrierten Zielen zu finden; und Bestimmen von benötigten Server-Datenbank-Verbindungen. Die Server-Datenbanken können eine oder mehrere Tabellen für Ereignisdaten mit einem einzigen Datenübertragungs-Prozessstrang für jede Server-Datenbank enthalten.
-
Die Datenübertragung zwischen Prozesssträngen kann über Nachrichtenwarteschlangen asynchron verlaufen. Das Verfahren kann das Übertragen von Ereignisdaten über eine Datenstruktur zwischen Prozesssträngen (inter-thread data structure) enthalten.
-
Das Verfahren kann das Senden von Säuberungsbefehlen (flush commands) von dem Verarbeitungsprozessstrang zum Säubern der Datenübertragungs-Prozessstränge enthalten.
-
Das Verfahren kann ebenfalls das syntaktische Analysieren (parsing) von Ereignisdaten zur Erzeugung mehrerer Datenausgaben enthalten.
-
Das Verfahren kann das Verarbeiten von Regeldateien für ein eingegebenes Ereignis und, bei Erreichen eines Befehls zum Erzeugen eines Ereignisses, das Übertragen von Daten an einen Datenübertragungs-Prozessstrang über eine Hinweisadresse enthalten.
-
Die Ereignisdaten können als Ziel- und Spaltendaten an einen Datenübertragungs-Prozessstrang übertragen und in eine Datenbankabfragesprache (SQL, structured query language) umgewandelt und an eine Textspeicherzuordnung zur Übermittlung angehängt werden.
-
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Rechner-Software-Produkt zum Verarbeiten von Netzwerkereignissen bereitgestellt, wobei das Produkt ein durch einen Rechner lesbares Speichermedium umfasst, auf dem ein Pragramm umfassende, durch einen Rechner ausführbare Anweisungen gespeichert sind, wobei die Anweisungen bei Lesen und Ausführen durch einen Rechner die folgenden Schritte durchführen: Empfangen eines eingegebenen Netzwerkereignisses von einer Überwachungseinheit an einem Verarbeitungsprozessstrang; Erzeugen mehrerer Datenausgaben aus dem Netzwerkereignis; und Erzeugen mehrerer Datenübertragungs-Prozessstränge jeweils zum Übermitteln der mehreren Datenausgaben an eine von mehreren Server-Datenbanken.
-
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein System zum Verarbeiten von Netzwerkereignissen bereitgestellt, das Folgendes umfasst: eine Netzwerküberwachungseinheit zum Erfassen von Netzwerkereignisdaten; ein Verarbeitungssystem zum Empfangen eines eingegebenen Ereignisses von einer Überwachungseinheit an einem Verarbeitungsprozessstrang, wobei das Verarbeitungssystem eine Datenübertragungs-Prozessstrang-Erzeugungs-Komponente zum Erzeugen mehrerer Datenübertragungs-Prozessstränge jeweils zum Übermitteln von Ereignisdaten an eine Server-Datenbank enthält.
-
Das Verarbeitungssystem kann einen Empfänger für ein eingegebenes Ereignis sowie Regeldateien für das eingegebene Ereignis enthalten, darunter ein Befehl zum Erzeugen eines Ereignisses, um einen neuen Datenübertragungs-Prozessstrang zu erstellen.
-
Das System kann Folgendes enthalten: eine Regeldatei, die verarbeitet wird, um Exemplare von registrierten Zielen zu finden; und eine Komponente zum Bestimmen von benötigten Server-Datenbank-Verbindungen.
-
Die Server-Datenbanken können eine oder mehrere Tabellen für Ereignisdaten mit einem einzigen Datenübertragungs-Prozessstrang für jede Server-Datenbank enthalten.
-
Die Datenübertragung zwischen Prozesssträngen kann über Nachrichtenwarteschlangen asynchron verlaufen, und eine Datenstruktur zwischen Prozesssträngen kann zum Übertragen von Ereignisdaten bereitgestellt werden.
-
Das System kann eine Komponente zum Säubern der Datenübertragungs-Prozessstränge enthalten.
-
Das System kann ebenfalls eine Analysekomponente für das syntaktische Analysieren von Ereignisdaten zur Erzeugung mehrerer Datenausgaben enthalten.
-
Der Datenübertragungs-Prozessstrang kann einen Umwandler zum Umwandeln von Ereignisdaten in eine Datenbankabfragesprache (SQL) und Anhängen an eine Textspeicherzuordnung zur Übermittlung enthalten.
-
Das Verarbeitungssystem kann auf mehreren Prozessoren laufen, wodurch der Verarbeitungsprozessstrang und die Datenübertragungs-Prozessstränge gleichzeitig ausgeführt werden können.
-
Gemäß einem vierten Aspekt stellt die vorliegende Erfindung ein auf einem durch einen Rechner lesbaren Medium gespeichertes Rechnerprogramm bereit, das in den internen Speicher eines digitalen Rechners geladen werden kann und Software-Code-Teile zur Durchführung der Schritte der Erfindung umfasst, wenn das Programm auf einem Rechner ausgeführt wird.
-
Kurze Beschreibung der Zeichnungen
-
Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf die bevorzugten Ausführungsformen beschrieben, wie in den folgenden Figuren dargestellt. Es zeigen:
-
1 ein Blockschaltbild eines Ereignisverwaltungssystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
-
2 ein Blockschaubild eines Prozessstrang-Verarbeitungssystems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
-
3 ein Blockschaltbild eines Rechnersystems, in dem eine bevorzugte Ausführungsform der vorliegenden Erfindung realisiert werden kann;
-
4 einen Ablaufplan eines Prozessstrang-Verarbeitungsverfahrens gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
-
5 einen Ablaufplan eines Prozessstrang-Verarbeitungsverfahrens in einem Regeldatei-Verarbeitungsprozessstrang gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und
-
6 einen Ablaufplan eines Prozessstrang-Verarbeitungsverfahrens in einem Datenübertragungs-Prozessstrang gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
-
Ausführliche Beschreibung der Erfindung
-
Man wird verstehen, dass in den Figuren gezeigte Elemente der Einfachheit und Klarheit der Abbildung halber nicht unbedingt maßstabsgetreu gezeichnet sind. Die Abmessungen einiger Elemente können zum Beispiel in Bezug auf andere Elemente der Klarheit halber übertrieben groß dargestellt sein. Ferner können sich Bezugszahlen in den Figuren wiederholen, wenn dies angebracht erscheint, um entsprechende oder analoge Merkmale anzuzeigen.
-
In der folgenden ausführlichen Beschreibung werden zahlreiche spezifische Details dargelegt, um ein vollständiges Verständnis der Erfindung bereitzustellen. Fachleute werden jedoch verstehen, dass die vorliegende Erfindung ohne diese spezifischen Details angewendet werden kann. In anderen Fallen wurden allgemein bekannte Verfahren, Vorgänge und Komponenten nicht ausführlich beschrieben, um die vorliegende Erfindung nicht unklar zu machen.
-
Unter Bezugnahme auf 1 wird ein Ereignisverwaltungssystem 100 zur Verwaltung von Netzwerken gezeigt. Das System 100 enthält eine oder mehrere Überwachungseinheiten wie Sonden oder Agenten, die jeweils über eine Einheitenschnittstelle 101 bis 103 mit einer Ereignisquelle 111 bis 113 wie Netzwerkeinheiten verbunden sind, um Ereignisdaten zu erkennen und zu erfassen und die Ereignisdaten 121 bis 123 zur Verarbeitung weiterzuleiten. Die Überwachungseinheiten können entfernt angeordnet arbeiten oder Ereignisse in Netzwerkeinheiten direkt überwachen. Die Ereignisdaten 121 bis 123 sind für eine oder mehrere Server-Datenbanken 131 bis 133 als Alarme oder Fehler bestimmt. Ein Verarbeitungssystem 140 wird zum Umwandeln und Abwandeln der Ereignisdaten 121 bis 123 vor dem Weiterleiten an die Server-Datenbanken 131 bis 133 als Alarme oder Fehler bereitgestellt.
-
Zum Beispiel kann das Ereignisverwaltungssystem in Form eines IBM® Tivoli® Netcool® OMNIbus Service Level Management Systems mit IBM Netcool OMNIbus Sonden zum Erfassen von Ereignisdaten zum Senden als Alarme an Objekt-Server (ObjectServers) ausgeführt sein. (IBM, Tivoli sowie Netcool sind Warenzeichen von International Business Machines Corporation, die in vielen Jurisdiktionen weltweit eingetragen sind). Von Hewlett Packard Company, CA Inc. und BMC Software, Inc. werden andere Ereignisverwaltungssysteme bereitgestellt, in denen Agenten Netzwerkeinheiten direkt bzw. entfernt angeordnet überwachen.
-
Das beschriebene Verarbeitungssystem 140 enthält eine Regeldatei 141 und einen Befehl, der zum Erzeugen zusätzlicher Ereignisse als Reaktion auf ein einzelnes eingehendes Datenereignis 121 bis 123 verwendet werden kann. Dieser Befehl kann vollständig in eine bestehende Logikverarbeitung und Abwandlung eingehender Daten integriert sein, um höchste Flexibilität bei der Konfiguration zu bieten. Hierdurch ist der Systemverwalter in der Lage, als Reaktion auf ein einzelnes eingehendes Datenereignis 121 verschiedene Ereignisdaten 121 bis 123 an mehrere Tabellen 151 bis 153 zu senden, die sich in mehreren Server-Datenbanken 131 bis 133 befinden.
-
Das Verarbeitungssystem 140 führt die Regeldateiverarbeitung und die Datenübertragung an die Server-Datenbank durch separate Betriebssystem-Prozessstränge durch. Die Regeldateiverarbeitung wird durch einen Regeldateiverarbeitungs-Prozessstrang 160 durchgeführt. Die Datenübertragung an jedes einzelne, in der Regeldatei festgelegte Server-Datenbank-Ziel 131 bis 133 wird durch einen separaten Datenübertragungs-Prozessstrang 161 bis 163 durchgeführt.
-
Nach Analyse durch die Regeldatei werden die Ereignisdaten 121 bis 123 in eine entsprechende Datenwarteschlange für eine bestimmte Server-Datenbank 131 platziert, die durch den entsprechenden Datenübertragungs-Prozessstrang 161 für diesen Server 131 gelesen werden. Der Datenübertragungs-Prozessstrang 161 wandelt die eingehenden Daten in eine Datenbankabfragesprache (SQL) um und sendet sie unter Verwendung von Server-Middleware an die Server-Datenbank 131.
-
Das bedeutet, dass die Regeldateiverarbeitung auf einer Mehrprozessorkern-Host-Maschine zur selben Zeit durchgeführt werden kann, wie Daten geordnet und an eine oder mehrere Server-Datenbanken gesendet werden können. Unter hohen Datenlasten kann dies die Leistungsfähigkeit beträchtlich verbessern.
-
Unter Bezugnahme auf 2 zeigt ein Blockschaubild ein Verarbeitungssystem 140 ausführlicher. Das Verarbeitungssystem 140 enthält einen Regeldateiverarbeitungs-Prozessstrang 160 und mehrere erzeugte Datenübertragungs-Prozessstränge 161, 162.
-
Der Regeldateiverarbeitungs-Prozessstrang 160 enthält eine Regeldatei 141. Der Regeldateiverarbeitungs-Prozessstrang 160 enthält eine Initialisierungskomponente 212, die eine Vorverarbeitung durchführt, um die Regeldatei 141 zu lesen und in eine durch eine Maschine verarbeitbare Form umzuwandeln, um eine Folge von Anweisungslisten zu erzeugen, die bei Empfangen eines Ereignisses durchgearbeitet werden. Die Initialisierungskomponente 212 erstellt auch eine Liste mit Ziel-Servern 213. Die Initialisierungskomponente 212 erzeugt die Datenübertragungs-Prozessstränge 161, 162 für jeden Ziel-Server und erstellt Daten- bzw. Nachrichtenwarteschlangen 231, 232 zwischen dem Regeldateiverarbeitungs-Prozessstrang 160 und jedem der Datenübertragungs-Prozessstränge 161, 162.
-
Ein Ereignisempfänger 214 empfängt eingehende Ereignisdaten. Eine Regeldatei-Verarbeitungskomponente 215 verarbeitet die eingehenden Ereignisdaten. Die Regeldatei-Verarbeitungskomponente 215 enthält eine Ereigniserzeugungs-Befehlskomponente 216 und eine Ereignisanalyse-Befehlskomponente 217.
-
Eine Ordnungs- und Übermittlungskomponente 218 sendet analysierte Ereignisse an einen Puffer 219 zur Übermittlung. Eine Säuberungskomponente 220 wird zum Löschen vorheriger Ereignisse bereitgestellt.
-
Eine Datenstruktur zwischen Prozesssträngen 250 wird bereitgestellt, um zu vermeiden, dass große Datenmengen über die Nachrichtenwarteschlangen 231, 232 übertragen werden. In der Datenstruktur 250 wird Speicher durch Ordnen des Platzes zum Speichern der Ereignisdaten zugeordnet. Dann wird eine Hinweisadresse für diese Daten in eine Nachrichtenwarteschlange 231, 232 platziert und an den Datenübertragungs-Prozessstrang 161, 162 gesendet. Der Datenübertragungs-Prozessstrang 161, 162 gibt dann nach der Umwandlung in SQL den Speicher frei.
-
Der Regeldateiverarbeitungs-Prozessstrang 160 enthält eine Ereignisanalyse-Befehlskomponente 217 zum Erzeugen mehrerer Datenausgaben aus einem einzelnen Ereignis zur Eingabe in mehrere Datenbanken bzw. Tabellen.
-
Die Daten von dem eingehenden Ereignis werden unter Verwendung der logischen Verknüpfungen in der Regeldatei 141 verarbeitet, die zum Ausfüllen von Feldern in den ausgegebenen Ereignissen verwendet werden. Ein eingehendes Ereignis weist zum Beispiel Daten A (eine Zeichenfolge), B (eine ganze Zahl) und C (eine ganze Zahl) auf. Ein erzeugtes Ereignis kann mit 3 Feldern ausgegeben werden (B + 1, A + „-dies ist die Zusammenfassung”, B–C). Das Hauptereignis kann dann mit lediglich 2 Feldern (A + „-Hauptereignis”, B) ausgegeben werden. Es muss lediglich festgelegt sein, dass die Zieltabellen in den Ziel-Servern 151, 152 dieselben Feldtypen wie die gesendeten Daten aufweisen müssen. Also werden die ausgegebenen Ereignisse aus den eingehenden Daten gemäß der in der Regeldatei 141 codierten Logik aufgebaut.
-
Die Datenübertragungs-Prozessstränge 161, 162 enthalten jeweils: einen Ereignisempfänger 241, eine SQL-Umwandlungskomponente 242, eine Server-Datenbank-Übermittlungs-Komponente 243, einen SQL-Puffer 244 sowie eine Säuberungskomponente 245. Es wird eine Verbindung mit einem Ziel-Server 151, 152 hergestellt und ein leerer SQL-Puffer 244 erstellt. Ein Ereignisempfänger 241 empfängt Ereignisse von dem Regeldateiverarbeitungs-Prozessstrang 160 und verarbeitet diese und übermittelt sie an den Ziel-Server 131, 132. Säuberungsnachrichten werden von dem Regeldateiverarbeitungs-Prozessstrang 160 empfangen, und die Säuberungskomponente 245 verarbeitet diese und sendet eine Säuberungsbestätigung zurück.
-
In der Syntax der Regeldatei 141 wird ein Befehl zum Erzeugen eines Ereignisses bereitgestellt. Der Befehl zum Erzeugen eines Ereignisses stellt die Fähigkeit bereit, Ereignisse an mehr als eine Tabelle zu senden. Diese Tabellen können sich in verschiedenen Server-Datenbanken 131, 132 befinden. Die Zieltabelle muss unter Verwendung eines Regeldateibefehls zum Registrieren des Ziels registriert werden. Wenn der Befehl zum Registrieren des Ziels mit einer entsprechenden Detailtabelle aufgerufen wird, fügt der Befehl zum Erzeugen eines Ereignisses auch die Detailinformationen in die Regeldatei 141 ein, sofern Detailinformationen festgelegt wurden.
-
Die Verarbeitung von Ereignisdaten von einer Überwachungseinheit muss so schnell wie möglich durchgeführt werden, um die Ereignis-Durchsatz-Geschwindigkeit der Überwachungseinheit aufrecht zu halten. Der Befehl zum Erzeugen eines Ereignisses 212 ermöglicht das Ausführen von Einfüge-Operationen in mehrere Server-Datenbanken 131 bis 132. Um sicherzustellen, dass dies nicht die Verarbeitung der Hauptregeldatei verlangsamt, wird die Datenübertragung für jeden Server 131 bis 132, der Daten empfangen wird, auf separaten Prozesssträngen 161, 162 erzeugt. Deshalb funktioniert eine Überwachungseinheit standardmäßig in einer mehrere Prozessstränge gleichzeitig ausführenden Form. Es gibt einen Prozessstrang zum Empfangen des Hauptereignisses und zum Verarbeiten der Regeldatei 160 sowie einen oder mehrere Datenübertragungs-Prozessstränge 161 bis 162 zum Ordnen und Übermitteln. Die Datenübertragungs-Prozessstränge 161 bis 162 öffnen Verbindungen zu den benötigten Servern 131 bis 132, und die Verbindungen werden in einem offenen Zustand gehalten, während die Überwachungseinheit läuft.
-
Unter Bezugnahme auf 3 enthält ein beispielhaftes System zur Umsetzung bevorzugter Ausführungsformen der vorliegenden Erfindung ein Datenverarbeitungssystem 300, das zum Speichern und/oder Ausführen von Programmcode geeignet ist und zumindest einen über ein oder mehrere Bussysteme 311, 312 direkt oder indirekt mit Speicherelementen verbundenen Prozessor 301 bis 303 enthält. Zur parallelen Verarbeitung können mehrere Prozessoren und Datenübertragungsbussysteme in einem System bereitgestellt werden.
-
Jeder der Prozessoren 301 bis 303 kann seinen eigenen Zwischenspeicher 321 bis 323 enthalten; alternativ kann ein globaler Zwischenspeicher 324 verwendet werden.
-
Die Speicherelemente können einen lokalen Speicher beinhalten, der während der eigentlichen Ausführung des Programmcodes eingesetzt wird, Massenspeicher sowie Cache-Speicher, die eine vorübergehende Speicherung von zumindest etwas Programmcode bereitstellen, um die Häufigkeit, mit der während der Ausführung Code von dem Massenspeicher abgerufen werden muss, zu verringern.
-
Die Prozessoren 301 bis 303 tauschen Daten untereinander und mit dem Systemspeicher 330 über einen Hochgeschwindigkeits-Systembus 311 aus. Der Systemspeicher 330 enthält einen globalen Direktzugriffsspeicher (RAM) 331, einen globalen Nur-Lese-Speicher (ROM) 332, eine Speichersteuereinheit 333 sowie einen nichtflüchtigen RAM (NVRAM) 334.
-
Bei dem globalen RAM 331 handelt es sich um flüchtigen Speicher, der von jedem der Prozessoren zum Speichern von Daten und Anweisungen für einen späteren beliebigen Zugriff verwendet wird. Bei dem globalen ROM 332 handelt es sich um einen nichtflüchtigen Speicher, der in dem System gespeicherte Daten und Anweisungen enthält. Bei dem NVRAM 334 handelt es sich um einen nichtflüchtigen RAM, der durch die Prozessoren verändert werden kann und einen Urlade-Code (boot code) enthält.
-
Der Prozessorbus zu der Adapterbusbrücke 340 ist ebenfalls an den Systembus 311 angeschlossen. Diese Busbrücke ermöglicht den Datenaustausch zwischen mehreren Einheiten und jedem der Prozessoren 301 bis 303 und/oder dem Systemspeicher 330 über den Adapterbus 312.
-
An den Adapterbus 312 ist eine Festplatte 341 zum Speichern großer Datenmengen und Anweisungen wie Betriebssystemen und mehreren Software-Anwendungen angeschlossen. Eine Eingabe/Ausgabe-(E/A-)Steuereinheit 342 ist ebenfalls mit dem Adapterbus 312 verbunden und wird zur Durchführung von Datenübertragungen an angeschlossene bzw. externe E/A-Einheiten 343 wie eine Tastatur, eine Maus, austauschbare Medien usw. verwendet.
-
Ein Anzeigenadapter 344 kann ebenfalls mit dem Adapterbus 312 gekoppelt sein, um Daten auf einer Anzeige 345 anzuzeigen. Außerdem kann an den Adapterbus 312 ein Datenübertragungsadapter 346 zur Übertragung von Daten über ein Netzwerk angeschlossen sein.
-
4 zeigt einen Ablaufplan 400 des Verfahrens zur Erzeugung mehrerer Ereignisse. An einem Verarbeitungsprozessstrang wird ein eingegebenes Ereignis von einer Netzwerküberwachungseinheit empfangen 401. Die Regeldateiverarbeitung wird durchgeführt 402, und es werden mehrere Datenübertragungs-Prozessstränge erzeugt 403, einer für jeden Ziel-Server, an den die Ereignisdaten zu senden sind.
-
Jeder Datenübertragungs-Prozessstrang öffnet 404 eine Verbindung mit einem Server und ordnet und übermittelt 405 Ereignisdaten an den Server.
-
5 zeigt einen Ablaufplan 500 eines Verfahrens in einem Regeldateiverarbeitungs-Prozessstrang. Die Regeldateien werden gelesen, und eine Vorverarbeitung wird durchgeführt 501, darunter das Überprüfen der Syntax und das Erstellen einer Liste mit angegebenen Ziel-Servern.
-
Für jeden Ziel-Server werden Datenübertragungs-Prozessstränge erzeugt 502. Zwischen den Regeldateiverarbeitungs-Prozesssträngen und jedem Datenübertragungs-Prozessstrang werden Nachrichtenwarteschlangen erstellt.
-
Es wird auf die nächsten Ereignisdaten bzw. eine Abbruchbedingung gewartet 503. Jegliche Säuberungsbestätigungsnachrichten werden von Datenübertragungs-Prozesssträngen empfangen 504.
-
Eingehende Ereignisrohdaten werden empfangen 505, und die Ereignisdaten werden unter Verwendung der Regeldatei analysiert 506. Bei jeder Begegnung mit dem Befehl zum Erzeugen eines Ereignisses wird eine verarbeitete Ereignisdatennachricht in die Warteschlange für den entsprechenden Datenübertragungs-Prozessstrang platziert 507. Wenn das Hauptereignis nicht verworfen wird, wird eine verarbeitete Ereignisdatennachricht in die Warteschlange für den entsprechenden Datenübertragungs-Prozessstrang platziert 508.
-
Es wird festgestellt 509, ob die Höchstzahl an gepufferten Ereignissen erreicht wurde. Falls nicht, führt das Verfahren eine Schleife aus und wartet auf die nächsten eingehenden Ereignisdaten bzw. Abbruchbedingungen 503. Wenn die Höchstzahl an gepufferten Ereignissen erreicht ist, wird festgestellt 510, ob eine vorherige Säuberung gesendet und von allen Datenübertragungs-Prozesssträngen bestätigt wurde. Falls nicht, wird auf die Säuberungsbestätigungen gewartet 511. Falls ja, werden an alle Datenübertragungs-Prozessstränge Säuberungsbefehle gesendet 512, und das Verfahren führt eine Schleife aus und wartet auf die nächsten eingehenden Ereignisdaten bzw. Abbruchbedingungen 503.
-
Unter Bezugnahme auf 6 wird ein Ablaufplan 600 eines Verfahrens in jedem Datenübertragungs-Prozessstrang gezeigt. Es wird eine Verbindung mit einem dem Datenübertragungs-Prozessstrang zugewiesenen Ziel-Server hergestellt 601. Es wird ein leerer SQL-Puffer erstellt 602.
-
Es wird auf eingehende Nachrichten von dem Regeldateiverarbeitungs-Prozessstrang gewartet 603. Es wird festgestellt, ob eine Nachricht eine Säuberungsnachricht ist 604. Falls ja, werden alle Daten in dem SQL-Puffer an den Server gesendet 605 und gelöscht. Es wird eine Säuberungsbestätigung an den Regeldatei-Prozessstrang gesendet 606, und das Verfahren führt eine Schleife aus und wartet auf weitere eingehende Nachrichten 603.
-
Wenn die Nachricht eine Säuberungsnachricht ist, wird festgestellt 607, ob es eine Ereignisnachricht ist. Falls nicht, führt das Verfahren eine Schleife aus und wartet auf weitere eingehende Nachrichten 603. Wenn es eine Ereignisnachricht ist, werden die Ereignisdaten in eine SQL-Nachricht umgewandelt 608 und in den Puffer geschrieben. Das Verfahren führt eine Schleife aus und wartet auf weitere eingehende Nachrichten 603.
-
Prozessstrangstruktur
-
Prozessstränge werden unter Verwendung von Standard-Bibliotheks-Prozessstrang-Funktionen erstellt und gelöscht. Die Datenübertragung zwischen Prozesssträngen verläuft asynchron und wird unter Verwendung der üblichen auf einem Merker (Semaphor) beruhenden Nachrichtenwarteschlangen durchgeführt. Die Hauptbibliotheks-Ereignisverarbeitungsschleife verarbeitet die Regeldatei und erzeugt einen oder mehrere Server-Datenübertragungs-Prozessstränge. Es findet kein direkter Datenaustausch zwischen Datenübertragungs-Prozesssträngen statt. Der Verarbeitungsschleifen-Prozessstrang steuert den/die Datenübertragungs-Prozessstrang bzw. -stränge. Die Datenübertragungs-Prozessstränge ruhen während des Wartens auf Eingabedaten, wenn sie sich nicht in dem Prozess des Übermittelns von Daten befinden. Von dem Hauptverarbeitungs-Prozessstrang gesendete Daten werden gepuffert, wenn der Datenübertragungs-Prozessstrang mit dem Senden von Daten beschäftigt ist, und verarbeitet, sobald er dafür bereit ist.
-
Datenstruktur zwischen Prozesssträngen
-
Große Datenmengen werden nicht über die Nachrichtenwarteschlangen übertragen, sondern es wird stattdessen ein gemeinsam genutztes Datenmodell verwendet.
-
Der Verarbeitungs-Prozessstrang kann niemals öfter als zwei Mal die Regeldatei durcharbeiten, bevor er darauf warten muss, dass alle Datenübertragungs-Prozessstränge jegliche ausstehende Daten aus dem vorherigen Zyklus übermitteln und speichern.
-
Nachrichtenstruktur zwischen Prozesssträngen
-
Die zwischen dem Prozess- und dem Datenübertragungs-Prozessstrang übertragbaren Nachrichten sind nachfolgend aufgelistet:
- • „Ereignisdaten” von dem Verarbeitungs-Prozessstrang zu den Datenübertragungs-Prozesssträngen. Der Verarbeitungs-Prozessstrang hat in der Regeldatei einen Befehl zum Erzeugen eines Ereignisses erreicht und sendet die mit Verweisen versehenen Ereignisdaten an den Datenübertragungs-Prozessstrang. Alternativ hat der Verarbeitungs-Prozessstrang das Ende der Regeldatei erreicht und sendet die Hauptereignisdaten an den entsprechenden Datenübertragungs-Prozessstrang.
- • „Säubern”, von dem Verarbeitungs-Prozessstrang zu allen Datenübertragungs-Prozesssträngen. Die Hauptüberwachungseinheit hat den Säuberungsbefehl aufgerufen. Dies veranlasst den Verarbeitungs-Prozessstrang dazu, den Säuberungsbefehl an alle Datenübertragungs-Prozessstränge zu senden. Falls es irgendwelche gepufferten Daten gibt, sendet der Datenübertragungs-Prozessstrang diese an den Server.
- • „Säubern bestätigt”, von dem Datenübertragungs-Prozessstrang zu dem Verarbeitungs-Prozessstrang. Zeigt an, dass der Datenübertragungs-Prozessstrang das Senden aller ausstehenden Daten an den Server abgeschlossen hat. Der Verarbeitungs-Prozessstrang muss darauf warten, bevor er eine weitere Säuberungsnachricht an diesen Prozessstrang senden kann.
-
Initialisierung
-
Die Initialisierung einer Überwachungseinheit enthält eine Endstufe, die mit dem Erzeugen von Datenübertragungs-Prozesssträngen einhergeht. Die Regeldatei wird verarbeitet, um jedes Exemplar eines Befehls zum Registrieren eines Ziels zu finden, der zum Ausarbeiten einer Liste benötigter Server-Verbindungen verwendet wird. Daraus ergibt sich eine Verbindung pro Server, unabhängig von der Anzahl von einzelnen Tabellen auf diesem Server. Dann werden Verbindungen zu jedem Server hergestellt. Die Spaltentypen für jede Zieltabelle werden von den relevanten Servern abgefragt und gespeichert.
-
Während der Endstufe werden aus der Regeldatei die für zwischen Prozesssträngen benötigten Speicheranforderungen berechnet. Die Speichergröße des SQL-Puffers wird aus der Regeldatei berechnet. Für jede Server-Verbindung wird ein Prozessstrang erzeugt, und die Steuerung der Verbindung sowie der Puffergröße wird dann an diesen Prozessstrang übertragen. Die Anzahl von Prozesssträngen übersteigt die Anzahl von Servern, zu denen die Überwachungseinheit eine Verbindung herstellt, um eins. Somit wird die Anzahl von erzeugten Prozesssträngen durch die Anzahl von in der Regeldatei verwendeten Befehlen zum Registrieren von Zielen für verschiedene Server gesteuert.
-
Verarbeitung
-
Die Regeldatei wird bei Auftreten eines eingegebenen Ereignisses analysiert. Wenn die Verarbeitung einen Befehl zum Erzeugen eines Ereignisses erreicht und die Daten an den entsprechenden Prozessstrang zum Ordnen und Übermitteln über eine Hinweisadresse überträgt. Wenn die Zieltabelle eine übereinstimmende Detailtabelle aufweist, werden auch sämtliche Detailinformationen an den entsprechenden Prozessstrang zum Ordnen und Übermitteln übertragen.
-
In einer Ausführungsform kann die Syntax des Befehls zum Erzeugen eines Ereignisses wie folgt lauten: „genevent(target, colum_name1, data1, column_name2, data2, ... )”, wobei es sich bei „target” um die durch den Befehl zum Registrieren eines Ziels zurückgesendete Zieltabelle handelt. Der Spaltenname und die Datenpaare müssen der Struktur der Zieltabelle entsprechen, können aber eine Teilmenge aller verfügbaren Spalten sein. Die Ziel- und Spaltennamen müssen Literale sein, wobei die Daten Variablen sein können. In dieser Stufe werden sämtliche benötigte Typumwandlungen von Daten durchgeführt. Wenn keine Typumwandlung möglich ist, wird ein nicht gravierender Fehler protokolliert und das Ereignis wird nicht erzeugt.
-
Eine alternative Syntax des Befehls zum Erzeugen eines Ereignisses kann wie folgt lauten:
„genevent(target)”, wobei alle der aktuellen Ereignisdaten kopiert und an die Zieltabelle gesendet werden. Dies geschieht, damit in Anwendungsfällen, in denen es ein Systemverwalter wünscht, lediglich eine genaue Kopie des aktuellen Ereignisses an mehr als einen Server zu senden, nicht alle Spaltennamen und Datenpaare vervielfältigt werden müssen. Da es sich hierbei wohl um einen der Hauptanwendungsfälle handelt, sollte das für den Systemverwalter einfach sein. Wenn am Ende der Verarbeitung der Regeldatei eine Funktion zum Verwerfen des Ereignisses nicht aufgerufen wurde, werden die Ereignisdaten auch an den Prozessstrang übermittelt, der die Verbindung mit der aktuell ausgewählten Zieltabelle aufrecht hält. Wenn diese Zieltabelle als eine übereinstimmende Beschreibungstabelle aufweisend gekennzeichnet ist, werden auch sämtliche Beschreibungsdaten an den entsprechenden Prozessstrang zum Ordnen und Übermitteln übertragen. Wenn eine Netzwerküberwachungseinheit die Bibliothek dazu anweist, Daten unter Verwendung des Säuberungsbefehls zu senden, führt dies dazu, dass an alle Übermittlungs-Prozessstränge ein Befehl geschickt wird. Wenn in der Regeldatei mehrere Detailbefehle enthalten sind, hat der letzte vor dem Befehl zum Erzeugen eines Ereignisses Vorrang unter der Annahme, dass das Ziel eine Detailtabelle enthält. Die Details können dann wiederum durch einen anderen Detailbefehl vor dem nächsten Befehl zum Erzeugen eines Ereignisses bzw. vor Erreichen des Endes der Regeldatei geändert werden.
-
Ordnen
-
Die Daten werden an den Datenübertragungs-Prozessstrang als Ziel- und Spaltennamen-Datenpaare übertragen. Diese werden in SQL umgewandelt und wirksam an einen Textpuffer angehängt, der bereit zum Übermitteln ist. Bei dem Puffer handelt es sich um einen speicherzugeordneten Bereich des Speichers mit einer Anfangs- und Endhinweisadresse. Die höchstens benötigte Puffergröße wird während der Initialisierung berechnet und durch den Übermittlungs-Prozessstrang bei dessen Start im Speicher zugeordnet.
-
Übermittlung
-
Bei ausgeschalteter Pufferung wird der SQL-Textpuffer an den Server übermittelt, sobald er geordnet ist. Sendebefehle werden ignoriert, mit Ausnahme des Zurücksendens einer Säuberungsbestätigung. Wenn die Pufferung eingeschaltet ist, wird der SQL-Textpuffer bei Empfangen des Sendebefehls an den Server übermittelt, und dann wird eine Säuberungsbestätigung zurückgesendet.
-
Zur Aufrechterhaltung und Verbesserung der Leistungsfähigkeit der Überwachungseinheit wird die Datenübertragung mit jedem Server durch separate Prozessstränge durchgeführt. Die Netzwerküberwachungseinheit ist in der Lage, ein Ereignis zu empfangen, und übermittelt gleichzeitig die vorherigen Ereignisergebnisse. Diese Struktur bedeutet, dass Erzeuge-Ereignis-Einfügungen und Standard-Ereignis-Einfügungen in verschiedene Server etwas aus der Reihe geraten könnten. Dieses gleichzeitige Bearbeiten von Prozesssträngen kann deaktiviert werden, wodurch sich jedoch wahrscheinlich die Leistungsfähigkeit verringert.
-
Das Szenario, in dem die beschriebene Prozessstrangstruktur die Leistungsfähigkeit wahrscheinlich verbessert, ist eines, in dem die Überwachungseinheit eine große Menge von Ereignisdaten verarbeitet, die Datenübertragung jedoch nicht nennenswert von dem Server aufrechterhalten wird, da sie zum Beispiel auf einer schnelleren Maschine läuft und durch andere Zuführungen von Ereignissen nicht stark belastet wird.
-
Das beschriebene Verfahren und System weisen die folgenden beispielhaften Anwendungen auf.
-
Erkennung von Ereignisüberflutung, wobei ein Übermaß an eingegebenen Daten vorübergehend verworfen und durch wesentlich weniger Informationsereignisse ersetzt wird. Ein Systemverwalter kann das Konfigurieren der Regeldatei der Überwachungseinheit derart wünschen, dass ein Ereignisüberflutungszustand unter Verwendung der zusätzlichen bereitgestellten Funktionalität erkannt wird und an den Server gesendete Ereignisdaten vorübergehend unterdrückt werden. Der Befehl zum Erzeugen eines Ereignisses wird dazu verwendet, ein Informationsereignis an den Server zu senden, wenn der Überflutungsschutz aktiviert ist, und ein anderes, wenn er deaktiviert ist.
-
Ein Systemverwalter kann das Teilen von Ereignissen in Verarbeitungsereignisse hoher Priorität und Informationsereignisse niedriger Priorität an der Quelle und das Bearbeiten auf jeweils andere Weise erfordern. Die Ereignisse hoher Priorität werden an einen Server hoher Priorität und an ein Server-System gesendet, das alle Ereignisse in Wechselbeziehung bringt und archiviert. Die Ereignisse niedriger Priorität werden lediglich an den Server gesendet, der alle Ereignisse in Wechselbeziehung bringt und archiviert.
-
Ein Systemverwalter kann die statistische Auswertung eingehender Ereignisdaten erfordern, möchte aber die Last auf dem die Ereignisse empfangenden Server nicht erhöhen. Der Befehl zum Erzeugen eines Ereignisses wird dafür verwendet, aus den eingehenden Ereignisdaten abgeleitete statistische Daten an einen anderen Server zur späteren Auswertung zu senden.
-
Ein Systemverwalter kann ein Kopieren aller Ereignisdaten auf zwei oder mehr Servern ohne den Aufwand des Ausführens eines unidirektionalen Gateway zwischen ihnen wünschen. Auf die Daten werden durch verschiedene Server verschiedene Prozesse angewendet.
-
Ein Ereignisverwaltungssystem kann einem Kunden als Dienst über ein Netzwerk bereitgestellt werden.
-
Die Erfindung kann als vollständige Hardware-Ausführungsform, als vollständige Software-Ausführungsform oder als Ausführungsform, die sowohl Hardware- als auch Software-Elemente enthält, ausgeführt werden. In einer bevorzugten Ausführungsform ist die Erfindung als Software realisiert, darunter Firmware, im Speicher befindliche Software, Mikrocode usw., aber nicht darauf beschränkt.
-
Die Erfindung kann die Form eines Rechnerprogramms bzw. eines Rechnerprogrammprodukts annehmen, auf das von einem durch einen Rechner verwendbaren bzw. durch einen Rechner lesbaren Medium zugegriffen werden kann, das Programmcode bereitstellt, das von oder in Verbindung mit einem Rechner oder jedem beliebigen Anweisungsausführungssystem verwendet wird. Für diese Beschreibung kann ein durch einen Rechner verwendbares bzw. durch einen Rechner lesbares Medium jede beliebige Vorrichtung sein, die das Programm, das von oder in Verbindung mit dem Anweisungsausführungssystem, der Vorrichtung oder der Einheit verwendet wird, enthalten, speichern, übertragen, verbreiten bzw. transportieren kann. Bei dem Medium kann es sich um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem (bzw. Vorrichtung oder Einheit) oder ein Verbreitungsmedium handeln. Zu Beispielen für ein durch einen Rechner lesbares Medium zählen ein Halbleiter- oder Festkörperspeicher, Magnetband, eine auswechselbare Rechnerdiskette, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen optischer Platten gehören ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine Lesen/Schreiben-Kompaktspeicherplatte (CD – R/W) und eine DVD.
-
Es können Verbesserungen und Abwandlungen an dem oben Beschriebenen vorgenommen werden, ohne von dem Umfang der vorliegenden Erfindung abzuweichen.