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-