-
ALLGEMEINER STAND DER TECHNIK
-
ERFINDUNGSGEBIET
-
Die
vorliegende Offenbarung bezieht sich auf Computeranwendungen. Insbesondere
bezieht sich die Offenbarung auf ein Verfahren und ein System zur
Transaktions-Überwachung
einer Computeranwendung in Echtzeit.
-
BESCHREIBUNG DES STANDES DER
TECHNIK
-
Die
Java (TM) 2 Plattform, Enterprise Edition (J2EE), ist der Standard
zur Entwicklung von Mehrstufen-Unternehmensanwendungen. Mit dem
J2EE werden Unternehmensanwendungen auf der Basis von standardisierten
modularen Komponenten erstellt, diesen Komponenten ein Satz von
Diensten zugeordnet und viele Details des Anwendungsverhaltens automatisch,
ohne komplizierte Programmierung, gehandhabt.
-
Servlet-Technologie
versorgt Web-Entwickler mit einem einfachen konsistenten Mechanismus zum
Erweitern der Funktionalität
eines Web-Servers und zum Zugriff auf vorhandene Geschäftssysteme. Ein
Servlet kann fast als ein Applet betrachtet werden, das auf der
Server-Seite läuft – ohne Schnittstelle.
Java Servlets haben viele Web-Anwendungen möglich gemacht.
-
Es
gibt zwei Arten von EJBs (Enterprise Java Beans), „Entity
Beans" und „Session
Beans". Java-Programmierer
wissen bereits, was Objekte sind. Ein „Entity Bean" ist ein Objekt mit
speziellen Eigenschaften. Standard-Java-Objekte sind permanent insofern,
als sie entstehen, wenn sie in einem Programm erstellt werden. Wenn
das Programm schließt,
geht unter Umständen
das Objekt verloren. Ein Entity Bean kann jedoch solange bestehen,
bis es gelöscht
wird. Ein Programm kann ein Entity Bean erstellen, dann kann das
Programm gestoppt und neu gestartet werden. Das Entity Bean besteht
weiter. Nach dem Neustart kann das Programm das Entity Bean wieder
finden und das gleiche Bean weiter benutzen. Ein Entity Bean kann
von jedem beliebigen Programm im Netzwerk benutzt werden.
-
In
der Praxis könnte
ein Backup der Entity Beans in irgendeinem permanenten Speicher,
typisch in einer Datenbank gespeichert werden. Verfahren eines Entity
Beans könnten
auf einer „Server" Maschine laufen.
Wenn das Verfahren eines Entity Beans aufgerufen wird, stoppt ein
Thread des Programms die Ausführung,
und die Steuerung geht auf den Server über. Wenn das Verfahren vom
Server zurückkehrt,
nimmt der lokale Thread die Ausführung wieder
auf. Entity Beans könnten
einen primären Schlüssel aufweisen.
Der primäre
Schlüssel
ist einmalig, das heißt,
jedes Entity Bean wird eindeutig durch seinen primären Schlüssel identifiziert.
Zum Beispiel könnte
ein „Angestellten" Entity Bean Sozialversicherungsnummern
als primäre
Schlüssel
aufweisen.
-
„Session
Beans" unterscheiden
sich von Entity Beans dadurch, dass sie nicht permanente Objekte
sind. Im allgemeinen können
sie auch nicht gemeinsam benutzt werden, obwohl es möglich wäre, sie
durch Benutzung ihrer „Handles" gemeinsam zu benutzen.
Session Beans können
zum Verteilen und Isolieren von Verarbeitungsaufgaben benutzt werden.
Jedes Session Bean könnte
zur Durchführung einer
bestimmten Aufgabe im Auftrag seines Clients eingesetzt werden.
Die Aufgaben könnten
auf verschiedene Maschinen verteilt werden.
-
Unternehmen,
die sich mit Implementierungen von Web-Anwendungen und deren Einsatz
befassen, setzen eine Umgebung voraus, die die Management-Belange
Gesundheit, Verfügbarkeit
und Performance von Anwendungen anspricht, um sie zu einem integralen
und sich gut verhaltenden Teil der aufgabenkritischen IT Infrastruktur
zu machen.
-
Moderne,
dienstorientierte Unternehmen bauen auf einem komplexen Web von
Hardware und Software-Komponenten auf. Web-Anwendungen für diese
Unternehmen könnten
schichtweise aufgebaut, zusammengeschaltet und oft stark verteilt
sein. Gerade dieser architektonische Charakter von Web-Anwendungen
ist es, der eine große
Herausforderung für
die Identifizierung und Lösung
von Problemen bedeutet, vor die sich die Management-Belange Gesundheit,
Verfügbarkeit
und Performance gestellt sehen.
-
Einer
der Faktoren, die bei der Überwachung der
Verfügbarkeit
und Performance von Web-Anwendungen und der zugrunde liegenden Anwendungsserver-Infrastruktur
zu berücksichtigen
sind, ist der Einsatz von Transaktions-Überwachung in Echtzeit gegenüber synthetischer
Transaktions-Überwachung.
Synthetische Transaktions-Überwachung überwacht
positiv Web-Anwendungen und gestattet das Verhindern von Fehlern
oder Ausfall vor der Detektierung durch einen Endbenutzer. Synthetische Transaktions-Überwachung
adressiert jedoch nicht die Belange der Performance und Verfügbarkeit
von Echtzeit-Transaktionen. In anderen Worten, synthetische Transaktions-Überwachung
bietet keine wirkungsvolle Überwachung
des Echtzeit-Zustands eines Servers bei der Ausführung einer gegebenen Anwendung.
Frühere
Anstrengungen zur Berechnung von Performance-Schwellen für eine Internet
Website sind in der
US 6339750 zu
finden. Frühere
Anstrengungen, die den Einsatz eines Java Rahmens und eines systematischen
Ansatzes zur Unterstützung
der Nachführung
und Überwachung
von Software Komponenten in komponentenbasierten Programmen betreffen,
sind zu finden in Jerry Gao, Eugene Y. Zhu, Simon Shim, Lee Chang, „Monitoring Software
Components and Component-Based Software", Compsac 2000, S. 403, The Twenty-Fourth Annual
International Software and Applications Conference, 2000. Keines
dieser Dokumente nach dem Stand der Technik offenbart die Einfügung von
dynamischen Wächtern
in den Byte-Code der zu überwachenden
Anwendung.
-
Folglich
ist es vorteilhaft, ein Verfahren und ein System zum Überwachen
von Computeranwendungen unter Einsatz von Transaktionsüberwachung in
Echtzeit vorzusehen.
-
KURZDARSTELLUNG
-
Erfindungsgemäß sind vorgesehen:
ein
Verfahren zum Überwachen
einer Computeranwendung nach Anspruch 1;
ein System zum Überwachen
einer Computeranwendung nach Anspruch 11; und
ein computerlesbares
Medium nach Anspruch 22.
-
Ein
Verfahren zum Überwachen
einer Computeranwendung gemäß einer
Ausführungsform
der vorliegenden Offenbarung beinhaltet das Auswählen der Computeranwendung,
das Eingeben von Zustandsinformation, das Überwachen der Computeranwendung
und das Erzeugen eines Alarms, wenn der Zustand der Computeranwendung
die vorbestimmte Zustandsinformation erfüllt.
-
Ein
System zum Überwachen
einer Computeranwendung gemäß einer
Ausführungsform
der vorliegenden Offenbarung beinhaltet eine Schnittstellenvorrichtung,
die darauf eingerichtet ist, einem Benutzer das Auswählen einer
zu überwachenden Computeranwendung
und das Eingeben von Zustandsinformation zu ermöglichen, und eine Überwachungsvorrichtung,
die darauf eingerichtet ist, die ausgewählte Computeranwendung zu überwachen, wobei
die Schnittstellenvorrichtung einen Alarm erzeugt, wenn ein Zustand
der ausgewählten
Computeranwendung die vorbestimmte Zustandsinformation erfüllt, basierend
auf einem Ergebnis des von der Überwachungsvorrichtung
durchgeführten Überwachens.
-
Ein
Computersystem gemäß einer
Ausführungsform
der vorliegenden Offenbarung beinhaltet einen Prozessor und eine
von dem Computersystem lesbare Programmspeichervorrichtung, die
ein von dem Prozessor ausführbares
Programm von Anweisungen verkörpert,
um Verfahrensschritte zum Überwachen
einer Computeranwendung durchzuführen, wobei
die Verfahrensschritte das Auswählen
der Computeranwendung, das Eingeben von Zustandsinformation, das Überwachen
der Computeranwendung und das Erzeugen eines Alarms beinhalten, wenn
ein Zustand der Computeranwendung die vorbestimmte Zustandsinformation
erfüllt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Ein
vollständigeres
Verständnis
der vorliegenden Offenbarung und vieler der zugehörigen Vorteile
derselben wird bei Bezugnahme auf die folgende ausführliche
Beschreibung im Zusammenhang mit den beigefügten Zeichnungen erhalten,
in denen:
-
1 ein
Beispiel eines Computersystem zeigt, das fähig ist, das Verfahren und
das System der vorliegenden Offenbarung zu implementieren;
-
2 ein
Ablaufdiagramm ist, das ein Verfahren zum Überwachen einer Computeranwendung gemäß einer
Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
3 ein
Ablaufdiagramm ist, das einen Schritt zur Auswahl einer Computeranwendung
gemäß einer
Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
4 ein
Ablaufdiagramm ist, das einen Schritt zur Eingabe von Zustandsinformation
gemäß einer
Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
5 ein
Ablaufdiagramm ist, das einen Schritt zur Überwachung einer Computeranwendung gemäß einer
Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
6 ein
Ablaufdiagramm ist, das einen Schritt zur Erzeugung eines Alarms
gemäß einer Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
7 ein
Blockdiagramm ist, das ein System zum Überwachen einer Computeranwendung
gemäß einer
Ausführungsform
der vorliegenden Offenbarung veranschaulicht;
-
8 ein
Blockdiagramm ist, das eine Überwachungsvorrichtung
gemäß einer
Ausführungsform der
vorliegenden Offenbarung veranschaulicht; und
-
9 ein
Beispiel eines Agenten und Servers gemäß der vorliegenden Offenbarung
veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 zeigt
ein Beispiel eines Computersystems, welches das Verfahren und System
der vorliegenden Offenbarung implementieren kann. Das System und
Verfahren der vorliegenden Offenbarung kann in Form einer Softwareanwendung
implementiert werden, die auf einem Computersystem, wie einem Mainframe,
einem Personalcomputer (PC), einem handgehaltenen Computer, einem
Server usw. läuft.
Die Softwareanwendung kann auf einem Aufzeichnungsmedium gespeichert
werden, das vor Ort für
das Computersystem zugänglich
ist, wie zum Beispiel eine Diskette, eine CD (Compact Disk), Festplatte
usw., oder welches sich entfernt vom Computersystem befindet und über eine
festverdrahtete oder drahtlose Verbindung mit einem Netzwerk, wie zum
Beispiel einem Lokalbereichsnetzwerk oder dem Internet, zugänglich ist.
-
Ein
Beispiel eines Computersystems, das fähig ist, das vorliegende Verfahren
und System zu implementieren, ist in 1 dargestellt.
Das allgemein mit System 100 bezeichnete Computersystem
könnte
beinhalten: eine Zentraleinheit 102 (CPU), einen Speicher 104,
wie zum Beispiel einen Direktzugriffsspeicher (RAM), eine Druckerschnittstelle 106,
eine Anzeigeeinheit 108, einen LAN (Lokalbereichsnetzwerk)
Datenübertragungs-Controller 110,
eine LAN Schnittstelle 112, einen Netzwerk-Controller 114,
einen internen Bus 116 und ein oder mehrere Eingabegeräte 118,
wie zum Beispiel eine Tastatur, eine Maus usw. Wie dargestellt,
könnte
das System 100 über
eine Verbindung 122 an eine Datenspeichervorrichtung, wie
zum Beispiel eine Festplatte 120, angeschlossen sein.
-
Das
System und Verfahren der vorliegenden Offenbarung bezieht sich auf
das Gebiet des IT-Management (IT = Informationstechnologie). Traditionelles
IT-Management überwacht
Netzwerke, Maschinen und Betriebssysteme, kann aber nicht die kundenspezifische
Anwendungssoftware eines Kunden überwachen.
Das System und Verfahren der vorliegenden Offenbarung ergänzt traditionelle
IT-Management-Lösungen
durch Bereitstellung von Performance-Überwachung für EJBs und
Servlets, aus denen sich die kundenspezifische Anwendungssoftware
des Kunden zusammensetzt.
-
Das
System und Verfahren der vorliegenden Offenbarung stellt eine Managementlösung mit
einer Innenansicht der Anwendung bereit, um die Transaktionsverfügbarkeit
und Performance der Anwendung aus einer synthetischen Perspektive
und/oder einer Echtzeit-Perspektive zu managen. Da das System und
Verfahren zum Überwachen,
in Echtzeit, von selbst kundenspezifischen Anwendungen geeignet sind,
kann das System und Verfahren Performance- oder Verfügbarkeitsprobleme
einer verletzenden lokalen oder entfernten Java Bean Schnittstelle,
eines Servlets oder einer Datenbankverbindung detektieren.
-
Das
System und Verfahren der vorliegenden Offenbarung ist zum Überwachen
und Managen von Echtzeit- und anwendungsspezifischen Transaktionen
von einem Gesundheits- und Performance-Standpunkt aus geeignet.
Insbesondere ermöglicht
das System und Verfahren das Überwachen von
Transaktionen im Sinne eines Servlets, eines EJB oder eines Verbindungspools.
-
Ein
Verfahren zum Überwachen
einer Computeranwendung gemäß einer
Ausführungsform
der vorliegenden Offenbarung ist in 2 dargestellt. Das
Verfahren beinhaltet das Auswählen
der zu überwachenden
Computeranwendung, S20, das Eingeben von Zustandsinformation, S22,
das Überwachen der
Computeranwendung, S24, und das Erzeugen eines Alarms, wenn ein
Zustand der ausgewählten Computeranwendung
die vorbestimmte Zustandsinformation erfüllt, S26.
-
Bei
Schritt S20, wird die zu überwachende Computeranwendung
von einem Benutzer ausgewählt.
Wenn der Benutzer die Anwendung, die zu überwachen ist, kennt, kann
er einfach die Anwendung über
eine Eingabevorrichtung, wie über
eine Tastatur, eingeben. Die Anwendung kann zum Beispiel ein Enterprise
Java Bean oder ein Servlet sein. 3 veranschaulicht
ein Ablaufdiagramm des Auswahlschritts gemäß einer Ausführungsform
der vorliegenden Offenbarung. Bei Schritt S30 wird die überwachende
Computeranwendung ausgewählt.
Dies kann über
eine Tastatur, wie oben angegeben, erfolgen, oder die Computeranwendung
kann aus einer Liste von Computeranwendungen, die zur Überwachung über eine
Benutzeroberfläche
verfügbar
sind, ausgewählt
werden, was im Folgenden ausführlicher beschrieben
wird. Die Computeranwendung könnte ein
Java Bean oder ein Servlet sein. Ein Überwachungsintervall, das eine
Zeitperiode bezeichnet, in der die Computeranwendung zu überwachen
ist, kann bei Schritt S32 identifiziert werden. Eine Wartenummer,
die eine Anzahl von Überwachungsintervallen
bezeichnet, während welcher
ein Status der Anwendung in einem Zustand vor der Erzeugung des Alarms
verbleibt, kann bei Schritt S34 eingegeben werden. Das heißt, der
Alarm kann erst dann erzeugt werden, wenn die vorbestimmte Zustandsinformation für eine Mehrzahl
von Überwachungsintervallen
erfüllt
ist, wodurch ein hartnäckigeres
Problem angezeigt wird. Bei Schritt S36 kann Kennungsinformation eingegeben
werden, die durch den Alarm zu warnende Einzelpersonen betrifft,
falls und wenn er erzeugt wird. Das heißt, bei Schritt S36 werden
die Einzelpersonen identifiziert, an die der Alarm gesendet werden soll.
-
Schritte
S30 bis S36 können
durch die direkte Eingabe von Information über ein Eingabegerät, wie eine
Tastatur oder eine Maus, oder über
eine grafische Benutzeroberfläche
implementiert werden. In einer solchen Ausführungsform könnte eine
Liste aller Server, auf denen Computeranwendungen laufen, dem Benutzer
angezeigt werden. Nachdem der Benutzer einen Server ausgewählt hat,
erhält
er eine Liste aller auf dem Server laufenden Computeranwendungen.
Nun kann der Benutzer die gewünschte Anwendung
auswählen,
ohne im Voraus zu wissen, wie die zu überwachende Anwendung genau
heißt oder
wo ihr Standort ist. Die grafische Benutzeroberfläche könnte ferner
Aufforderungen bereitstellen, das Überwachungsintervall, die Wartenummer
und die Information über
Einzelpersonen, an die der Alarm gesendet werden soll, einzugeben.
-
Der
Schritt der Eingabe von Zustandsinformation, S22, wird weiter unter
Bezugnahme auf 4 beschrieben. Bei Schritt S40
könnte
der Benutzer ein bestimmtes Verfahren auswählen, das von der zu überwachenden
ausgewählten
Computeranwendung implementiert wird. Es wird darauf hingewiesen,
dass die Computeranwendung mehrere Verfahren beinhalten könnte, und
dass jedes Verfahren überwacht
werden kann. Bei Schritt S42 könnte
der Benutzer mindestens ein Ereignis oder einen Parameter aus einer
Mehrzahl von auf das ausgewählte Verfahren
bezogenen Parametern auswählen.
Diese Parameter könnten
sein: eine durchschnittliche Ausführungszeit für das Verfahren
während
des Überwachungsintervalls,
eine maximale Ausführungszeit
für das
Verfahren während
des Überwachungsintervalls, eine
Verfahrensaufrufzählung,
die eine Anzahl von Malen anzeigt, die das Verfahren während des Überwachungsintervalls
aufgerufen wird, und eine Verfahrensfadenzählung, die eine Anzahl von
Threads anzeigt, die das Verfahren während eines Überwachungsintervalls
aufrufen. Der Benutzer kann alle Parameter oder einen oder mehrere
dieser Parameter zur Überwachung
auswählen.
-
Der
Benutzer kann Schwellenwerte setzen, um einen Status des Verfahrens
oder der Anwendung mit Bezug auf jeden dieser Parameter in Schritt S44
einzurichten. Das heißt,
der Benutzer kann für jeden
ausgewählten
Parameter einen Schwellenwert oder Werte setzen, die verschiedene
Zustände
der Anwendung anzeigen. Zum Beispiel ist für den Parameter der durchschnittlichen
Ausführungszeit
der Status normal, vorausgesetzt, die durchschnittliche Ausführungszeit
liegt nicht über
einer vorbestimmten ersten Schwelle oder einer Warnebene. Ein Warnstatus
ergibt sich, falls die durchschnittliche Ausführungszeit zwischen der ersten
Schwelle und einer zweiten Schwelle, einer weniger wichtigen Ebene, liegt.
Ein wichtiger Status wird angegeben, wenn die durchschnittliche
Ausführungszeit
zwischen einer zweiten Schwelle und einer dritten Schwelle, einem kritischen
Wert, liegt. Die Status wird mit kritisch bezeichnet, wenn die durchschnittliche
Ausführungszeit über der
dritten Schwelle liegt. Jeder der Parameter könnte verschiedene erste, zweite
und dritten Schwellenwerte haben. Somit könnte ein erster Schwellenwert
für das
Ereignis der durchschnittlichen Ausführungszeit sich von einem ersten
Schwellenwert für
das Ereignis der maximalen Ausführungszeit
unterscheiden.
-
Die
Schritte S40 bis S44 könnten
auch über die
grafische Benutzeroberfläche
implementiert werden. Der Benutzer könnte ein zu überwachendes ausgewähltes Verfahren
aus einer Liste mehrerer Verfahren wählen, die in der ausgewählten Computeranwendung
durchgeführt
werden. Der Benutzer kann mindestens einen Parameter auswählen, der auf
das ausgewählte
Verfahren bezogen ist. Dann kann der Benutzer die ersten, zweiten
und dritten Schwellenwerte für
jeden ausgewählten
Parameter über
die grafische Oberfläche
eingeben.
-
Der
Schritt des Überwachens
der Computeranwendung wird ferner mit Bezug auf 5 beschrieben.
In Schritt S50 werden die dynamische Wächter in den Byte-Code der
Computeranwendung eingefügt.
Die dynamischen Wächter ändern weder den
Anwendungscode noch haben sie Einfluss auf die Performance Anwendung,
sie überwachen
lediglich die Anwendung auf das Eintreten bestimmter Ereignisse.
Bei Schritt S52 wird nach Eintreten jedes der Ereignisse eine Benachrichtigung
erzeugt. In einer bevorzugten Ausführungsform erzeugt der dynamische
Wächter
eine Benachrichtigung, wenn (1) die Anwendung geladen ist, (2) die
Ausführung
des Verfahrens beginnt, (3) die Ausführung des Verfahrens endet
und (4) ein Thread auf das Verfahren zugreift. Die Benachrichtigung
könnte
Daten enthalten, die einen Typ der Anwendung angeben, wie zum Beispiel ein
Enterprise Java Bean oder Servlet, eine Thread-ID, die den Thread
angibt, der die Anwendung aufgerufen hat, den Namen der Anwendung und
die Zeitinformation, die die Startzeit oder Endzeit des Verfahren
anzeigt. Da die dynamischen Wächter in
den Byte-Code der
Anwendung selbst eingefügt werden,
stellen die von dem dynamischen Wächter erzeugten Benachrichtigungen
Echtzeitinformation über
das Funktionieren der Computeranwendung bereit. Die Echtzeitinformation
ist nützlich
insofern, als sie den tatsächlichen
Zustand des Servers veranschaulicht, auf dem die Anwendung läuft.
-
Bei
Schritt S54 können
die Daten in den Benachrichtigungen, die von dem dynamischen Wächter erzeugt
wurden, veröffentlicht
werden. Das heißt, die
Daten können
zur Auswertung an einen außerhalb
der überwachten
Anwendung liegenden Bereich gesendet werden, um zu bestimmen, ob
im Erzeugungsschritt S26 ein Alarm erzeugt werden sollte.
-
Der
Schritt des Erzeugens eines Alarms, S26, wird ferner mit Bezug auf 6 beschrieben. Bei
Schritt S60 werden die Daten in den von dem oder den dynamischen
Wächtern
erzeugten Benachrichtigungen verarbeitet, um einen Wert für die ausgewählten Parameter
zu bestimmen. Jeder für
die Überwachung
in Schritt S22 von 2 ausgewählte Parameter kann anhand
der Daten in der Benachrichtigung bestimmt werden, obwohl zu diesem Zweck
das Kombinieren der Daten aus mehr als einer Benachrichtigung erforderlich
sein könnte.
Zum Beispiel könnte
eine erste Benachrichtigung die Startzeit des Verfahrens anzeigen,
während
eine zweite Benachrichtigung die Endzeit des Verfahrens angeben
könnte.
Die beiden Benachrichtigungen zusammen könnten dazu verwendet werden,
die Ausführungszeit
des Verfahrens zu bestimmen. Um zu bestimmen, ob diese Ausführungszeit
eine minimale Ausführungszeit
oder eine maximale Ausführungszeit
ist, könnte
die Ausführungszeit
mit anderen während
des Überwachungsintervalls
bestimmten Ausführungszeiten
verglichen werden.
-
Bei
Schritt S62 wird der Wert jedes ausgewählten Parameters mit dem oder
den Schwellenwerten für
jeden der ausgewählten
Parameter verglichen, um eine Anzeige des Status der Anwendung mit
Bezug auf den ausgewählten
Parameter bereitzustellen. Bei Schritt S64 wird eine Bestimmung
vorgenommen, ob der Status oder Zustand der Anwendung die Zustandsinformation
erfüllt.
Insbesondere wird, basierend auf dem Status jedes der Parameter mit
Bezug auf die damit verbundenen Schwellenwerte eine Bestimmung betreffs
der Erzeugung eines Alarms vorgenommen. Zum Beispiel, wenn die durchschnittliche
Ausführungszeit
den Status kritisch aufweist, ist wahrscheinlich, dass dies ein
Problem anzeigt, und es sollte ein Alarm erzeugt werden, Ja bei
S64. Der Alarm wird dann bei Schritt S66 erzeugt. Wenn andererseits
der Status jedes Parameters normal lautet, ist das Erzeugen eines
Alarms nicht erforderlich, Nein bei S64. In diesem Fall braucht
kein Alarm erzeugt werden, und der Prozess kann zu Schritt S60 zurückkehren,
um Daten in den Benachrichtigungen des nächsten Überwachungsintervalls zum Beispiel
zu verarbeiten. Der Benutzer kann den Status der Computeranwendung
bestimmen, für
den der Alarm erzeugt wird.
-
Ein
System 70 zum Überwachen
einer Computeranwendung gemäß der vorliegenden
Anmeldung ist mit Bezug auf 7 beschrieben.
Eine Schnittstellenvorrichtung 72 ist darauf eingerichtet, einem
Benutzer die Auswahl der zu überwachenden Computeranwendung
und die Eingabe von Zustandsinformation zu gestatten. Eine Überwachungsvorrichtung 74 ist
darauf eingerichtet, die Computeranwendung zu überwachen. Die Schnittstellenvorrichtung 72 könnte auch
einen Alarm erzeugen, wenn der Zustand der Computeranwendung mit
der vorbestimmten Zustandsinformation übereinstimmt.
-
Die
Schnittstellenvorrichtung 72 könnte als grafische Benutzeroberfläche implementiert
sein, die dem Benutzer gestattet, die Auswahl- und Zustandsinformation
auf einfache Weise einzugeben. Gemäß einer Ausführungsform
der vorliegenden Anmeldung gestattet die Schnittstellenvorrichtung 72 dem
Benutzer Auswahlinformation zur Auswahl eines Servers einzugeben,
auf dem die gewünschte
Computeranwendung läuft.
Dann könnte
der Benutzer mindestens eine spezifische Computeranwendung aus einer Mehrzahl
von auf dem Server laufenden, zu überwachenden Computeranwendungen
auswählen.
Der Benutzer könnte
ferner ein Überwachungsintervall bereitstellen
und eine Zeitperiode angeben, während der
die Computeranwendung überwacht
wird, und eine Wartenummer setzen, die die Anzahl der Überwachungsperioden
angibt, während
welcher der Zustand des Servers die vorbestimmte Zustandsinformation
erfüllt,
bevor der Alarm erzeugt wird. Wie oben bemerkt, könnte es
vorteilhaft sein, mit der Erzeugung des Alarms etwas zu warten,
um sicherzustellen, dass ein Problem in der Performance der Computeranwendung
bestehen bleibt. Der Benutzer könnte
ferner Kennungsinformation über
Einzelpersonen bereitstellen, an die der Alarm zu senden ist, falls
und wenn er erzeugt wird.
-
Die
vom Benutzer eingegebene Zustandsinformation könnte Information zur Auswahl
mindestens eines Verfahrens aus einer Mehrzahl von Verfahren beinhalten,
die von der ausgewählten
Computeranwendung zur Überwachung
implementiert werden. Der Benutzer könnte ferner mindestens einen aus
einer Mehrzahl von Parametern auswählen, die sich auf das zu überwachende
Verfahren beziehen. Diese Parameter beinhalten eine durchschnittliche Ausführungszeit
für das
Verfahren während
des Überwachungsintervalls,
eine maximale Ausführungszeit
für das
Verfahren während
des Überwachungsintervalls,
eine minimale Ausführungszeit
für das
Verfahren während
der Ausführungszeit,
eine Verfahrensaufrufzählung,
die angibt wieviel Mal das Verfahren während des Überwachungsintervalls aufgerufen
wurde, und eine Verfahrensfadenzählung, die
angibt, wieviele Threads eine Verfahrensanforderung während des Überwachungsintervalls
handhaben. Die Schnittstellenvorrichtung 72 gestattet dem Benutzer
ferner, mindestens einen Schwellenwert für jeden der ausgewählten Parameter
einzugeben, um den Status der Computeranwendung zu bestimmen. In
einer bevorzugten Ausführungsform
werden mehrere Schwellenwerte für
jeden der Parameter eingegeben. Mit jedem dieser Schwellenwerte
könnte
ein Status verbunden sein. Normal könnte der Status sein, bei dem
der Parameter unter einem ersten Schwellenwert, bezeichnet mit Warnebene,
liegt. Ein Warnstatus ist das Ergebnis, wenn der Wert des Parameters
zwischen dem ersten Schwellenwert und einem zweiten Schwellenwert
liegt. Wichtig könnte der
Status sein, wenn der Wert des Parameters zwischen dem zweiten Schwellenwert
und einem dritten Schwellenwert, bezeichnet als kritischer Wert,
liegt. Kritisch ist der Status, wenn der Wert des Parameters über dem
dritten Schwellenwert liegt. Jeder der Parameter könnte verschiedene
erste, zweite und dritte Schwellenwerte aufweisen. Somit könnte ein
erster Schwellenwert für
den durchschnittlichen Ausführungszeit-Parameter
ein anderer als der erste Schwellenwert für den maximalen Ausführungszeit-Parameter
sein.
-
Die Überwachungsvorrichtung 74 dient
zum Überwachen
der Anwendung. Die Überwachungsvorrichtung
ist im Detail mit Bezug auf 8 beschrieben.
Eine Einfügungsvorrichtung 80 dient
zum Einfügen
mindestens eines dynamischen Wächters in
den Byte-Code der ausgewählten
Anwendung. Insbesondere könnte
die Einfügungsvorrichtung
mindestens einen dynamischen Wächter
in den Byte-Code des ausgewählten
Verfahrens einfügen.
Der dynamische Wächter
erzeugt Benachrichtigungen beim Eintreten bestimmter Ereignisse
in der Computeranwendung. Insbesondere erzeugt der dynamische Wächter eine
Benachrichtigung, wenn (1) die Computeranwendung aufgerufen wird,
(2) das ausgewählte
Verfahren mit der Ausführung
beginnt, (3) das ausgewählte
Verfahren die Ausführung
beendet und (4) ein Thread auf das Verfahren zugreift. Die Benachrichtigung
könnte
Daten beinhalten, die einen Typ der Anwendung anzeigen, wie zum
Beispiel ein Enterprise Java Bean oder ein Servlet, eine Thread-ID,
die den Thread anzeigt, der die Anwendung aufgerufen hat, den Namen
der Anwendung und die Zeitinformation, die die Startzeit oder Endzeit des
Verfahrens anzeigt.
-
Eine
Veröffentlichungsvorrichtung 82 ist
darauf eingerichtet die in dem Benachrichtigungsverfahren enthaltenen
Daten zu veröffentlichen.
Das heißt, die
Veröffentlichungsvorrichtung
könnte
Daten, die den Daten in der Benach richtigung entsprechen, an die
Benutzeroberfläche 80 senden.
In einer bevorzugten Ausführungsform
erfolgt die Veröffentlichung dadurch,
dass die Daten unter Einsatz des User Datagram Protokolls an die
Schnittstellenvorrichtung 80 gesendet werden. Insbesondere
könnte
das Datagram mit den in der Benachrichtigung enthaltenen Daten für jede von
mindestens einem dynamischen Wächter
erzeugte Benachrichtigung von der Veröffentlichungsvorrichtung 82 an
die Schnittstellenvorrichtung 72 gesendet werden.
-
Die
Benutzeroberfläche 72 könnte nun
die Daten in der Benachrichtigung verarbeiten, um Werte für jeden
der ausgewählten
Parameter zu bestimmen. Diese Bestimmung könnte das Sammeln der Daten
aus mehreren Benachrichtigungen erfordern. Zum Beispiel wird eine
Benachrichtigung zu Beginn der Ausführung des ausgewählten Verfahrens
erzeugt, und eine weitere Benachrichtigung könnte nach Beenden der Ausführung des
ausgewählten Verfahrens
erzeugt werden. So könnte
auf der Basis dieser beiden Benachrichtigungen die Ausführungszeit
bestimmt werden. Außerdem
ist es zum Bestimmen einer durchschnittlichen Ausführungszeit
notwendig, die durchschnittliche Ausführungszeit aller Aufrufe des
ausgewählten
Verfahrens während
des Überwachungsintervalls
zu berechnen. Der Wert jedes ausgewählten Parameters könnte nun
mit dem oder den Schwellenwerten verglichen werden, die jedem ausgewählten Parameter
zugeordnet sind, um den Status der Computeranwendung zu bestimmen. Auf
der Basis des Status könnte
die Schnittstellenvorrichtung 70 den Alarm erzeugen. Der
Alarm könnte
nun an die über
die Schnittstellenvorrichtung identifizierten Einzelpersonen gesendet
werden. Zum Beispiel, wenn ein Wert der durchschnittlichen Ausführungszeit über dem
dritten Schwellenwert liegt, ist der Status der Computeranwendung
kritisch. Dies könnte
ein ernstes Problem in der Ausführung
der Computeranwendung bedeuten, und der Alarm wird erzeugt. Wenn
jedoch der Wert jedes der ausgewählten
Parameter unter einem ersten Schwellenwert für jeden Parameter liegt, funktioniert
die Computeranwendung normal, und der Alarm braucht nicht erzeugt
zu werden. Der Benutzer kann den Status für jeden Parameter festlegen,
bei dem der Alarm erzeugt werden soll.
-
Es
wird darauf hingewiesen, dass das System zum Überwachen einer Computeranwendung weitgehend
das Verfahren zum Überwachen
einer oben besprochenen Computeranwendung implementiert.
-
In
einer spezifischen Ausführungsform
der vorliegenden Anmeldung könnte
das System zum Überwachen
einer Computeranwendung als Plug-in in den Anwendungsserver des
Unicenter Management for J2EE Agent, zum Beispiel, implementiert sein
und mit diesem eine Schnittstelle aufweisen. In einer bevorzugten
Ausführungsform
gestattet eine Benutzeroberfläche
einem Benutzer, ausgewählte Anwendungen,
wie zum Beispiel EJBs und Servlets innerhalb des Anwendungsservers
zu überwachen. Insbesondere
könnte
die Benutzeroberfläche
ein Formular aufweisen, das ein einzelnes, einen Weblogic Insider
Expert Agent darstellendes Objekt oder einen Agent enthält. Das
Formular zeigt das von der Weblogic eingesetzte Servlet oder EJB,
das heißt
die ausgewählte
Anwendung, die der Expert Agent überwacht.
Zu überwachende
Servlets oder EJBs können hinzugefügt, modifiziert
und entfernt werden. Nur die Servlets und EJBs, die innerhalb der
vom gleichen Agent überwachten
Weblogic Server eingesetzt werden, sind zulässig.
-
9 zeigt
ein Beispiel eines Agent und Server gemäß der vorliegenden Offenbarung.
Ein Management Block 900, wie ein Unicenter Management für Weblogic,
Websphere oder Oracle9iAS, ist an einen Agent 902 angeschlossen
dargestellt, der innerhalb eines Anwendungsservers 904 an
einen Insider Publisher 906 angeschlossenen ist. Der Insider
Publisher 906 ist an ein Instrumentiertes Objekt 908 angeschlossen,
das an eine Instrumentierte Klasse 912 ange schlossen ist,
die sowohl mit dem Insider Manager 910 als auch einem Klasse
Lader 914 verbunden ist.
-
Insider,
das heißt
der Insider Manager und der Insider Publisher zusammen, funktionieren
als Instrumentations-Agent
für Agent.
Er kann auf der JVM (Java Virtual Machine) laufen, dem Ort, an dem
alle EJBs und Servlets laufen. Der Agent könnte unter Einsatz des UDP
Veröffentlichungs-/Teilnehmermodells
(UDP = User Datagram Protokoll) mit dem Insider kommunizieren. Die
Insider Architektur könnte
in zwei Teile – Byte-Code-Instrumentierung
und Veröffentlichungs-Instrumentierung – eingeteilt
sein, um dem Agent Daten bekanntzugeben (zu veröffentlichen).
-
Wenn
eine „Klasse", oder Anwendung,
in die JVM geladen wird, kann der Insider sie unterbrechen und dynamische
Wächter
in diese Klassen-Dateien einfügen.
Wenn EJBs, JSPs/Servlets und Standalone Java-Klassen in die JVM
geladen werden, kann der Insider den Byte-Code durch Einfügen von
dynamischen Sensoren oder Wächtern
instrumentieren.
-
Der
Insider könnte
dem Agent Daten unter Einsatz von zwei Verfahren bekanntgeben. Das
erste Verfahren ist ein UDP Veröffentlichungs-/Teilnehmer-Verfahren,
wobei Insider einen UDP-Anschluss am Anwendungsserver öffnet. Für jede aus
der Byte-Code Instrumentierung empfangene Benachrichtigung, könnte er
ein Datagram-Paket aussenden. Das zweite Verfahren ist ein CASM
EJB Verfahren, wobei CASM EJB als Anforderungs-Antwort-Dienst fungiert.
Der Agent benutzt diesen Dienst zum Holen der Metadaten der instrumentierten
Objekte oder überwachten
Anwendungen. Dieser Dienst könnte
das Veröffentlichen
von Daten auch dynamisch starten und stoppen.
-
Das
vorliegende System und Verfahren stellt somit eine wirkungsvolle
und bequeme Möglichkeit für einen
Verwalter bereit, ein oder mehrere Computersysteme zu konfigurieren
und zu modifizieren.
-
Die
vorliegende Offenbarung könnte
zweckmäßig unter
Einsatz eines oder mehrerer konventioneller digitaler Allzweck-Computer und/oder
Server, die gemäß den Lehren
der vorliegenden Spezifikation programmiert sind, implementiert
werden. Entsprechende Software-Codierung könnte ohne weiteres von fachlich
geschulten Programmierern auf der Basis der Lehren der vorliegenden
Offenbarung erstellt werden. Die vorliegende Offenbarung könnte auch
durch Erstellung von anwendungsspezifischen integrierten Schaltungen
oder durch Zusammenschaltung eines entsprechenden Netzwerks konventioneller
Komponenten implementiert werden.