Obwohl mobile Agenten weitestgehend akzeptiert wurden als nützliche und elegante Art Software für verteilte Systeme zu entwicklen, werden sie kaum eingesetzt. Einer der Hauptgründe dafür ist das Fehlen eines beweisbaren und beherrschbaren Schutzmechanismus für eine Agentenplattform. Wir präsentieren mit dieser Arbeit einen funktionstüchtigen Prototyp einer Programmier- und Ausführungsumgebung für mobile Agenten basierend auf Termgraph Transformation und der rein funktionalen Programmiersprache Haskell. Das Typsystem von Haskell kann garantieren, dass ein mobiler Agent keine beliebigen E/A Aktionen auf einer Agentenplattform ausführen kann. Um es zu nutzen migriert der mobile Agent asl Haskell Quellcode und der Typ wird auf jeder Agentenplattform überprüft. Die Dienste die eine Agentenplattform den mobilen Agenten zur Verfügung stellt, sind in sogennannte possibly-provided functions (PPFs) gekapselt. Eine PPF ist eine Funktion die einen Wert vom Typ Maybe a für ein beliebiges a zurückliefert. Eine PPF muß nicht auf jeder Plattform vorhanden sein. Wenn die PPF nicht vorhanden ist, wird sie temporär von einem Präprozessor durch eine Funktion die den Wert Nothing liefert ersetzt. Um eine solche Ersetzung möglich zu machen, wurde der Haskell code in eine Liste sogenannter Code Fragmente eingebettet. Ein streng typisierter mobiler Agent der aus einer komplexen Funktion mit einem komplexen Parameter besteht, die in eine Liste von Code Fragmenten eingebettet werden muß, ist ein schwierig zu handhabendes Stück Software. Der komplexe Parameter ist der Datenteil des mobilen Agenten und wird Suitcase genannt. Herkömmliche Programmierung mit einem gewöhnlichen Texteditor ist nicht praktikabel. Aus diesem Grunde nutzen wir das Higher Object Programming System HOPS, ein graphisches, interaktives Programmentwicklungs- und -transformationssystem basierend auf Termgraphen, für die Entwicklung eines mobilen Agenten. Durch die Verwendung von HOPS ist es möglich eine einfach zu nutzende Domain-Specific Language für mobile Agenten zu definieren und mittels Termgraph Transformation die benötigte Form daraus herzuleiten. Neben der Einbettung des mobile Agenten in die Liste der Code Fragmente kann der komplexe Suitcase aus kleinen, überschaubaren Teilen generiert werden. Mit dieser Arbeit haben wir gezeigt, dass die Kombination einer streng typisierten, funktionalen Programmiersprache und einem Softwareentwicklungsprozess der durch Termgraph Transformation unterstützt wird, zusammen mit unserem Konzept der PPFs, ein sehr gut geeigneter Ansatz in Richtung eines vollwertigen System für mobile Agenten ist.
«Obwohl mobile Agenten weitestgehend akzeptiert wurden als nützliche und elegante Art Software für verteilte Systeme zu entwicklen, werden sie kaum eingesetzt. Einer der Hauptgründe dafür ist das Fehlen eines beweisbaren und beherrschbaren Schutzmechanismus für eine Agentenplattform. Wir präsentieren mit dieser Arbeit einen funktionstüchtigen Prototyp einer Programmier- und Ausführungsumgebung für mobile Agenten basierend auf Termgraph Transformation und der rein funktionalen Programmiersprache...
»