Next: 5.6.3 Transfer eines laufenden
Up: 5.6 Lebenszyklus eines Agenten
Previous: 5.6.1 Bootstrapping
Es gibt drei mögliche Wege, wie die Operation
create_agent(...) aufgerufen wird:
- ein beliebiger Client von außen, der über die
CORBA-Objektreferenz des AgentSystemService auf die Operation
zugreift, insbesondere auch ein Agent
- ein Agent innerhalb des Agentensystem über seinen AgentManager
- das Agentensystem selbst, z. B. den Webserver-Agent, welcher auf
jedem Agentensystem ausgeführt werden muß
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
 |
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: 5.6.3 Transfer eines laufenden
Up: 5.6 Lebenszyklus eines Agenten
Previous: 5.6.1 Bootstrapping
Copyright Munich Network Management Team