Information Technology Reference
In-Depth Information
aktuellen Zeit und dem Zeitpunkt eingegeben, an dem der Alarm ausgelöst werden soll.
Unabhängig davon, ob es sich um einen einmaligen Alarm handelt oder nicht, wird die Va-
riable interval zum Einstellen des Sleep-Timers verwendet und der Status des Agenten
auf initialisiert ( INITIATED ) gesetzt. Wann immer der Sleep-Timer aktiv wird, ruft die
Methode processTimerPop() die Methode notifyAgentEventListeners()
auf, um ein Ereignis an alle registrierten Listener zu senden. Wenn der Agent zur Planung
einer einmaligen Ausführung gedacht war, ist seine Arbeit getan und es wird die Methode
stopAgentProcessing() aufgerufen, um ihn zu beenden.
Der NotificationAgent ist ein eher einfach strukturierter Agent, da er ledig-
lich ein eigenes Element, den Dialog, in dem die Benachrichtigungen angezeigt werden,
enthält. Seine Methode initialize() erstellt diesen Dialog unter Verwendung der
Klasse AlertDialog . Der Sleep-Timer ist auf fünf Sekunden und der Status auf
initialisiert ( INITIATED ) eingestellt. Wird der NotificationAgent gestartet, ruft
er die Methode processAgentEvent() auf, um jedes Ereignis zu verarbeiten, das
er empfängt. Dabei führt er weder das Auslösen des Timers noch irgendeine synchrone
Verarbeitung durch. Wenn ein Ereignis empfangen wurde, wird die Ereignisaktion darauf
geprüft, ob es sich um ein zu meldendes Ereignis handelt. Wenn ja, wird der Text der
Meldung vom Ereignis abgerufen und angezeigt. Trotz dieser Schlichtheit ist der Noti-
ficationAgent sehr nützlich. Er stellt eine zentrale Anwenderschnittstelle zur An-
zeige von Benachrichtigungen dar und kann von verschiedenen Agenten in einem System
verwendet werden. Das verhindert die Verdoppelung von Funktionen und Programmcode
im Sinne einer Wiederverwendung und stellt eine bessere Anwenderschnittstelle zur Ver-
fügung, da alle Meldungen in einem einzigen Fenster angezeigt werden.
9.3.4
Flugauskunfts-Agent
Alle bisher besprochenen Agenten arbeiten selbstständig. Der Verzeichnis- bzw. Datei-
überwachungsagent verfügt über ein paar fest programmierte Bedingungen, die überprüft
werden, aber er verwendet keinerlei Regeln oder Schlussfolgerungen. Der im Folgenden
implementierte Agent, der ein Regelwerk und das Verfahren der Vorwärtsverkettung ver-
wendet, kann im Rahmen einer Konsultation bestimmen, wann ein angebotener Flugpreis
für den Anwender interessant ist. Er ist so entwickelt, dass er eine Website überprüft und
eine Benachrichtigung absetzt, wenn er einen Flug findet, der den definierten Bedingun-
gen entspricht.
Der InformationAgent verfügt über eine Reihe von Datenelementen, die zur
Aufnahme der an eine Website zu sendenden Abfrageparameter dienen. Es handelt sich
im konkreten Fall um departMonth , departDay , origdty , destdty , return-
Month und returnDay . Ein Datenelement vom Typ String, actionString , enthält
die Aktion für das Ereignis AgentEvent , das gesendet wird, wenn eine wünschenswerte
Reisemöglichkeit gefunden wurde. Zusätzlich zu den im Customizer eingestellten At-
tributen enthält der InformationAgent eine Produktionsregelbasis rb , mit Regeln,
Search WWH ::




Custom Search