2.3 Mobiler Code

Das Konzept „Mobilen Codes“ stellt einen Ansatz dar, konfigurierbare Dienste in Netzwerken anzubieten. Dabei unterscheidet man zwischen Diensterbringern und Dienstbenutzern. Der Diensterbringer bietet eine Leistung an, der Dienstbenutzer nimmt diese Leistung in Anspruch.

Wird mobiler Code zwischen zwei Instanzen eines Netzwerks eingesetzt, so sendet der Dienstbenutzer ein Programm bzw. eine Prozedur an den Diensterbringer. Der Diensterbringer führt das Programm innerhalb einer Ablaufumgebung aus und schickt entweder eventuelle Ergebnisse zurück oder aber der Rückmeldevorgang ist im Programm selbst integriert.

Diensterbringer, die keine Möglichkeit vorsehen, mittels mobilen Codes auf ihre Ressourcen zuzugreifen, legen fest auf welche Weise ein Dienstbenutzer den angebotenen Dienst verwenden muß. Durch Bereitstellung einer Ablaufumgebung und geeigneter Bibliotheken auf seiten des Diensterbringers erreicht man Flexibilität bzgl. der Art des Zugriffs. Der Dienstbenutzer bestimmt selbst wie er den angebotenen Dienst nutzt, er kann z.B. festlegen in welcher Form die Rückmeldungen erfolgen sollen. Zur Realisierung derartiger Diensterbringer eignen sich weitgehend plattformunabhängige Interpretersprachen wie Java, Tcl, Perl, Python, usw. Compilersprachen sind weniger geeignet, da sie im allgemeinen das Vorhandensein von bestimmten plattformabhängigen Bibliotheken voraussetzen und weniger portierbar sind.

Ein Problem beim Einsatz von mobilem Code ist die Sicherheit. Es muß gewährleistet werden, daß der vom Dienstbenutzer übermittelte mobile Code keine Möglichkeit hat mehr Privilegien zu erhalten, als ihm vom Diensterbringer erteilt wurden. Ein konkretes Beispiel wie mobiler Code in Netzwerken bzw. verteilten Systemen eingesetzt werden kann findet sich in [LDD95].