next up previous contents
Next: Definition der nativen Methode Up: Implementierung der CORBA-Objekte für Previous: Implementierungsansätze für die Agentenobjekte

6.3.4 Das Java Native Interface (JNI)

  Das Java Native Interface (JNI) wurde entwickelt, um Java-Programmen, die innerhalb der Java-VM laufen, die Möglichkeit zu geben, mit Programmen zusammenzuarbeiten oder Bibliotheksfunktionen zu nutzen, die in einer anderen Programmiersprache (z.B. C oder Assembler) geschrieben sind. JNI besorgt die Umwandlung der Datenformate bei der Übergabe von Parametern zwischen dem Java-Programm und der Fremdfunktion (native method). Der Fremdprozeß hat zudem die Möglichkeit auf Klassen und Objekte des Java-Programms zuzugreifen und kann Ausnahmen erzeugen. Der Einsatz des JNI ist erforderlich, wenn eine Java-Anwendung plattformabhängige Funktionen nutzen möchte, die nicht von den Standardklassen des JDK unterstützt werden. Ein weiteres Szenario für die Nutzung des JNI ist der Fall, daß bestimmte Funktionen bereits von einer bestehenden Bibliothek bereitgestellt werden und diese von dem Java-Programm genutzt werden sollen.

Für den CORBA-Agenten treffen beide Szenarien zu. Wie oben bereits erwähnt, ist es zum Teil erforderlich, Betriebssystemaufrufe zur Ermittlung von Managementinformation zu nutzen. Außerdem besteht zu dem Objektmodell für das Management von UNIX-Workstations, welches in das generische Objektmodell integriert wurde (siehe Kapitel 4.3), bereits ein SNMP-Agent. Dieser Agent ist in C geschrieben und überwiegend auch für AIX 4.2 portiert (siehe [Sch96d]). Er ist zu einem Großteil modular aufgebaut, das heißt, Funktionen zum Lesen und Schreiben von Attributen sowie zum Ausführen von Aktionen werden von einzelnen Modulen implementiert. Hierdurch können Funktionen, die von einem Agentenobjekt aufgerufen werden sollen, zu einer Bibliothek gebunden werden, die über das JNI angesprochen werden kann.

Für den Prototypen wurde das Release 1.1 des JNI eingesetzt. Die genaue Spezifikation findet sich in [Jav97]. Ferner gibt es von der Firma JavaSoft ein WWW-Tutorial[*] zum JNI. Anhand eines einfachen Beispiels soll die Verwendung des JNI innerhalb des Agentenobjekts für die Klasse UNIXSystem erläutert werden. Das Attribut Uptime gibt die Zeit seit dem letzten Neustart des Betriebssystems in Sekunden an. Sie soll von der C-Routine get_sysUptime.c (Quellcode in Anhang B) des SNMP-Agenten ermittelt werden. Folgende Schritte sind erforderlich:



 
next up previous contents
Next: Definition der nativen Methode Up: Implementierung der CORBA-Objekte für Previous: Implementierungsansätze für die Agentenobjekte
Copyright Munich Network Management Team