Next: Erzeugung des managerseitigen Stubs
Up: Umsetzung des Kommunikationsmodells
Previous: Umsetzung des Kommunikationsmodells
Contents
Auf JAVA-Seite können durch Benutzen des IDL-Mapping-Werkzeugs idlj
die folgenden JAVA-Dateien je nach Abhängigkeit des IDL Typs generiert
werden. Durch das JAVA-Paradigma werden sämtliche Elemente in Klassen
(als die auch die JAVA-Interfaces zu bezeichnen sind) ausgedrückt:
- xxxOperations.java: ist ein Interface mit Beschreibung der
Methoden und wird aus dem IDL-Typ interface generiert.
- xxx.java: kann als Signaturklasse angesehen werden, die das
betreffende Objekt beschreibt und immer als Repräsentant in Aufrufen
usw. angegeben wird. Durch ein Implementieren entsprechender Interfaces
definiert es den Charakter des dadurch beschriebenen Objektes wie
z.B. eine Ausname oder eines ``streamable'' Values, wie
es bei einem Object-By-Value Typ der Fall ist.
- xxxHelper.java: diese Klasse bietet Hilfsfunktionalitäten zum
Lesen, Schreiben und Umwandeln von benutzten Datentypen und IOR als
auch Interpretieren des allgemeinen Datentyps Any
- xxxHolder.java: unter Benutzung von xxxHelper ist diese
Klasse für out und inout Parameter zuständig
- xxxPOA.java: dies ist der eigentliche Skeleton, abgeleitet von
org.omg.PortableServer.Servant, der alle generischen Skeletonfunktionalitäten
umfasst. Unter Implementierung von xxxOperations.java sowie
org.omg.CORBA. portable.InvokeHandler wird hier das Demarshalling
als auch das Marshalling der Parameter als auch der Rückgabewerte
der vorkommenden Methoden geregelt. Der Skeleton kann dann durch eine
Implementationsklasse beerbt werden, in der die Methodenfunktionalitäten
umgesetzt sind, oft xxxImpl.java genannt
- _xxxStub.java: außerdem kann noch ein Stub generiert werden, der
hier der Vollständigkeit halber erwähnt werden soll, aber nicht benötigt
wird.
- xxxDefaultFactory.java: das Erzeugen von Object-By-Value Objekten
muss stets über eine Factory10.4 geschehen, die entweder selbst implementiert werden kann oder es
kann die hier erwähnte DefaultFactory benutzt werden.
Für den IDL Typ interface werden jeweils alle der oben aufgeführten
Dateien bis auf die Factory erzeugt, für die IDL Typen struct,
exception und enumeration genügen für die Übertragung
objektbeschreibende Interface sowie die Helper- und Holderklassen.
Bei Object-By-Value Klassen werden ebenfalls keine Operations-
und Skeleton/Stub-Klassen generiert, dafür aber die Factoryklasse.
Außerdem werden für sämtliche Sequenz-Datentypen noch Helper- sowie
Holderklassen erstellt. Zu den Object-By-Value Klassen müssen
jetzt noch die Implementierungsklassen xxxImpl.java (abgeleitet
von xxx.java) angelegt werden, die die in xxx.java vereinbarte
Objektfunktionalität bereitstellen.
Mit diesen Klassen ist somit ein Marshalling sowie Demarshalling aller
im Informationsmodell definierten Klassen möglich, so dass eine agentenseitige
Übertragung wie auch das Instanzieren von Object-By-Value
Objekten durch eine Implementierung der Funktionalität sichergestellt
ist. Die noch fehlende Implementierung ist die Adapterlogik,
die das Transformieren der Aufrufe mit den hier beschriebenen
Datentypen und Objekten auf die MBean-Server Schnittstelle des JMX-Agenten übernimmt.
Diese Implementierung der Adapterlogik soll in der Klasse JMX_MBeanServerImpl
geschehen, die sich vom Skeleton JMX_MBeanServerPOA ableitet
und damit das Serverobjekt beschrieben in JMX_MBeanServer
(ist hier identisch mit JMX_MBeanServerOperations) realisiert
(Abbildung 10.1).
Figure 10.1:
Vererbungshierarchie von JMX_MBeanServerImpl
|
Next: Erzeugung des managerseitigen Stubs
Up: Umsetzung des Kommunikationsmodells
Previous: Umsetzung des Kommunikationsmodells
Contents
root
2002-08-11