Begriff »Agent« (Agents)

Ein Agent ist ein Programm, genauer eine Softwareeinheit, die in der Lage ist, bestimmte Operationen im Auftrag eines Benutzers oder eines anderen Agenten durchzuführen. Meist geht man davon aus, daß Agenten zumindest ansatzweise drei Eigenschaften zugesprochen werden können:

  1. Intelligenz
  2. Unabhängigkeit
  3. Mobilität

Intelligenz

Den zu erfüllenden Aufgaben entsprechend wird ein mehr oder minder eigenständig "denkender" Agent eingesetzt werden. Er kann nach bekannten Regeln arbeiten, wie dies etwa bei Expertensystemen der Fall ist. Weiterentwickelte Varianten können aus ihrem eigenen oder dem Verhalten ihres Auftragsgebers und aus der Umwelt allgemein lernen und ihr zukünftiges Agieren anpassen. Es sind sogar Agenten denkbar, die verschiedene Zustände vorausplanen und rechtzeitig gewünschte Maßnahmen einleiten.

Unabhängikeit

Nach dem an Agenten übertragenen Verantwortungsgrad läßt sich ihre Unabhängigkeit bemessen. Ein Programm zum Beispiel, das präzise und detaillierte Arbeitsanweisungen von seinem Benutzer enthält (zum Beispiel "Sortiere meine Post nach Eingangsdatum"), ist viel abhängiger als eines, das nur ein grobes Ziel als Eingabe erhält (zum Beispiel "mache mir einen windigen Surfspot ausfindig"). Ein Agent, der einen vielbeschäftigten Prominenten im Internet vertreten soll, müßte sehr viel Verantwortung tragen können, um den Repräsentierten nicht in Schwierigkeiten zu bringen.

Mobilität

Hier reicht das Spektrum vom lokalen, statischen Programm bis zum Agenten, der erst übertragen auf einen fremden Rechner beziehungsweise im Netzwerk seine Aufgaben sinnvoll erfüllen kann. Verschiedene Mobilitätsgrade lassen sich außerdem noch durch Art der übertragenen Daten ausmachen.

Begriff »Multiagent-System«

Arbeiten mehrere Agenten zusammen an einer gemeinsamen Aufgabe, wobei jeder Agent für im voraus nicht festgelegte Teilbereiche zuständig ist, so spricht man von einem Multiagent-System. Um ein solches System effizient zu gestalten, müssen die Agenten miteinander kooperieren und kommunizieren, das heißt Eigenaktionen müssen mit denen der Kooperationspartner abgestimmt werden. Weiterhin muß das individuelle Ziel gegen das gemeinsame abgewogen werden, so daß eine insgesamt optimale Lösung gefunden wird.

Begriff »mobiler Agent« (Mobile Agent)

Eine wichtige Eigenschaft von Agenten ihre Mobilität. Ein mobiler Agent ist nun per Definition dazu in der Lage, seinen Wirtsrechner zu verlassen und auf einem anderen Rechner sein Ziel (weiter) zu verfolgen. Diesen Vorgang nennt man Migration. Üblicherweise entscheidet er selbst aufgrund seiner bisherigen Arbeit, wann er wohin weiterzieht, und wann er seine Ausführung endgültig beendet und zum Auftraggeber zurückkehrt bzw. nur Ergebnisse zurückschickt. Das heißt, Programmcode und zugehörige Daten werden durch ein meist heterogenes Netzwerk geschickt, der Zielrechner muß den Code interpretieren und ausführen können.

