|
|
Die Ara-Plattform für mobile Agenten
ÜberblickAra ist eine Plattform zur portablen und sicheren Ausführung mobiler Agenten in heterogenen Netzen. Mobile Agenten in diesem Sinn sind Programme mit der Fähigkeit, ihren Wirtsrechner während der Ausführung zu wechseln, wobei ihr internen Zustand erhalten bleibt. Dies erlaubt ihnen, Interaktionen lokal abzuhandeln, die sonst entfernt durchgeführt werden mußten. Das spezifische Ziel von Ara im Vergleich zu ähnlichen Plattformen liegt darin, die volle Funktionalität mobiler Agenten zur Verfügung zu stellen und dabei etablierte Programmiermodelle und -sprachen so weit wie möglich zu erhalten.
Quelltextbeispiel | Entwicklungsstand | Software Distribution
Grobe Sicht auf das Programmiermodell:
Während ortsfeste Agenten in Maschinencode kompiliert werden können, laufen mobile Agenten aus Gründen der Portabilität und der Systemsicherheit innerhalb eines Interpreters für ihre jeweilige Programmiersprache (siehe gegenwärtige Sprachen auf Ara) ab. Ara definiert eine klare Schnittstelle zur Adaption von Interpretern für etablierte Programmiersprachen an den Kern, indem sie um bestimmte Funktionen zur Programmüberwachung und Zustandsspeicherung erweitert werden, so daß grundsätzlich jede interpretierte Programmiersprache zur Programmierung mobiler Agenten mit Ara benutzt werden kann. Unabhängig von ihrer Implementierungssprache können alle Agenten auf einem Knoten über den Kern mit dem Wirtssystem und als Clients und Server miteinander interagieren. Der Kern erzwingt die Sicherheit in allen Aktionen der Agenten, wozu er die Authentisierung von Agenten (in Arbeit) sowie die Autorisierung und Abrechnung von Betriebsmittelzugriffen bietet. Grundlegende Dienste werden vom Kern angeboten, während Dienste höherer Ebene über Server-Agenten angesprochen werden. Grundlegende Dienste umfassen Anfragen über lokale Server-Agenten, Treffen und Interaktionen mit lokalen Agenten, Zugang zu Dateisystem und externen Anwendungen sowie die Migration zu entfernten Knoten. Die Migration ist orthogonal zum konventionellen Programmablauf, d.h. ein Agent kann jederzeit während seiner Ausführung migrieren und fährt danach vom selben Zustand aus fort.
Grobe Sicht auf die Systemarchitektur:
Ein Quelltext-BeispielHier ist der Quelltext für einen einfachen Ara-Agenten, der in der Skriptsprache Tcl geschrieben ist. Der Agent migriert zu einem Ort namens thor (hier: einfach ein Rechnername) und druckt dort eine Meldung:
ara_agent {
set home [ara_here]
ara_go thor
puts "Hello at thor, I've come from $home!"
ara_exit
}
Dasselbe läßt sich auch mit einem Agenten
in der Sprache C erreichen.
Aktueller EntwicklungsstandDie meisten Komponenten der Ara-Plattform sind implementiert, einschließlich des größeren Teils des Kerns mit Agentenausführung, Interaktion, Checkpointing und Migration; das gleiche gilt für die Tcl- und C/C++-Interpreter. Die meisten Sicherheitsmechanismen sind noch in Arbeit, einschließlich mehrerer Orte pro System mit benutzerdefinierten Sicherheitskonzepten. Genauere Auskunft gibt ein detaillierterer Zustandsbericht.Ara Software DistributionDie Ara Software ist derzeit auf verschiedenen Unix-Betriebssystemen lauffähig (Sparc Solaris, Intel Linux, und Sparc SunOS) und kann für nichtkommerzielle Zwecke frei aus dem Netz geladen werden (Einzelheiten legt die Urheberrechtsbestimmung fest).
Ara ist ein Projekt in der AG Systemsoftware im Fachbereich Informatik an der Universität Kaiserslautern.
copyright © 1997 Universität Kaiserslautern. Holger Peine 21.10.1997 |