Next: Möglichkeiten der Schnittstellenimplementierung
Up: Aufbau des Java Native
Previous: Aufbau des Java Native
Der Grund für die Verwendung des Java Native Interface war, den Nachrichtenaustausch zwischen
den TIS-Komponenten (Admin-Server, Gateway, Gatekeeper) mittels der für diese Umgebung
entwickelten IPC-Messages zu realisieren. So mußte eine Schnittstelle geschaffen werden,
welche zum einen die Funktionalität des SNMP-Extension Agent (SXA), welcher in der
bisherigen Managementumgebung verwendet wird, bietet, andererseits eine leichte Handhabung
auf der Seite des JDMK-Agenten ermöglicht. Die Schnittstelle zu den TIS-Komponenten mußte
zudem möglichst schmal ausgelegt werden, da aufgrund der häufigen Änderungen, die während der
Entwicklungszeit auftraten, eine häufige Anpassung des C++-Source-Codes erforderlich machte.
Generell bieten sich für die Kommunikation zweierlei Varianten an:
- Kommunikation über SNMP
Bei dieser Variante wird die Kommunikation über den SNMP-Agenten geführt, welcher
die SXA.DLL, welche bis jetzt verwendet wird, weiterhin beinhaltet. Die Kommunikation würde
dann auf Seite des JDMK-Agenten über SNMP-Aufrufe laufen, die Umsetzung der SNMP-Aufrufe
würde dann die Java Native Interface Schnittstelle übernehmen. Eine solche Art der Kommunikation
ist in Abbildung 6.5 zu sehen.
Abbildung: Kommunikation JDMK über SNMP-Requests
Wie aus der Abbildung ersichtlich wird, ist eine derartige Realisierung nicht nur sehr ineffektiv und
umständlich, sondern erfordert zudem die Verfügbarkeit des Windows NT SNMP-Agenten. Den einzigen
Vorteil, den diese Variante bietet ist, daß die C++-Seite des TIS vollständig gekapselt sein kann und der
JDMK-Agent keine Eingriffe in den C++-Source-Code durchführen muß.
- Kommunikation über IPC-Nachrichten
Diese Variante ermöglicht es dem JDMK-Agenten, selbst IPC-Nachrichten zu generieren und diese
an die entsprechenden Applikationen zu versenden. Dabei kann C++-Source-Code des SXA verwendet
werden
. Dabei werden die Managementaktionen, welche auf den M-Beans des JDMK-Agenten ausgeführt
werden, in IPC-Nachrichten verpackt. Es ist notwendig, daß bei Start des Agenten oder zumindest vor
der erstmaligen Benutzung des Interfaces (erste Managementaktion) eine Initialisierung (des Interfaces)
durchgeführt wird. Diese Initialisierung besteht in dem Durchlaufen der in Kapitel 4.7 dargestellten
``.mdf''-Datei, die die Management-Knoten enthält und dem simultanen Aufbau einer Baumstruktur,
welche diese Knoten darstellt. Wenn nun ein Request auf eine MIB-Variable
ausgeführt wird, so bildet die Schnittstelle die übergebene OID auf den entsprechenden Knoten (Dateityp
CAsnNode, (vgl. Kapitel 4.7) ab und kann so die Struktur der erforderlichen
IPC-Nachricht ermitteln.
Mit der Ausführung der Methode BuildVarBind
wird schließlich der Request mit Übergabe der
jeweiligen IPC-Nachricht ausgeführt und auf Antwort gewartet.
Die Integration der SXA-Funktionalität in das JNI-Interface ist in Abbildung 6.6 dargestellt.
Abbildung: Kommunikation JDMK über IPC-Nachrichten
Obwohl diese Variante einen Mehraufwand in der Implementierung bedeutet, ist sie der ersten unbedingt
vorzuziehen. Zum einen kann ein Großteil des Programm-Codes wiederverwendet werden und zum
anderen ist nicht die Präsenz des Windows NT SNMP-Agenten notwendig. Auch ist die Kommunikation
nicht auf SNMP beschränkt.
Next: Möglichkeiten der Schnittstellenimplementierung
Up: Aufbau des Java Native
Previous: Aufbau des Java Native
Beispielbenutzer SuSE Linux 6.0
Sun May 9 21:16:36 MEST 1999