Mobile Agenten können in einem Agentensystem autonom arbeiten und sind in der Lage, aus eigenem Antrieb von einem zu einem anderen Ort zu migrieren. Ein Agent besteht aus einer Menge von Objekten, die aus dem Agentenobjekt und dessen transitiver Hülle bezüglich der Objektreferenzen besteht. Als Basis der Migration dient ein Persistenzmechanismus, der einen Agenten in eine Repräsentation überführt, die von der Implementation des Laufzeitsystems unabhängig ist, und aus dieser alternativen Form den Agenten wiedergewinnen kann.
Diese Arbeit untersucht, welche Algorithmen für den Persistenzmechanismus geeignet sind. Der Algorithmus muß zyklische Referenzen erkennen und auflösen. Ausgehend von einem einfachen Ansatz, dessen Schwachpunkte analysiert werden, wird ein geeigneter Algorithmus entwickelt.
Eine Anzahl von Möglichkeiten, wie der entwickelte Algorithmus in das Mobile-Agenten-System "Mole" integriert werden kann, werden auf ihre Vor- und Nachteile untersucht. Die gewählte Integration sieht für jede Klasse zusätzlichen Quellcode vor, der die Belegungen der relevanten Instanzenvariablen an den Persistenzmechanismus ausgibt. Dieser zusätzliche Code kann für eine vorliegende Klasse automatisch generiert werden.
Für die Sprache "Java" wurde der Generator und der Persistenzverwalter implementiert. Dafür waren Anpassungen an die Konzepte der Sprache nötig, um die Sichtbarkeitsbereiche von Daten und Modulen zu unterstützen. Zeitmessungen belegen einen deutlichen Geschwindigkeitsvorteil gegenüber dem in Mole bestehenden Mechanismus.
|