next up previous contents
Next: 6.3.6 Factories Up: Implementierung der CORBA-Objekte für Previous: Zusammenfassung

6.3.5 Initialisierung der Agentenobjekte

 

Nach Implementierung der Methoden zum Lesen und Schreiben der Attribute sowie der Operationen einer Objektklasse liegt ein fertiges Agentenobjekt vor. Bevor aber ein Client, d.h. eine Managementanwendung über CORBA auf das Objekt zugreifen kann, sind folgende Schritte notwendig:

1.
Initialisieren des ORB.
2.
Initialisieren des BOA.
3.
Kreieren von ein oder mehreren Instanzen des Agentenobjekts.
4.
Registrieren des Objekts beim BOA.
5.
Aktivieren des Objekts.

Für den Prototypen werden diese Schritte vom Server-Programm SystemAgentServer.java für alle Objekte durchgeführt. Die Implementierung wird aber wiederum nur anhand der Klasse UNIXSystemImpl erläutert. Abbildung 6.15 enthält den dazugehörigen Code.


  
Abbildung 6.15: CORBA-Server SystemAgentServer.java
61#61

Der Aufruf org.omg.CORBA.ORB.init(args, null); initialisiert den ORB und gibt eine Referenz auf das ORB-Objekt an den Aufrufer zurück. Der BOA des ORB wird durch Aufruf der Methode BOA_init(); auf dem ORB-Objekt initialisiert. Als nächstes wird eine Instanz der Klasse UNIXSystemImpl erzeugt. Durch Angabe des Namens ,, UNIXSystem`` ensteht ein persistentes CORBA-Objekt, welches beim Smart Agent registriert wird. Dadurch kann ein Client später die IOR des Objekts über diesen Namen ermitteln. Das neu erzeugte Objekt ist jetzt in der Lage, Anfragen eines Clients entgegenzunehmen. Dies wird dem BOA durch den Aufruf boa.obj_is_ready(sys); angezeigt. An dieser Stelle werden normalerweise weitere Agentenobjekte erzeugt, registriert und initialisiert. Durch den abschließenden Aufruf boa.impl_is_ready(); geht das Server-Programm, das die Agentenobjekte bereitstellt, in eine Endlosschleife, um auf Anfragen von Clients zu warten.

Für Agentenobjekte, die nach dem Tie-Ansatz implementiert sind, sieht die Aktivierung etwas anders aus. Nach Instantiierung der Implementierungsklasse für das Objekt wird zusätzlich ein Proxy-Objekt erzeugt und mit dem Implementierungsobjekt verbunden. Dieses Proxy-Objekt wird anschließend beim BOA ganz gewöhnlich registriert. Ein Code-Beispiel hierfür findet sich in Anhang B.

Die geschilderte Methode zum Erzeugen und Aktivieren von Agentenobjekten funktioniert nur für Klassen des Objektmodells, die pro System nur einmal instantiiert werden und statisch sind, d.h. während der Laufzeit des Agenten nicht gelöscht oder erzeugt werden. Für Managementobjekte, die zahlreich in einem System auftreten und dynamisch erzeugt und gelöscht werden können, bedient sich der Prototyp sog. Factories. Beispiele für solche Objekte sind u.a. Prozesse, Benutzerkennungen, Dateisysteme und Software-Pakete.


next up previous contents
Next: 6.3.6 Factories Up: Implementierung der CORBA-Objekte für Previous: Zusammenfassung
Copyright Munich Network Management Team