Next: 3.2 Server
Up: 3 Implementierung
Previous: 3 Implementierung
Jeder Interpreter muß von der Klasse AInterpreter erben. Die
Methoden interpretMessage(), interpretLanguage() und
run() müssen überschrieben werden. Da alle Interpreter einen
RMI-Server starten, wurde ein abstrakter RMIInterpreter
implementiert, welcher die folgenden Aufgaben übernimmt:
- createServerName(): ein global eindeutiger Server-Name wird
generieret. Es wird dazu der schon global eindeutige Name des Agenten (der den Interpreter
startet) und die innerhalb des Agenten eindeutige TaskID verwendet.
- createServer(): SecurityManager und RMIRegistry (Port 1099) installieren, eine Instanz des Servers mit seinem Namen an die Registry binden.
- interpretMessage(): Weiterleitung der KQML-Nachricht, Aufruf
von interpretLanguage() die die eigentliche Verarbeitung der Nachricht
übernimmt.
- run(): Starten des Interperter als Thread.
Abbildung 5:
Klassenhierarchie der Interperter
 |
Die Namensgebung der folgenden Klassen lehnt sich an den bereits
implementierten Interpretern an. (Deshalb sind diese Abkürzungen gewählt
worden).
Die Klassen AHSInterpreter (Agent-Host-Server), AISInterpreter
(Agent-Interface-Server) und AIPRSInterpreter (Agent-IP-Routing-Server)
sind nun die konkreten Interpreter. Jeder Interpreter, der von
RMIInterpreter abgeleitet ist, muß folgende Methoden überschreiben:
- getServerObject() instanziiert den dazugehörigen Server
(der AHSInterpreter instanziiert den AHServer usw.).
- getNameForTask() gibt den Namen des jeweiligen Interpreter an.
Die Kommunikation dieser Interpreter wird über die Klasse RMIconnect
mit den Methoden askRMI() und tellRMI() durchgeführt. Dabei
werden einfache KQMLmessages generiert und vom FMA des Interpreters
weiterverarbeitet.
Next: 3.2 Server
Up: 3 Implementierung
Previous: 3 Implementierung
Copyright Munich Network Management Team