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,