next up previous contents
Next: 6.8 Installation Up: 6 Implementierung Previous: Methode log(...)

6.7 Einbindung neuer Agenten

Die Einbindung eines neuen Agenten wird anhand des IPRouting-Agenten detailliert erklärt.

1.
Es muß die Entscheidung getroffen werden, ob der Agent ein MobileAgent oder ein StationaryAgent sein soll. Es sollte, falls es keinen zwingenden Grund für einen stationären Agenten gibt, sich für einen Mobilen Agenten entschieden werden. Das Agentensystem hat dann die Möglichkeit, falls der Rechner z. B. abgeschaltet wird, den Agenten zu transferieren. Im Beispiel des IPRouting-Agenten ist die Entscheidung auf MobileAgent gefallen.
2.
Es muß eine IDL-Schnittstelle (IPRouting) spezifiziert werden, die die IDL-Schnittstelle Migration erweitert:
      #include "Migration"
      interface IPRouting : agent::Migration {
        ...
      };
3.
Mit dem Programm idl2java müssen die Java-Schnittstellen, -Stubs und -Skeletons generiert werden.
4.
Es wird die Klasse IPRoutingMobileAgent angelegt, die folgenden Kopf besitzt:
public class IPRoutingMobileAgent
extends MobileAgent
implements IPRoutingOperations
5.
Bei jedem Attribut der Klasse ist festzulegen, ob bei einer Serialisierung des Agenten, diese Attribut neu belegt werden muß, oder nicht. Attribute, die nicht transferiert werden müssen, werden als transient gekennzeichnet. Gibt es solche Attribute, muß man nach dem Transfer selbst die Neubelegung der Attribute vornehmen.

Bei den anderen Attributen muß dafür gesorgt werden, daß sie serialisierbar sind, indem bei der Klasse des Attributs
implements java.io.Serializable
angefügt wird.

6.
Die Methoden der Schnittstelle IPRoutingOperations müssen implementiert werden.
7.
Die Methoden cleanUp() und checkSerialization() aus der Basisklasse Agent müssen implementiert werden.

Bei der Implementierung ist darauf zu achten, daß keine propietären Funktionen wie sie z. B. Visigenic anbietet, (extensible structs, Helper.bind() usw.) verwendet werden. Denn die Agenten sollen mit ORBs verschiedener Hersteller, ohne vorherige Portierung, funktionieren.


next up previous contents
Next: 6.8 Installation Up: 6 Implementierung Previous: Methode log(...)
Copyright Munich Network Management Team