Information Technology Reference
In-Depth Information
dass der Agent eine Warnmeldung anzeigen, einen Befehl ausführen oder ein Ereignis zu
einem anderen Agenten senden soll. Die folgenden drei Bedingungen können durch den
FileModifyAgent überprüft werden: ob die Datei verändert ( MODIFIED ) oder gelöscht
( DELETED ) wurde, oder ob ihre Größe einen Grenzwert ( THRESHOLD ) übersteigt. Die
Aktion ( action ), die der Agent durchführt, wenn die Bedingung ( condition ) eintritt,
kann sein: ALERT , um den Anwender zu benachrichtigen, EXECUTE , um einen Befehl
auszuführen oder EVENT , um ein AgentEvent an einen anderen Agenten zu senden.
Der Name der Datei oder des Verzeichnisses wird im String-Element fileName abgelegt
und die Information, wann sie geändert wurde, wird in lastChanged festgehalten. Der
String threshold enthält die Größe in Byte, die mit der aktuellen Dateigröße vergli-
chen werden soll. Der actionDialog wird verwendet, um Informationen für den An-
wender anzuzeigen, wenn die Aktionen Alert oder Execute gewählt worden sind. Das
Element parms wird ebenfalls benutzt, wenn ein Befehl ausgeführt wird. Die Zeichen-
kette actionString wird als Aktionsparameter von AgentEvent eingesetzt, wenn
die Aktion EVENT gewählt wurde.
Die Methode initialize() richtet die Dialoge für die Aktionen ALERT und EXE-
CUTE ein. Sie stellt den Sleep-Timer für den Agenten beispielsweise auf 15 Sekunden
ein und setzt den Zustand des Agenten auf initialisiert ( INITIATED ). Wann immer der
Sleep-Timer ausgelöst oder der Agent synchron aufgerufen wird, wird die Methode
process() aufgerufen und die Dateibedingung geprüft. Wenn die Bedingung erfüllt
ist, wird die festgelegte Aktion ( action ) ausgeführt. Zusätzlich zur Klasse FileMo-
difyAgent stehen FileModifyAgentCustomizer und FileModifyAgent-
BeanInfo zur Verfügung. Die Klasse FileModifyAgentCustomizer wird von
AgentApp , der Instanziierung eines FileModifyAgent verwendet.
Die Klasse AgentApp instanziiert ein AgentManager -Objekt, das den größten Teil
der Arbeit dieser Anwendung ausführt. Wenn ein solches Objekt instanziiert ist, initiali-
siert der Konstruktor die Bedienelemente der grafischen Anwenderschnittstelle und ruft
anschließend die Methode readPropertiesFile() auf, um die Klassennamen aller
Agenten zu erhalten, die ausgeführt werden können. Die Bezeichnung der Datei, die die
Eigenschaften enthält, lautet agent.properties und muss sich in dem Verzeichnis
befinden, in dem die Anwendung ausgeführt wird.
Die Eigenschaft AgentClassNames enthält den durch Semikolons eingeschlosse-
nen String der Namen der Agenten-Klassen. Jede Unterklasse von Agent kann zur An-
wendung AgentApp hinzugefügt werden, indem ihr Name in die Liste aufgenommen
wird. Wenn AgentApp die Liste aufruft, analysiert sie die Klassennamen und erzeugt
eine Instanz von jeder Agenten-Klasse. Der Anzeigename jedes Agenten wird zum Menü
create hinzugefügt und die Namen der Agenten werden in einer Hash-Tabelle zur spä-
teren Verwendung abgelegt. Die Bedienelemente des Menüs create geben dem Anwen-
der die Möglichkeit, neue Agenten über die GUI zu erstellen und zu initialisieren.
Wurde ein einzelner Agent auf diese Weise erzeugt, werden die Werte der Attribute an-
schließend mit dem Customizer für diesen Agenten eingestellt und der Agent entspre-
Search WWH ::




Custom Search