Inhaltsverzeichnis
KAPITEL 1
PROLOG
1 VORGEHEN
2 CLIENT-SERVER VERSUS REMOTE-PROGRAMMING
KAPITEL 2
THEORETISCHE GRUNDLAGEN DER AGENTENTECHNOLOGIE
1 DER AGENT
1.1 Begriffsdefinition
1.1.1 Beschreibung mittels mentaler Komponenten
1.1.2 Beschreibung mittels Eigenschaften
1.1.3 Und was ist nun ein Agent ?
1.2 Agententypen
1.2.1 Stationärer Agent
1.2.2 Service Agent
1.2.3 Mobiler Agent
1.3 Lebenszyklus eines Agenten
1.4 Anwendungsbereiche
1.4.1 Beispiele
1.4.2 Klassifikation von Anwendungsbereichen
2 DAS AGENTENSYSTEM
2.1 Grundkonzept
2.2 Anforderungen an ein Agentensystem
3 MOBILITÄT
3.1 Mobilitätsgrade
3.1.1 Schwache Migration
3.1.2 Starke Migration
3.1.3 Klonmigration
3.1.4 Invokationsmigration
3.1.5 Passive Migration
3.2 Mobilitätsprotokolle
3.2.1 FIPA-Spezifikation
3.2.2 MAF-Spezifikation
3.3 Bestimmung des internen Zustands des Agenten
3.4 Ermittlung des Zielsystems (Routing)
4 KOMMUNIKATION
4.1 Kommunikationsbeziehungen
4.1.1 Agent Û Agentensystem
4.1.2 Agent Û Benutzer
4.1.3 Agent Û Agent
4.2 Ein universelles Kommunikationsmodell
4.3 Kommunikationssprachen zwischen Agenten
4.3.1 Theorie der Sprechakte (Exkurs)
4.3.2 KQML - Knowledge Query and Manipulation Language
5 SICHERHEIT
5.1 Angriffsformen
5.2 Sicherheitsstrategien
5.2.1 Intrusion Detection Systems
5.2.2 Security by Obscurity
5.2.3 Soft Security
5.3 Maßnahmen zur Sicherheit
5.3.1 Die verwendete Programmiersprache
5.3.2 Der Systementwurf
5.3.3 Das konventionelle Konzept
6 STANDARDISIERUNGSBEMÜHUNGEN
6.1 Mobile Agent Facility - MAF
6.2 Foundation of Intelligent Physical Agents - FIPA
KAPITEL 3
EIN AGENTENSYSTEM FÜR MOBILE AGENTEN
1 ANFORDERUNG AN DIE ZU ERSTELLENDE PLATTFORM
2 ANALYSE DER ANFORDERUNGEN
2.1 Anforderung
2.2 Anwendungsfälle
2.3 Klassendiagramm
2.4 Anwendungsbausteine und Schnittstellen
3 ANALYSE - ENTWURF - REALISIERUNG
3.1 Einsatz sprachabhängiger Mechanismen
3.2 Agenten
3.3 Agentensystem
3.3.1 Agentensystem als Komponente
3.3.2 Eindeutige Identifikation
3.3.3 Agentensystem als verteiltes System
3.3.4 Einbindung des Agentensystems in eine Anwendung
3.3.5 Einbettung der Agenten in das Agentensystem
3.4 Migrationsunterstützung für Mobile Agenten
3.5 Kommunikation
3.6 Sicherheit.
4 ANWENDUNGSBEISPIELE
4.1 Service Agenten
4.1.1 User Interface Agent - UIA
4.1.2 Identifikation Agent - IA
4.1.3 File Access Agent - FAA
4.1.4 Database Agent - DBA
4.2 Anwendungen
4.2.1 GoWeb-Projekt
4.2.2 WorkFlow / Offline Beispiel
KAPITEL 4
AUSBLICK
A BIBLIOGRAPHIE
B MAM-DOKUMENTATION
C STANDARDISIERUNGEN
D UNIVERSITÄTSPROJEKTE
Abbildungsverzeichnis
1: VERTEILTE ANWENDUNG
2: KOMMUNIKATIONSMECHANISMEN
3: REMOTE PROCEDURE CALL
4: MOBILER AGENT
5: NETZBELASTUNG DER BEIDEN PARADIGMEN
6: AIA-KONGLOMERAT
7: DENKBARE ABHÄNGIGKEITEN ZWISCHEN EIGENSCHAFTEN
8: REAKTIVER AGENT
9: PROAKTIVER AGENT
10: LEBENSZYKLUS EINES AGENTEN
11:OFFICE-97-ASSISTENT
12: ALLGEMEINES KONZEPTIONELLES MODELL DER MAF-SPEZIFIKATION
13: REGION ARCHITEKTUR
14: SIMPLE AGENT MIGRATION PROTOCOL
15: FULL AGENT MIGRATION PROTOCOL
16: INITIIEREN EINES AGENTENTRANSFERS UND EMPFANGEN EINES AGENTEN
17: KOMMUNIKATIONSBEZIEHUNGEN EINES AGENTEN
18: KOMMUNIKATIONSMECHANISMEN
19: PUBLISHER-SUBSCRIBER MUSTER
20: TRIPEL-FORM FÜR DEN EINTRAG IN DEN INFORMATION SPACE
21: EINORDNUNG DER SPRECHAKTE NACH AUSTIN
22: SYNTAX DER PERFORMATIVE
23: SYNTAX DER PARAMETER
24: BEISPIEL EINER KOMMUNIKATION ZWISCHEN ZWEI AGENTEN
25: DER PROZEß DER SOFTWAREENTWICKLUNG
26: ANWENDUNGSFÄLLE DES AGENTENSYSTEMS
27: FUNDAMENTALES KLASSENDIAGRAMM
28: ANWENDUNGSBAUSTEINE UND SCHNITTSTELLEN
29: VERSCHACHTELTE PAKETE
30: VERWENDUNG DER JAVA MECHANISMEN
31: BEISPIEL EINER EINDEUTIGE BEZEICHNUNG EINES AGENTEN
32: BASISKLASSE ALLER AGENTEN
33: KLASSEN DES STATIONÄREN UND DES SERVICE AGENT
34: KLASSE DES MOBILEN AGENTEN
35: KLASSENDIAGRAMM DER AGENTENTYPEN
36: SICHTBARKEITSGRAPHEN ZWISCHEN AGENT UND AGENTENSYSTEM
37: SCHNITTSTELLE DES AGENTENSYSTEMS ZUM AGENTEN
38: SCHNITTSTELLE DES AGENTEN ZUM AGENTENSYSTEM
39: SICHTBARKEITSGRAPH ZWISCHEN MOBILEM AGENT UND AGENTENSYSTEM
40: SICHTBARKEITSGRAPHEN ANWENDUNG-AGENTENSYSTEM
41: OBSERVER-MUSTER ALS SCHNITTSTELLE FÜR DAS AGENTENSYSTEM AUF EINE ANWENDUNG
42: SCHNITTSTELLE DER ANWENDUNG FÜR DEN ZUGRIFF AUF DAS AGENTENSYSTEM
43: EINDEUTIGE BEZEICHNUNG EINES AGENTENSYSTEMS
44: SINGELTON-MUSTER IM DER KLASSE MAMCREATOR
45: SCHNITTSTELLEN FÜR DEN ENTFERNTEN ZUGRIFF ANDERER AGENTENSYSTEME
46: SCHNITTSTELLE FÜR DIE KOMMUNIKATION DER AGENTENSYSTEME UNTEREINANDER
47: ANMELDUNG EINES AGENTENSYSTEMS AM LOCATION SERVER
48: ANMELDUNG MIT AUTOMATISCHER GENERIERUNG DES LOCATION SERVERS
49: DELEGATION DER LOCATION SERVER FUNKTIONALITÄT
50: SEQUENZDIAGRAMM FÜR DIE EINBINDUNG DES AGENTENSYSTEMS IN EINE ANWENDUNG
51: LEBENSZYKLUS EINES SERVICE BZW. STATIONÄREN AGENTEN
52: LEBENSZYKLUS EINES MOBILEN AGENTEN
53: SEQUENZDIAGRAMM FÜR DEN LEBENSZYKLUS EINES SERVICE BZW. STATIONÄREN AGENTEN
54: MIGRATION EINES AGENTEN
55: GRUNDKONZEPT EINER NACHRICHTENÜBERMITTLUNG ZWISCHEN AGENTEN
56: RÜCKGABEPARAMETER EINER NACHRICHT
57: INTERAKTIONSDIAGRAMM FÜR DAS VERSENDEN EINER SYNCHRONEN NACHRICHT
58: SICHERHEITSMODELL DES JDK 1.1
59: BEISPIEL EINER SICHERHEITSÜBERPRÜFUNG
60: BEISPIEL FÜR DIE VERWENDUNG VON SCHNITTSTELLEN UND PAKETEN
61: DER FILE ACCESS AGENT
62: SEQUENZDIAGRAMM EINER AUFTRAGSBEARBEITUNG DES FAA
63: DER USER INTERFACE AGENT
64: BEISPIEL EINER BENUTZERINTERAKTION
65: VEKTOR ZUR DARSTELLUNG DER ABBILDUNG 64
66: DER IDENTIFICATION AGENT
67: DER DATABASE AGENT
68: GRAFISCHE OBERFLÄCHE DES GOWEB-SYSTEMS
69: ARBEITSWEISE DES GOWEBAGENT
70: SZENARIO FÜR EIN WORKFLOW-BEISPIEL
71: BILDSCHIRMDIALOGE DES WORKFLOWAGENT
Tabellenverzeichnis
1: KOMBINATIONEN MOBILITÄT-SICHERHEIT
2: AUSFÜHRUNGSBERECHTIGUNG FÜR AKTIONEN
3: KLASSIFIZIERUNG VON AGENTEN
4: KLASSIFIKATION DER IN KAPITEL 2 2.4.1 BENANNTEN ANWENDUNGSBEREICHE
5: PRIMITIVE UND PERFORMATIVE ZUR BESCHREIBUNG DER MOBILITÄT
6: EINIGE AUSGEWÄHLTE RESERVIERTE PERFORMATIVE
7: EINIGE AUSGEWÄHLTE RESERVIERTE PARAMETERBEZEICHNUNGEN
8: KOMMUNIKATIONSARTEN UND DAZUGEHÖRIGE PARAMETER
9: FAA-ANFRAGEN UND ENTSPRECHENDE RÜCKGABEPARAMETER
10: UIA-PARAMETERKÜRZEL UND DEREN BEDEUTUNG
11: UIA-ANFRAGEN UND ENTSPRECHENDE PARAMETER
12: UIA-ERGEBNISNACHRICHT UND ENTSPRECHENDE PARAMETER
13: IA-ANFRAGE UND ENTSPRECHENDE PARAMETER
14: DBA-ANFRAGEN UND ENTSPRECHENDE PARAMETER
Quellkodeverzeichnis
1: PROGRAMMKODE ZUR SERIALISIERUNG EINES AGENTEN
2: PROGRAMMKODE ZUR DESERIALISIERUNG DES BYTE-STREAMS
3: QUELLKODE-BEISPIEL FÜR SYNCHRONE KOMMUNIKATION
4: QUELLKODE-BEISPIEL FÜR ASYNCHRONE KOMMUNIKATIO
Kapitel 1 Prolog
One doesn’t discover new lands without consenting to lose sight of the shore for a very long time.
Andrew Gide
Die lokale und weltweite Vernetzung von Rechnern erhöht zunehmend die Nachfrage an verteilten Systemen1. Dieser Bedarf und die steigenden Anforderungen an Softwaresysteme intensivieren die Suche nach neuen Technologien, die ein Beherrschen der ansteigenden Komplexität dieser Systeme unterstützten. Eine dieser Technologien
wurde Anfang der 90er Jahre durch die Firma General Magic ins Leben gerufen. General Magic prägte den Begriff ‚Mobile Agenten’ und erhielt 1997 ein Patent für die zugrundeliegende Technologie. Beim Begriff ‚Mobile Agenten‘ handelt es sich um Programme in Form von autonomen Objekten, die sich in einer heterogenen Umgebung frei bewegen können und im Sinne ihres Auftraggebers handeln.
Dies war der Ursprung der Agententechnologie, welche als Zukunftstechnologie bzw. als neues Paradigma über das nächste Jahrzehnt hinaus eine wesentliche Rolle in der Informatik spielen wird.2
In den verschiedenen Forschungsbereichen werden Agenten aus unterschiedlichen Blickwinkeln betrachtet. Die Hauptströmungen werden durch die Bereiche Künstliche Intelligenz und Verteilte Systeme geprägt, die mit unterschiedlichen Motivationen die Agententechnologie erforschen. So betrachtet die Künstliche Intelligenz einen Agenten als mentale Komponente, wohingegen im Bereich Verteilte Systeme die Mobilität des Agenten als wichtigste Eigenschaft definiert wird. Leider gibt es zwischen diesen beiden Lagern keine produktive Zusammenarbeit und somit nur wenige Berührungspunkte.
Wie aus dem Titel hervorgeht, soll die Plattform, im folgenden als Agentensystem bezeichnet3, den Schwerpunkt der Arbeit bilden. Voraussetzung dafür ist die Analyse
der Entität ‚Agent‘. So steht beispielsweise in Fragen der Kommunikation der vom Agentensystem unterstützte Mechanismus im Vordergrund, welcher die Kommunikation zwischen Agenten ermöglicht. Kommunikationsprotokolle und
-sprachen sollen nur einführend betrachtet werden.
Diese Diplomarbeit gehört zum Bereich der Verteilten Systeme. Trotzdem gibt es einige Verweise zu den Forschungstendenzen bzw. -ergebnissen aus dem Bereich der Künstlichen Intelligenz. Diese sollen andere Sichtweisen und Lösungswege aufzuzeigen.
1 Vorgehen
Die vorliegende Arbeit besteht aus drei Kapiteln. Im ersten Kapitel wird der derzeitige State of the Art der Agententechnologie aufgezeigt. Dies erfolgt anhand von aktuellen Zeitschriftenpublikationen, Standardisierungsbemühungen und Forschungsberichten über konkrete Implementierungen. Schwerpunkt dabei ist die Beschreibung der Funktionalität des Agentensystems als Lebensraum der Agenten.
Im zweiten Kapitel der Arbeit wird ein Prototyp eines Agentensystems auf der Grundlage einer Minimalanforderung und der im ersten Teil erarbeiteten Ergebnisse vorgestellt. Der Prototyp beinhaltet die Konzeption verschiedener Agententypen, eines Lokation Service und des Agentensystems.
Das dritte Kapitel besteht aus zwei Anwendungsbeispielen, welche die Funktionalität des vorgestellten Agentensystem verdeutlichen soll. Anhand des GoWeb-Systems4 wird die einfache Integration des erstellten Agentensystem in diese Anwendung und die daraus resultierende Erweiterung zu einer verteilten Komponente erläutert. Desweiteren
wird ein einfacher WorkFlow-Agent vorgestellt, welcher Nachrichten eines Benutzers im Netz versenden kann, wobei er die Empfänger dynamisch im Netz lokalisiert. Deren Kommentare werden an den sendenden Benutzer zurückgegeben. Für die Realisierung dieser Beispiele wurden vier Service Agenten entwickelt, welche allgemeine Aufgaben wie Datei- bzw. Datenbankzugriff, Informationsverwaltung , Unterstützung der grafischen Benutzerinteraktion und Benutzeridentifikation übernehmen. Abschließend wird im vierten Kapitel eine Zusammenfassung der Arbeit und ein Ausblick auf Tendenzen im Bereich der Agententechnologie gegeben.
2 Client-Server versus Remote-Programming
Zu einem Schwerpunkt der Anwendungsgebiete Verteilter Systeme gehören verteilte Anwendungen. Diese unterscheiden sich von konventionellen Anwendungen56 durch die Abhängigkeit mehrerer, miteinander kooperierender Anwendungen. Der Dienstanbieter wird als Server und der Dienstnutzer als Client bezeichnet. Man beachte, daß Server und Client keinen gemeinsamen Speicher benutzen und in verschiedenen Betriebssystemprozessen ablaufen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Verteilte Anwendung
Server stellen Dienste zur Verfügung, welche der Client benutzt, um sein Ziel zu erreichen. Somit ist der Client unter Umständen ohne den Server nicht lauffähig. Die in der Abbildung 1 dargestellte Verbindung zwischen den beiden Servern zeigt, daß der Server gleichzeitig auch Client sein kann, da dieser Dienste eines anderen Servers benutzt.
Um die Kommunikation zwischen einem Client und einem Server zu realisieren, benötigt man einen Mechanismus zur Überwindung der Prozeß- bzw. der Systemgrenze. Als unterste Abstraktion steht die Verbindung via Sockets zur Verfügung, welche sich aber durch ihre Komplexität (Protokoll, Fehlerbehandlung, etc.) nicht für den direkten Einsatz eignet.
Die nächste Möglichkeit bieten die Mechanismen Remote Procedure Call (RPC) und Object Request Brocker (ORB), welche mittels Sockets realisiert sind. Dabei kann eine Anwendung eine Prozedur (RPC) bzw. eine Methode eines Objektes (ORB) aufrufen, welche sich in einem anderen Prozeß als die aufrufende Entität befindet. Der simple Aufrufmechanismus, das automatische ‚Verpacken/Entpacken‘ der zu übergebenden Parameter sowie des Rückgabewertes und die erleichterte Fehlerbehandlung bieten entscheidende Vorteile gegenüber dem Einsatz von Sockets.
Ein völlig neuer Ansatz bietet sich durch das Paradigma des Remote-Programming. Dabei wird als Parameter eines RPC/ORB eine Entität (Objekt, Instanz) übergeben, welche einen Zustand sowie ein Verhalten besitzt. Diese ist am Zielort in der Lage, ihre eigenen Aktivitäten unter Berücksichtigung des eigenen Zustandes fortzuführen. Hier werden also nicht nur Daten übergeben, welche der Dienstanbieter bearbeiten oder auf welche er reagieren kann. Die übertragbaren Entitäten werden als Mobile Agenten bezeichnet, da diese im Sinne ihres Auftraggebers handeln und einen gewissen Grad an Autonomie zur Lösung der an sie gestellten Aufgabe besitzen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Kommunikationsmechanismen
Im folgenden sollen die zwei Paradigmen Client-Server und Remote-Programming verglichen werden. Dabei ist zu beachten, daß das Remote-Programming Paradigma nur eine Erweiterung des Client-Server Paradigmas darstellt. Der Vorteil des Client-Server Paradigmas ist die einfache Struktur des Aufrufes einer entfernten Methode/Prozedur, welche sich lediglich durch zusätzliche Fehlerbehandlung (z.B. Übertragungsfehler) und einen Verweis auf die Lokation der aufzurufenden Methode/Prozedur unterscheidet. Problematisch ist jedoch die hohe Netzbelastung, gerade wenn für ein Ergebnis mehrere Aufrufe an den selben Server notwendig sind. Da die Ergebnisse der einzelnen Aufrufe nicht vollständiger Teil des Endergebnisses sind, wird zusätzlich noch ein Overhead an Informationen übertragen. Eine weitere Eigenschaft dieses Mechanismus ist die Synchronität des Aufrufes. Diese führt solange zu einer Unterbrechung des aufrufenden Prozesses, bis die aufgerufene Prozedur/Methode abgearbeitet wurde.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3: Remote Procedure Call
Das Remote-Programming kann den oben genannten Nachteil ausgleichen, worin eine Stärke dieses Paradigmas liegt. Nach dem Übertragen des Mobilen Agenten kann die aufrufende Anwendung sofort ihre Aktivitäten fortführen. Der Mobile Agent hingegen versucht nun, seine ihm anvertrauten Aufgaben zu lösen und kehrt (meist) zur Präsentation des Ergebnisses zu seinem Auftraggeber zurück. Diese Endkopplung zwischen Anwendung und Mobilen Agenten bringt allerdings einige Nachteile mit sich. Das Ergebnis des rückkehrenden Mobilen Agenten muß in den derzeitigen Zustand der Anwendung, die den Agenten versendet hat, integriert werden. Ein weitaus größeres Problem stellt die Kontrolle der Anwendung über den selbständig arbeitenden Mobilen Agenten dar. Die Anwendung ist theoretisch nicht in der Lage, den Fortschritt des Mobilen Agenten in der Bearbeitung der Aufgabe zu kontrollieren. Damit wird auch eine eventuelle Fehlerbehandlung der Anwendung gegenüber dem Mobilen Agenten sehr schwer. Abschließend sei noch das Problem der Sicherheit erwähnt. Da es sich beim Mobilen Agenten um ein Programm handelt, welches den Ausführungsbereich wechselt, ist eine nicht erwünschte Beeinflussung dieses durch das neue Umfeld möglich.
Beispielsweise kann er sein Verhalten und seine Ziele ändern oder sogar existentiell bedroht werden, da der Mobile Agent immer auf die Unterstützung der Umgebung angewiesen ist.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4: Mobiler Agent
Aus den aufgezeigten Vor- und Nachteilen sowie der Tatsache, daß das Remote-Programming auf dem Client-Server Paradigma aufbaut, ist zu vermuten, daß der Einsatz beider Techniken für verteilte Anwendungen in Betracht gezogen werden sollte. So kann die Stärke jedes einzelnen Paradigmas gezielt ausgenutzt werden. Ein Mobiler Agent könnte beispielsweise die Netzwerkbelastung senken, wenn sich ein Ergebnis aus mehreren Serveraufrufen zusammensetzt, die einen Overhead an Informationen enthalten. Für einen einzigen Serveraufruf, welcher bereits das Endergebnis als Rückgabewert bereitstellt, ist ein Remote Procedure Call sicherlich eine effektivere und unkompliziertere Lösung.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 5: Netzbelastung der beiden Paradigmen
Kapitel 2 Theoretische Grundlagen der Agententechnologie
Finally machines are not people and if you confuse the way you treat machines with the way you treat people you may end up treating people like machines.
Agenten-Kritiker Shneiderman
Der sehr junge Forschungsbereich der Agententechnologie hat noch keine anerkannten Standards setzen können. Deshalb soll in diesem Kapitel anhand von Publikationen, Standardisierungsbemühungen verschiedener Organisationen und von ersten industriellen Implementierungen von Agentensystemen ein State of the Art dieser Technologie erarbeitet werden. Im ersten Teil des Kapitels wird zunächst der ‚Stein des Anstoßes‘ analysiert - der Agent. Im zweiten Teil erfolgt eine Auseinandersetzung mit dem Agentensystem, welches den ‚Lebensraum‘ des Agenten darstellt.
Anschließend folgen die Ausführungen über die Mobilität von Agenten, die Kommunikation zwischen Agenten und die Frage der Sicherheit von Agenten sowie Agentensystemen.
1 Der Agent
1.1 Begriffsdefinition
Die Frage nach der allgemein gültigen Definition des Agentenbegriffes ist oft gesucht und nicht gefunden worden. Der Grund dafür liegt wohl in der Diskrepanz der einzelnen Fachbereiche, welche sich aus unterschiedlichen Interessen und mit verschiedenen Vorstellungen möglicher Einsatzbereiche mit dieser Agententechnologie auseinandersetzen.
Im ersten Teil wird deshalb für den Vergleich eine Beschreibungsform aus dem Bereich der Künstlichen Intelligenz anhand einer Arbeit von Yoav Shoham (1992) kurz vorgestellt. Anschließend werden die aus dem Bereich der Verteilten System verwendeten Eigenschaften, durch welche der Begriff des Agenten charakterisiert wird, näher erläutert. Dabei ist zu beachten, daß mittels der Beschreibungen eine Charakterisierung des Agenten erzielt werden soll. Vordergründig geht es dabei nicht um technisch realisierbare Merkmale, sondern um den Begriff des ‚Agenten‘ im Verständnis der Informationswissenschaft.
1.1.1 Beschreibung mittels mentaler Komponenten
Einer der bekanntesten Vertreter aus dem Bereich der Künstlichen Intelligenz ist Yoav Shoham. Er beschreibt in [Shoham92], daß er einen Agenten als Objekt definiert, dessen Zustand durch mentale Komponenten beschrieben wird. Beispiele solcher mentalen Komponenten sind:
- Annahme (belief)
- Fähigkeiten (capabilities)
- Entscheidungen (choices)
- Verpflichtungen (commitments)
Diese Komponenten sind präzise definiert. Ihre Bedeutung entspricht grob dem des konventionellen Sprachgebrauchs. Alle Zustände werden nach genau vorgegebenen Regeln kreiert oder verändert.
Die Umgebung des Agenten beschreibt Shoham auf ähnliche Weise. So charakterisiert er beispielsweise die Kommunikation zwischen Agenten über Angebot, Information, Anfrage usw..
Nun besteht aber die Möglichkeit viele Objekte (Dinge) mit mentalen Komponenten zu beschreiben. Sind diese dann alle Agenten? Shoham geht davon aus, daß nur für solche Objekte die Bezeichnung Agent gerechtfertigt ist, die sich nicht durch andere, einfachere Systeme beschreiben lassen. Als Beispiel führt er einen Lichtschalter an, welcher theoretisch als Agent angesehen werden kann, da man ihm mentale Eigenschaften zuschreiben könnte. Eine solche Beschreibung wäre zwar möglich, bringt jedoch keinerlei Vorteile, da der simple Mechanismus eines Schalters wesentlich einfacher beschrieben werden kann.
Shoham verweist auf John McCarthy der zwischen der Legitimität, welche Maschinen mittels mentaler Komponenten beschreibt, und der Brauchbarkeit einer solchen Beschreibung unterscheidet:
Einer Maschine mentale Komponenten zuzuschreiben ist legitim, falls eine solche Beschreibung vergleichbar mit der Beschreibung einer Person durch die selben mentalen Eigenschaften ist.
Eine solche Beschreibung ist brauchbar, wenn sie uns hilft den Aufbau der Maschine, ihr vergangenes und zukünftiges Verhalten zu verstehen, sie eventuell zu reparieren oder zu verbessern.
[McCarthy97]
1.1.2 Beschreibung mittels Eigenschaften
Im Bereich der Verteilten Systeme wird ein Agent meist durch Eigenschaften beschrieben, welche ihm zugewiesene werden. Diese Eigenschaften werden im folgenden vorgestellt7:
Autonomie - (Selbständigkeit, Unabhängigkeit, Asynchron) Ein Agent ist in der Lage, die ihm übergebene Aufgabe selbständig zu lösen. Das Maß der Selbständigkeit wird durch die Qualität der Arbeitsanweisung bestimmt, welche durch den Präzisionsgrad der Aufgabe (Zielvorgabe) und der dazu erforderlichen Handlungspläne (Arbeitsschritte) festgelegt wird. Daher spricht man auch von einem daraus resultierenden Unabhängigkeitsgrad des Agenten. Besonders die Handlungspläne drücken dabei ein Maß an Verantwortung aus, da sie in Problem- bzw. Fehlerfällen eigene Strategien bereitstellen können. Ansonsten ist eine Interaktion mit dem Auftraggeber notwendig, wobei nur ein geringer Unabhängigkeitsgrad erreicht werden kann.
Intelligenz - Kognitive Prozesse, wie Wahrnehmung, Schlußfolgerung und Problemlösung, bilden in ihrer Gesamtheit und Wechselwirkung die Grundlage für intelligentes Verhalten.8 Dieses Verhalten soll den Agenten befähigen, Entscheidungen zu treffen und neue Informationen mit der bestehenden Wissensbasis abzugleichen.
Adaption - (Lern-/Anpassungsfähigkeit) Die Möglichkeit die Umwelt wahrzunehmen, ist die existentielle Voraussetzung für die Autonomie eines Agenten. Sie ermöglicht dem Agenten seine dynamische Umwelt (Benutzer und Lebensraum des Agenten) wahrzunehmen und sein Verhalten auf die Ereignisse in dieser abzustimmen.
Mobilität - Ein eher technisch geprägtes Merkmal ist die Mobilität. Diese wird durch die physische Struktur von vernetzten Maschinen hervorgerufen. Hierbei wird der Agent in die Lage versetzt, von einer Maschine A zu einer Maschine B über das Netzwerk hinweg zu migrieren. Die Entscheidung zu einer Migration fällt er
autonom. Am Zielort angelangt, setzt er seine Arbeit zur Lösung seiner Zielvorgabe fort. Die Art der Migration, welche in Kapitel 2 3.1 detailliert beschrieben werden, definiert den Mobilitätsgrad des Agenten.
Kommunikation - Agenten sollen untereinander oder mit dem Auftraggeber kommunizieren können, um Informationen anzufordern oder Ergebnisse anzubieten. Dabei ist ein einheitlicher Sprachstandard notwendig, welcher besonders für die Kommunikation zwischen Agenten zwingend erforderlich ist.
Kooperation - Mittels Kommunikation soll mehreren Agenten eine Zusammenarbeit möglich sein, um ein gemeinsam Ziel zu erreichen. Wichtig dabei ist, entsprechende Aktionen einzelner Agenten mit den Kooperationspartnern zu synchronisieren. Weiterhin muß das individuelle Ziel gegen das gemeinsame abgewogen werden, damit eine insgesamt optimale Lösung gefunden wird. Alle Agenten, die eine Kooperation zur Lösung einer Aufgabe eingehen, sind gleichberechtigt.
Äquivalent zum Sprachstandard für die oben beschriebene Kommunikation sind für die Kooperation entsprechende Protokolle notwendig.
Persistenz - (Deaktivierung /Aktivierung) Ein Agent ist in der Lage, seinen Zustand zu einem Zeitpunkt seiner Wahl persistent ablegen zu können. Dieses Abbild stellt den Agenten im deaktivierten Zustand dar. Wenn der Agent aktiviert wird, muß er die Arbeit nach der Position der Deaktivierung wieder aufnehmen. Die Eigenschaft der Persistenz bildet die Voraussetzung für die Mobilität.
Kontinuität - (Zielorientiert) Ein Agent ist im ständigen Bemühen, die an ihn gestellte Aufgabe zu lösen. Dafür ist dieser über einen längeren Zeitraum aktiv, so daß er durch Adaption Erfahrungen sammeln d.h. lernen kann. Das erworbene Wissen wird für die Lösung seiner Aufgabe benutzt. Man beachte aber, daß Kontinuität nicht unbedingt im Gegensatz zur Eigenschaft der Persistenz steht.
1.1.3 Und was ist nun ein Agent ?
Anhand der Eigenschaften kann immer noch keine endgültige Definition für den Begriff des Agenten aufgestellt werden. Auf der Suche nach einer Definition wird versucht, die existentiellen Eigenschaften eines Agenten zu ermitteln. In diesem Zusammenhang spielt die Frage, worin sich ein Agent von einem herkömmlichen Software Programm unterscheidet, eine große Rolle.
Die mir vorliegenden Publikationen, welche Agenten mittels Eigenschaften beschreiben, stimmen nur in den Auffassungen überein, daß ein Agent nicht alle, sondern nur einige wenige Eigenschaften besitzen muß, um sich von einem herkömmlichen Software Programm zu unterscheiden. Allerdings gibt es in der Frage über die entscheidenden Eigenschaften in der Fachwelt keine grundsätzliche Übereinstimmung.
Eine der meist zitierten Publikationen zur Frage nach den existentiellen Eigenschaften von Agenten ist die Arbeit von Stan Franklin und Art Greasser ‚ Is it an Agent, or just a Program? : A Taxonomy for Autonomous Agents ‘.9 Eine wesentliche Bedeutung ist hier
dem Wort just beizumessen, da deutlich wird, daß ein Agent ein Programm aber ein Programm kein Agent ist. In dieser Frage ist ein Konsens vorhanden. Die Arbeit von Franklin und Greasser versucht anhand der Definition des Begriffes Agent verschiedener Autoren, wesentliche Eigenschaften herauszukristallisieren. Hierbei ist es augenscheinlich, daß der Begriff der Autonomie bzw. die Umschreibung dessen in fast jeder Definition als Eigenschaft benannt wird.
Eine weitere Quelle bietet das Buch ‚ Intelligente Softwareagenten‘ von Brenner, Zarnekow und Wittig. Hier äußern sich die Autoren zum Problem der Differenz zwischen einem Softwareprogramm und einem Agenten: Autonomes Arbeiten stellt aus diesem Grund (damit ist der minimale Arbeitsaufwand für den Auftraggeber gemeint,
d. Verf.) eine wesentliche Anforderung an einen intelligenten Agenten dar und ist eines der Hauptunterscheidungskriterien zwischen intelligenten Agenten und traditionellen Softwareprogrammen. [BZW97] Der Begriff ‚intelligenter Agent‘ verweist auf die konsequente Sicht der Autoren, welche für eine existentielle Autonomie eines Agenten einen gewissen Grad an Intelligenz voraussetzt.
Barbara Hayes-Roth von der Standford University beschreibt die ihr wesentlichen Funktionen eines Agenten: Intelligente Agenten führen kontinuierlich drei Funktionen aus: sie nehmen ihre sich verändernde Umgebung wahr; sie handeln, um ihre Umgebung zu verändern; und sie ziehen Schlüsse, um Wahrnehmungen zu interpretieren, Probleme zu lösen und geeignete Handlungen zu bestimmen. [Hayes-Roth97]. Zur Realisierung dieser Funktionen sind die Eigenschaft Autonomie, Intelligenz und Adaption notwendig.
Ein Konsens fast aller Definitionen besteht in der Bewertung der Eigenschaft der Autonomie als existentiell. Die Unabhängigkeit und Eigenverantwortlichkeit zur Lösung der dem Agenten anvertrauten Aufgabe könnte somit ein wesentlicher Unterschied zum traditionellen Softwareprogramm sein.
Doch die Eigenschaft der Autonomie setzt einen gewissen Grad an Intelligenz voraus, um beispielsweise selbständig Entscheidungen treffen zu können. Die Intelligenz wiederum benötigt eine Wissensbasis, welche sich durch Adaption dynamisch an die Umwelt anpassen muß, um so auch die richtige Entscheidung innerhalb eines Zeitraumes in Abhängigkeit zum derzeitigen Zustand der Umwelt zu treffen. Sind diese resultierenden Eigenschaften nun auch existentiell? Ist das Konglomerat Adaption- Intelligenz-Autonomie (AIA) eine mögliche Lösung, um den Begriff des Agent nun beschreiben zu können?
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 6: AIA-Konglomerat
Eine Begriffsbestimmung in Form einer Definition ist weiterhin nicht möglich. Aber das AIA-Konglomerat zeigt, in welcher enger Abhängigkeitsbeziehung die Eigenschaften zueinander stehen. Dies ließe sich weiter fortführen. So könnte beispielsweise die Eigenschaft der Kommunikation und der Kooperation als Voraussetzung für die Adaption der Umwelt angesehen werden. Weitere denkbare Abhängigkeiten zwischen den in dieser Arbeit aufgeführten Eigenschaften veranschaulicht die folgende Abbildung:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 7: Denkbare Abhängigkeiten zwischen Eigenschaften
Ein weiteres Problem ist, daß die Eigenschaften der Intelligenz und der Autonomie keine eindeutigen Definitionen besitzen. Im Falle der Intelligenz gibt es beispielsweise keine Festlegung, ab welchem Umfang kognitiver Prozesse man von Intelligenz spricht und ab welchem nicht. So äußert sich Rainer Fischbach: Es stellt sich die Frage, welche Form von intelligenten Verhalten man in welchem Maße von Software erwarten darf und auf welche Weise man sie dazu befähigt. [Fischbach96a:148] Desweiteren wirft er Fragen auf, welche sich ihm im Zusammenhang mit dem Begriff Autonomie stellen10:
Welches Maß an Vertrauen müssen die Anwender solcher Software in diese haben?
In welchem Umfeld soll sie ihren Aufgaben nachgehen, beziehungsweise welche Anforderungen stellt solche Software an ihr Umfeld und welche muß diese an sie stellen?
Welche Sicherheitsprobleme sind mit solchen Agenten verbunden?
Die aufgezeigten Probleme verdeutlichen die Schwierigkeiten der Begriffsbildung. An dieser Stelle sei noch einmal auf die Aussage von John McCarthy über Legitimität und Brauchbarkeit von Beschreibungen hingewiesen (siehe Kapitel 2 1.1.1), welche sicherlich auch für die Beschreibung mittels Eigenschaften gilt.
Abschließend soll, trotzt des erfolglosen Bemühens um eine endgültige Definition, eine der häufig zitierten Definitionen nach Woolridge und Jennings als Anhaltspunkt aufgezeigt werden. Danach ist ein hardware- oder softwarebasiertes Computersystem mit folgenden Eigenschaften ein Agent11:
Autonomie: Agenten operieren ohne direkte Intervention durch den Menschen und haben eine gewisse Kontrolle über ihre eigenen Aktionen und ihren internen Zustand.
Soziale Fähigkeiten: Agenten interagieren mit anderen Agenten (und möglicherweise auch mit Menschen) mittels einer bestimmten Agenten- kommunikationssprache.
Reaktivität: Agenten nehmen ihre Umgebung wahr und antworten rechtzeitig auf Veränderungen, die sie betreffen.
Proaktivität: Agenten antworten nicht einfach auf ihre Umgebung, sondern weisen zielgerichtetes Verhalten auf, indem sie selbst Initiative ergreifen.
Die Bedeutung, der in dieser Definition benannten Begriffe Reaktivität und Proaktivität sollen durch die folgenden zwei Abbildungen grafisch verdeutlicht werden. 12 Bei einem reaktiven Agenten werden Reaktionen durch Ereignisse ausgelöst. Der Agent reagiert dabei in Abhängigkeit von seiner Wahrnehmung und seiner Wissensbasis, welche durch das neue Ereignis aktualisiert wird.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 8: Reaktiver Agent 13
Der proaktive Agent ist eine Erweiterung des reaktiven Agenten. Dieser verfolgt seine Ziele und Aufgaben anhand von Handlungsplänen. Reaktionen und geplante Handlungen werden zusätzlich von Emotionen und Verpflichtungen beeinflußt, was zu einer Aktualisierung der Wissensbasis führt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 9: Proaktiver Agent 14
1.2 Agententypen
Anhand der Eigenschaften eines Agenten kann dieser einem bestimmten Typus zugeordnet werden. Im Forschungsbereich der Verteilten Systeme hat sich diesbezüglich die Eigenschaft der Mobilität als Hauptunterscheidungsmerkmal herauskristallisiert15, welche sich aus dem Einsatzgebiet von Agenten im Bereich der
Verteilten Systeme ableiten läßt. Die MAF-Spezifikation definiert beispielsweise in [MAF97:5] den Stationären und den Mobilen Agenten. Die Eigenschaft der Mobilität ist dabei mit der Frage der Sicherheit verbunden. In der Praxis16 wird das Problem meist durch die Einschränkungen der Ausführung von sicherheitskritischen Operationen gelöst. Zur Ermittlung der entsprechenden Agententypen soll die folgende Tabelle helfen, welche die Kombinationen der Mobilitätseigenschaft mit der Frage der Sicherheit verknüpft ( = mögliche Kombination; = verbotene Kombination):
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 1: Kombinationen Mobilität-Sicherheit
Anhand der Tabelle können die drei Grundtypen Stationärer-, Service- und Mobiler Agent ermittelt werden. Die Unterteilung der stationären Agenten ist nicht zwingend erforderlich, erlaubt jedoch eine feinere Differenzierung. Diese ist für die spätere konzeptionelle Entscheidung von Vorteil. So kann beispielsweise die Forderung, daß ein mobiler Agent zu seiner Unterstützung andere Agenten aktivieren kann, leichter realisiert werden. In diesem Fall könnte dem mobilen Agenten das Aktivieren von statischen, sicherheitsbeschränkten Agenten erlaubt werden, welche die Sicherheit des
Systems nicht verletzten können.17 Die sich in Tabelle 1 ergebenden Agententypen sind
beispielsweise im JAE-Projekt der Technischen Hochschule Aachen realisiert und sollen an dieser Stelle vorgestellt werden.18
1.2.1 Stationärer Agent
Dieser Agententyp stellt die einfachste Variante eines Agenten dar. Wie der Name des Typs bereits ausdrückt, ist er nicht in der Lage, sein lokales Agentensystem zu verlassen. Dadurch ist der Stationäre Agent auf die Nutzung der lokalen Dienste des Agentensystems begrenzt. Desweiteren unterliegt er den Sicherheitsrestriktionen der lokalen Umgebung und kann sicherheitskritische Systemaufrufe nur durch Delegation an einen Dienstanbieter (Service Agenten) ausführen.
1.2.2 Service Agent
Der Service Agent stellt einen erweiterten Stationären Agenten dar. Er unterliegt keinen Einschränkungen in den sicherheitsrelevanten Bereichen bzw. Operationen, wodurch dieser anderen Agenten die Möglichkeit gibt, sicherheitskritische Systemaufrufe (z.B. Zugriff auf das Dateisystem, Datenbankzugriff) an ihn zu delegieren und diese für sie auszuführen. Dabei definiert der Administrator des Service Agent entsprechende Einschränkungen (z.B. Zugriff nur auf bestimmte Dateien des Systems). Ein Service Agenten stellt dadurch im lokalen Agentensystem eine Erweiterung des Dienstangebotes dar. Er darf nur vom lokalen Administrator eingerichtet werden und ausschließlich an seinem Ursprungsort aktiv sein.
1.2.3 Mobiler Agent
Dieser Agententyp ist in der Lage seine Umgebung durch Migration zu verlassen. Sein Ziel ist, entweder eine Kommunikation mit einem Agenten eines anderen Agentensystems durchzuführen oder Dienste (Service Agent) eines anderen Agentensystems zu nutzen. Der Mobile Agent unterliegt dabei den Sicherheits- reglements des Agentensystems, in welchem dieser aktiv ist.
1.3 Lebenszyklus eines Agenten
In der FIPA19-Spezifikation wird der Lebenszyklus anhand des internen Zustands des Agenten beschrieben.20 Dafür wurden folgende Zustände eines Agenten ermittelt:
Initiated: der Agent wurde erstellt
Active: der Agent wird ausgeführt
Suspended: die Ausführung des Agenten wurde unterbrochen
Waiting: der Agent wartet auf das Auftreten eines Ereignisses
Transit: Zeitraum der Migration des Agenten zu einer neuen Umgebung
Für die Transformation zwischen den Zuständen werden definierte Aktionen verwendet. Die Bezeichnung der Aktionen sind dabei selbsterklärend. Deshalb soll an dieser Stelle unterschieden werden, ob eine Aktion von einem Agenten oder seiner Umgebung ausgelöst werden kann.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 2: Ausführungsberechtigung für Aktionen
Die Aussage, daß nur der Agent die Aktion Move ausführen darf, suggeriert, daß eine Passive Migration (siehe Kapitel 2 3.1.5) in der FIPA-Spezifikation nicht vorgesehen ist. In diesem Fall müßte das Agentensystem wenigstens die Möglichkeit besitzen, den Agenten zu einer Migration zu animieren.
Anhand der folgenden Abbildung wird der Lebenszyklus mit seinen Zuständen und den dazugehörigen Aktionen verdeutlicht:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 10: Lebenszyklus eines Agenten 21
Die Aktionen Move und Execute, welche für den Zustand Transit benötigt werden, sind nur für Mobile Agenten nutzbar.
1.4 Anwendungsbereiche
Anhand von Anwendungsbeispielen können die Einsatzmöglichkeiten der Agententechnologie verdeutlicht werden. Diese sollen zusätzlich als Motivation für die Auseinandersetzung mit dieser Technologie dienen und dem Leser einen anderen Zugang für die Begriffsbestimmung des Agenten ermöglichen.
1.4.1 Beispiele
Ressourcennutzung 22 - Gewisse Betriebsmittel (Rechenleistung, Speicher) oder Dienste (Datenbanken) sind aus unterschiedlichen Gründen oft nur lokal nutzbar und nicht über einen Dienstübermittler global ansprechbar. Mobile Agenten können dieses Hemmnis überwinden, indem sie als Stellvertreter ihrer Ursprungsumgebung zu dem entsprechenden Dienst oder einem Betriebsmittel migrieren, den Dienst dann lokal nutzen und an ihren Ursprung zurückkehren.
Informationssuche - Einer der meist genannten Aufgaben von Agenten ist die Unterstützung des Benutzers bei der Suche nach Informationen in einem (verteilten) System. Der Benutzer kann durch Restriktionsangaben den Bereich der zu ermittelnden Information eingrenzen. Der Agent sollte in der Lage sein,
1. Informationsquellen zu lokalisieren,
2. Informationen aus den Quellen zu extrahieren,
3. aus der Gesamtmenge der Information alle wichtigen Informationen heraus zu filtern und
4. die ermittelten Informationen in geeigneter Form dem Benutzer zu präsentieren.
Beispiele für derartige Agenten sind die Suchmaschinen Bargain Finder23 und
Webhound24.
Transaktionsüberwachung 25 - Ein großer Bereich liegt in den transaktionsorientierten Anwendungsumgebungen. Sowohl in klassischen Datenbankumgebungen, als auch in den Bereichen Netzwerkmanagement und elektronischer Handel besteht die Hauptaufgabe in der Ausführung und Überwachung von Transaktionen. Sicherheit, Datenschutz, Robustheit und Vertrauenswürdigkeit sind Aspekte, die entscheidende Rollen bei der Konzeption von Transaktionsagenten spielen. Denn sie bewegen sich in der Regel in äußerst sensitiven Bereichen und vertreten ihren Benutzer bei Aufgaben, die ein hohes Maß an Verantwortung erfordern (Produktkauf mit Kreditkarte des Benutzers). Fehlerhaftes Verhalten oder der Verlust vertraulicher Informationen kann schwerwiegende Folgen haben und ist für Transaktionsagenten nicht akzeptabel.
Der zur Zeit stark forcierte Bereich des e-Commerce stellt ein Einsatzgebiet für diesen Agenten dar.
Offline-Betrieb 26 - Ein weiterer Einsatzbereich, welcher sich unter der Bezeichnung Mobile Computing (Disconnected Operations) einen Namen macht, geht von einer sporadischen Verbindung zum Festnetz aus. Die Gründe können beispielsweise ein ständiger Ortswechsel eines Benutzers (z.B. Firmenvertreter) oder Kostengründe sein. Ein Benutzer kann nun einen Agenten mit der asynchronen Durchführung einer Aufgabe beauftragen und muß nur in der Zeit des Absendens bzw. Rückkehrens des
Agenten eine Verbindung zum Festnetz aufbauen. Zwischen diesen Zeiten agiert der Agent im System des Festnetzes, um seine Aufgabe zu lösen. Anschließend wartet er auf die Möglichkeit, an seinen Ursprungsort zurückzukehren.
Benutzerschnittstelle 27 - Um die Arbeit mit Computerprogrammen zu erleichtern können Agenten in Form von Assistenten dem Benutzer helfen, stets wiederkehrende Arbeiten abzunehmen, Hinweise zur Bedienung der Anwendung zu geben, das System automatisch auf die Bedürfnisse des Benutzers zu konfigurieren u.v.a.m. Ein Schwerpunkt bei der Entwicklung solcher Agenten wird in Zukunft die Verarbeitung von natürlicher Sprache für den Dialog zwischen Agent und Benutzer sein.
Für seine Arbeit kann der Assistent ein personifiziertes Äußeres annehmen, wodurch ihm auch non-verbale Kommunikation ermöglicht wird.
Einer der bekanntesten Agenten für die Unterstützung des Benutzers bei der Bedienung einer Anwendung ist der Assistent des Office-97 Paketes von Microsoft.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 11:Office-97-Assistent
Gruppenarbeit 28 - Mobile Agenten in Form aktiver Dokumente bringen die zur Bearbeitung notwendige Funktionalität sowie weiteres Wissen über den Problemkontext zur Bearbeitungsstelle mit. Sie können ihr Verhalten verändern und sich so den dynamischen Eigenheiten eines Projektes (Planänderung) anpassen.
Typische Einsatzbereiche finden sich im Bereich des WorkFlow-Management und des Computer-Integrated-Manufacturing (CIM).
Kommunikation 29 - Soll eine größere Menge entfernt gespeicherter Daten verarbeitet werden, so kann es effizienter sein, die Verarbeitungsmethode zu den Daten zu bringen, anstatt die Daten vom Server zum Client zu transportieren. Dieses Vorgehen ist aber nur sinnvoll, wenn
1. die Daten des Servers auf dem Client weiterverarbeitet werden müßten, um danach erst das korrekte Ergebnis zu erhalten oder
2. keine parametrisierte Form der Anfrage auf dem Server vorliegt30.
In beiden Fällen werden überflüssige Daten verhindert, da nur die benötigten Ergebnisdaten übermittelt werden, was zu einer Entlastung der Kommunikationskanäle führt.
Systemüberwachung/-verwaltung 31 - Die Handhabbarkeit von komplexen Systemen (Netzwerke, Verteilte Anwendungen, Produktionsanlagen) wird in Zukunft stark an Bedeutung zunehmen. Eine große Hilfestellung dafür bieten mobile Agenten. Sie sind in der Lage sich frei in einem System zu bewegen, durch Adaption ihre Umgebung wahrzunehmen und können entsprechend ihrer Aufgabe vor Ort handeln. Die zu übernehmenden Aufgaben bestehen in der Konfiguration und Überwachung von Systemfunktionen. Wenn es zu ungünstigen oder destabilisierenden Zuständen im System kommt, sind die Agenten in der Lage, diesen Konflikt durch einen Eingriff in das System zu beheben.
Als 'ungünstige' Zustände können zum Beispiel schlechte Lokationen von Dienstleistungen sein, welche eine Leistungsabschwächung mit sich führen. Eine destabilisierende Situation wäre der Totalausfall einer Systemkomponente, welche durch das Einrichten einer neuen Systemkomponente ausgeglichen werden kann.
An dieser Stelle sei auf die Projekte ‚AMETAS‘ sowie ‚NetDoctor‘ der Universität Frankfurt am Main und auf das NASA-Projekt ‚Deep Space One’ hingewiesen.
Kooperation 32 - Der Schwerpunkt von Kooperationsagenten besteht in der Lösung komplexer Probleme durch Kooperation mit anderen Objekten (Agenten, Menschen, Ressourcen, etc.). Sie kommen dann zum Einsatz, wenn das zu lösende Problem die Fähigkeiten eines Agenten übersteigt oder zur Lösung der Aufgabe bereits Agenten existieren, deren Wissen von anderen Agenten genutzt werden kann. Die Entwicklung einer gemeinsamen Problemlösungsstrategie und die Kooperation mehrerer Agenten untereinander stellt eine komplexe und schwer vorhersehbare Aufgabe dar.
Die Kooperation zwischen den Agenten wird mittels Kommunikation ermöglicht.
Echtzeitanwendungen 33 - Ein Agent als Statthalter vor Ort kann auf Änderungen der lokalen Umgebung unmittelbar reagieren. Dies ist bei Echtzeitanwendungen von Vorteil (z.B. Robotersteuerung oder dynamische Konfiguration von Kommunikationsnetzen), da Verzögerungszeiten bei der Meldung von Ereignissen zu einer entfernten Entscheidungsinstanz und der Rückübermittlung der Antwort vermieden werden können.
1.4.2 Klassifikation von Anwendungsbereichen
Durch den verstärkten Einsatz von Agenten im Entwurf verteilter Systeme stellt sich die Frage, ob Agenten der verschiedenen Anwendungsbereiche klassifiziert werden können. D.h., typische Verhaltensmuster dieser sind zu ermitteln. Rainer Fischbach stellt folgende Tabelle vor, worin aus der Kombination verschiedener Eigenschaften mögliche Anwendungsbereiche abgeleitet werden:
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 3: Klassifizierung von Agenten 34
Anhand ausgewählter Eigenschaften von Agenten soll nun versucht werden, die in Kapitel 2 1.4.1 beschriebenen Anwendungsbereiche zu klassifizieren. Dabei erhebt der Autor keinen unbedingten Anspruch auf eine Wertung, da eher eine Tendenz als eine Festlegung widergespiegelt werden soll. Die Eigenschaften werden unter dem Gesichtspunkt betrachtet, ob diese zur Lösung der Aufgabe des Agenten unbedingt notwendig sind. Die Auftragsübergabe des Benutzers an den Agenten oder die Ergebnispräsentation des Agenten für den Benutzer wird außer acht gelassen. Im Falle der Eigenschaft ‚Kommunikation mit dem Benutzer‘ muß diese zur Aufgabenbewältigung dringend erforderlich sein. Desweiteren sei noch einmal auf den Unterschied zwischen Kooperation und Kommunikation hingewiesen (siehe Kapitel 2 1.1.2), da es an dieser Stelle leicht zu Verwechslungen kommen kann. Bei der Kommunikation nimmt ein Agent das Dienstangebot eines anderen Agenten wahr, während bei der Kooperation mehrere Agenten die Lösung der (gesamten) Aufgabe zusammen erarbeiten.35
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 4: Klassifikation der in Kapitel 2 1.4.1 benannten Anwendungsbereiche
Durch das Zeichen ‚ ‘ wird ausgedrückt, daß die entsprechende Eigenschaft unbedingt zur Lösung der Aufgabe des Agenten benötigt wird. Im Gegensatz dazu wird durch ‚ ‘ angedeutet, daß die Eigenschaft für den Anwendungsbereich eher unbedeutend ist. Die Bereiche, wo eine Eigenschaft durch einen speziellen Anwendungsfall eine wichtige Rolle spielen kann, aber nicht unbedingt muß, sind mit dem Zeichen ‚ ‘ gekennzeichnet.
2 Das Agentensystem
Ein Agentensystem stellt den Lebensraum und somit eine existentielle Voraussetzung für einen Agenten dar. Der Agent steht dabei in einer hier nicht definierten Beziehung zu einem abstrakten Grundtypen eines Agenten, welcher vom Agentensystem bereitgestellt wird. Dieser Basistyp ist die Schnittstelle für eine Kommunikation zwischen Agentensystem und Agent. Er enthält die allgemeine Struktur sowie
Funktionalität eines auf diesem Agentensystem ausführbaren Agenten. Die Koalition von Agentensystem und Agent stellt somit das verwendete konzeptionelle Modell dar.
An Agentensysteme werden zwei wichtige technische Anforderungen gestellt, welche ihren Ursprung in der rasanten Entwicklung des Internets und der zunehmenden Bedeutung an verteilten Anwendungen haben.
Kompatibilität: Mobile Agenten agieren hauptsächlich in einem Netzwerk. Dieses besteht aus miteinander verbundenen Rechnern, welche unterschiedliche Betriebssysteme verwenden. Für eine Migration des Agenten zwischen den Rechnern muß ein Programmkode verwendet werden, welcher im Idealfall auf jedem dieser Rechner ausgeführt werden kann.
Interoperabilität: Da es im weltweiten Internet zu einer Vielzahl verwendeter herstellerspezifischer Agentensysteme kommen wird, ist die Interoperabilität zwischen den unterschiedlichen Agentensystemen von elementarer Bedeutung für den Einsatz der Agententechnologie.
Die Forderung nach Interoperabilität zwischen Agentensystemen verschiedener Hersteller ist der Grund für die starken Bemühungen um eine Standardisierung im Bereich der Agententechnologie. Eine sehr detaillierte Beschreibung der Architektur sowie der Anforderung an ein Agentensystem stellt die Spezifikation Mobile Agent Facility 36 (MAF) der Open Management Group (OMG) dar, welche im folgenden in ihren wesentlichen Punkten dargestellt werden soll.
2.1 Grundkonzept
Wie bereits in der Einleitung dieses Abschnitts beschrieben, definiert sich ein Konzept für ein Agentensystem aus diesem selbst und den notwendigen Basistypen für die Agenten. In der MAF-Spezifikation wird hier zwischen Stationären und Mobilen Agenten unterschieden. Stationäre Agenten agieren nur auf dem Agentensystem, auf dem sie gestartet wurden. Mittels eines Kommunikationsmechanismus (z.B. RPC) können diese mit Agenten anderer Agentensysteme kooperieren. Der Mobile Agent ist dagegen nicht an seine Ursprungsplattform gebunden und kann sich somit frei zwischen bestehenden Agentensystemen bewegen. Für die Migration zwischen zwei Agentensystemen benötigt der Agent seinen Status, welcher aus seinem Zustand und seinem Programmkode besteht. Der Status des Agenten kann zusätzlich durch den Ausführungsstatus des Agenten ergänzt werden. Dieser enthält Informationen über laufzeitspezifische Parameter (Programmzähler, Kellerspeicher, etc.). Mit Hilfe des Ausführungsstatus ist eine starke Migration möglich (siehe Kapitel 2 3.1.2).
Für den Agenten gilt, daß dieser sich mittels eines eindeutigen Namens identifizieren und über den Auftraggeber des Agenten (z.B. Person, Organisation) authentifizieren lassen muß. Ebenso wie der Agent muß sich das Agentensystem über eine eindeutige Bezeichnung identifizieren lassen.
Da eine Interoperabilität zwischen Agentensystemen angestrebt wird, sollten Agentensysteme Informationen über das Profil der unterstützenden Agenten anbieten.
Dazu gehören beispielsweise die Sprachen, welche vom Agentensystem unterstützt werden, oder Informationen über den Hersteller der Plattform.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 12: Allgemeines konzeptionelles Modell der MAF-Spezifikation 37
Die Ausführungsumgebung für Agenten wird als Platz (Place) bezeichnet. Ein Agentensystem kann ein oder mehrere solcher Plätze besitzen. Wenn eine System keine Plätze definiert hat, dann wird ein Standard-Platz eingerichtet. Die einzelnen Plätze können unterschiedliche Funktionalitäten unterstützen, wie beispielsweise den Zugriff auf das Dateisystem. Jeder Platz muß durch eine eindeutige Bezeichnung identifiziert werden können, so daß ein Agent zum Platz seiner Wahl migrieren kann. Hier liegt die Vermutung nahe, daß es einen Zusammenhang zwischen der Bezeichnung des Agenten- systems und der Plätze geben sollte, um einen semantischen Bezug herzustellen.
Die Interaktion zwischen den Agentensystemen erfolgt über eine Kommunikations- schicht (Communication Infrastructure), welche vom Administrator der Region (Region) definiert wird. Eine Region stellt eine Anzahl von Agentensystemen dar, die derselben Autorität (Personengruppe, Organisation, Teil eines Rechnernetzes, etc.) unterstehen. Dabei können die Agentensysteme unterschiedlichen Typs sein (z.B. Hersteller, Funktionsumfang). Für den Zugriff auf die Region von einer Anwendung oder einer anderen Region muß ein Agentensystem vorhanden sein, welche Funktionen zur Interaktion mit der Außenwelt bereitstellt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 13: Region Architektur 38
Interessant ist, daß die MAF-Spezifikation keine Aussagen über Mechanismen zur Kommunikation zwischen Agenten trifft. Anders als beim Transfer eines Agenten wird die Entscheidung den Entwicklern des Agentensystems überlassen.
2.2 Anforderungen an ein Agentensystem
In der MAF-Spezifikation werden die funktionalen Anforderungen an ein Agentensystem beschrieben.39 Dabei wird besonders der Transfer von Agenten und die Sicherheitsproblematik detailliert untersucht.
Eindeutige Namenzuweisung: Ein Agentensystem muß einen eindeutigen Namen für sich selbst sowie für seinen Standort generieren. Weiterhin muß es eindeutige Bezeichnungen für Agenten anbieten können, wenn es von diesen angefordert wird. Die vergebenen Bezeichnungen für Agenten dürfen sich durch Migration zu einem anderen Agentensystem nicht verändern.
Lokalisieren von Agenten: Für die Kommunikation mit anderen Agenten muß das Agentensystem in der Lage sein, den derzeitigen Standort eines Agenten zu ermitteln. Als Suchkriterium kann beispielsweise die eindeutige Bezeichnung des Agenten verwendet werden.
Aktivieren von Agenten: Ein Agentensystem sollte zur Aktivierung eines Agenten einen Thread 40 zur Verfügung stellen, welcher dem Agenten eine unabhängige Ausführung gegenüber anderen Agenten ermöglicht. Danach erstellt das Agentensystem eine Instanz des Agenten und generiert unter Umständen eine eindeutige Bezeichnung für den Agenten. Im letzten Schritt startet das Agentensystem den Agenten innerhalb des Threads.
Gebietsunterstützung: Das Agentensystem unterstützt die Kooperation mit anderen Agentensystemen und ermöglicht Mobilen Agenten, zu einem Zielsystem in dem abgegrenzten Gebiet zu gelangen.
Mobilitätsunterstützung: Für die Migration eines Agenten muß dieser bei seinem momentanen Agentensystem den Standort des Zielsystems angeben, zu welchem der Agent migrieren möchte. Anschließend ermittelt das Agentensystem alle dafür nötigen Informationen und überträgt diese zum angegebenen Zielsystem. Wenn das Agentensystem zur Ausführung des Agenten in der Lage ist, nimmt es den Agenten entgegen, erstellt mit den übertragenen Informationen den Agenten und aktiviert ihn. Für die Ausführung des Agenten muß das Agentensystem den Programmkode des übertragenen Agenten ermitteln können. In der Spezifikation werden dafür vier mögliche Strategien angegeben, die in Kapitel 2 3.2.2 näher erläutert werden.
Sicherheitsunterstützung: Da ein Mobiler Agent aus einem Programmkode besteht, welcher sicherheitkritische Operationen auslösen kann, ist es unerläßlich, daß der Agent sich identifizieren muß und seine Handlungen beobachtet werden. Das Agentensystem muß das Betriebssystem, das Dateisystem, den Prozessor, den Arbeitsspeicher, andere Agenten und den Zugriff auf lokale Programme kontrollieren.
[...]
1 Verteilte Systeme sind Computersysteme mit räumlich verteilten Komponenten, welche keinen gemeinsamen Speicher benutzen. Die Komponenten sind einer dezentralen Administration unterstellt und dienen der Ausführung gemeinsamer Ziele, die durch Kooperation erreicht werden sollen [CP96].
2 Siehe [IBM95].
3 Im Verlauf der Arbeit zeigte sich, daß der Terminus ‚Agentensysteme‘ der allgemein gebräuchliche ist. Eine Änderung des Titel hätte keine inhaltlichen Konsequenzen nach sich gezogen, jedoch einen hohen universitären Aufwand bedeutet.
4 Siehe [Serbedzija98].
5 Siehe [Michels97], [Knudson95].
6 Damit sind stand-alone Anwendungen gemeint.
7 Vgl. [Wagner97:235], [Gehmeyr99:26],[Hohl95:6].
8 Siehe [Werner95:648].
9 Siehe [FG96]. Interessant ist, daß es sich dabei um eine Publikation aus dem Bereich der Künstlichen Intelligenz handelt.
10 Drei von sechs Fragen aus [Fischbach96a:148].
11 Siehe [WJ95].
12 Siehe [Wagner97].
13 Abbildung nach [Wagner97:235].
14 Abbildung nach [Wagner97:235].
15 Siehe [Sommers97], [Fischbach96].
16 Siehe [Aglets98], [GM97].
17 Die Möglichkeit, das Agentensystem durch die Erzeugung unendlich vieler stationärer Agenten zum erliegen zu bringen, wurde hier außer Acht gelassen. Dies müßte durch weitere konzeptionelle Maßnahmen verhindert werden.
18 Siehe [JAE].
19 Foundation for Intelligent Physical Agents
20 Siehe [FIPA:Part11].
21 Abbildung nach [FIPA:Part11,S.10].
22 Siehe [Mattern98].
23 http://bf.cstar.ac.com/bf
24 http://webhound.www.media.mit.edu/projects/webhound
25 Siehe [BZW97].
26 Siehe [Mattern98].
27 Siehe [Wagner97], [KBS98].
28 Siehe [Wagner97], [Mattern98].
29 Siehe [Mattern98].
30 Vergleichbar mit stored procedures aus dem Datenbankbereich.
31 Siehe [Zapf97], [KBS98].
32 Siehe [BZW97].
33 Siehe [Mattern98].
34 Siehe [Fischbach96].
35 Eine Menge kooperierender Agenten wird auch als Multiagentensystem bezeichnet. Dabei arbeiten mehrere Agenten zusammen an einer gemeinsamen Aufgabe, wobei jeder Agent für im voraus nicht festgelegte Teilbereiche zuständig ist. Um ein solches System effizient zu gestalten, müssen die Agenten miteinander kooperieren und kommunizieren, d.h., Eigenaktionen müssen mit denen der Kooperationspartner synchronisiert werden. Weiterhin muß das individuelle Ziel gegen das gemeinsame abgewogen werden, so daß eine insgesamt optimale Lösung gefunden wird. Siehe auch [Kölsch96].
36 Siehe [MAF97], [MAF-RTF98].
37 Die Abbildung setzt sich aus den Abbildungen [MAF97:7] und [MAF97:8] zusammen.
38 Abbildung nach [MAF97:10].
39 Siehe [MAF,97:14-22], [LD95].
40 Ein ‚Thread‘ ist ein nebenläufiger Prozeß, welcher im selben Adreßraum wie der Hauptprozeß aktiv ist.
- Arbeit zitieren
- Matthias Scholze (Autor:in), 1999, Plattform(en) für Mobile Agenten in heterogenen, verteilten Systemen, München, GRIN Verlag, https://www.grin.com/document/108447