Um ein einfaches Beispiel für die Effizienz dieses Verfahrens zu geben, stelle man sich folgende Situation vor: Ein Bekannter von Ihnen arbeitet in einem Unternehmen in einer bekannten Stadt. Sie wissen zwar, daß er per Email zu erreichen ist, kennen jedoch weder die genaue Adresse noch den konkreten Rechner. Um seine Adresse herauszufinden, könnten Sie sich nun auf jeden Rechner des Unternehmens einloggen und per 'who' herausfinden, ob ihr Bekannter über diesen Rechner zu erreichen ist, der Einfachheit nehme man die Möglichkeit des Einloggens und des 'who'-Kommandos an. Abgesehen von der monotonen Arbeit des Verbindungsaufbaus und der Suche - sie ließe sich notfalls auch automatisieren - hat diese Methode einen entscheidenden Nachteil: Es werden Unmengen nutzloser Daten übertragen. Als Alternative könnten Sie einen mobilen Agenten verwenden. Er würde zum Beispiel auf einen beliebigen Rechner des Unternehmens
auswandern und dort lokal 'who' abfragen. Wurde Ihr Bekannter gefunden, so muß lediglich die Adresse zu Ihnen zurückgeschickt werden, während der Agent sein Dasein beenden kann. Andernfalls bewegt sich der Agent zum nächsten Rechner weiter und durchsucht diesen.

Plattform für Agenten (Places for mobile agents)

Erst eine einheitliche Plattform ermöglicht den Einsatz mobiler Agenten. Sie macht die unterschiedlichen Architekturen der Rechner transparent und stellt den Agenten eine klar definierte Menge an Operationen zur Verfügung. Eine Plattform ist also eine Art Betriebssystem, das einen Rechner entweder komplett kontrolliert
oder im Bedarfsfalle von einem übergeordneten System angesprochen wird. Sie muß Agenten empfangen, ausführen und eventuell auch wieder verschicken können. Dabei sollte sie sich (beziehungsweise den Wirtsrechner) und den Agenten vor ungewünschten Aktionen schützen können.

Vorteile gegenüber dem traditionellen Client-Server Modell

Remote Procedure Calling / Remute Programming

Mobile Agenten schonen Netzwerkressourcen, indem anstelle der Daten das Programm übertragen wird, wie oben schon angesprochen. Außerdem können sie bisher ferngesteuert ausgeführte Operationen (Remote Procedure Calls) lokal ausführen, was möglicherweise eine enorme Leistungssteigerung bewirkt und
die Verwendung mächtigerer Operationen/Werkzeuge erlaubt. Das Konzept der mobilen Agenten stellt ein Netzwerk als einheitliche Gesamtheit dar, in dem die Kommunikationskanäle an Bedeutung verlieren, während der individuelle Rechner mit seinem speziellen Aufgabengebiet in den Vordergrund gestellt wird.
Anstatt eines kontinuierlichen, also verbindungsorientierten Dienstes genügt eine zeitweise Verbindung zwischen Ursprungs- und Zielrechner, um den Agenten und das Ergebnis zu übertragen. Auf ein gemeinsames Protokoll der beiden Rechner kann verzichtet werden, lediglich die Plattform für den Agenten muß einheitlich sein.

Für längeranhaltende Beziehungen zwischen zwei Rechnern ist es ihnen möglich, sich gegenseitig zu programmieren und so ihren Funktionsumfang auszubauen. Dies reduziert insgesamt den notwendigen Kommunikationsumfang und die Bearbeitungsdauer der zur Verfügung gestellten Dienste. Wenn man bisher eher von einem Manager des Agenten gesprochen hat, eignet sich hier aufgrund der Flexibilität des Agenten vielmehr der Begriff des Auftraggebers, der eine Arbeitsanweisung nur einmalig vergibt anstatt den Agenten aktiv und ständig zu managen.

Anwendungen

Auf der Website der Firma Custom Revolution Inc. (leavesite.gif (131 Byte)www.customdisc.com) kann der Kunde CD nach seinem individuellen Geschmack zusammenstellen lassen; pro Song bezahlt er einen Dollar. Nach der Auswahl wird die CD gebrannt und dem Kunden zugeschickt.

Beim nächsten Besuch der Website wird dem Kunden eine neue Kollektion offeriert, die eine Agentensoftware im Hintergrund, basierend auf einer Auswertung des Geschmacks des Kunden, erledigt hat. Die Agentensoftware heißt Firefly wurd wurde am Massachusetts Institute of Technology (MIT) entwickelt.

Die Datenbank von Firefly ist jedoch noch recht klein: 40 Label sind unter Vertrag, rund 200.000 Titel stehen zur Auswahl.

Siehe auch