next up previous contents
Nächste Seite: 7.7 Autorisierung Aufwärts: 7. Realisierung Vorherige Seite: 7.5 Authentisierung, Schlüssel- und   Inhalt

7.6 Laufzeitumgebung für Agenteninstanzen

Die Einführung der neuen Klasse agentSystem.AgentEnvironment und die Umgestaltung der Klassen agent.Agent, agent.MobileAgent und agent.StationaryAgent wurde exakt nach dem in Kap. 6.3.1 vorgestellten Schema durchgeführt. Weiterhin wurden die in Kap. 6.3.2 beschriebenen Thread Groups für Agenteninstanzen realisiert.

Der Classloader für Agenteninstanzen wurde mit der Klasse agentSystem.AgentClassLoader realisiert. Der Klassen-Code wird mittels agentSystem.AgentCodeRepository geladen, dabei wird der geladene Code mittels der Signatur des Implementierers auf Veränderungen überprüft. Um das in Kap. 6.4 und Kap. 6.7.2 beschriebene Laden ``fremder'' bzw. unerlaubter Klassen verhindern zu können, fragt agentSystem.AgentClassLoader vor jedem Ladevorgang beim Access Controller an, ob die Definition bzw. Benutzung der entsprechenden Klasse gestattet ist (vgl. Abschnitt 7.7.1). Als zusätzliches Sicherheitsmerkmal führt der Classloader beim Laden der Hauptklasse einer Agenteninstanz einfache Plausibilitätsüberprüfungen über das Reflection-API durch. Beispielsweise wird nachgeprüft, ob die Hauptklasse von einer der Basisklassen agent.MobileAgent oder agent.StationaryAgent abgeleitet ist.

Für die Basisklassen von Applets wurde das eigene Subpackage agentApplet angelegt. Die Klasse agentApplet.AgentApplet wurde völlig überarbeitet und unterstützt jetzt:

Um die dynamische Erzeugung der zu den Applets gehörenden HTML-Seiten zu ermöglichen wurde die Klasse agentApplet.AgentAppletConstants implementiert, die die Maße (Höhe/Breite) des Applets enthält. Jede Agentengattung muß eine Subklasse davon ableiten.


next up previous contents
Nächste Seite: 7.7 Autorisierung Aufwärts: 7. Realisierung Vorherige Seite: 7.5 Authentisierung, Schlüssel- und   Inhalt
harald@roelle.com