Information Technology Reference
In-Depth Information
deren Methoden, initialize() und reset() versetzen den Agenten in einen defi-
nierten Zustand. Die Methoden startAgentProcessing() und stopAgentRo-
botprocessing() starten oder stoppen Verarbeitungsprozesse des Agenten. Mit den
Methoden suspendAgentProcessing() und resumeAgentProcessing()
kann der autonome Agent zeitweilig angehalten werden, wobei beide Methoden sich der
Methode processTimerPop() bedienen. Es stehen weiterhin die Methoden add-
SoftRobot() und removeAgent() zur Verfügung, um zusammengesetzte Agen-
ten zu erstellen, und die Methode getChildren() , um auf beliebige darin enthaltene
Agenten zuzugreifen. Die Klasse Agent implementiert die Schnittstelle Serializa-
ble , so dass Agenten-Objekte geladen und gespeichert werden können. Die verschiede-
nen Datenelemente sind als transient markiert, was bedeutet, dass sie nicht gespeichert
werden, wenn das Objekt in einer Datei serialisiert wird. Demzufolge wird die Methode
read0bject() implementiert, die die als transient deklarierten Glieder neu erstellt,
wenn der Agent deserialisiert wird.
Das UML-Diagramm zeigt, dass die Klasse AgentEvent von der Klasse Event-
Listener abgeleitet ist, wie es die Spezifikation der JavaBeans vorschreibt. Es werden
zunächst drei Konstruktoren definiert. Der erste übernimmt einen einzelnen Parameter,
nämlich die Quelle (source) , die auf das Objekt verweist, dass das Ereignis gesendet
hat. Der zweite Konstruktor erzeugt ein Benachrichtigungsereignis, das source und ein
Ereignisargumentobjekt übernimmt. Der dritte Konstruktor wird verwendet, um ein Ak-
tionsereignis zu erzeugen und benötigt das Objekt source , einen String action , der
der Name einer Methode in dem Zielobjekt sein kann und ein Ereignisargumentobjekt.
Das Argument ist als ein Objekt definiert, so dass Unterklassen von Agent jedes beliebi-
ge Objekt als Argument in einem AgentEvent versenden können.
Die Klasse AgentEventListener implementiert eine Warteschlange von Agen-
tEvents . Ihr einziges Datenelement ist eventQueue , eine Vektorinstanz. Die Me-
thode addEvent() wird verwendet, um ein Ereignis an das Ende der Warteschlange
anzufügen. Die Methode getNextEvent() ist eine nicht blockierende Methode, die
entweder Null zurückgibt, wenn die Warteschlange leer ist, oder das erste Ereignis ent-
fernt und zurückgibt. Die Methode peekEvent() wird verwendet, um zu prüfen ob die
Warteschlange leer ist oder nicht. Sie gibt entweder Null zurück, was bedeutet, dass die
Warteschlange leer ist, oder das erste Ereignis, ohne es zu entfernen. Diese Methoden, die
von der Basisklasse Agent bereitgestellt werden, sollen in einer bestimmten Reihenfolge
verwendet werden, so dass der Zustand AgentStatus einem vorhersehbaren Satz von
Veränderungen folgt. Der Lebenszyklus eines Agenten sollte den folgenden Ablauf von
Zuständen umfassen:
• Konstruktion einer Instanz des Agent-Objekts. Der Zustand wird auf UNINITIATED
gesetzt.
• Einstellung der Eigenschaften der JavaBeans entweder im Programm oder mit Hilfe
eines Customizers.
• Aufruf der Methode initialize(). Der Zustand wird auf INITIATED gesetzt.
Search WWH ::




Custom Search