Next: Implementierungsansätze für die Agentenobjekte
Up: Implementierung der CORBA-Objekte für
Previous: Überblick über VisiBroker for
Aus den IDL-Beschreibungen der Managementobjektklassen entstehen bei
der Implementierung CORBA-Server-Objekte, die den Agenten
bilden. Der IDL-Compiler idl2java übersetzt die
IDL-Objektbeschreibungen. Seit Version 3.0 des VisiBroker for
Java ist die Abbildung von IDL auf Java konform mit dem von der
OMG verabschiedeten language mapping. Bei der Übersetzung
erzeugt der IDL-Compiler Client Stubs und Server
Skeletons in Form von Java-Dateien. Die Skeletons ermöglichen die
Kommunikation der Server-Objekte mit dem ORB. Hierzu werden sie
zusammen mit dem Code, der die Managementinformation und
Funktionalität eines Objekts realisiert, mit dem Java-Compiler
javac übersetzt. Es entsteht ein Agentenobjekt, welches beim
Implementation Repository des ORB registriert werden
kann. Die Stubs ermöglichen es einem Client, über den ORB auf ein
Agentenobjekt zuzugreifen. In unserem Fall ist der Client das
Management-Applet (siehe Abschnitt 6.4). Das lauffähige
Applet entsteht durch Übersetzen des Applet-Codes und der Stubs durch
den Java-Compiler. Abbildung 6.6 verdeutlicht die weitere
Implementierung. Die schattierten Komponenten werden automatisch
generiert.
Abbildung 6.6:
Implementierung der CORBA-Objekte
52#52 |
Der VisiBroker-IDL-Compiler und -ORB sind reine Java-Programme. Für
die Implementierung wurde das Java Development Kit für AIX von
IBM in der Version 1.1.3 eingesetzt.
Bei idl2java handelt es sich um ein Shellskript, welches die
Java-VM mit der Compiler-Klasse aufruft. Zur Übersetzung einer
IDL-Datei genügt im Normalfall das Kommando
idl2java <dateiname>
. Die IDL-Datei muß die Endung .idl
besitzen. Optionale Parameter zu idl2java sind in
[Vis97c] erläutert. Am Beispiel der Klase nucleus werden
die von idl2java erzeugten Java-Dateien erklärt:
- nucleus.java:
- Dies ist die Java-Interface-Deklaration zum
IDL-Interface der Klasse nucleus. Das Java-Interface enthält
für jedes Attribut der Klasse eine Methode zum Auslesen und zum
Schreiben, falls das Attribut nicht als read only
gekennzeichnet war. Für das schreibbare Attribut Name werden
also folgende Methoden erzeugt:
public java.lang.String Name();
public void Name(java.lang.String Name);
Zusätzlich enthält das Interface Deklarationen für jede Methode der
IDL-Klassenbeschreibung.
- nucleusHelper.java:
- Diese Klasse definiert Hilfsfunktionen wie
narrow(), bind() oder id(), die auf den
zugehörigen CORBA-Objektinstanzen arbeiten.
- nucleusHolder.java:
- Dies ist eine Hilfsklasse, die intern zur
Übergabe von Parametern an die CORBA-Objektinstanz benötigt wird.
- _st_Nucleus.java:
- Diese Klasse enthält den Code für den
Client Stub.
- _nucleusImplBase.java:
- Diese Klasse ist das zugehörige
Server Skeleton.
- _tie_nucleus.java:
- Diese Klasse wird benötigt, wenn der
sog. Tie-Mechanismus zur Implementierung des Objekts eingesetzt
wird.
- _nucleusOperations.java:
- Dieses Java-Interface wird ebenfalls
für den Tie-Mechanismus benötigt.
- _example_nucleus.java:
- Code-Gerüst, welches als Basis der
Implementierung für das Server-Objekt dienen kann.
Weiterhin werden im Unterverzeichnis nucleusPackage Hilfsklassen
für Attribute erzeugt, deren IDL-Datentypen nicht auf einfache
Java-Datentypen abgebildet werden können. Dies ist bei der Klasse
nucleus bei den Statusattributen der Fall. Außerdem werden aus
Gründen der Kompatibilität zu älteren Versionen von VisiBroker
noch einige weitere Java-Klassen generiert, die hier nicht weiter
beschrieben werden. Mit Ausnahme der Datei
_example_nucleus.java muß keine der automatisch
generierten Dateien für die Implementierung verändert werden.
Next: Implementierungsansätze für die Agentenobjekte
Up: Implementierung der CORBA-Objekte für
Previous: Überblick über VisiBroker for
Copyright Munich Network Management Team