Das erste Agentensystem, welches sich an den Naming Service bindet, generiert
den gesamten Namensraum, sowohl für die Agentensysteme als auch für die
Agenten. Dabei wird der Naming Service folgendermaßen kontaktiert:
1 org.omg.CORBA.ORB orb= org.omg.CORBA.ORB.init();
2 org.omg.CORBA.Object namingService=
3 orb.resolve_initial_references("NameService");
Zuerst wird der ORB initialisiert, anschließend eine CORBA-Objektreferenz
des Naming Service in Form des Root Context (namingService)
zurückgeliefert. Die Typkonvertierung von CORBA-Objektreferenzen wird
immer mit der narrow()-Methode der entsprechenden Helper-Klasse
durchgeführt:
1 org.omg.CosNaming.NamingContext rootContext =
2 org.omg.CosNaming.NamingContextHelper.narrow(namingService);
Die Typkonvertierung ist notwendig, denn namingService ist vom Typ
org.omg.CORBA.Object, der Basisschnittstelle aller CORBA-Objekte und
kann so erst einmal nicht auf die Methoden, welche die Schnittstelle
org.omg.CosNaming.NamingContext bereitstellt, zugreifen.
Die Klasse AgentSystem und die Klasse AgentManager
werden instanziiert. Nun bindet sich das Agentensystem selbst mit
dem oben vorgestellten Tie-Mechanismus an den ORB:
1 AgentsystemService agentSystemService=
2 new _tie_AgentSystemService(agentSystem);
3 boa.obj_is_ready(agentSystemService);
wobei agentSystem eine Instanz der Klasse AgentSystem ist.
Das Agentensystem trägt sich in den Naming Service ein, schickt in den
Standard Event Channel ein 'AgentSystemUp' und wird schließlich
durch den Aufruf
boa.impl_is_ready();
in eine Endlosschleife gebracht, um die Terminierung des Programms zu
verhindern.