Information Technology Reference
In-Depth Information
Die Methode process() erledigt den größten Teil der Arbeit des Agenten. Zuerst
stellt sie die Verbindung mit der Website her, die die Fluginformationen bereithält. Die
Klasse java.net.URL und die dazugehörige Klasse java.net.HttpURLConnec-
tion sind Bestandteil der Java-Standardumgebung, die dem Agenten das einfache Sen-
den und Empfangen von Informationen über das Web ermöglicht. Wenn die Verbindung
hergestellt ist, wird ein PrintWriter zum Senden der Parameter für die Anfrage ein-
gesetzt. Nach dem Senden der Parameter wird der Ausgabestrom beendet und der Ein-
gabestrom gelesen. Zum Lesen des HTML-Codes, der als Ergebnis der Flugpreisabfrage
zurückkam, wird eine while() -Schleife verwendet. Jede inputLine wird durchsucht
und die Zeiten und Preise aller Flüge werden in die passenden Felder eingetragen. Die
Flugnummern sind ebenfalls in einem Feld gespeichert.
Wenn der Datenempfang abgeschlossen ist, werden die Flugzeiten und -preise zum
Zuweisen der Werte für die Regelvariablen departs , returns und price verwendet.
Die Methode forwardChain() ruft dann die Produktionsregeln über Rule rb auf.
Nach Abschluss der Schlussfolgerung wird die Regelvariable rank abgefragt. Enthält sie
den Werte good , better oder best , werden durch das Element actionString ein
Ereignis AgentEvent und eine passende Meldung erzeugt. Zuletzt wird die Methode
notifyAgentEventListeners() aufgerufen, um das Ereignis an alle interessier-
ten Agenten zu senden.
Die Dienste, die durch den Informations-Agenten bereitgestellt werden, sind grund-
legende Dienste für den Lebenszyklus eines solchen Agenten (Erstellen, Starten, Unter-
brechen, Fortsetzen und Anhalten). Eine allgemeinere Implementierung würde für die
Agenten einen Mechanismus bieten, um ihre Fähigkeiten und möglicherweise ihre Inter-
essen zu registrieren. Diese Funktion wird Verzeichnisdienst (directory Service) genannt.
Die Mittel zur Kommunikation der Agenten sind darauf beschränkt, AgentEvents mit
Aktions-Strings und einfachen Argumenten zu übermitteln. Eine allgemeinere Implemen-
tierung würde den Einsatz von speziellen Sprachen für die Kommunikation der Agenten
ermöglichen. Andererseits hat die Nutzung von JavaBean die Fähigkeiten der Agenten er-
weitert. Da die Liste der Namen der Agentenklassen aus einer Textdatei ausgelesen wird,
kann die Plattform ohne weiteres ausgebaut werden. Außerdem bestehen keine festen
Abhängigkeiten zwischen der grafischen Anwenderschnittstelle des Agentensystems und
den einzelnen Agenten. Solange der Customizer mit dem zugrunde liegenden Agenten
kommunizieren kann, gibt es kein Problem. Die Anwendung AgentApp nutzt das Ver-
halten, das in der grundlegenden Klasse des Agenten festgelegt wurde.
Eine weitere Möglichkeit, um Abhängigkeiten zu reduzieren, besteht im Einsatz von
sogenannten software-technischen Sensoren und Effektoren. Sensoren und Effektoren
dienen der Wahrnehmung seitens der Agenten. Sie sind die Voraussetzung für den Einsatz
von prozeduralen Anhängen zusätzlich zur Regelverarbeitung. Damit sind Agenten nicht
auf die Variablen begrenzt, die in der Regelbasis definiert wurden, sondern können alle
äußeren Methoden aufrufen, um Daten mit Hilfe des Einsatzes von Sensoren zu sammeln
oder Aktionen durchzuführen, indem diese Effektoren immer dann zum Einsatz kommen,
wenn eine Regel in Kraft tritt bzw. „feuert“. Hierzu werden in den Regeln und Tatsachen
Search WWH ::




Custom Search