next up previous contents
Next: 5.6.3 Transfer eines laufenden Up: 5.6 Lebenszyklus eines Agenten Previous: 5.6.1 Bootstrapping

5.6.2 Erzeugung eines Agenten

 Es gibt drei mögliche Wege, wie die Operation create_agent(...) aufgerufen wird: Die wichtigsten Parameter von create_agent(...) sind der Name und die Codebase. Das AgentSystem leitet den Aufruf unbearbeitet an den AgentManager weiter. Dieser prüft, ob der Agent, festgelegt durch den Namen, bereits in der AgentTable, oder im Naming Service vorhanden ist. Nun wird über den Classloader die Klasse abhängig von der Codebase geladen und instanziiert. Durch die init(...)-Methode der Klasse Agent werden die Attribute der Klasse gesetzt.

Der Agent wird mit Hilfe des Tie-Mechanismus (vgl. Abschnitt 6.1) an den BOA gebunden und damit über den ORB erreichbar. Nun wird der Agent als Thread gestartet und kann somit autonom handeln.

Eine Instanz der Klasse AgentReference wird erzeugt und diese Instanz als Wert und der Namen des Agenten als Schlüssel in die AgentTable eingetragen. Der AgentManager trägt den neuen Agenten in den Naming Service ein und sendet abschließend ein 'AgentUP' in den Standart Event Channel.


  
Abbildung 5.7: Beispielszenario der CORBA-Zugriffssicht
\begin{figure}
 \begin{center}
 
\epsfig {file=Bilder/real_arch.eps,width=\textwidth}
 \end{center}\end{figure}

Abbildung 5.7 zeigt ein mögliches Szenario eines Managementumfeldes:
Auf jedem AgentSystem werden mehrere Agenten ausgeführt, die vom AgentManager kontrolliert werden. Das AgentSystem ist durch seine IDL-Schnittstelle AgentSystemService über CORBA erreichbar. Genauso ist jeder Agent, z. B. IPRoutingMobileAgent über die IDL-Schnittstelle IPRouting erreichbar.


next up previous contents
Next: 5.6.3 Transfer eines laufenden Up: 5.6 Lebenszyklus eines Agenten Previous: 5.6.1 Bootstrapping
Copyright Munich Network Management Team