next up previous contents
Next: 1.3 Änderungen Up: 1 Einführung Previous: 1.1 Aufgabenstellung

1.2 FMA-Architektur

Das Fopra setzt auf den flexiblen Management-Agenten (FMA) auf. Dieser FMA wurde von Markus Wennrich und Alexander Hollerith im Rahmen ihrer Diplomarbeiten ([Wen97],[Hol97]) implementiert, welches im Wesentlichen eine Erweiterung des Java Agent Template (JAT) ([Fro97]) ist. Die FMA-Architektur eignet sich besonders für die gestellten Aufgabe, da man beliebig viele Agenten, die sich an einer beliebigen Stelle im zu managenden Netz befinden können, für die Problemlösung verwenden kann. Die wichtigsten Eigenschaften der FMA-Architektur werden nun vorgestellt.


  
Abbildung 2: FMA-Architektur
\begin{figure}
 \begin{center}
 
\epsfig {file=Bilder/fma_arch.eps, width=13cm, height=7cm}
 \end{center}\end{figure}

Die Architektur ist verteilt, d.h. die FMAs befinden sich auf verschiedenen Hosts in einem Netz (Abbildung 2). Der FMA stützt sich auf die Java Virtual Machine (JVM) ab. Jeder FMA muß sich und seine Interpreter beim Starten bei einem ausgezeichneten Interpreter, dem Agent-Name-Server (ANS) anmelden. Der ANS ist also, wie der DNS im Internet, der Namensdienst, also für die Adressauflösung zuständig. Beim Agent-Event-Server (AES) kann sich ein Interpreter anmelden, damit er benachrichtigt wird, wenn ein bestimmter Event auftritt. Jeder FMA gehört einer (FMA)-Domäne an. Pro Domäne muß mindestens ein ANS vorhanden sein. Jeder FMA kann beliebig viele Interpreter hochfahren und verwalten. Der Agent stellt die Grundfunktionalität wie Senden und Empfangen von Nachrichten zur Verfügung. Ein Interpreter ist für eine ganz bestimmte Managementaufgabe, z.B. für die Überwachung eines Druckers zuständig. Der Interpreter muß alle Nachrichten des Druckers verstehen und darauf reagieren können.

Die Kommunikation zwischen den Agenten wird über die Knowledge Query and Manipulation Language (KQML) abgewickelt. Diese Sprache wurde speziell für flexible Agenten entwickelt. Eine Nachricht besteht aus Schlüssel-Werte-Paaren und wird nur mit ASCII-Zeichen kodiert. Hier ein Beispiel einer KQML-Anfrage:

    (ask-if  :sender    AIS 
             :receiver  AHS
             :language  KQML
             :ontology  -
             :content   ( ask-resource  :type  address
                                        :name  AHS    ))


next up previous contents
Next: 1.3 Änderungen Up: 1 Einführung Previous: 1.1 Aufgabenstellung
Copyright Munich Network Management Team