Agentensysteme - MarcoPiroth.de

Transcription

Agentensysteme - MarcoPiroth.de
INFORMATIONSMANAGEMENT
Thema: „Agentensysteme“
Verfasser:
Marco Piroth
Oliver Plohmann
Alexander Busshoff
Volker Kellermann
Betreuer:
Frau Professor Katja Lenz
Fachbereich Informatik
University of Applied Sciences – FH Darmstadt
Darmstadt, 10.02.03
Seite 1 von 67
Inhaltsverzeichnis
1.
Einführung.................................................................................................. 5
2.
Motivation................................................................................................... 7
3.
Begriffsbestimmungen und Eigenschaften von Agenten............................ 8
3.1.
Definition Agenten...................................................................................... 8
3.2.
Klassifikation von Agenten ....................................................................... 10
3.3.
Allgemeine Eigenschaften von Agenten................................................... 11
3.3.1. Vorstellung bekannter Agentenarten................................................. 13
3.4.
3.3.1.1.
Glaubwürdige Agenten ............................................................. 13
3.3.1.2.
Schnittstellen-Agenten.............................................................. 13
3.3.1.3.
Informationsagenten................................................................. 14
3.3.1.4.
Mobile Agenten ........................................................................ 14
3.3.1.5.
Intelligente Agenten.................................................................. 15
3.3.1.6.
Multiagentensysteme................................................................ 15
Einsatz von mobilen Agenten in Netzwerken ........................................... 15
3.4.1. Abgrenzung vom klassischen Client-Server-Modell .......................... 16
3.4.2. Abstrakte Darstellung von Agentenarchitekturen............................. 17
3.4.3. Agenten-Architekturen...................................................................... 19
4.
Exemplarische Darstellungen................................................................... 22
4.1.
Mobile Agenten ........................................................................................ 22
4.1.1. Definition und Zweck......................................................................... 22
4.1.2. Eigenschaften Mobiler Agenten ........................................................ 23
4.1.3. Mobile Agenten in der Praxis ............................................................ 23
4.1.4. Sicherheit bei Mobilen Agenten ........................................................ 23
4.1.4.1.
Sicherheitsrisiken ..................................................................... 23
Seite 2 von 67
4.1.4.2.
Spezielle Risiken beim Einsatz Mobiler Agenten...................... 25
4.1.4.3.
Sicherheitsmechanismen bei „SeMoA“..................................... 26
4.1.4.4.
Zusammenfassung des SeMoA-Systems................................. 30
4.1.5. Bewertung von Mobilen Agenten allgemein ...................................... 31
4.2.
Intelligente Agenten ................................................................................. 35
4.2.1. Definition und Zweck......................................................................... 35
4.2.1.1.
Intelligente Interface Agenten................................................... 35
4.2.1.2.
Tabellen-getriebene Agenten ................................................... 36
4.2.1.3.
Simple Reflex-Agenten............................................................. 36
4.2.1.4.
Umgebungs-beobachtende-Agenten........................................ 36
4.2.1.5.
Zielgerichtete Agenten.............................................................. 37
4.2.1.6.
Nutzen-orientierte Agenten....................................................... 37
4.2.1.7.
BDI-Agenten............................................................................. 38
4.2.2. Eigenschaften von Intelligenten Agenten .......................................... 38
4.2.3. Anwendungsgebiete intelligenter Agenten ........................................ 39
4.2.3.1.
Suchmaschinen ........................................................................ 39
4.2.3.2.
Simulation................................................................................. 39
4.2.3.3.
Planung und Scheduling........................................................... 40
4.2.3.4.
Supply-Chain-Management...................................................... 40
4.2.3.5.
Künstliche Intelligenz................................................................ 40
4.2.3.6.
Computer Animationen............................................................. 41
4.2.4. Frameworks und Tools...................................................................... 41
4.2.4.1.
JACK ........................................................................................ 41
4.2.4.2.
Skyva........................................................................................ 42
4.2.5. Bewertung von Intelligenten Agenten................................................ 43
4.3.
Multiagenten-Systeme ............................................................................. 44
4.3.1. Definition und Zweck......................................................................... 44
4.3.2. Eigenschaften von Multiagenten-Systemen ...................................... 45
4.3.2.1.
Arten der Koordination.............................................................. 45
Seite 3 von 67
4.3.2.2.
Koordination in künstlichen Agentengesellschaften ................. 45
4.3.2.3.
Organisationsformen der Kooperation...................................... 47
4.3.2.4.
Planungen in Multiagentensystemen........................................ 49
4.3.2.5.
Kommunikation zwischen Agenten........................................... 52
4.3.3. Anwendungsgebiete von Multiagenten-Systemen ............................ 55
4.3.3.1.
Das Lösen von Problemen ....................................................... 56
4.3.3.2.
Der Entwurf synthetischer Welten ............................................ 60
4.3.3.3.
Roboterkollektiven .................................................................... 60
4.3.3.4.
Kinetisches Programmdesign ................................................... 61
4.3.4. Bewertung von Multiagenten-Systemen............................................ 61
5.
Ausblick.................................................................................................... 63
6.
Quellenverzeichnis................................................................................... 64
Seite 4 von 67
1. EINFÜHRUNG
Die Datenmengen im Bereich der EDV stiegen in den letzten Jahren kontinuierlich, Anwendungen wurden komplexer.
Ein Ende dieser Entwicklung war und ist nicht abzusehen, im Gegenteil: Es kann davon
ausgegangen werden, dass aufgrund feinerer Datenaufnahme- und Verarbeitungsapplikationen die zu verarbeitenden Datenmengen und weiterhin zunehmen.
Diese Beobachtungen führten in den letzten Jahren dazu, nach neuen Wegen im Umgang
mit dem Management von Informationen zu suchen.
Hier gab es mehrere Ansätze, wobei ein vielversprechender Ansatz das Entwerfen mächtigerer Applikationen und vielschichtigerer Architekturen darstellte, um den gestiegenen Anforderungen gerecht zu werden.
Durch bessere Verteilung der "Logik", stärkere Autonomie der Teilsysteme, Intelligenz, Mobilität und Verbundsysteme wurden Wege eingeschlagen, um v.a. den Wünschen der Wirtschaft nach effizienterer und produktivitätssteigernder Datensammlung, -verarbeitung und
-haltung gerecht zu werden.
In diesem Zuge haben Agentensysteme in den letzten Jahren zunehmend an Aufmerksamkeit gewonnen, da sie helfen können, Informationen autonom zu gewinnen und zielgerichteter transportieren zu können.
Aufgrund ihrer umfangreichen Einsatzmöglichkeiten und ihrer Eigenschaften wie Mobilität,
Autonomie, Kommunikationsfähigkeit und künstliche Intelligenz haben Agentensysteme ein
noch nicht ausgeschöpftes Entwicklungspotential.
Im Bereich der verteilten Systeme werden sie mittlerweile sogar als eine Universallösung für
Probleme im Bereich der Datenverarbeitung und der Strukturierung und Verteilung von
Software und damit der Flexibilität und Wiederverwendbarkeit angesehen.
Agenten stellen also insbesondere auch eine Design und Architekturüberlegung dar, um
besonders komplexe, multi-threated Applikationen verteilter Systeme handhaben zu können.
Ihre enorme Bedeutung spiegelt sich auch darin wider, dass jede namhafte Firma inzwischen eigene Projekte im Bereich Agentenentwicklung- und Forschung hat ([MIT], [DFKI],
[UH], [SAP] usw.).
Erste Normierungsbemühungen im Zuge dieser Entwicklung zeigen, dass ein Potential erkannt wurde. So stellen die von dem CMU Robotics Institute [CMU] herausgegebenen „Agent Foundation Classes (AFC)“ eine Java- und C++-basierte Sammlung von Softwarekomponenten zur Erstellung von vielen Agententypen durch Wiederverwendung dar.
Seite 5 von 67
Diese Seminararbeit gibt einen Überblick über das Themengebiet Agentensysteme.
Nach der Darstellung der Motivation für diese Arbeit in Kapitel 2, werden im dritten Kapitel
zuerst Begrifflichkeiten geklärt und allgemeine Merkmale von Agentensystemen umrissen.
Nachdem anschließend im vierten Kapitel eine formalisierte grundlegende Architektur dargestellt wird, in denen Agentensysteme arbeiten oder sich bewegen können, werden die
verschiedenen Agentenarten vorgestellt, sie gegeneinander abgegrenzt und ihre Vor- und
Nachteile dargestellt.
Den Abschluß dieser Arbeit bildet ein Ausblick, der einen kurzen Überblick über den Stand
der Technik gibt und Szenarios beschreibt, die geeignet sind, Agenten sinnvoll einzusetzen,
aber auch die Grenzen ihrer Einsatzmöglichkeiten aufgezeigt.
Seite 6 von 67
2. MOTIVATION
Agentensysteme werden voraussichtlich in den nächsten Jahren zunehmend an Bedeutung
im Informationsmanagement gewinnen.
Außer durch wissenschaftliche Einrichtungen wird diese Entwicklung besonders durch wirtschaftliche Interessen vorangetrieben, erhofft man sich hier doch einen starken Produktivitätsschub besonders durch mobile Agenten im Zusammenhang mit dem Einsatz von künstlicher Intelligenz.
Die Erwartungen sind nicht zu hoch gesteckt, werden Agenten doch bereits in etlichen Bereichen der Geschäftsabwicklung v.a. über das Internet eingesetzt.
Hier steckt noch einiges an Entwicklungspotential, das zwar erkannt, aber noch nicht ausgeschöpft ist, bzw. noch nicht ausgeschöpft werden kann.
Hoffnungen machen vor allem mobile, intelligente Agenten in Verbundsystemen, die in naher Zukunft autonom handelnd einen Großteil von Geschäftsabläufen übernehmen könnten.
Hierzu eine Prognose:
Nach der renommierten Gartner Group [GG], mit 907,2 Mio. Dollar Umsatz 2002 mit Abstand Nummer 1 unter den IT-Trendforschern und -beratungshäusern [YH], werden die
Ausgaben für die Unternehmensautomatisierung, getrieben durch die AgentenTechnologien, in zehn Jahren fast 50 Prozent der IT-Gesamtausgaben großer Unternehmen
ausmachen. Bis 2010 werden sich diese Ausgaben auf 250 Milliarden Dollar belaufen
[SAP].
Nicht zuletzt diese hochtrabende Einschätzung reizt, sich mit dem Thema Agentensysteme
intensiver auseinander zu setzen und zu untersuchen, ob Agenten tatsächlich geeignet sind,
die in sie gesteckten Erwartungen v.a. im Bereich besserer Lösungen für verteilte Applikationen zu bieten.
Seite 7 von 67
3. BEGRIFFSBESTIMMUNGEN UND EIGENSCHAFTEN VON
AGENTEN
3.1.
Definition Agenten
Der Begriff „Agent” leitet sich vom lateinischen „agere" ab, was die Bedeutung von „treiben“,
„betreiben“, „handeln“, „verhandeln“ und „darstellen“ hat [LDO], also Begriffe, die auf ein
Objekt bezogen werden, das agiert ( „agere“) oder etwas bewirkt.
In Meyers Taschenlexikon [MT92] wird „Agent“ beschrieben als „Jeder im Auftrag oder Interesse eines anderen Tätige“. Diese Eigenschaft gelten auch für Software Agenten.
Auffallend ist außerdem die (im Deutschen und Englischen) enge Verwandtschaft zur Begrifflichkeit des Geheimdienst- oder Nachrichtendienst-Agenten, anhand deren Aufgabenbereichen sich auch der Software-Agent gut beschreiben lässt: Autonom und zielgerichtet Informationen sammeln und Aufgaben im Sinne des Auftragsgebers ausführen. Genauso
kann auch ein Software-Agent mittels festgelegter Eigenschaften aktiv Aufgaben erledigen,
für die er geschaffen wurde.
Der Begriff der Agenten ist in der Literatur und in Forschungs-Papieren nicht eindeutig festgelegt. Agenten sind eine neuere Entwicklung in der Software-Entwicklung, die von verschiedenen Parteien weitergeführt wird und nicht einer einzigen Person als Ausgangspunkt
zugewiesen werden können. Aufgrund dieser Vielfältigkeit ist eine einheitliche Festlegung
des Begriffs „Agent“ schwer zu erreichen. Franklin und Graesser haben in ihrer Schrift „Is it
an Agent, or just a Program?: A Taxonomy for Autonomous Agents“ [FG96] verschiedene
Definitionen zusammengetragen und Gemeinsamkeiten herausgearbeitet:
-
Autonome Agenten sind Systeme, die in einer komplexen dynamischen Umgebung
leben. In dieser Umgebung sind ihre Wahrnehmung und ihr Handeln autonom. Sie
führen Aufgaben aus, für deren Erledigung sie entworfen worden sind [MAE95].
-
Ein Agent ist eine persistente Software-Entität, die einem spezifischem Zweck dient.
Agenten haben ihre eigene Vorstellung davon, wie sie eine Aufgabe lösen wollen
und haben ihre eigenen Zeitpläne. Fortgeschrittene – v.a. intelligente - Agenten führen ständig drei Funktionen aus: Wahrnehmung dynamisch wechselnder Bedingungen in ihrer Umgebung, Aktionen um Gegebenheiten zu beeinflussen, sowie Überlegung um Wahrnehmungen zu interpretieren, Probleme zu lösen, Unterschiede zu
ermitteln und Aktionen festzulegen [HAY95].
-
Intelligente Agenten sind Software-Entitäten, die im Auftrag eines anderen oder eines anderen Programms eine Anzahl von Operationen ausführt mit einem gewissen
Grad von Unabhängigkeit und Autonomie. Dabei wendet der Agent Wissen oder eine
Repräsentation der Ziele des Benutzers an [IBM1].
Seite 8 von 67
Wie diese Definitionen klarmachen, gibt es keinen allgemeinen Konsens, was einen Agenten ausmacht oder in welcher Weise sich Agenten von Programmen unterscheiden.
Eine allgemein akzeptierte Eigenschaft, die einen Software-Agenten auszeichnet, ist die
Fähigkeit, selbständig ohne Einfluss durch den Menschen Entscheidungen zu treffen und
seine Aufgaben im Sinne seines Auftraggebers zu erledigen. In diesem Falle spricht man
auch von der Autonomie von Agenten.
Nach Schnapauff [OS98] sind „Intelligente Agenten ... autonome Programme, die für einen
Benutzer oder eine Managementanwendung in einer bestimmten Weise agieren“.
Mit dieser Definition fallen z.B. auch Dienstprogramme wie der Officeassistent von Microsoft
(bekannt auch als „Karl Klammer“ et al.) unter den Agentenbegriff. Sie werden beispielsweise von Breu ([BM98], Folie 15) als Desktop Agenten bezeichnet. Und bei Warth [WD99] findet sich folgendes: „Für Hypertextsysteme sind zwei Arten von Agenten interessant: affektive Benutzerschnittstellen und autonome Assistenten. Affektive Benutzerschnittstellen sollen
Computerprogrammen einen persönlichen Anstrich geben. Die Benutzer werden nicht mit
nüchternen Dialogfenstern konfrontiert, sondern kommunizieren mit animierten Comicfiguren, die in jeder Situation geeignete Tips zu geben versuchen. Das bekannteste Beispiel ist
die Büroklammer von Microsoft Office 97.
So kann man seinem Agenten – seinem persönlichen Assistenten – eine Aufgabe geben,
die der dann – wie ein realer Assistent es auch tun würde – erledigt. Dies ermöglicht es dem
Benutzer, Aufgaben durch seinen Agenten autonom durchführen zu lassen, ohne tiefen
Sachverstand bezüglich seines Agenten haben zu müssen.
Seite 9 von 67
3.2.
Klassifikation von Agenten
Agenten werden in der Informatik in verschiedene Arten bzw. Klassen eingeteilt ([BO01],
S.11). Dabei kann man sie aufgrund Ihrer primären Eigenschaften unterscheiden. Die folgende Abbildung verdeutlicht dies.
Abbildung 1: Klassifikationsebenen von Agentensystemen ([BO01], S. 11)
Im Folgenden werden diese Eigenschaften erläutert:
Selbständigkeit
Agenten können von „vom Benutzer angestoßen“ bis „bei Eintritt eines Ereignisses selbständig aktiv werden“ ausgelegt sein. Das ist das Maß der Selbständigkeit eines Agenten.
Autonomie
Agenten arbeiten selbständig ohne direkte Einflussnahme durch den Menschen und haben
eine interne Zustandskontrolle.
Agenten können den Benutzer bei jedem Schritt explizit einbeziehen oder auch so autonom
handeln, dass sie ihren Benutzer „überraschen“. Letzter Punkt könnte beispielsweise sein,
dass sie im Kalender den Hochzeitstag eines Klienten finden, an diesem Tag automatisch
ein romantisches Abendessen planen, einen Tisch im Lieblingsrestaurant des Benutzers
reservieren usw.. Zwischenstufen an Autonomie sind natürlich möglich.
Einsatzmodell
Der Benutzer kann das Einsatzmodell entweder selbst erstellen, indem er im Rahmen der
Möglichkeiten des Agenten Regeln implementiert bzw. das System skaliert oder der Agent
lernt selbständig und stellt seine eigenen Regeln aus Beobachtungen heraus auf (wozu der
Agent einen gewissen Grad an Intelligenz haben muss).
Seite 10 von 67
Kommunikation
Das System kommuniziert ausschließlich mit dem Benutzer. Hier haben wir das untere Ende der Kommunikation. Höhere Ebenen erreichen Agenten, die mit anderen Agenten und
Anwendungen interagieren.
Mobilität
Agenten können entweder lokal auf einem Netzwerkknoten oder auch nur auf einer Arbeitsstation agieren, oder durch das gesamte Netzwerk wandern.
Teilgebiet der Mobilität ist die Portabilität. Diese bezeichnet den Grad der Maschinen- und
Systemunabhängigkeit, innerhalb dessen sich Agenten in Netzen bewegen können. Besonders ausgeprägt ist diese Eigenschaft bei Agenten, die sich in heterogenen Umgebungen
bewegen können.
Eigenschaften wie Interoperationalität, Sicherheit usw. sind keine allgemeinen Merkmale
von Agenten, sondern sind Ausprägungen spezieller Agententypen. Auf diese Eigenschaften wird daher bei der Vorstellung der verschiedenen Agentenarten eingegangen.
Eigenschaften wie Maintainability (Wartbarkeit), Reuseability (Wiederverwendbarkeit) und
Fehlertoleranz werden im Rahmen dieser Arbeit nicht behandelt.
Diese sind allgemeine Eigenschaften und Qualitätsanforderungen von Software insgesamt
und gehören nicht zum Kontext dieser Arbeit.
3.3.
Allgemeine Eigenschaften von Agenten
Im Gegensatz zu den fünf oben genannten Klassifikationsebenen, die auch Primäreigenschaften genannt werden können, werden im folgenden weitere Eigenschaften von Agenten
aufgeführt, die häufig im Zusammenhang mit speziellen Agenten auftauchen, aber nicht
zwangsläufig jedem Agenten zugeordnet werden können müssen. Im weiteren Verlauf dieser Arbeit werden sie deshalb in Abgrenzung zu den o.a. Primäreigenschaften als „Sekundäreigenschaften“ bezeichnet.
Reaktionsfähigkeit
Agenten reagieren auf äußere spezifisch Einflüsse.
Die Breite dieser wahrgenommenen Einflüsse ist das Maß der Reaktionsfähigkeit.
Selbständigkeit
Agenten können auch ohne Anstoß von Außen aktiv werden. Interne Auslösemechanismen
sind z.B. Zeitpunkte und Informationsbedarf.
Seite 11 von 67
Aufrichtigkeit und Gutmütigkeit
Agenten sollten nicht absichtlich falsche Informationen übermitteln (Aufrichtigkeit) und sollen
Konflikten aus dem Weg gehen (Gutmütigkeit).
Dies ist als theoretisches Idealbild zu sehen und ist natürlich im Einzelfall ausschließlich
vom jeweiligen Entwickler abhängig. Aufrichtigkeit und Gutmütigkeit meint in diesem Zusammenhang vielmehr, dass ein Agent nicht undiskret Benutzer- und Systeminformationen
übermitteln soll, die einem fragwürdigen Zweck dienen, wie es z.B. einigen MicrosoftProdukten nachgewiesen werden konnte.
Natürlich ist dabei klar, dass Agenten nur das übermitteln, wozu sie geschaffen wurden.
Hierzu gehört auch, dass Agenten auch konstruiert werden können, um unwahre Informationen zu sammeln oder zu verteilen, wie z.B. Lockangebote.
Rationalität
Agenten handeln so, dass sie ihre Ziele erreichen können. Synonym wird auch der Begriff
Logik benutzt. Dabei muss nicht sein, dass diese Logik auf ein bestimmtes Ziel ausgerichtet
ist. So kann ein Agent auch Informationen sammeln, deren Interpretationen noch offen sind.
(z.B. Benutzerverhalten). Unterliegt diese Logik einem Ziel, spricht man von Zielorientiertheit. Allerdings ist dies ein schwammiger Begriff, da als Ziel auch ein Metaziel angesehen
werden kann, wie einfach nur „Informationen sammeln“.
Regelbasiertheit
Regelbasiertheit stellt eine algorithmische Sicht (wenn x, dann mache z(x)) der Handlungsweise eines Agenten dar. Diese Regeln müssen auch aus BlackBox-Sicht klar erkennbar
sein. In diesem Zusammenhang spricht man von planenden Eigenschaften eines Agenten,
wenn seine Regelbasiertheit zusätzlich eine zeitliche Dimension hat.
Wissensbasiertheit
Wissensbasierte Agenten sind Systeme, die Informationen ansammeln und diese früher
gesammelten Informationen oder Wissen oder gemachten Erfahrungen in einen regelbasierten Ablauf miteinbeziehen.
Seite 12 von 67
3.3.1.
Vorstellung bekannter Agentenarten
Bevor in Punkt 4 noch genauer auf die wichtigsten drei Ausprägungen von Agentensystemen (mobile Agenten, intelligente Agenten und Multi-Agentensysteme) eingegangen wird,
wird im Folgenden ein Kurzüberblick über die gängigen, klar voneinander abgrenzbaren
Gruppen von Agenten gegeben.
Die wichtigsten Agentenarten sind:
Glaubwürdige Agenten
Schnittstellen-Agenten
Informations-Agenten
Mobile Agenten
Intelligente Agenten
Multi-Agentensysteme
3.3.1.1.
Glaubwürdige Agenten
Glaubwürdige Agenten sollen möglichst natürlich agieren. Sie werden vor allem von der Unterhaltungsindustrie entwickelt. Hier wird versucht, Gefühle zu implementieren, um dem Agenten einen möglichst natürlichen menschlichen oder tierischen Charakter zu verpassen.
Die im Internet vor einiger Zeit in Mode gekommenen Tamagotchis und deren Nachfolger,
die man virtuell pflegen muss, sind ein solches Beispiel für eine Installation glaubwürdiger
Agenten oder die im Bereich des Internet immer beliebter werdenden visualisierten Avatare
(animierte computergenerierte Figuren) [MT99].
Weitere Beispiele (soweit sie einen gewissen Autonomie-Grad haben) sind Avatare, die
man benutzen kann, um z.B. Kleider virtuell anzuprobieren [EW01].
Auf [NIC] findet sich unter der Definition von „Avatar“ die Aussage, dass Avatare und intelligente Agenten zukünftig auch „....als Zwischenhändler auftreten.“ Und Avatare werden im
Auftrag ihre Nutzers „...in cybermalls shoppen, bank-avatare werden bei der Abfrage des
(realen) Bankkontos und Wissens-avatare (knowbots) bei der Navigation in Datenbanken
helfen“ [NIC].
3.3.1.2.
Schnittstellen-Agenten
Schnittstellen-Agenten sollen mit dem Benutzer in dessen Arbeitsumgebung als persönliche
Assistenten zusammenarbeiten. Diese Arbeitsumgebung reicht von einfachen Programmen
bis zu kompletten Betriebssystemen. Der Agent beobachtet die Aktionen des Benutzers und
gibt ihm Hilfestellungen oder führt unterstützende Aktionen selbständig durch. Ein bekanntes Beispiel für Schnittstellen-Agenten sind die Assistenten des Microsoft Office (z.B. die
Büroklammer), an denen man aber auch erkennen kann, dass das Aktiv-werden des Assistenten noch nicht so getriggert werden kann, dass sie dem Anwender dann (und nur dann)
Seite 13 von 67
zielgerichtet hilft, wenn der Anwender es wünscht. Individuelle Anpassungen müssen nach
wie vor vorgenommen werden.
3.3.1.3.
Informationsagenten
Der Begriff Informationsagent wird noch nicht einheitlich benutzt. Zum einen findet man die
Aussagen, dass Informationsagenten der Informationssammlung und -verwaltung dienen.
So kommen sie beispielsweise in Internet-Suchmaschinen zum Zuge. Ihr Hauptmerkmal ist
eine gute Kommunikation mit Informationsanbietern.
Abweichend davon gibt [BR] als Beispiel eine Nichtinternet-Informationsagenten eine Erklärung, die nach Meinung der Autoren, eher dem oben genannten Schnittstellenagenten zusteht:
„Beispiel eines Nichtinternet-Informationsagenten: Erinnerungsagent, der User einmal pro
Stunde an eine fünfminütige Pause erinnert; Richtlinien: einfaches Deaktivieren/Aktivieren
und User sonst nicht stören“.
Bei [JM01] findet sich eine ausführliche Abhandlung in Form einer Diplomarbeit über Informationsagenten, die die von den Autoren vertretene Meinung stützen: „Informationsagenten
existieren wegen der Notwendigkeit nach Werkzeugen, die uns helfen die rasant wachsende Informationsflut im Internet zu verwalten. Sie verwalten, sammeln und passen Informationen nach den Bedürfnissen des Benutzers an“ [JM01].
3.3.1.4.
Mobile Agenten
Eine fortgeschrittene Form der Agenten sind Mobile Agenten. Sie sind in der Lage, sich
durch ein Netzwerk zu bewegen und so mit verschiedenen Servern zu kommunizieren und
auf ihnen zu agieren. Dabei bringen sie die Verarbeitungslogik zu Server und sammeln zielgerichtete Informationen, während bei herkömmlichen Requests noch ein Großteil der Daten unnütz übertragen werden.
Mobile Agenten haben etliche Vorteile und verfolgen eine völlig neue Idee der Client-ServerKommunikation, indem sie nur temporär bei Bedarf auf einen Server migrieren und ihre Aufgaben dort erledigen. Entgegen konventionellen Systemen müssen hier Client und Server
nicht mehr permanent in Verbindung stehen, was erheblich die Netzlast reduziert.
Allerdings haben Mobile Agenten den Nachteil, dass sie an sog. Agentenplattformen gebunden sind, eine Art Laufzeitumgebungen, die auf jedem Rechner, auf den ein Agent
migrieren soll, laufen muss. Zusätzlich haben sie starke Mängel in Bezug auf Sicherheitsaspekte bei der Datenübertragung.
Näheres kann in Abschnitt 4.1 nachgelesen werden, wo Mobile Agenten ausführlich beschrieben werden.
Seite 14 von 67
3.3.1.5.
Intelligente Agenten
Der Begriff der intelligenten Agenten ist in der Literatur nicht eindeutig festgelegt, wie dies auch
für Agenten selbst der Fall ist. Dies hat zur Folge, dass gleiche Begriffe in manchen Fällen verschieden verwendet werden. Oft ist schon dann von intelligenten Agenten die Rede, die über
Autonomie verfügen, aber nicht über weitere Fähigkeiten darüber hinaus. Es gibt aber verschiedene Autoren und Forscher, die von intelligenten Agenten Eigenschaften fordern, die über Autonomie hinausgehen. Wir schließen uns dieser Haltung an. Zur Autonomie kommt außerdem
hinzu, dass Intelligente Agenten einen gewissen Grad von Intelligenz vom Ausführen vordefinierter Regeln bis hin zu selbst-lernenden Systemen der künstlichen Intelligenz haben, die in der
Lage sind, Schlüsse selbst zu ziehen.
Eine weitere Eigenschaft von Intelligente Agenten ist, dass sie nicht nur reaktiv, sondern auch
proaktiv reagieren können.
Außerdem treffen auf sie auch soziale und kooperative Eigenschaften zu, die im folgenden
Punkt „Multiagentensysteme“ kurz notiert und im Abschnitt 4.3 genauer behandelt werden.
3.3.1.6.
Multiagentensysteme
Agenten in Multiagentensystemen (sog. Kollaborative Agenten) arbeiten gemeinsam an der
Lösung einer Aufgabe. Sie sind selbständig und handeln autonom. Die Kommunikation finden von Agent zu Benutzer, Agent zu Agent und Agent zu Anwendung und umgekehrt statt.
Multiagentensysteme haben soziale Fähigkeiten, d.h. sie sind in der Lage, mit dem Benutzer, anderen Systemen oder Agenten zu kommunizieren, um ihre Aufgaben auszuführen.
Außerdem sind sie in der Lage, mit anderen Agenten zu kooperieren, um Aufgaben erfüllen
zu können, die ihre eigenen Fähigkeiten überschreiten.
Ausführlicher wird im Kapitel 4.3 auf Multiagentensysteme eingegangen. In dem Unterkapitel 4.3.2 wird ausführlich auf die Eigenschaften von Multiagentensystemen eingegangen.
3.4.
Einsatz von mobilen Agenten in Netzwerken
Der Einsatz von Agenten in Netzwerken war eine wichtige Motivation im Ansatz der Agentenidee. Hier gibt es deutliche Unterschiede zum klassischen Client-Server-System. Deshalb wird der Betrachtung von Agenten im Einsatz in Netzwerken in diesem Kapitel beleuchtet.
Lokal laufende Agenten ohne Kommunikation mit der Außenwelt unterscheiden sich nur
durch Eigenschaften wie z.B. Selbständigkeit oder Autonomie von trivialen Hintergrunddiensten, die nicht zum Betriebssystem gehören. Der Übergang ist hier fließend, eine exakte
Abgrenzung oft nicht möglich.
Seite 15 von 67
Ihr ganzes Potential spielen Agenten erst in Netzwerken als autonome, mobile Agenten u.U.
in Interaktion mit anderen Agenten aus.
Gerade mit ihrer Autonomie bieten Agenten nämlich erst die Vorteile gegenüber herkömmlichen Interprozesskommunikationen (Sockets, Pipes, Servlets, SOAP, CORBA, RMI,
TCP/IP, serielle Kommunikation), durch die eine Beobachtung und selbständige Reaktion
nicht in dem Maße möglich war, wie sie von Agenten erreicht werden kann.
Um die Funktionsweise von solchen mobilen Agenten zu verstehen, ist eine klare Vorstellung von der Architektur notwendig, in der sich Agenten bewegen.
Wie bereits angedeutet, besitzen (mobile) Agenten Fähigkeiten, die entscheidend helfen
könnten, den Austausch von Informationen v.a. durch zielgerichtete Informationssammlung
innerhalb von Netzwerken zu reduzieren.
Im Folgenden wird daher vorgestellt, wie sich Agenten innerhalb der vorgegebenen Netze
(die zumeist ja nach dem Client-Server-Ansatz aufgebaut sind) bewegen können.
Anschließend wird eine kurze theoretische Abhandlung gegeben, bevor unter Punkt 3.4.3
auf grundlegende Agentenarchitekturen eingegangen wird.
3.4.1.
Abgrenzung vom klassischen Client-Server-Modell
Beim klassischen Client-Server-Modell sendet ein Client über ein Netzwerk eine Anfrage an
einen Server. Dieser bearbeitet die Anfrage auf Grundlage der vom Client übermittelten Anfrage-Daten und schickt das Ergebnis an den Client zurück. Da Client und Server in diesem
Fall direkt und zeitecht miteinander interagieren, spricht man auch von synchronem Nachrichtenaustausch, wobei beide Seiten ständig über ein Netzwerk in Verbindung stehen müssen.
Eine solche permanente Netzwerkverbindung ist natürlich teuer und aufwendig. Dabei werden häufig auch große Datenmengen vom Server über das Netzwerk zum Client übertragen, der erst nach erfolgter Übertragung über die Verwendbarkeit der Daten entscheiden
kann, wobei oft nur ein kleiner Teil dieser Daten tatsächlich benötigt wurde. Der Rest wurde
unnötig übertragen.
Mobile Agentensysteme bilden nun einen Ansatz, um diese Probleme in verteilten Systemen zu umgehen. Dazu, so das Konzept, erzeugt bzw. initialisiert der Client-Prozess einen
Agenten und sendet diesen über das Netzwerk zum Server. Auf dem Server führt der Agent
im Auftrag des Clients seine Aufgabe in einer vorbereiteten Ablaufumgebung durch und
kommuniziert auf dem Server mit entsprechenden Diensten oder auch mit anderen Agenten.
Konnte der Agent auf dem Server seine Aufgabe nicht vollständig erledigen, kann er sich
auf einen anderen Server bewegen, um dort seine Arbeit fortzusetzen. Wenn er seine Arbeit
beendet hat, kehrt der Agent über das Netzwerk zum Client zurück und liefert das gewünschte Ergebnis ab.
Seite 16 von 67
Client und Server müssen dabei lediglich temporär, während der Hin- und Rückübertragung
des Agenten mit dem Netzwerk verbunden sein. Im Gegensatz zum klassischen ClientServer-Ansatz werden in Agentensystemen die Rohdaten nicht über das Netzwerk übertragen, sondern nur lokal auf dem Server zwischen dem Agenten und den Diensten, die der
Agent in Anspruch nimmt, verarbeitet bzw. gefiltert.
Anstatt also Daten zur Verarbeitungsmethode zu übertragen, wird die Verarbeitungsmethode zu den Daten transportiert, wodurch die Netzbelastung natürlich drastisch reduziert werden kann. Weil der Agent direkt auf dem Server läuft, sind bei zeitkritischen Anwendungen
zudem kürzere Reaktionszeiten möglich.
3.4.2.
Abstrakte Darstellung von Agentenarchitekturen
Die folgenden Zeilen thematisieren eine mathematische Sichtweise von Agentensystemen.
Diese ist noch sehr einfach gehalten und vermittelt nur Basiswissen. Als Vorlage diente
[GT00].
Ein Agent agiert per Definition mit seiner Umgebung. Dazu führt er nach gewissen Abhängigkeiten die ihm zur Verfügung stehenden Aktionen aus.
Formal dargestellt ergeben sich damit eine Menge Z = {z1, z2,....} von Umgebungszuständen und eine Menge A = {a1, a2,...} von Aktionen, aus denen sich der Agent
bedienen kann.
Ein Agent kann somit durch folgende Zuordnung dargestellt werden:
Action: Z
A
Das bedeutet, dass sich der Zustand eines Agenten (die nächste zu wählende Aktion) aus
den von ihm aufgenommen Umgebungsvariablen ergibt, bzw. dass das Verhalten eines Agenten seine Umgebungszustände abbildet.
Aus Sicht sich ändernder Umgebungszustände in zeitlicher Abhängigkeit stellt sich die deterministische Umgebung (zx) eines Agenten (ay) folgendermaßen dar:
Historie: z0
a0
z1
a1
z2
a2
...
an-1
zn
an
...
Mit dieser Architektur hat man nun alle Arten von Agenten zusammengefasst. So ist zum
Beispiel ein Agent mit rein reaktivem Verhalten durch die Funktion:
action: S
A
beschrieben, da hier die bisherige Folge von Umgebungszuständen keinen Einfluss auf
seine nächste Aktion hat, sondern nur der aktuelle Umgebungszustand.
Seite 17 von 67
Um tatsächlich einen Agenten zu konzipieren, muss die o.a. action-Funktion weiter verfeinert werden.
Unter der Annahme, dass der Agent seine Aktion nicht aus der Umgebung direkt auswählt,
sondern nur anhand der Wahrnehmungen, die er von der Umgebung bekommt, teilt man die
action-Funktion daher in zwei Untersysteme auf.
Werden die Wahrnehmungen eines Agenten durch die Menge P repräsentiert, erhält man
die Wahrnehmungsfunktion:
recognize: S
P
Diese ordnet den Umgebungszuständen Wahrnehmungen zu.
Mit
action: P
A
werden den Wahrnehmungen die passenden Aktionen zugeordnet.
Ein weiterer Schritt zum intuitiveren Agenten Modell ist die Einführung von einem internen
Zustand. Dazu wird die action-Funktion folgendermaßen definiert:
action: I
A
Somit wird jedem Zustand i aus der Menge I der internen Zustände eine Aktion zugeordnet.
Mit der folgenden Funktion next berechnet man schließlich den nächsten Zustand aus dem
vorherigen und der aktuellen Wahrnehmung:
next: I × P
I
A
Sei nun i0 der Startzustand des Agenten ist und s ein Umgebungszustand, dann berechnet sich die nächste Aktion mit action(next(i0, recognize (s))).
Mit diesem Modell hat man nun das gesamte Verhalten eines Agenten dargestellt, der wie
zuvor hingewiesen, per Definitionem mit seiner Umgebung agiert und die ihm zur Verfügung
stehenden Aktionen ausführt.
Eine weitergehende Ausarbeitung der theoretischen Grundlagen soll hier nicht vorgenommen werden. Dies würde den Rahmen dieser Arbeit sprengen. Tiefergehende Informationen
zum theoretischen Aufbau von Agentensystemen kann man sich vor allem an universitären
Einrichtungen holen.
Seite 18 von 67
3.4.3.
Agenten-Architekturen
Die konkrete Implementierung der o.a. theoretischen Zusammenhänge kann nach folgenden vier grundlegenden Konzepten vorgenommen werden:
Logikbasierte Architekturen
Reaktive Architekturen
Belief-Desire-Intention Architekturen
Layered Architectures
Für verschiedene Ansätze ist eine interne Repräsentation eines Welt- oder Wissensmodells
vonnöten, das meist eine Begrenzung oder Einschränkung für den Agenten darstellt. Eine
mögliche Antwort auf die oft problembehaftete Wissensrepräsentation ist eine rein reaktive
Agentenarchitektur zu entwickeln. Diese kann ohne ein Modell der Umwelt funktionieren, da
die Agenten direkt in der Welt verankert sind.
Die Wahrnehmung der Umwelt erfolgt über Reize oder Signale, die über Sensoren empfangen werden. Die Verarbeitung findet üblicherweise durch einen einheitlichen Mechanismus
statt. Sämtliche Wahrnehmungen werden direkt, ohne eine Klassifikation oder symbolische
Repräsentation vorzunehmen, verarbeitet. Möglichkeiten für derart uniforme Mechanismen
auf Signalebene bieten Zustandsautomaten, Touring-Maschinen, stimulus-response-artige
Produktionssysteme oder konkurrierende Kompetenzmodule.
Im Folgenden werden die o.a. Architekturen kurz vorgestellt, wobei der modernsten - der
Layered Architektur - der meiste Platz eingeräumt wird.
Logikbasierte Architekturen
Die einfachsten Architekturen für Agenten sind die frühen logikbasierenden Architekturen,
die mit symbolischen Repräsentationen arbeiten. Logikbasierte Architekturen haben den
Vorteil von einfacher Semantik (wenn A, dann tue B) in Form von Entscheidungstabellen.
Große Nachteile liegen hier aber v.a. darin, dass bei komplizierteren Aufgaben die zu implementierenden Regeln sehr schnell komplex und unübersichtlich werden, da immer alle
Fälle abgedeckt werden müssen, da logikbasierte Architekturen nicht flexibel gegenüber
sich ändernden Umgebungen sind.
Auf logikbasierten Architekturen beruhende Agenten werden deshalb nur noch in Umgebungen eingesetzt, die nicht dynamisch sind und einfachen symbolischen Repräsentationen
unterliegen, die mit wenn-dann-Bedingungen behandelt werden können.
Seite 19 von 67
Reaktive Architekturen
Reaktive Architekturen stellen eine Antwort auf die Nachteile der symbolischen Repräsentationen von logikbasierten Architekturen dar.
Reaktive Agenten sollen direkter und schneller auf Umgebungsänderungen reagieren und
mit ihrer Umwelt interagieren können.
Die Vorteile liegen in einem geringeren Berechnungsaufwand, ihrer Einfachheit und Robustheit.
Der Nachteil von Agenten mit reaktivem Charakter liegt vor allem darin, dass sie kein Umgebungsmodell (z.B. dargestellt durch Symbole) haben, so dass sie genügend Informationen aus ihrer aktuellen Wahrnehmung beziehen müssen, was oftmals nicht hinreichend
möglich ist.
Einfache reaktive Agenten haben kein Gedächtnis, weshalb sie kaum längere Aktionen planen können oder dazu lernen können. Auch bei dieser Architektur steigt der Konstruktionsaufwand mit steigender Komplexität der Aufgabe sehr schnell an. Ab mehr als zehn Prioritätsebenen wird das Verhalten des Agenten kaum noch durchschaubar.
Belief-Desire-Intention Architekturen
Ein Ansatz, der außer dem reaktivem Verhalten das zielgerichtete Verhalten wieder in den
Vordergrund hebt, ist die Belief-Desire-Intention Architektur (BDI Architektur). Diese Architektur ist an den menschlichen Motivation-Handeln-Prozess angelehnt:
Ausgehend von dem, was man glaubt oder glaubt zu wissen( belief), wird eine Wunschhaltung – das Ziel– ( desire) aufgebaut, das man mit einer bestimmten Absicht ( intention) zu erreichen versucht, wobei diese drei Antriebe gegeneinander abgewogen werden
müssen.
Formalisiert auf einen Agenten, kann man diese Antriebe gut voneinander trennen:
believe:
desire:
intention:
repräsentiert Informationen der Umgebung
repräsentiert die gegenwärtig möglichen Aktionen eines Agenten (umfasst somit auch neu dazugelernte) und
repräsentiert alle Absichten (auch bisherige, d.h. erfahrungsbasierte),
das Ziel zu erreichen.
Ein Vorteil dieser Architektur ist das intuitive Modell, da es oft in dieser Form vom Menschen
angewandt wird. Ein weiterer Vorteil ist die gute Trennung von Entscheidungsansatz und
Ausführung und Zielorientiertheit. Nachteil dieses Ansatzes ist, dass dieser Ansatz nur
schwer in durch mathematische ausgedrückt werden kann und diese Freiheitsgrade (wie sie
nun mal beim Menschen gut und unterbewusst zusammenspielen) nicht einfach 1:1 auf einen Agenten übertragen werden können.
Seite 20 von 67
Layered Architectures
Zu den Problemen der vorherigen Architekturen gehörte immer die Gewichtung von proaktivem und reaktivem Verhalten, die in ein je nach Aufgabe optimales Verhältnis gebracht
werden mussten. Um dies zu vereinfachen, kann man die Verhaltensarten in unterschiedliche Subsysteme aufteilen, die dann eine Hierarchie von interagierenden Schichten (Layer)
bilden, die grundsätzlich in zwei verschiedenen Weisen hierarchisiert werden können.
Von horizontaler Anordnung spricht man, wenn jede Schicht direkten Zugriff auf die vom
Agenten aufgenommenen Daten aus der Umgebung (Sensordaten) hat und eigenständig
eine Aktion oder einen Vorschlag für eine Aktion auslöst. Ein Kontrollsystem hat dabei die
Aufgabe, die jeweils passende Aktion auszuwählen. Nachteil dieser Anordnung ist jedoch,
dass n Schichten mit jeweils x möglichen Aktionen das System im schlechtesten Fall xm
verschiedene Fälle differenzieren muss.
Die vertikale Architektur ordnet die Layer in einer Kette an, die von den Umgebungsdaten
durchlaufen werden. Dies kann entweder sequentiell geschehen (one-pass-Architektur),
wobei die letzte Schicht die Aktion bestimmt oder ausgehend von der ersten Schicht bis zur
letzten (Umgebungsdatenweg) und wieder zurück (Befehlsweg). Letztere Architektur nennt
man entsprechend „two-pass-Architektur“.
Durch beide genannten Layered-Architekturen wir die Komplexität im Vergleich zu den beiden anderen Architekturen reduziert, da bei n-1 Berührungspunkten zwischen den Layers
mit jeweils x möglichen Aktionen maximal x2 (n-1) Interaktionen berücksichtigt werden müssen.
Die horizontale Anordnung hat dabei den Vorteil, dass die Schichten gleichzeitig agieren
können, aber den Nachteil der komplexen Kontrollfunktion. Diese stellt hier auch den Flaschenhals dar. Eine solche Architektur findet man z.B. bei Touring-Maschinen wieder, wo
die erste der Behandlung von plötzlichen Änderungen der Umgebung wie z.B. auftauchende
Hindernisse dient (re-aktives Verhalten) und die zweite Schicht als Planungsschicht das
nächste Ziel bestimmt und wie es erreicht werden kann (pro-aktives Verhalten), wozu aus
einer Liste von generischen Schemata das passende ausgewählt wird. Die letzte, nicht
zwangsläufig notwendige Modellierungsschicht steht für die Interaktion mit anderen Agenten
und versucht Konflikte zu vermeiden.
Architekturen mit vertikaler Schichtenanordnung haben zwar eine geringere Komplexität als
mit horizontaler, haben dafür aber den Nachteil des sequentiellen Durchlaufens des Signals
durch alle Schichten.
Seite 21 von 67
4. EXEMPLARISCHE DARSTELLUNGEN
Die folgende exemplarische Darstellung behandelt
Mobile Agenten
Intelligente Agenten und
Multiagentensysteme.
Die Übergänge zwischen den einzelnen Agentensystemen können fließend sein, je nachdem, zu welchen primären Zwecken sie entwickelt wurden. Im Kontext wird auf Gemeinsamkeiten bzw. Unterschiede eingegangen.
Die verschiedenen Systeme dürfen nicht isoliert betrachtet werden, vielmehr sind sie im Zusammenhang zu sehen. Tatsächlich bilden Systeme in der Praxis oft eine Mischform der
drei o.a. Agentensysteme.
4.1. Mobile Agenten
Mobile Agenten sind eine spezielle Ausprägung von Agentensystemen. Ihre Stärke liegt in
der Mobilität, d.h. der Fähigkeit, sich in heterogenen Netzen bewegen zu können.
Ein Mobiler Agent ist nichts anderes, als ein Programm (meist in Java implementiert), das
von einer, auf dem Host laufenden Agentenplattform serialisiert und in einer Datei zu einem
anderen Rechner geschickt wird (via TCP/ IP). Dort wird die Datei wieder von einer dort laufenden Agentenplattform ausgeführt. Diese Agentenplattform ist ein Programm, das - mit
der Java Virtual Machine vergleichbar - etwa einem „speziellen Interpreter“ entspricht.
Ohne dieses spezielle Programm kann ein Mobiler Agent (noch) nicht existieren.
4.1.1.
Definition und Zweck
Leider gibt es sehr viele unterschiedliche Definitionen von Mobilen Agenten, oder Agenten
allgemein. Vor allem, was die Begriffe Mobilität und Intelligenz betrifft, sind heftige Debatten
der unterschiedlichen Gruppen, die sich mit diesem Thema auseinandersetzen, im Gang.
„Mobile Agenten sind eine Klasse von Agenten, deren besondere Eigenschaft es ist, dass
sie selbständig zwischen verschiedenen Knoten eines Netzes migrieren können“ [PRO01].
„Ein Prozess, der von einem Rechner zum nächsten und von dort in Abhängigkeit vor Ort
getroffener Entscheidungen weiter zu einem dritten Rechner migrieren kann, wird als mobiler Agent bezeichnet“ [BA99].
Nach den obigen Definitionen lässt sich zusammenfassend also sagen: „Ein Mobiler Agent
ist ein Programm, dass für jemanden autonom eine Aufgabe erledigt und sich dazu selbständig in einem Netzwerk bewegen kann“ (Definitionsversuch des Verfassers).
Seite 22 von 67
4.1.2.
Eigenschaften Mobiler Agenten
Mobile Agenten unterscheiden sich von anderen Agentenformen nur durch ihre Mobilität.
D.h. sobald ein Agent – welcher Art auch immer – mobil ist, handelt es sich um einen Mobilen Agenten. Weitere Eigenschaften werden unter Punkt 4.1.4 (Bewertung von Mobilen Agenten) aufgezeigt.
4.1.3.
Mobile Agenten in der Praxis
Da Mobile Agenten noch lange nicht ausgereift sind, findet man sie heute in der Praxis noch
nicht. An der Fachhochschule Darmstadt laufen seit 2001 Bestrebungen, das Mobile Agentensystem „Semoa“ für die geplante Virtuelle Hochschule einzusetzen. Auch läuft seit Mitte
2002 ein Master-Projekt, in dem versucht wird, Mobile Agenten (auch auf Basis von Semoa)
für Geschäftstransaktionen im Internet einzusetzen. Ein Prototyp ist in Entwicklung. Der Autor gibt allen diesen Bemühungen allerdings kaum Zukunftschancen, da die Technologie der
Mobilen Agenten noch zu große Sicherheitsrisiken aufweist.
Ein Bereich, in dem Mobile Agenten heute bereits eingesetzt werden könnten, wären Intranets. Wenn wir voraussetzen, dass alle Netzknoten und alle eingesetzten Agenten wirklich
vertrauenswürdig sind, könnte das funktionieren. Leider sind wir bei diesem Szenario wirklich auf die „Ehrlichkeit“ aller Mitarbeiter angewiesen (s. a. Punkt Sicherheitsrisiken).
4.1.4.
Sicherheit bei Mobilen Agenten
Der Transport von Daten über ein Netzwerk ist die Hauptaufgabe von mobilen Agenten.
Dies birgt jedoch einige Sicherheitsrisiken, auf die im Folgenden eingegangen werden soll.
4.1.4.1.
Sicherheitsrisiken
Sicherheitsrisiko „Unzureichender Datenschutz im Netz“
Die Datenübertragung - egal, durch welche Techniken sie erfolgt und welche Daten übertragen werden - muss sicher gegenüber unerlaubten Zugriffen Dritter sein.
Wenn diese Sicherheit nicht gewährleistet wird, kann das schwerwiegende Folgen für einen
Partizipienten haben, v.a. wenn vertrauliche Daten des Benutzers übermittelt werden.
Werden diese Daten nicht ausreichend gesichert, können sie von jedem Knotenpunkt, den
sie im Netz sie passieren, abgefangen und ausgewertet werden. Dadurch können vertrauliche Daten in die Hände Dritter fallen, die diese dann kriminell nutzen könnten (Erpressung,
unlauterer Wettbewerb, Spionage, etc.).
Dieses Sicherheitsrisiko kann am besten durch ausreichende Verschlüsselung der Daten
umgangen werden, beispielsweise unter Benutzung von SSL (Secure Socket Layer) oder
seinem Nachfolger TLS (Transport Layer Security).
Seite 23 von 67
Die Unterschiede zwischen SSL und TLS sind zum einen die Versionsnummer: TLS 1.0
wird als SSL 3.1 angezeigt. Dies liegt daran, dass beide mit dem gleichen Record-Protocol
arbeiten. Daher steht bei TLS eine 3 im Feld Major Version und eine 1 im Feld Minor Version. Desweiteren arbeitet SSL mit MAC (Message Authentication Code) und TLS mit HMAC
(Hash-based MAC). Beides sind Zugriffssteuerungsprotokolle zur Meldungsauthentifizierung. Sie sind sich sehr ähnlich, außer dass HMAC kryptographische Hashzeichenfunktionen verwendet. Weitergehende Informationen können der Fachliteratur entnommen werden,
sie sind nicht Thema dieser Arbeit.
Wenn Daten jetzt Unbefugten in die Hände fallen, sind sie für diese nutzlos, da man die Informationen nicht mit verhältnismäßigem Aufwand entschlüsseln kann.
Ein weiterer Sicherheitsmechanismus ist in Mobilen Agenten selbst enthalten:
Es ist nämlich möglich und auch gewöhnlich, dass Daten im Agenten selbst gekapselt werden und der Agent verschlüsselt wird. Diese Methode übertrifft den o.a. Sicherheitsmechanismus, wo nur Daten, nicht aber der Agent selbst verschlüsselt werden, da nicht nur der
Agent entschlüsselt werden muss, sondern ihm auch noch die Daten entlockt werden müssen.
So verhindert man natürlich auch, dass Nachrichten im Netz abgefangen und manipuliert
weitergeschickt werden können, was wirtschaftlich oft noch größere Schäden anrichten
kann, als bloße Datenspionage.
Sicherheitsrisiko „Mangelnde Übertragungssicherheit im Netz“
Es muss sichergestellt werden, dass die Daten auch tatsächlich ihr Ziel erreichen und nicht
irgendwo „hängen bleiben“.
Auch abgeschickte Nachrichten müssen nicht zwangsläufig – aus welchen Gründen auch
immer – beim Empfänger ankommen, obwohl dem Sender durch die Meldung „Nachricht
wurde versendet“ eine gewisse Sicherheit vorgegaukelt wird, die leider nicht erreicht ist.
Dieses Sicherheitsrisiko kann mit Mobilen Agenten umgangen werden. Der Agent verschickt
sich zum Empfänger der Nachricht und wartet dort zum Beispiel auf die Bestätigung des
Empfängers. Dann kommt er zurück zum Sender und meldet, dass der Empfänger die
Nachricht erhalten hat. Alternativ kann der Agent auch die Daten in Form einer E-Mail auf
dem Konto des Empfängers anlegen und seinem Auftraggeber dann bestätigen, dass die
Nachricht das E-Mail-Konto des Empfängers unbeschadet erreicht hat.
Sicherheitsrisiko „Unsichere Authentifizierung der Nachricht“
Außer der o.a. sichern Übertragung zum Empfänger muss ebenfalls gewährleistet werden,
dass die empfangenen Daten auch tatsächlich von der Person stammen, die vorgibt, sie
gesendet zu haben, was eines der größten Sicherheitsprobleme beim Einsatz von Agenten
sein kann.
Seite 24 von 67
Verschickt ein Student beispielsweise einen Antrag auf Exmatrikulation oder Rücktritt an
einer Prüfung widerrechtlich im Namen eines Kommilitonen, könnte das dem weiteren Studienverlauf des Opfers schaden. Die Folgen einer fehlenden Authentifizierung im wirtschaftlichen oder staatlichen Bereich könnten sich immens fataler auswirken.
Dennoch ist so eine Absender-Fälschung recht einfach möglich: Durch eine TelnetVerbindung kann eine Verbindung zu einem Postausgangsrechner hergestellt werden und
mit dem einfachen Kommando MAIL FROM:<Absenderadresse> die Absenderadresse manipuliert werden.
Authentifizierung stellt sicher, dass der vermeintliche Sender einer Nachricht auch der tatsächliche Sender ist.
Mittlerweilen sind die Techniken der elektronischen Signatur schon sehr ausgereift und ein
weites Themengebiet, das genügend Ansätze für Diplom- oder Masterarbeiten o.ä. gibt.
Die elektronische Signatur bietet inzwischen viele Möglichkeiten, ein Dokument wirksam zu
signieren und damit eine sichere Authentifizierung für den Empfänger zu gewährleisten.
4.1.4.2.
Spezielle Risiken beim Einsatz Mobiler Agenten
Obwohl man viele Sicherheitsrisiken mit Hilfe von Mobilen Agenten umgehen kann, birgt
gerade der Einsatz Mobiler Agenten leider wiederum neue Sicherheitsgefahren:
Unerlaubter Zugriff
Ein bösartiger Mobiler Agent könnte versuchen, auf private Daten eines Benutzers zuzugreifen. Außerdem könnte er gekapselte Daten anderer Agenten ausspionieren und verändern.
Natürlich kann auch der Host die Daten eines Agenten angreifen, oder dessen Code manipulieren, um ihn zu einem bösartigen Agenten zu transformieren.
Maskerade
Agenten sind in der Lage, eine andere Identität, als ihre eigene vorzugeben, um unerlaubterweise auf die Daten eines Hosts oder anderer Agenten zugreifen zu können.
Diese Möglichkeit kann man über geeignete Authentifizierungsmechanismen eingeschränkt
werden. Fehlen diese, kann ein System leicht gehackt werden.
Trojanisches Pferd
Hierbei handelt es sich um einen Mobilen Agenten, der zwar seine wahre Identität preisgibt
und einem legitimen Benutzer gehört, der aber durch einen böswilligen Host oder anderen
Agenten so manipuliert wurde, dass er jetzt nicht mehr die vom Benutzer geplanten Ziele
verfolgt, sondern verborgen im Hintergrund Daten weiter gibt. Dies stellt eine große Gefahr
dar, da der Agent ja auf alle Daten zugreifen darf, sie aber leider anders behandelt, als ausgemacht.
Seite 25 von 67
Replayattacke
Wenn ein Agent abgefangen wird und zu einem späteren Zeitpunkt nochmals an sein Ziel
gesandt wird, sprechen wir von einer Replayattacke. Da der Angreifer für diese Art von Attacke noch nicht einmal den Inhalt der Daten kennen muss, ist dieser Angriff relativ leicht
durchzuführen. Über geeignete Authentifizierungs- und Verschlüsselungsmechanismen
kann der Agent jedoch vor dem Zugriff bzw. dem Abfangen durch Dritte, gut geschützt werden.
Denial of Service
Durch die Möglichkeit eines Mobilen Agenten, Klone von sich selbst zu erzeugen, oder sehr
rechenintensive Tasks beliebig oft zu starten, ist der Host durch eine Denial of Service Attacke angreifbar, d.h. er wird so mit Anfragen bzw. Aufträgen bombardiert, bis er aufgrund der
Last abstürzt.
Auch Teile von Netzwerken können so mit Agentenklonen überschüttet werden, dass sie
zusammenbrechen.
Die konventionelle Denial of Service (DOS)-Attacke ohne den Einsatz von Agenten, d.h. das
Überlasten von Netzknotenpunkten durch Anfragen oder Datenüberschüttung ist eine der
häufigsten im Internet, die meist von mehreren Rechnern aus gleichzeitig gestartet wird,
oftmals ohne das die Rechnerbenutzer den Missbrauch ihres Rechners für eine DOSAttacke bemerken.
4.1.4.3.
Sicherheitsmechanismen bei „SeMoA“
Anhand des Mobilen Agentensystems „SeMoA“ sollen im folgenden Sicherheitsmechanismen von Mobilen Agentensystemen aufgezeigt werden.
SeMoA gilt momentan als das wohl sicherste Mobile Agentensystem, weshalb es hier beispielhaft genommen wird.
Das betrachtete Mobile Agenten System SeMoA (Secure Mobile Agents) wurde vom Fraunhofer-Institut (IGD) in Darmstadt entwickelt. Das System ist primär für den Schutz des Agenten vor dem Wirtsystem ausgelegt.
Einsatz von Java bei SeMoA
SeMoA ist wie die meisten Mobilen Agenten Systeme in Java implementiert. Diese Tatsache stellt zwar einige Nachteile, aber auch enorme Vorteile dar.
Der größte Nachteil ist die mangelnde Ressourcen-Kontrolle der Java Virtual Machine. Sie
kontrolliert weder den Speicherplatzbedarf einer Anwendung noch die CPU-Zeiten eines
Threads.
Seite 26 von 67
Dadurch können leider auch keine Denial Of Service (DOS) Attacken verhindert werden, die
ein bösartiger Mobiler Agent durchführen könnte.
Java selbst bietet jedoch auch weitreichende Sicherheitsmechanismen. Diese Mechanismen sind enthalten in der Programmiersprache Java und der Java-API JDK1.3-SDK.
Die Basis der Sicherheitsaspekte in Java ist das Fehlen von transparenten Zeigern. Dadurch ist es nicht mehr möglich (wie beispielsweise in C++), einen Zeiger zu erzeugen, der
auf „fremde“ Speicherbereiche zeigt und dadurch willkürliche Speicherzugriffe durchführen
kann.
Ein weiterer Vorteil von Java ist die strikte Typüberprüfung, die auch zur Laufzeit durchgeführt wird. Dadurch werden illegale Typumwandlungen (typ castes), die Werte von Variablen
verändern können, ausgeschlossen. Durch diese zwei Mechanismen – fehlende Zeigerarithmetik und starke Typüberprüfung – realisiert Java einen sehr wirkungsvollen Speicherschutz und garantiert, dass ein Objekt nur dann verändert werden kann, wenn eine Referenz auf das Objekt regulär erhalten wurde.
Weiterhin bietet die Programmiersprache Java sog. Sichtbarkeitsmodifikatoren. Diese sind
auf Klassen, Attribute und Methoden anwendbar und zeigen an, wer wann auf welches Objekt zugreifen darf. Die in Java zur Verfügung stehenden und damit bei SeMoA eingestzten
Sichtbarkeitsmodifikatoren beziehen sich auf Klassen und auf Attribute und Methoden:
Java-Klassen:
public: eine Klasse ist von allen anderen Klassen aus sichtbar
package: eine Klasse ist nur von Klassen des gleichen Packages aus sichtbar
Java-Attribute und -Methoden:
public: Elemente sind in der Klasse selbst (also in ihren Methoden), in Methoden abgeleiteter Klassen und für den Aufrufer von Instanzen der Klasse sichtbar.
protected: Elemente sind in der Klasse selbst und in Methoden abgeleiteter Klassen
sichtbar. Zusätzlich können Klassen desselben Pakets sie aufrufen.
private: Elemente sind lediglich in der Klasse selbst sichtbar. Für abgeleitete Klassen
und für Aufrufer von Instanzen bleiben sie verdeckt.
Elemente, die ohne einen der drei genannten Modifier deklariert wurden, werden als package scoped oder als Elemente mit Standard-Sichtbarkeit bezeichnet. Sie sind nur innerhalb
des Pakets sichtbar, zu dem diese Klasse gehört. In anderen Paketen sind sie dagegen unsichtbar.
Letztendlich wird Java noch interpretiert. Dies birgt den großen Vorteil in sich, dass der auszuführende Byte-Code erst verifiziert werden kann, bevor er ausgeführt wird.
Seite 27 von 67
Die folgende Tabelle gibt einen kurzen Überblick über die in Java realisierten Sicherheitsmechanismen:
Mechanismus
Ressourcen-Kontrolle
Speicherschutz (durch Fehlen von Zeigern)
Typsicherheit
Sichtbarkeitsmodifikatoren
Code-Verifikation während der Ausführung
In Java 1.3 In Java 1.3
realisiert
nicht realisiert
X
X
X
X
X
Tabelle 1: Sicherheitsmechanismen in Java.
Einsatz des SSL-Protokolls bei SeMoA
Die Abkürzung SSL steht für Secure Socket Layer. Damit sind die transparenten Protokollschichten SSL-Record-Protokoll und SSL-Handshake-Protokoll gemeint, die im OSIReferenzmodell zwischen den Anwendungen (HTTP, FTP...) und den Verbindungsschichten
TCP und IP (die übrigens schon fast 30 Jahre alt sind) stehen.
Das SSL-Protokoll sorgt dabei für:
Verschlüsselte Datenübertragung über das Netz
Feststellung der Server-Identität
Prüfung, ob die Daten vollständig und unverändert den Empfänger erreichen
Für den Anwender ist die Verwendung von SSL ist durch den Zusatz „s“ am Protokoll ersichtlich („http“ ist jetzt „https“).
Um SSL zu unterstützen, benötigt der Server ein digitales Schlüsselpaar, das aus einem
öffentlichen und einem privaten Schlüssel besteht, sowie ein Zertifikat. Dieses Zertifikat bekommt er von Zertifizierungsfirmen.
Bei Verbindungsaufbau (der Hello-Phase) teilt der Client dem Server mit, welche Kryptographie-Algorithmen er unterstützt und fordert dessen Zertifikat und einen öffentlichen Schlüssel an. Der Schlüssel wird anschließend zusammen mit einer Prüfsumme und einer ID an
den Client zurück gemeldet. Dieser prüft dann, ob er tatsächlich mit dem Server verbunden
ist, der in der URL angegeben ist. Anschließend verständigen sich beide Rechner auf einen
symmetrischen Sitzungsschlüssel (session key), der während der gesamten Kommunikation
benutzt wird. Nun schickt der Client dem Server noch einige Testnachrichten, die dieser nur
beantworten kann, wenn es wirklich der richtige Server ist. Dadurch wird eine sehr hohe
Sicherheit gewährleistet.
Seite 28 von 67
Schutz durch Einsatz einer Schichtenarchitektur
SeMoA bietet eine Art Schichtenarchitektur, um eingehende Agenten zu überprüfen, bevor
diese ausgeführt werden. Dazu müssen die ankommenden Agenten mehrere Sicherheitsschichten durchlaufen. Wenn sie das schaffen (und nicht von einer Schicht abgelehnt werden), dann werden sie in der Laufzeitumgebung ausgeführt.
Die erste Schicht ist das Transportschicht-Sicherheitsprotokoll. Hier kommen die SSL und
TLS Protokolle zum Einsatz. Diese Schicht erlaubt transparente Verschlüsselung, ServerAuthentifikation und Integritätsschutz. Dadurch kann mittels konfigurierbarer Regeln der
Verbindungsaufbau je nach Authentifizierung erlaubt oder verboten werden.
Eine oder mehrere Ketten von unterschiedlichen Sicherheitsfiltern stellen die zweite Schicht
dar. So können für ankommende und ausgehende Agenten unterschiedliche Filterketten
gebildet werden. Hier werden die Agenten von den Filtern abgearbeitet und entweder akzeptiert oder abgelehnt. Dieses Konzept ist vergleichbar mit den Reglementarien von Firewalls. Aktuell sind bei SeMoA Filter für digitale Signaturen und Agentenverschlüsselung
implementiert. Der abgehende Agent wird verschlüsselt und signiert. Beim ankommenden
wird die Signatur überprüft, bevor er entschlüsselt wird sowie Zugriffsart und -berechtigung
festgestellt. Die Filter bei SeMoA werden entweder beim Server-Start oder dynamisch zur
Laufzeit registriert und geladen.
Hat ein Agent alle Filter durchlaufen, so wird eine eigene gekapselte MiniaturLaufzeitumgebung (Sandbox) für ihn erstellt. Diese kann man als die dritte Sicherheitsschicht betrachten. In dieser Sandbox hat der Agent eine eigene Thread-Group und einen
eigenen Classloader. Der Server migriert den Agenten nur dann, wenn dessen Threads alle
geschlossen sind. So soll eine Überflutung des Netzwerks verhindert werden. Außerdem
verhindert der Server die gemeinsame Nutzung von Klassen. So kann ein Agent keinem
anderen ein Trojanisches Pferd unterschieben.
Implementierungsregeln für SeMoA
Obwohl das Mobile Agenten System SeMoA schon einiges an Sicherheit bietet, ist es unumgänglich für den Programmierer eines Mobilen SeMoA-Agenten, auch bei der Implementierung einiges zu beachten. Die folgende Aufstellung soll hier einige Ideen liefern, die dem
Verfasser bei einer praktischen Umsetzung relevant erschienen (aber nicht den Anspruch
auf Vollständigkeit erheben).
Der Einsatz von Sichtbarkeitsmodifikatoren
Wie bereits erwähnt, besitzt Java recht mächtige Sichtbarkeitsmodifikatoren, deren Implementierung Sorgfältigkeit verlangt.
So ist darauf zu achten, dass nur Klassen, Methoden und Attribute, die auch tatsächlich von
außen sichtbar sein sollen, mit dem Modifier „public“ belegt werden. Ansonsten sollten selbige nur „privat“ oder „protected“ deklariert werden. Dadurch werden die Daten, die der Agent hält, vor unerlaubtem Zugriff von außen geschützt.
Seite 29 von 67
Verschlüsselung einsetzen
Wie bereits erwähnt, bietet SeMoA die Möglichkeit, Agenten mittels SSL und TLS zu verschlüsseln. Von dieser Möglichkeit sollte dringend Gebrauch gemacht werden, um Authentifizierung, Integritätsschutz und Verschlüsselung zu gewährleisten.
Verhalten des Agenten bei Fehlern
Für den Fall, dass ein Übertragungsfehler vorliegt, oder der Agent anderweitig von der Erfüllung seiner Aufgabe abgehalten wird, gibt es die Möglichkeit, ihn zu terminieren. Dies hat
den Vorteil, dass andere Systeme nicht auf seine Daten zugreifen oder seinen Code manipulieren können, falls sein Zustand nicht geklärt ist. Allerdings ist dies nur eine (eher sehr
robuste) Möglichkeit, die Daten eines fehlerhaften Agenten zu schützen.
Denkbar wären hier natürlich Maßnahmen, die es erlauben, die Daten des Agenten vor seinem Ableben noch sichern zu können.
Datenkapselung
Daten, die übertragen werden müssen, sollten in jedem Falle im Agenten selbst gekapselt
werden. Ein Agent, der seine Daten beispielsweise via E-Mail an den Sender verschickt, um
noch andere Stationen anlaufen zu können, ohne vorher zurück zu seinem Auftraggeber zu
müssen, handelt damit grob fahrlässig. Viel zu leicht kann man an die Daten einer E-Mail
gelangen, wenn diese nicht richtig verschlüsselt sind.
Sicherheit auf Serverseite
Natürlich muss auch der Host sicher vor bösartigen Mobilen Agenten sein. Dazu kann man
beim SeMoA-Server sogenannte „Policies“ konfigurieren. In diesen ist es möglich, bestimmte Rechte zu vergeben in Abhängigkeit davon, wer der Eigentümer des zugreifenden Agenten ist. Die Rechte sollten maximal eingeschränkt bleiben und nur dann erweitert werden,
wenn dies unbedingt nötig ist.
4.1.4.4.
Zusammenfassung des SeMoA-Systems
Als Antwort auf die im Internet lauernden Gefahren bietet das Mobile Agenten System SeMoA auch mächtige Sicherheitsmechanismen, die gezielt eingesetzt werden sollten. Deshalb sollte man bei der Implementierung eines Agenten gerade auf diese oben aufgeführten
Punkte achten.
In der Projektphase des Masterstudienganges der FH Darmstadt zeigte sich allerdings, dass
ein Mobiler Agent sicherheitstechnisch zwar weitgehend abgesichert werden kann, aber
sein Einsatz wieder neue Gefahren mit sich bringt:
Szenario 1:
Der Agent ist bösartig und ein der eigene Agentenserver ist nicht optimal konfiguriert. Der
Agent kann nun also Daten ausspähen und manipulieren.
Seite 30 von 67
Szenario 2:
Der Agent trifft auf einen bösartigen Host. Der Host kann den Agenten und die darin gespeicherten Daten beliebig manipulieren, bevor oder nachdem er den Agenten ausführt. Man
beachte, dass der Agent nur ein „totes“ Stück Code in Form einer Datei ist. Selbst wenn
man den Agenten signieren würde, könnte man doch die in ihm gespeicherten Daten nicht
schützen, da diese ja verändert werden müssen. Will ich z.B. mit dem Agenten Angebote
von verschiedenen Anbietern einholen, so könnte der zu letzt besuchte Anbieter die Angebote seiner Vorgänger beliebig dahingehend manipulieren, dass sein Angebot das bessere
ist und den Agenten erst dann zurückschicken.
Szenario 3:
Der gutmütige Agent läuft auf einer gutmütigen Plattform, wird aber von einem ebenfalls dort
ausgeführten bösartigen Agenten manipuliert.
Es gibt eigentlich nur eine Möglichkeit, Mobile Agenten „sicher“ zu machen: man muss auf
die Ehrlichkeit sowohl der fremden Plattformen als auch der Agenten vertrauen bzw. versuchen, deren Ehrlichkeit und Seriosität durch geeignete Mechanismen wie Zertifizierungen
oder ähnliches sicherstellen.
Wird allerdings in einem Netz von miteinander kommunizierenden Hosts ein Host von außen gecrackt, verliert das gesamte Netz an Sicherheit.
Wirklich sicher bleibt damit nur der eigene Agent auf der eigenen Plattform, was natürlich
die Idee der Mobilen Agenten ad absurdum führt.
Deshalb sollte immer genauestens abgewogen werden, ob der Vorteil des Einsatzes von
Mobilen Agenten der Sicherheit geopfert werden kann und ob eventuell nicht eine andere
Technologie geeigneter ist, gleiches bei höherer Sicherheit zu gewährleisten.
4.1.5.
Bewertung von Mobilen Agenten allgemein
Mobile Agenten haben enorme Vorteile gegenüber herkömmlichen Client-ServerArchitekturen (siehe dazu auch Punkt 3.4).
Vorteil: Geringere Kommunikationsbandbreite
In Client-Server-Systemen müssen oft große Datenmengen vom Server auf einen Client
transportiert werden, um sie dort zu verarbeiten. Mobile Agenten Technologien verfolgen
hingegen eine andere Strategie. Statt die Daten zur Verarbeitungslogik zu bringen, wird die
Verarbeitungslogik zu den Daten gebracht. Wenn also auf dem Server ein Mobiles Agenten
System läuft, wird der Agent übertragen, führt auf dem Server die notwendigen Operationen
auf die Daten aus (z.B. eine SQL-Abfrage) und nimmt die benötigten Daten dann mit zurück
zum Client.
Seite 31 von 67
Mobile Agenten sind damit prädestiniert für verteilte Anwendungen, gerade in Weitverkehrsnetzen mit geringer Bandbreite und schlechter Netzwerkqualität. Sie könnten als Bindeglied
zwischen bestehenden Anwendungen höhere Dienste realisieren und unabhängig von der
Zuverlässigkeit des Netzwerkes Applikationen, die ursprünglich gar nicht für den Netzwerkeinsatz vorgesehen waren, netzwerkfähig machen.
Vorteil: Offline-Verarbeitung
Der Vorteil der Offline-Verarbeitung von Mobilen Agenten ist vor allem für den Bereich des
„mobile computing“, aber auch für andere Gebiete sehr interessant. Da Netzanbindungen in
bestimmten Einsatzgebieten (z.B. Freilandeinsätze) oft nicht verfügbar oder zu langsam
sind (GSM) bzw. aufgrund von Kosten nicht permanent gehalten werden können, bieten
sich Mobile Agenten zur Offline-Verarbeitung an.
Man bestückt ihn mit Daten und seiner Aufgabe und sendet ihn ab. Die Verbindung zwischen Server und Client muss nur dann hergestellt sein, wenn der Agent ins Intra- oder Internet übertragen wird, bzw. wenn er nach erfolgreicher Auftragsausführung die geforderten
Daten zurückliefert. Somit ermöglichen mobile Agenten verteilte Anwendungen, die ohne
ständigen Netzkontakt auskommen.
Vorteil: Ausnutzung der verteilten Ressourcen
Da Client-Maschinen meist über kleinere Ressourcen verfügen, als typische Server, können
hier größere Rechen-, oder Abfrageoperationen nur sehr zeitaufwendig durchgeführt werden. Entsprechende Operationen können von einem Mobilen Agenten auf dem leistungsfähigeren Server durchgeführt werden und die benötigten verdichteten Daten mit dem Mobilen
Agenten zum Client zurück geschickt werden.
Vorteil: Flexiblere Technologie für verteilte Systeme
Baut man ein verteiltes System mittels Mobiler Agenten zu einem Multiagentensystem (siehe Punkt 4.3), ist die Erweiterung dieses Systems relativ problemlos möglich, da man neue
Agenten einfach hinzufügen kann, ohne das Gesamtsystem aufwendig verändern zu müssen. Diese Agenten können dann als Anbieter oder Nachfrager auftreten. Allerdings ist hier
der Umstand, dass die Austauschprotokolle für den Datenaustausch zwischen den einzelnen Rechnern in Verteilten Systemen auf allen Hosts verfügbar sein müssen, nachteilig.
Wenn ein Protokoll geändert wird, so muss der Protokollverarbeitungscode auf allen Rechnern geändert werden. Hier kann man sich viel Arbeit ersparen, wenn man die Protokollverarbeitung in Mobile Agenten verlagert.
Seite 32 von 67
Vorteil: Einsatz in heterogenen Umgebungen
Mobile Agenten hängen nur von ihrer Agenten-Plattform, also dem Mobilen Agenten Server
ab. Dadurch sind sie weder auf ein bestimmtes Betriebssystem angewiesen, noch auf irgendwelche Transportschichtprotokolle. Deshalb können Mobile Agenten optimal in heterogenen Netzwerken eingesetzt werden. Die einzige Voraussetzung ist, dass für jedes Betriebssystem einmal der Agenten Server angepasst wird.
Den ausgeführten Vorteilen von mobilen Agenten stehen Nachteile hinsichtlich Ressourcenverbrauch und v.a. Sicherheit gegenüber.
Nachteil: Sicherheitsrisiken
Der Einsatz mobiler Agenten birgt Sicherheitsrisiken. Da der Agent per Definition möglichst
autonom im Hintergrund laufen soll, liegt hier die Gefahr, dass er vom Nutzer nicht mehr
wahrgenommen wird. Somit ergibt sich die Schwierigkeit der Kontrolle der Informationen,
die ein Agent vom eigenen Rechner aus mit anderen Systemen austauscht.
Die Implementierung von Fähigkeiten von Trojanern innerhalb von mobilen Agenten wäre
einfach, da auf dem eigenen Rechner ein Server für Mobile Agenten laufen muss, der aus
dem Intra- ,oder dem Internet Mobile Agenten empfängt, der dann auf der eigenen Plattform
ausgeführt wird. Dieser Agent sollte zwar wohlwollend sein, es ist aber nicht ausgeschlossen, dass er auch bösartigen Code enthält. So könnte er ein Spion der Mitbewerber sein,
oder er könnte Viren, Trojaner oder Würmer enthalten.
Auch wenn die oben genannten Risiken durch z.B. den Einsatz von speziellen Firewalls reduziert werden können, können eigenen Agenten kaum davor geschützt werden, auf bösartigen Netzknoten zu migrieren.
Der Mobile Agent ist schließlich nur ein Stück Code, das auf dem Rechner ankommt und
von der Agentenplattform ausgeführt wird. Wenn die Plattform den Agenten vor oder nach
der Ausführung den Agenten manipuliert, bzw. dessen Daten verändert, so ist das kaum
nachweisbar und schwierig, zu verhindern.
Nachteil: Installation zusätzlicher Software
Auch muss man zusätzliche Software – hier den Mobilen Agenten Server auf seinem ClientSystem installieren. Dies bedeutet erhöhten Speicherplatzbedarf, mehr Arbeitsaufwand bei
der Installation und weniger Flexibilität, da – wie bereits erwähnt - Mobile Agenten unbedingt
ihren speziellen Server benötigen.
Nachteil: Zusätzlicher Ressourcenverbrauch
Aus den beiden oben beschriebenen Nachteilen Mobiler Agenten Technologien folgt natürlich ein erhöhter Verbrauch von System-Ressourcen. Beim Punkt „Installation zusätzlicher
Software“ dürfte das klar sein.
Seite 33 von 67
Der Punkt „Sicherheitsrisiken“ zieht indirekt einen erhöhten Ressourcenverbrauch nach
sich, da zusätzliche Software installiert werden muss, um die eigenen Daten zu schützen.
Diese Sicherheits-Programme (z.B. Firewalls, Anti-Viren-Software, ...) benötigen Festplattenspeicher, Arbeitsspeicher und CPU-Rechenzeit für die Überprüfung der Daten im Hintergrund.
Wirtschaftliche Aspekte von Mobilen Agenten
Wirtschaftlich könnten Mobile Agenten – wenn sie denn jemals richtig ausgereift und vor
allem die Sicherheitsrisiken minimiert wären – große Vorteile bringen. Man käme mit kleineren Bandbreiten in den Netzwerken aus, könnte sich Onlinezeit und weitere Ressourcen
sparen.
Da Mobile Agenten Technologien heute allerdings noch alles andere als voll entwickelt sind,
wird dies vorerst nur eine Vision bleiben.
Der Administrationsaufwand für Installation und Pflege einer Mobilen Agentenplattform (und
die wird auf jedem Rechner im Netzwerk benötigt, auf den der Agent Zugriff haben soll) ist
viel zu groß. Zu komplex sind die Sicherheits- und sonstigen Einstellungen, die getroffen
und bei Bedarf manuell geändert werden müssen.
Der Einsatz von Mobilen Agenten ist aus beim derzeitigen Stand der Technik aus wirtschaftlicher vorerst also nicht zu vertreten.
Seite 34 von 67
4.2.
Intelligente Agenten
Bei der Verwendung intelligenter Agenten wird versucht, die Ideen der Agenten-Technologie
für die Künstliche Intelligenz zu nutzen. Dabei wird wie in den anderen Anwendungsgebieten der Agenten-Systeme der Agenten-Ansatz dazu verwendet, Architekturen und Design-Ansätze zu verbessern sowie durch Kollaboration von Agenten eine bessere Verteilung
von Komplexität zu erreichen. Intelligente Agenten finden Anwendung in den klassischen
Gebieten der Künstlichen Intelligenz wie Problemlösung, Wissensbasierte Systeme, Deduktive Systeme und Lernende Systeme.
4.2.1.
Definition und Zweck
Unter den intelligenten stellen die Interface Agenten eine eigene Kategorie dar. Von der
Aufgabenstellung sind sie grob vergleichbar mit den o.a. Schnittstellen-Agenten. Im Vergleich zu deren relativ bescheidenen Aufgaben, nutzen die im folgenden Interface Agenten
bezeichneten Typen jedoch Mechanismen der KI, um ihre deutlich komplexeren Aufgaben
zu lösen.
Interface Agenten werden daher in einem eigenen Abschnitt gesondert behandelt. Anschließend folgt eine Kategorisierung intelligenter Agenten allgemein.
Die Definition und der Zweck der verschiedenen intelligenten Agenten ist stark an ihre Arbeitsweise und Einsatzgebiet gekoppelt, weshalb im folgenden Definition und Zweck von
intelligenten Agenten anhand des genauen Typen erklärt werden.
4.2.1.1.
Intelligente Interface Agenten
Intelligente Interface Agenten werden häufig kurz mit Interface Agenten bezeichnet. Sie stellen eine besondere Kategorie von intelligenten Agenten dar und unterscheiden sich darin
von allen anderen Arten von intelligenten Agenten. Sie dienen dazu, Benutzer bei deren
Arbeit am Computer zu unterstützen. Nach Maes [MAE93] ist ein Interface Agent ein "Computer Programm, das einem Benutzer Unterstützung bietet, der eine bestimmte Applikation
benutzt". Interface Agenten dienen z.B. der Beschaffung und Filterung von Informationen,
Mail Management, Einberufen von Besprechungen, u.ä.. Fortgeschrittenere z.T. noch visionäre Interface Agenten können intelligent genannt werden, wenn sie in der Lage sind, den
Benutzer „über dessen Schulter" zu beobachten und Tätigkeitsmuster und Regelmäßigkeiten zu erkennen. Die Intelligenz gibt einem solchen Agenten die Fähigkeit, aus der Erfahrung zu lernen und Schlüsse in neuen Situationen treffen zu können.
Seite 35 von 67
4.2.1.2.
Tabellen-getriebene Agenten
Diese Agenten bedienen sich für die Umsetzung einfachen Intelligenz Tabellen, in denen
Verhaltensregeln abgelegt sind. Diese Agenten stellen die einfachste Form von intelligenten
Agenten dar. Die tabellen-getriebene Vorgehensweise ist geeignet für simple Agenten, die
in einer Umgebung mit einer kleinen Anzahl äußerer Reize leben. Für weniger simple Umgebungen lassen sich keine brauchbaren Resultate erzielen. Man stelle sich etwa einen
Agenten vor, der nichts Weiteres könne, als Schach zu spielen. Die Tabelle für diesen Agenten würde aus etwa 35100 Einträgen bestehen [RN95]. Das Erstellen dieser Tabelle
würde für den Entwickler recht viel Zeit beanspruchen. Zudem verfügt der Agent tatsächlich
über keine Autonomie, da sein Verhalten vollständig von außen gegeben ist. Der Agent
könnte bei einer Änderung in seiner Umgebung sich nicht entsprechend anpassen. Selbst
wenn diesem Agenten eine Fähigkeit zum Lernen gegeben werden würde, so dass es einen
Grad von Autonomie erreichen könnte, würde es unpraktikabel lange dauern, bis die Werte
für die Einträge in der Tabelle aufgebaut wären. Aus diesem Beispiel wird deutlich, dass ein
Agent, der in der Lage ist logisch zu „denken", bessere Resultate zu erzielen als ein tabellen-getriebener Agent, der noch so viele Regeln kennt.
4.2.1.3.
Die
Reflex-Agenten
Simple Reflex-Agenten
verwenden
ebenfalls
Tabellen,
in
der
jedoch
Input-Output-
Assoziationen abgelegt werden. Menschen verwenden auch ebenfalls eine vergleichbare
Art derartiger Assoziationsverknüpfungen, um einmal gelerntes im Langzeitgedächtnis zu
speichern. Wenn z.B. das voranfahrende Auto bremst, muss man selbst auch bremsen. Eine solche Assoziation wird Condition-Action-Regel genannt (auch Produktion genannt) und
stellt einen simplen Reflex auf einen äußeren Reiz dar, in Pseudocode –Schreibweise:
wenn (Auto-vorne-bremst) then selbst-bremsen.
4.2.1.4.
Umgebungs-beobachtende-Agenten
Die vorangehenden simplen Reflex-Agenten funktionieren nur dann, wenn die zutreffende
Entscheidung aufgrund der momentanen Wahrnehmung getroffen werden kann. Wenn ein
Fahrer z.B. in zeitlichen Abständen in den Rückspiegel schaut, kann er erkennen, ob das
Auto hinter ihm zum Überholen ansetzt oder nicht. Werden die Abstände zum hinten folgenden Auto immer kürzer, ist dies ein Indiz, dass der Fahrer dieses Autos zum Überholen ansetzen wird. Diese Information ist wichtig, um zu entscheiden, ob ein passender Moment
vorliegt, um die Spur zu wechseln. Damit ein Agent Unterschiede in seiner Umgebung erkennen kann, muss er über einen internen Zustand verfügen, so dass er die zu zwei ver-
Seite 36 von 67
schiedenen Zeitpunkten gemachten Wahrnehmungen vergleichen kann. Damit der Agent
also erkennen kann, was nicht sichtbar ist (dass der Fahrer im folgenden Auto überholen
möchte), muss er Information über Entwicklungen in seiner Umgebung sammeln und vergleichen.
4.2.1.5.
Zielgerichtete Agenten
Kommt z.B. ein Taxi an eine Verzweigung, muss es sich entscheiden, welche Abzweigung
es nehmen will. Die Beobachtung seiner Umgebung und Schlüsse aus deren zeitlichen Veränderung zu nehmen, ist dazu nicht dienlich. Das Taxi muss also ein Ziel haben, damit es
weiß, wie es entscheiden muss. Um zu evaluieren, welche Entscheidung die zutreffende ist,
kann ein Agent die Resultate von möglichen Aktionen vergleichen. Ein Schach spielender
Agent, kann die Qualität eines Zuges in Bezug auf verschiedene Gesichtspunkte (Material,
Stellung, u.ä.) untersuchen und so die geeignete Wahl vornehmen. Um die Folgen von einer
Kette von Aktionen bewerten zu können, muss ein Agent suchen und planen. Suche und
Planung sind die betreffenden Untergebiete der künstlichen Intelligenz, um solche Aktionsketten finden und bewerten zu können. Bei dieser Art von Entscheidungsfindung muss der
Agent berücksichtigen, was in der Zukunft sein wird. Er muss bewerten können, welche
Auswirkungen seine Aktionen haben werden. Dies ist ein bedeutender Unterschied zur Art
der Entscheidungsfindung der simplen Reflex-Agenten. Sollte es beispielsweise zu regnen
beginnen, kann der zielgerichtete Agent sein Wissen über das Bremsverhalten bei Regen
erweitern. Dieses neue Wissen wird auf seine zukünftigen Entscheidungen bei Regenwetter
Einfluss nehmen. Beim simplen Reflex-Agenten müssen dagegen viele If-Then-Else-Regeln
erweitert werden.
4.2.1.6.
Nutzen-orientierte Agenten
Stehen verschiedene Alternativen zur Wahl, die alle zur Ziel-Erreichung führen, hat der zielgerichtete Agent keine Möglichkeit zu evaluieren, welche Alternative am günstigsten ist. Ein
ziel-gerichteter Agent, der ein Taxi steuert, weiß nur, dass es mehrere Wege gibt um ans
Ziel zu kommen. Dies ist dann möglich, wenn er den Nutzen der verschiedenen Wege vergleichen kann (Verkehrsdichte, erlaubte Geschwindigkeit, Straßenzustand). Durch den Vergleich von Nutzen wird es für den Agenten ebenfalls möglich Wahrscheinlichkeiten zu berücksichtigen. Ein Agent, der über eine explizite Nutzen-Funktion verfügt, ist in der Lage
rationale Entscheidungen zu treffen.
Seite 37 von 67
4.2.1.7.
BDI-Agenten
Diese Agenten folgen dem BDI-Paradigma (Belief-Desire-Intention). Dieses Paradigma ist
eines der bekannteren, das in verschiedenen akademischen und industriellen Anwendungen v.a. für Simulationen verwendet wurde. Ein BDI-Agent trifft bestimmte Annahmen (Beliefs) über seine Umgebung hat Wünsche (Desires), deren Erfüllung er nachgeht. Die Wünsche bewegen ihn dazu, Intentionen zu entwickeln. BDI-Agenten unterscheiden sich von
rein deduktiven Systemen und anderen traditionellen Modellen der künstlichen Intelligenz
durch das Konzept der Intentionalität. Ein BDI-Agent entwickelt einen Plan als eine seiner
Intentionen. Pläne können implementiert werden als vorkompilierte Prozeduren, die jeweils
über einen Satz von Bedingungen verfügen, die über die Anwendbarkeit des Plans entscheiden.
4.2.2.
Eigenschaften von Intelligenten Agenten
Intelligente Agenten lassen sich vielfältig einsetzen. Wie bereits früher erwähnt, stellen Interface Agenten eine besondere Kategorie dar, weshalb sie zuerst ausgeführt werden.
Ünterstützung in der Ausführung täglicher Arbeiten
Interface Agenten bedienen sich Methoden der künstlichen Intelligenz um den Benutzer von täglichen Tätigkeiten am Computer zu befreien. Zu diesen Tätigkeiten
gehören etwa das Lesen von e-Mail, Nachführen der Agenda, Filterung von Informationen. Sie lernen daraus aus beispiel-orientierter Schlussfolgerung und sind in der
Lage ihre Leistungsfähigkeit mit der Zeit zu verbessern. Der Gedanke hierbei ist,
dass Interface Agenten in Zukunft dazu beitragen können, flexiblere und leichter zu
bedienende Benutzeroberflächen für Personal Computer zu entwickeln. Dabei ist es
erforderlich, dass der Benutzer dem Agenten vertrauen kann. Forscher der IBM Intelligent Agent Group sind der Auffassung, dass in naher Zukunft Benutzeroberflächen
ohne Agenten sich im Markt nicht mehr werden behaupten können [IAG1]. Es existieren bereits Systeme, die den Benutzer beim Ausfüllen von web-basierten Formularen
unterstützt. Hierbei handelt es sich z.B. um das Eröffnen eines Kontos bei einer Bank
[KUL02], Bestellung bei einer Handelsunternehmung oder das Ausfüllen der Steuererklärung,
Netzwerk-Überwachung
Der Interface Agent automatisiert einige Maßnahmen zur Netzwerk-Verwaltung und –
Überwachung (z.B. Filterung von Alarm-Meldungen, Fehlerfeststellung), wodurch der
Netzwerk-Administrator in die Lage versetzt wird, sich um anspruchsvollere oder
wichtigere, wodurch der Netzwerk-Administrator in die Lage versetzt wird, sich um
Seite 38 von 67
anspruchsvollere oder wichtigere Dinge zu kümmern. Zukünftige Agenten könnten
beobachten wie der Netzwerk-Administrator bestimmte Problem-Situationen bereinigt
und kann diese anschließend selbständig ausführen ohne Unterstützung durch den
Benutzer.
Unterhaltung
Viele Arten von Unterhaltungssystemen könnten vom Konzept der Interface Agenten
Nutzen ziehen. In ALIVE [MDBP96] können Benutzer mit animierten Agenten interagieren, die als Ganzkörper-Avatare (graphische Nachbildung von menschlichen
Körpern) visualisiert werden.
Unterrichtssysteme
Solche Systeme sollen dazu dienen Schüler und Studenten bei ihrer Lerntätigkeit zu
unterstützen und den Lehrer wenigstens z.T. zu ersetzen. Sie sollen dabei über Applikationen hinausgehen, die lediglich dazu in der Lage sind, dem Benutzer anzuzeigen, wie viele Fragen richtig oder falsch beantwortet wurden. Der digitale Tutor agiert
dabei z.B. als intelligente Suchmaschine, die bestimmte Materialien findet, um den
Lernvorgang zu unterstützen. Diese Unterrichtssysteme sollen auch zur Erteilung
von Unterricht dienen.
4.2.3.
Anwendungsgebiete intelligenter Agenten
4.2.3.1.
Suchmaschinen
Suchmaschinen werden häufig als Anwendungsgebiet für Agenten schlechthin aufgeführt.
Agenten, die etwa im Internet umherwandern und sich replizieren können und nach einiger
Zeit zu ihrem Auftraggeber mit den gesammelten Informationen zurückkehren, ermöglichen
durch ihre Verteilung im Netz eine Nutzung der kollektiven Netz-Ressourcen und damit eine
größere Abdeckung des Netzes. Durch ihre Autonomie muss keine ständige netzbelastende
Verbindung zum Auftrageber unterhalten werden wie bei Suchmaschinen, die auf einer
Client-Server-Architektur beruhen.
4.2.3.2.
Simulation
Der Agenten-Ansatz ist ein geeignetes Paradigma für die wirklichkeitsnahe Modellierung zur
Simulation von Abläufen. Durch die Autonomie von Agenten können insbesondere soziale
Systeme (vom Ameisenstaat bis zu menschlichem Gruppenverhalten) gut nachgebildet
werden. Militärische Simulationen sind offensichtlich eine bedeutendes Anwendungsgebiet
Seite 39 von 67
von Simulationen. Dies rührt daher, weil z.B. das amerikanische Verteidigungsministerium
für Simulationen viel investiert, da sich große Einsparungen erreichen lassen, wenn durch
synthetische Trainingsumgebungen auf reale Übungen verzichtet werden kann. Die simulierten Systeme sind oft soziale Systeme (militärische Einsatzgruppen), die sich mit dem
Agenten-Ansatz gut modellieren lassen.
4.2.3.3.
Planung und Scheduling
Planung und Optimierung spielen eine wichtige Rolle in der Logistik und Produktion. Intelligente Agenten sind für diese Anwendungsgebiete ein hilfreiches Paradigma und Mittel zur
Umsetzung. Da die Planungs- und Optimierungsvorgänge oft durch parallele Algorithmen
erst in praktikabler Zeit ablaufen können, bieten sich Multiagentensysteme an: die einzelnen
Agenten erledigen einen Teilaufgabe der Prozesses autonom und interagieren dabei ggfs.
mit anderen Agenten. Durch die Verteilung der Aufgaben auf mehrere autonome Agenten
lässt sich die Komplexität verringern.
4.2.3.4.
Supply-Chain-Management
Die Idee des Supply-Chain-Management besteht in der Vernetzung von Firmen, die in einer
Lieferkette zu anderen Firmen stehen. Durch die Vernetzung ergeben sich verschiedene
Möglichkeiten Kosten und Zeit zu sparen und Flexibilität zu erhöhen. Das Supply-ChainManagement-System kann niedrige Lagerbestände der Abnehmerfirma erkennen und automatisch nachliefern. Umgekehrt kann eine bestellende Firma dem Supply-ChainManagement-System überlassen die optimale Ausführung des Auftrages zu gewährleisten
(welche Firma im Lieferantennetz liefert welche Menge von welchem Produkt, muss wie viel
nachproduzieren, u.ä.). Für die vernetzte Struktur von Lieferanten-Firmen bieten sich Multiagentensysteme an, deren Agenten die einzelne Firmen im Lieferantennetz vertreten und in
deren Auftrag handeln. Ein erfolgreiches auf Agenten basierendes Supply-ChainManagement-System wird z.B. von der Firma Skyva in Medford, USA, angeboten.
4.2.3.5.
Künstliche Intelligenz
Im Bereich intelligente Agenten wird von verschiedenen Firmen geforscht, um ihre bestehenden Produkte wie Sprachenerkennung oder Mustererkennung weiter zu verbessern. So
hat das Forschungsinstitut Intelligent Agent Systems Lab hat für ihr System für maschinelle
Übersetzung aus dem Chinesischen und Spracherkennung bereits 1993 in Taiwan den
Seite 40 von 67
„Distinguished Chinese Information Product Award" erhalten und forscht im Bereich im Bereich intelligente Agenten.
4.2.3.6.
Computer Animationen
Agenten werden in der Computer Animation verwendet um Gruppen von animierten Objekten realistisch erscheinen zu lassen. Müssen mehrere Objekte animiert werden, besteht das
herkömmliche Verfahren darin, ein Muster-Objekt zu kopieren. Das kopierte Objekt bewegt
sich dann genau gleich wie das Muster-Objekt. Bei einer großen Anzahl von Objekten wirkt
dies nicht mehr realistisch, da sich alle Objekte genau gleich bewegen. So sind im 2.Teil
des Films „Herr der Ringe" die Soldaten des Heers der Orks, das die Festung „Helm Klam“
erobern möchte, autonome Agenten. Durch Verändern von Parametern bewegt sich jeder
Soldat anders. Verschiedene Gruppen von Soldaten haben verschiedene Ziele. Eine Gruppe versucht durch Heraufklettern von Leitern die Festungsmauer zu überwinden, eine andere z.B. gegnerische Soldaten zu bekämpfen. Die so gesammelten Daten werden anschließend einem Render übergeben.
4.2.4.
Frameworks und Tools
Es gibt eine Vielzahl von Frameworks und Tools für Agentensysteme und für intelligente
Agenten im Besonderen. Viele dieser Systeme sind Forschungssysteme oder aus akademischen Projekten entstanden. Die Anzahl Systeme, die erfolgreich eingesetzt werden oder
auch kommerziell erfolgreich sind, ist noch gering. Im Folgenden werden zwei erfolgreiche
kommerzielle Frameworks vorgestellt aus verschiedenen Gebieten der Künstlichen Intelligenz. JACK ist ein Framework für die Simulation autonomer Individuen. Skyva ist ein Framework zur Planung von Ressourcen. Beide Frameworks verwenden kooperierende Agenten.
4.2.4.1.
JACK
JACK [BRHL99] ist ein kommerzielles Agenten-Framework der dritten Generation, das für
die Realisierung von Simulationen mittels intelligenter Agenten entwickelt wurde. Es wurde
von der Firma Agent Oriented Software in Melbourne, Australien, entwickelt. Es ist erwähnenswert, da es kommerziell erfolgreich ist und in seiner Konzeption auf die besonderen
Bedürfnisse der Simulations-Entwicklung eingeht. Dies erlaubt einen Einblick in verschiedene Problematiken des Einsatzes von intelligenten Agenten für Simulationen und auch allSeite 41 von 67
gemein.
JACK baut auf dem BDI-Ansatz (Belief-Desire-Intention) auf. Es verwendet eine Erweiterung von Java und ist auf hohe Leistung ausgelegt. Besondere Eigenschaften von JACK
sind:
Hoch-performante Kommunikationsinfrastruktur für Multiagenten-Anwendungen.
Automatisches Management von Nebenläufigkeit bei Aufgaben, die nebeneinander
verfolgt werden.
Unterstützung von mehreren Agenten durch einen einzigen Prozess. Dies ist für den
effiziente Umgang mit System-Ressourcen zwecks guter Performanz nützlich.
4.2.4.2.
Skyva
Die Firma Skyva ist eine Gründung verschiedener ehemaliger Manager und Entwickler von
SAP, die zu einem großen Teil mit Geldern eines der Gründers von SAP unterstützt wurde.
Skyva gehört mittlerweile zur ABB Group.
Skyva ist interessant, weil es ein Beispiel ist für ein erfolgreiches Multiagentensystem für
Planung und Supply-Chain-Management. Das Skyva-Framework ist ein gelungenes Beispiel
für ein rein objekt-orientiertes Framework. Es wurde vollständig in Java entwickelt und zum
Datenaustausch wird ausschließlich XML verwendet. Vom Benutzer werden Regeln definiert, die vom Agenten interpretiert werden. Die Regeln sind in XML definiert. Daher ist es
nicht notwendig, dass ein Benutzer über Programmierkenntnisse verfügen muss. Er muss
lediglich verstehen, wie in Skyva Regeln definiert und mittels eines XML-Editors eingegeben
werden.
Für die Definition von Regeln wurde das Command-Pattern verwendet: eine Regel ist ein
Command-Objekt, das beliebig verschachtelt sein kann und von dem Agenten als Scheduler
ausgeführt wird. Für ein Planungssystem für Züge könnte eine Regel lauten, dass zwei odere mehrere Züge nicht zur gleichen Zeit am gleichen Ort sein dürfen. Das Skyva-System
erzeugt aus der XML-Datei mit der Regel ein Java-Objekt, das vom Agenten ausgeführt
wird. Statt dem Anlegen einer Regel mittels XML kann auch direkt eine Java-Klasse angelegt werden, die dann entsprechend instanziiert wird. Agenten im Skyva-System können
miteinander kommunizieren. Somit ist Skyva ein Multiagentensystem. Die Fähigkeit der
Kommunikation ist notwendig, damit die Agenten der einzelnen Firmen in der Lieferantenkette, miteinander ausmachen können, wie ein Auftrag ausgeführt wird (wer hat wieviel auf
Lager, wer muss was nachbestellen, produzieren, u.ä.).
Seite 42 von 67
4.2.5.
Bewertung von Intelligenten Agenten
Wie auch bei den mobilen Agenten gibt es bei den intelligenten Agenten ernstzunehmende
Sicherheitsprobleme, die nicht leicht zu lösen sind. Interface Agenten beobachten das Verhalten von Benutzern um diesen entsprechende Hinweise zu geben zur Vermeidung von
Problemen, für die Verbesserung von Abläufen, u.ä. Dies bedingt das ständige Sammeln
von Informationen über die Benutzern um diese zweckbestimmt auswerten zu können. Diese Informationen gehen in den privaten Bereich des Benutzers hinein und dürfen nicht
weitergegeben werden. Auch wenn Verantwortung an intelligente Agenten delegiert werden
kann, bleibt doch der Mensch am Schluss verantwortlich und haftbar.
Trotz verschiedener Schwierigkeiten ist es dennoch offensichtlich, dass intelligente Agenten
ein großes Potential haben. Einzelne spezielle Agentensysteme haben dies bereits eindrücklich unter Beweis gestellt (z.B. Animationen im Film "Herr der Ringe" mittels eines Multiagentensystems). Zunächst ist zu erwarten, dass einfache Agentensysteme aus den Forschungslaboratorien auf den Markt kommen. In den kommenden Jahren werden diese Produkte weiterentwickelt und verbessert. Es ist also eher ein evolutionärer Prozess zu erwarten statt ein revolutionärer.
Abschließend ist es schwierig, eine eindeutige Aussage zur Weiterentwicklung und Zukunft
von intelligenten Agenten vorzunehmen. Dies ist auch damit zu erklären, dass die Forschung und Entwicklung in diesem Bereich erst am Anfang steht und weitere Resultate abgewartet werden müssen. Ich bin überzeugt, dass intelligente Agenten viel zu bieten haben.
Weitere Investitionen in Forschung und Entwicklung sind sinnvoll und es gibt eine begründete Erwartung auf eine Vielzahl sinnvoller Anwendungen.
Seite 43 von 67
4.3.
Multiagenten-Systeme
Das Konzept der multiplen Agenten oder Multiagentensysteme (MAS) liegt am Schnittpunkt
mehrerer Disziplinen. Die zwei wichtigsten Disziplinen sind die verteilte Künstliche Intelligenz (VKI) und die des Künstlichen Lebens (KL). „Ziel der Verteilten Künstlichen Intelligenz
ist es, Organisationen zu schaffen, die aus symbolverarbeitenden Systemen bestehen und
Probleme durch logisches Schließen lösen können. Die Disziplin des Künstlichen Lebens
versucht, mit Leben erfüllte künstliche Systeme zu verstehen und zu modellieren, Systeme
also, die auch in feindlichen Umgebungen überlebens-, anpassungs- und reproduktionsfähig
sind.“ ([Ferber01], Seite 44)
Da diese Verknüpfung von VKI und KL im Gegensatz zu anderen Ansätzen eine der wichtigsten Motivationen war und ist, kann man Multiagentensysteme als einen eigenen Agententyp verstehen, der sehr ausgeprägt die Eigenschaften Kommunikation, Interaktion und
Intelligenz umsetzt. Einzelne Agenten innerhalb von Multiagentensystemen werden auch
kollaborative Agenten genannt.
4.3.1.
Definition und Zweck
Die Vernetzung von Anwendungen brachte die Forderung mit sich , in verteilten Systemen
Arbeitsvorgänge autonom durchzuführen. Dies ist die Aufgabe von Multiagentensystemen.
Ein Multiagentensystem ist ein mehr oder weniger loses gekoppeltes Netzwerk von Software-Agenten, die Aufgabenstellungen in Interaktion miteinander erledigen, die ein einzelner Agent z.B. aufgrund von fehlenden Informationen nicht lösen könnte. [CMUMA01]
Weitergehende Überlegungen müssen im Bereich Realisierung der Verteilten Künstlichen
Intelligenz (VKI) mit Multiagentensystemen beachtet werden.
Hier ergibt sich die Schwierigkeit der Zerlegung von einem Gesamtproblem in Teilbereiche
und der Wiederzusammensetzung von einzelnen Teillösungen zu einer Gesamtlösung.
Dazu müssen Kommunikationsform, -sprache und Konventionen festgelegt werden. Die
Kooperation der Agenten muss so konzipiert sein, dass möglichst wenige Interaktionen bei
maximaler effizienter Zusammenarbeit erreicht werden, also die Arbeitsweise des individuellen Agenten im Verbund zur Lösung eines globalen Problems gesichert ist [UNIBITF94].
Dabei ist der Einsatz von künstlicher Intelligenz (KI) entscheidend.
Interessant ist in diesem Zusammenhang, dass auch die KI-Forschung einen Schritt in Richtung KI im Einsatz bei Agentensystemen macht und beide Gebiete sich mehr und mehr überlappen.
So richtet sich der Fokus in der KI-Forschung (gemessen an den Publikationen) in zunehmendem Maße auf das Lernen und die Adaption von Agentensystemen.
Dies erscheint logisch, wenn man berücksichtigt, dass Agentensysteme sich in stark dynamisch verändernden Umgebungen bewegen sollen. Genau diese Dynamik der Umweltbedingungen von Agenten ist aber die große Unbekannte und kann auch im Voraus nur bedingt experimentell simuliert werden. Weshalb der KI und der Adaption von Wissen im Bereich der Multiagentensysteme ein großer Stellenwert zugeschrieben wird. [CMUAL01]
Seite 44 von 67
4.3.2.
Eigenschaften von Multiagenten-Systemen
In diesem Kapitel wird auf die Eigenschaften und Vorrausetzungen eingegangen, um ein
Multiagentensystem produktiv einsetzen zu können. Dabei wird besonderer Wert auf Planungskonzepte gelegt, da hierdurch die Grundlage für jegliche Zusammenarbeit bereit gestellt wird.
Grafiken in diesem Kapitel sind dem Vorlesungsskript von [SI] entnommen.
4.3.2.1.
Arten der Koordination
Die Koordination der Agenten ist für eine Konfliktvermeidung und für das Erreichen des gemeinsamen Ziels entscheidend. Man unterscheidet zwei verschiedene Arten der Koordination:
1. Kooperation, bedeutet das Zusammenarbeiten und Verfolgen von einem gemeinsamen Ziel.
2. Konkurrenz, bedeutet das Verfolgen von unterschiedlichen, sich teilweise widersprechenden Zielen.
Für die Zusammenarbeit ist es natürlich die Frage wichtig, wie das gemeinsame Ziel am
besten erreicht werden kann. Dass bedeutet, dass die einzelnen Agenten verschiedene
Handlungsfolgen ausführen müssen, um das gemeinsame Ziel möglichst effizient zu erreichen. Diese Handlungsfolgen werden Pläne genannt und der Vorgang des Entwerfens dieser Pläne durch die Agenten ist ein wesentlicher Teil der Kooperation. Diese Planung kann
wiederum von einem Agenten für alle oder von allen gemeinsam erledigt werden.
Bei konkurrierenden Zielen ist ein wesentlicher Teil der Koordination die Verhandlung zwischen den Agenten und das Finden von Kompromissen.
4.3.2.2.
Koordination in künstlichen Agentengesellschaften
Natürlich kann man die Organisationsformen aus natürlichen Agentengesellschaften nicht
einfach auf die Konstruktion von künstlichen Agentengesellschaften übertragen. Aber
sicherlich kann man durch ihre Betrachtung einiges für die Organisation von
Multiagentensystemen lernen. Dieses Kapitel soll nun wichtige Teilaspekte der Koordination
in künstlichen Multiagentensystemen vorstellen.
Objekte der Koordination
Zunächst muss man sich überlegen, was überhaupt koordiniert werden muss. Man kann
diese Objekte der Koordination unter vier Schlagworten zusammenfassen:
Seite 45 von 67
Ziele
Bei den Zielen ist die Auswahl und Aktivierung zu koordinieren. Ein aktiviertes Ziel ist eines, aus der Menge der möglichen Ausgewähltes, das aktuell verfolgt wird.
Aktivitäten
Die Zerlegung von Zielen in Subziele und die Abbildung von Zielen auf Aktivitäten ist zusammengefasst. Es geht also um die Zerlegung von globalen Zielen in von einzelnen
Agenten ausführbare Aufgaben
Agenten
Erhaltene Aufgaben müssen unter den Agenten verteilt werden.
Interaktionen
Als Interaktionen sind die Zuteilungen von Ressourcen und die Synchronisation zu verstehen, eine klassische Aufgabe in Parallelsystemen.
Die ersten drei Punkte betreffen ausschließlich kooperierende Agenten, die hier auch im
Weiteren vorwiegend besprochen werden. Die Interaktionen sind hingegen sowohl bei kooperierenden als auch bei konkurrierenden Agenten zu koordinieren, zumindest soweit sie
auf die gleichen Ressourcen zugreifen. Die Synchronisation ist in jedem Fall notwendig, um
z.B. Verhandlungen zu ermöglichen.
Koordinationsmechanismen
Es gibt verschiedene Mechanismen, mit denen Koordination erreicht werden kann. Zum
Beispiel könnte die Ausführung von allen Aktivitäten der Agenten genau mit Plänen festgelegt sein, die bestimmte Regeln zur Koordination beachten. Die Koordination würde damit
auf eine standardisierte Basis gestellt.
Eine andere Möglichkeit ist die direkte Überwachung der Abhängigkeiten und des Zusammenspiels der Aktivitäten der Agenten durch einen der Agenten. Dieser wirkt somit als Vorgesetzter, der die korrekte Zusammenarbeit der Mitarbeiter sicher zu stellen hat. Oder er
wirkt bei konkurrierenden Agenten als Richter, der in Konfliktfällen die Entscheidung treffen
kann.
Eine sehr kommunikationsintensive, aber gleichberechtigte Variante ist die Möglichkeit der
wechselseitigen Abstimmung. Dabei stimmt jeder Agent sein Verhalten kontinuierlich in Abhängigkeit von den Aufgaben mit anderen Agenten ab. Wenn ein Agent also z.B. von einem
anderen Agenten Hilfe bei der Bewältigung einer Aufgabe benötigt, oder wenn er auf die
selbe Ressource zugreifen will, dann wird er den anderen Agenten direkt darauf ansprechen
und sich mit ihm abstimmen.
Seite 46 von 67
4.3.2.3.
Organisationsformen der Kooperation
Um etwas über Kooperation in künstlichen Agentengesellschaften zu lernen, lohnt es sich,
natürliche Agentengesellschaften in Form von Tiergemeinschaften oder menschliche Organisationsformen zu betrachten. Die Kooperation von Agenten lässt sich am besten am Verhalten von Lebewesen beschreiben, die nach Mustern handeln, wie z.B. Ameisenstaaten.
Als Vorbild für die Kooperation unter Agenten werden vier verschiedene Organisationsformen in menschlichen Betrieben betrachtet:
Abbildung 2: Einliniensystem
Im Einliniensystem hat jede Instanz genau einen direkten Vorgesetzten. Weisungen werden
also nur von einer übergeordneten Instanz erteilt. Damit hat dieses System klare Hierarchien. Die Befehlswege sind dabei übersichtlich, da ein Befehl immer nur über einen bestimmten Weg von oben gekommen sein kann. Auch die Kompetenzbereiche der Instanzen
sind hier eindeutig aufgeteilt und verteilt, denn jede Instanz ist genau für den Unterbaum
zuständig, dessen Wurzel sie ist.
Nachteile ergeben sind durch die meist große Baumtiefe. Diese Baumtiefe bedingt lange
und schwerfällige Instanzen- und Befehlswege. Außerdem ist es schwer möglich, für besondere Aufgaben spezialisierte Instanzen einzurichten, da diese dann entweder mehrfach
vorkommen müssen oder nur von wenigen Oberinstanzen genutzt werden können. Ein
weiterer Nachteil dieses Systems ist, dass die obere Instanz alles kontrollieren muss und
somit schnell werden kann.
Abbildung 3: Mehrliniensystem
Seite 47 von 67
Das Mehrliniensystem basiert gegenüber dem Einliniensystem auf dem Prinzip der direkten
Wege. Das heißt, jede Instanz einer Hierarchiestufe kann Weisungen an alle Instanzen der
darunter liegenden Hierarchiestufen erteilen. Sie braucht nicht erst den langwierigen Weg in
der Hierarchie nach oben zu gehen, wenn sie Aufträge für eine Stelle aus einem anderen
Zweig des Baumes hat. Damit ist eine Spezialisierung der Instanzen auf bestimmte, disjunkte Aufgabenbereiche möglich, ohne die oberen Instanzen über Gebühr zu belasten. Die gesamte Hierarchie wird durch diese Spezialisierung außerdem flacher, was auch noch zusätzlich die Befehls- und Informationswege verkürzt.
Die Tatsache, dass mehrere Vorgesetzte einer Instanz weisungsbefugt sind, beinhaltet allerdings ein hohes Konfliktpotential. Es entstehen große Probleme, wenn eine Instanz zwei
sich widersprechende Aufträge von verschiedenen Oberinstanzen bekommt. Es ist dann
schwierig zu bestimmen, welcher Auftrag Vorrang hat. Das wird noch dadurch erschwert,
dass bei dieser Struktur die Abgrenzung der Kompetenzen der Instanzen für bestimmte
Aufgabenbereiche schwierig ist.
Abbildung 4: Stabliniensystem
Das Stabliniensystem ist im Prinzip ein Einliniensystem, das aber die Vorteile des Einsatzes
von Spezialisten für besondere Aufgaben nutzt.
Dazu werden verschiedenen Instanzen Stäbe von Experten zugeordnet, die eine beratende
Funktion übernehmen. Die Vorteile der klaren Unterstellungsverhältnisse des Einliniensystems werden so gewahrt und gleichzeitig die Entscheidungsqualität durch den Einsatz von
Spezialisten verbessert.
Allerdings können durch die Zweiteilung der Stellen in Wissen (Expertenstab) und Entscheiden (Linieninstanz) wiederum leicht Konflikte zwischen diesen beiden Teilen entstehen.
Seite 48 von 67
Abbildung 5: Matrixorganisation
Die Matrixorganisation kombiniert die Vorteile der Divisionsorganisation, die hier nur erwähnt werden soll, mit denen des Mehrliniensystems. Aus der Divisionsorganisation wird die
Aufteilung der obersten Stufe des Managements in verschiedene Geschäftsbereiche übernommen, die autark entscheiden können. Dabei kann ein Geschäftsbereich z.B. einer angebotenen Produktlinie entsprechen. Die Divisions- und Matrixorganisation wird entsprechend nur von großen Unternehmen mit breiter Produktpalette eingesetzt. Der Nachteil der
Divisionsorganisation, dass die funktionalen Bereiche (in der Abbildung Einkauf, Produktion
und Verkauf) in jeder Division, d.h. für jeden Geschäftsbereich separat und damit mit personellem Aufwand mehrfach errichtet werden müssen, wird bei der Matrixorganisation dadurch
vermieden, dass auf der obersten Stufe des Managements auch Stellen eingerichtet werden, die für die funktionalen Bereiche im gesamten Unternehmen zuständig sind. Das Unternehmen wird also in eine geschäftsbereichs- bzw. objektorientierte und in eine funktionale Teilorganisation aufgeteilt, die an den in der Abbildung illustrierten Schnittstellen zusammenarbeiten und jeweils spezielle Weisungsbefugnisse haben. Dadurch sind der Einsatz
von Spezialisten und die Nutzung von Synergieeffekten möglich. Außerdem wird durch die
Aufteilung des Managements die Unternehmensleitung entlastet.
Da hier wie beim einfachen Mehrliniensystem wieder mehrere Vorgesetzte weisungsbefugt
sind, ist wiederum die Gefahr von Konflikten gegeben. Allerdings sind die Kompetenzen hier
eindeutiger verteilt, was die Gefahr etwas verringert.
4.3.2.4.
Planungen in Multiagentensystemen
Agenten, die ein gemeinsames Ziel verfolgen und zur Erreichung dieses Ziels kooperieren
wollen, müssen planerisch vorgehen. Dies Planen wird von [NE99] definiert als:
"Planen ist das Entwerfen einer Aktionsfolge, mit der eine Startsituation in eine gewünschte
Zielsituation überführt werden kann.“
Seite 49 von 67
Allerdings unterscheidet sich Planung in Multiagentensystemen deutlich von den traditionellen Planungsansätzen der Künstlichen Intelligenz. Der entscheidende Unterschied ist, dass
in Multiagentensystemen mehrere autonome intelligente Agenten vorhanden sind, die theoretisch alle eigenständig planen können. Es geht also darum, Methoden zu entwickeln, die
Aufgaben der klassischen Künstlichen Intelligenz verteilt lösen können. Auf die Planung bezogen heißt das, dass Pläne von mehreren Agenten gemeinsam generiert und auch ausgeführt werden können.
Die Tatsache, dass es mehrere handelnde Einheiten gibt, bewirkt außerdem, dass die Aktionen nicht sequentiell ablaufen können, dass also ein nebenläufiger Plan erstellt werden
muss. Oft ist die Umgebung, in der sich Multiagentensysteme bewegen dynamisch. Sie
kann sich also auch unabhängig vom Handeln eines Agenten verändern.
Grundsätzlich unterscheidet man beim Planen in Multiagentensystemen zwischen zentralem
und dezentralem Planen. Als Alternative zwischen den beiden gegensätzlichen Ansätzen
wird als dritte Möglichkeit das Blackboard-Planen vorgestellt.
Zentrale Planung
Bei der zentralen Planung wird die Planung ausschließlich an einer Stelle ausgeführt. Diese
Stelle befiehlt dann den übrigen Agenten, was sie zu tun haben. Die Planung für das gesamte System ist äußerst komplex. Außerdem ist das System fehleranfällig, da nicht vorhersehbare Situationen nur schwer gemeistert werden können. Ein Fehler in der Planung
kann nicht ausgeglichen werden. Die Kommunikation beschränkt sich darauf, dass die Planungseinheit an die übrigen Agenten Befehle schickt und diese die Ausführung oder Probleme in der Ausführung zurückmelden. Die Agenten sind also wenig autonom, da sie nur
einfache Ausführungseinheiten darstellen. Die folgende Graphik verdeutlicht dies.
Abbildung 6: Zentrale Planung
Seite 50 von 67
Dezentrale Planung
Bei der dezentralen Planung hat jeder Agent eine eigene Planungseinheit und die Agenten
verständigen sich untereinander auf einer gleichberechtigten Ebene, um die jeweiligen Pläne miteinander abzustimmen und gegebenenfalls einen gemeinsamen Plan auszuhandeln.
Die dafür notwendige Kommunikation ist sehr aufwendig, dafür ist die Planung im einzelnen
Agenten einfacher, da er erstens nur seine oft eingeschränkte Weltsicht beachten muss und
zweitens nur für sich selbst planen muss. Natürlich ergibt sich durch die verschiedenen Planungsansätze, die miteinander verbunden werden müssen, ein hohes Konfliktpotential zwischen den Agenten. Dafür verzeiht ein solches System aber auch eher Planungsfehler, da
diese durch die Planungen der anderen Agenten ausgeglichen werden können bzw. bei den
Verhandlungen als fehlerhaft erkannt werden.
Die folgende Abbildung verdeutlich den Zusammenhang:
Abbildung 7: Dezentrale Planung
Blackboard-Planen
Ein Kompromiss zwischen verteilter und zentraler Planung ist das Blackboard-Planen, das
auf dem Blackboard-Prinzip basiert. Dies Prinzip spielt auch in anderen Bereichen von Multiagentensystemen eine wichtige Rolle, zum Beispiel in der Kommunikation, die im nächsten
Kapitel angesprochen wird. Beim Blackboard-Prinzip können die verschiedenen Agenten
auf einen gemeinsamen Speicherbereich zugreifen, über den Daten ausgetauscht werden
können. Wenn auf dem Blackboard (in dem für alle sichtbaren Speicherbereich) Eingabedaten erscheinen, für die sich ein Agent zuständig fühlt, dann liest er sie, bearbeitet sie und
schreibt seine Ausgabedaten danach wieder zurück auf das Blackboard. Dort können sie
dann für einen anderen Agenten als Eingabedaten dienen. Es ist möglich, dass mehrere
Agenten die gleichen Daten vom Blackboard lesen und bearbeiten, aber normalerweise ist
die Kooperation über das Blackboard so geregelt, dass jeder Agent einen eigenen von den
anderen disjunkten Aufgabenbereich übernimmt.
Seite 51 von 67
Beim Blackboard-Planen wird so erreicht, dass die Planung beim Vermittler (dem Blackboard) nur mäßig komplex ist, da die Agenten jeweils spezielle Teilplanungsaufgaben übernehmen. Außerdem wird dadurch eine Mitbestimmung der Agenten erreicht, ohne eine aufwendige Kommunikation zu benötigen. Die Planung in den Agenten kann je nach zu lösender Teilaufgabe recht einfach sein. Wenn man die Planungsaufgaben redundant verteilt,
wenn also mehrere Agenten die gleichen Aufgaben lösen, dann wird auch dieses System
schnell fehlertolerant. Allerdings steigt damit auch wieder das Konfliktpotential, denn bei
verschiedenen Lösungen für das gleiche Planungsproblem muss entschieden werden, welche auszuwählen ist. Und dies würde wiederum eine übergeordnete Schiedsinstanz benötigen.
Die folgende Abbildung verdeutlicht die Zusammenhänge.
Abbildung 8: Blackboard-Planen
4.3.2.5.
Kommunikation zwischen Agenten
Wie in dem letzten Kapitel deutlich wurde, ist Kommunikation ein wichtiger Teil von Multiagentensystemen. Man kann im wesentlichen zwischen zwei verschiedenen Arten, wie
Kommunikation erreicht werden kann, unterscheiden:
Zunächst gibt es die dem Blackboard-Prinzip entsprechende Möglichkeit, dass Informationen über einen gemeinsamen Speicherbereich ausgetauscht werden. Dabei sind die Informationen immer prinzipiell von allen Agenten lesbar und alle Agenten, denen sie wichtig
erscheinen, können darauf zugreifen. Jeder Agent kann außerdem solche Informationen auf
dem Blackboard veröffentlichen. Diese Methode der Kommunikation nennt man „shared
memory“.
Die andere Möglichkeit ist, Nachrichten direkt an den oder die Empfänger zu senden, für die
sie gedacht sind. Dazu muss der Sender der Nachricht natürlich wissen, für welche anderen
Agenten die Nachricht interessant sein könnte und er muss sie entsprechend adressieren.
Diese Methode wird „message passing“ genannt.
Seite 52 von 67
Es genügt aber nicht, Agenten einfach Nachrichten versenden zu lassen, damit sie sich untereinander verständigen können. Da auch heterogene Agenten miteinander kommunizieren
können sollen, müssen für eine erfolgreiche Kommunikation noch weitere Voraussetzungen
erfüllt werden:
Zunächst müssen die Agenten eine gemeinsame Sprache benutzen. Auch wenn sie Wissen
intern unterschiedlich repräsentieren, müssen sie sich auf eine Repräsentationsform einigen, mit der sie das Wissen transportieren wollen und die dann beide in ihre interne Repräsentationsform übersetzen können. Eine solche Sprache wird mit KIF (Knowledge Interchange Format) im folgenden noch vorgestellt und wird gemeinhin als „Interlingua“ bezeichnet.
Des Weiteren müssen die Agenten vergleichbare Vorstellungen von der Welt haben. Sie
müssen die Wörter der Sprache, mit der sie sich verständigen, mit ähnlichen Vorstellungen
verbinden können und deswegen ähnliche Objekte als existent kennen.
Die Agenten müssen außerdem verschiedene Nachrichtentypen unterscheiden können. Die
möglichen Nachrichtentypen und das Nachrichtenformat, das unter anderem den Nachrichtentyp enthält, werden z.B. in KQML (Knowledge Query and Manipulation Language) spezifiziert, siehe unten.
Damit die Kommunikation gelingt, muss außerdem noch der Ablauf des Dialoges einheitlich
geregelt sein. Dazu wird bei künstlichen Agenten ein Protokoll spezifiziert, das dann beide
Agenten benutzen. KQML enthält auch ein solches Protokoll.
Verschiedene Konversationsmuster
Die meisten Nachrichtentypen in Multiagentensystemen haben den Zweck, sich über Aktivitäten zu verständigen. Für solche Verhandlungen haben sich drei typische Konversationsmuster herausgebildet:
Die miteinander kommunizierenden Agenten stehen oft in einer Master-Slave bzw. ClientServer-Beziehung zueinander. Das heißt, es besteht eine hierarchische Ordnung zwischen
den beiden an der Kommunikation beteiligten Einheiten, wobei der Master bzw. der Client
die Dienste des Slaves bzw. des Servers in Anspruch nimmt und diesem Befehle erteilt.
Diese strenge Strukturierung der Konversation bewirkt, dass die Kommunikation sehr effizient ausgeführt werden kann, da zum Beispiel keine längeren Verhandlungen über strittige
Punkte notwendig sind. Voraussetzung dieser Art der Konversation ist aber, dass der Master die Fähigkeiten der Slaves kennt und auch deren aktuelle Verfügbarkeiten bestimmen
kann.
Ein weiteres mögliches Konversationsmuster ist das so genannte „Contract Net“. Dabei
schließen Agenten, die Hilfe benötigen, mit anderen Agenten Verträge über die Erfüllung
eines Auftrags ab. Zunächst schreibt ein beliebiger Agent, der gerade eine Aufgabe zu vergeben hat, diese unter allen anderen Agenten aus. Dieser Agent wird dann Auftraggeber
oder Manager genannt. Agenten, welche die notwendigen Fähigkeiten und freie Ressourcen
zur Erledigung der Aufgabe haben, bewerten die Ausschreibung.
Seite 53 von 67
Daraufhin gibt eine Teilmenge dieser Agenten Angebote (bids) an den Manager ab. Diese
Agenten werden auch „Bidder“ genannt. Der Manager bewertet die eingegangenen Angebote, selektiert das Beste und vergibt den Auftrag (contract) an den anbietenden Agenten
(Contractor). Der Auftragnehmer ist nun verpflichtet, den Auftrag auszuführen. Er meldet
den Fortgang der Bearbeitung und den Vollzug an den Manager. Der Vorteil dieser Kommunikationsstruktur ist, dass sie nicht streng hierarchisch aufgebaut ist, sondern dass die
Rollen dynamisch verteilt werden, je nachdem, ob ein Agent einen Auftrag zu vergeben hat
oder meint, einen Auftrag von einem anderen Agenten übernehmen zu können. Der Auftragnehmer kann entsprechend Teilaufgaben wiederum als Manager weitergeben.
Die dritte Möglichkeit, die Kommunikation zu strukturieren, ist die so genannte Negotiation.
Dabei ist die Konversation nicht strukturiert, sondern eine flache, gleichberechtigte Verhandlung zwischen verschiedenen Agenten. Dieses Konversationsmuster kann natürlich eine
sehr umfangreiche Kommunikation ergeben, wie man es aus Debatten und Diskussionen
unter gleichberechtigten Partnern kennt. Deshalb wird die Negotiation vorwiegend zur Kompromissfindung zwischen Agenten mit gegensätzlichen Zielen eingesetzt, bei der die anderen beiden Kommunikationsstrukturen nicht anwendbar sind.
Knowledge Interchange Format (KIF)
KIF ist eine Sprache, die dem Austausch von Wissen zwischen multiplen AgentenSystemen mit unterschiedlichen Wissensrepräsentationen dient. KIF ist also eine ausschließlich für diesen Wissenstransfer entwickelte Zwischensprache (Interlingua), in der das
zu übertragende Wissen während der Übertragung repräsentiert wird. KIF ist also weder zur
internen Wissensrepräsentation, noch zur Kommunikation mit dem Benutzer gedacht.
Allerdings bietet KIF sehr umfassende Ausdrucksmöglichkeiten, denn möglichst viele andere Wissensrepräsentationsformalismen sollen für den Wissenstransfer nach KIF übersetzbar
und ohne Verlust an Information wieder in eine andere Wissensrepräsentationssprache zurück übersetzbar sein. KIF erlaubt beispielsweise, beliebige Ausdrücke in Prädikatenlogik
erster Stufe, die Repräsentation von Meta-Wissen, die Beschreibung von Regeln für nichtmonotones Schließen und die Definition von Objekten, Funktionen und Relationen. Außerdem hat KIF eine deklarative Semantik, das heißt, es sind keine Bezüge zu einem Interpreter nötig, um Sätze der Sprache zu verstehen.
KIF ist nur eine von vielen möglichen Interlinguae. Sie hat zwar den Vorteil, dass sie in viele
andere Wissensrepräsentationssprachen übersetzbar ist, aber je nach den von den Agenten
tatsächlich verwendeten Repräsentationsformalismen kommen auch andere Sprachen zum
Einsatz. Zum Beispiel könnten auch Prolog, Lisp oder sogar SQL als Interlinguae dienen.
Wenn alle Agenten die gleiche interne Wissensrepräsentationssprache verwenden, benötigt
man natürlich keine besondere Zwischensprache, sondern kann als Transfersprache direkt
diese interne Sprache verwenden.
Seite 54 von 67
Knowledge Query and Manipulation Language (KQML)
KQML besteht im Wesentlichen aus zwei Teilen: einer Sprache zur Formulierung verschiedener Nachrichtentypen zum Wissensaustausch und einem Protokoll zur Regelung des Dialogablaufs.
Eine KQML-Nachricht hat die folgende Struktur:
:content <eigentlicher Inhalt>
:type <Nachrichtentyp>
:language <für den Inhalt verwendete Sprache>
:ontology <Thema der Nachricht>
:sender <Sender der Nachricht>
:receiver <Empfänger der Nachricht>
Das Protokoll von KQML ist eine Erweiterung des ISO-7-Schichten Modells und setzt auf die
oberste Schicht des ISO/OSI Protokollstacks drei weitere Schichten auf. Diese drei Schichten werden zusammengenommen SKTP (Simple Knowledge Transfer Protocol) genannt.
Direkt auf den Application-Layer des ISO/OSI-Modells setzt der Communication-Layer von
SKTP auf. Dieser benutzt die Daten aus der KQML-Nachricht, die für die Nachrichtenübertragung wichtig sind, also die Adressen von Sender und Empfänger der Nachricht. Darüber
ist der Message-Layer angeordnet. Dieser verwendet die Angaben zu dem Format der
Nachricht, also den Nachrichtentyp, die für den Inhalt verwendete Wissensrepräsentationssprache und das Thema der Nachricht. Die oberste Schicht des SKTP-Protokolls, der Content-Layer, betrachtet nur den eigentlichen Inhalt der Nachricht, also das in den Wörtern der
Interlingua ausgedrückte Wissen.
4.3.3.
Anwendungsgebiete von Multiagenten-Systemen
Es gibt zahlreiche Anwendungsgebiete für Multiagentensysteme. Die MAS können in fünf
Hauptkategorien eingeteilt werden, auf die in dem folgenden Kapitel näher eingegangen
wird.
Diese fünf Hauptkategorien sind:
Problemlösung im weitesten Sinne
kollektive Roboter
Multiagentensimulation
Konstruktion hypothetischer Welten und
kinetisches Design von Programmen
Seite 55 von 67
Die folgende Abbildung gibt einen Überblick über die Anwendungsgebiete von Multiagentensystemen:
Verteiltes
Problemlösen
Lösen von
Problemen
Lösen
verteilter
Probleme
Verteilte
Verfahren
zum Lösen
von
Problemen
Multiagentensysteme
Multiagentensimulation
Erschaffung
künstlicher
Welten
kollektive
Roboter
kinetisches
Programmdesign
Abbildung 9: Anwendungsgebiete für Multiagentensystem
4.3.3.1.
Das Lösen von Problemen
Das Lösen von Problemen betrifft alle Situationen in denen Softwareagenten Aufgaben erfüllen, die den Menschen von Nutzen sind. Diese Kategorie kann von kollektiven Robotern
dadurch unterschieden werden, dass die Agenten reine Softwareagenten sind. Das bedeutet, dass sie keine physikalische Struktur besitzen.
Der Begriff „Lösen von Problemen“ kann in drei Klassen unterteilt werden:
Verteiltes Problemlösen
Lösen verteilter Probleme
Problemlösung durch Koordination
Bei der ersten Klasse wird das gesamte Fachwissen zur Lösung des Problems auf alle
Agenten verteilt. Jeder Agent besitzt nur beschränkte Fähigkeiten bezogen auf das zu lösende Problem. Diese Anwendungsform wird auch als „Kooperation unter Spezialisten“ bezeichnet. Bei der zweiten Klasse ist das Problem selbst verteilt, wobei die Agenten ähnliche
Fähigkeiten wie in der vorherigen Klasse aufweisen. Die dritte Klasse wird als „Problemlösung durch Koordination“ bezeichnet. Im Falle der dritten Klasse („Problemlösung durch
Koordination“) werden Interaktionsprozesse benutzt, um klassische Probleme zu lösen.
Seite 56 von 67
Verteiltes Problemlösen
Alle Applikationen, die das Prinzip des verteilten Problemlösens anwenden, beruhen auf der
Annahme, dass sich komplexe Aufgaben durch Benutzung der Fähigkeit von vielen Spezialisten lösen lassen. Diese Spezialisten verfügen über ein spezielles Fachwissen und ergänzen sich. In diesem Fall ist entweder das Fachwissen oder die Problemlösung verteilt, jedoch nicht der Bereich der Operationen. Sobald das Fachwissen einer Person überfordert
ist, müssen mehrere Spezialisten zusammenarbeiten, um die gestellte Aufgabe gemeinsam
zu lösen.
Ein Beispiel ist die Konstruktion eines Rennwagens. Zu Erstellung des selbigen wird unterschiedliches Fachwissen benötigt. Es gibt jeweils Experten für Motoren, Aerodynamik,
Fahrwerk, Reifen usw.. Erst wenn alle Spezialisten zusammenarbeiten und ihr Fachwissen
einbringen, können sie einen konkurrenzfähigen Rennwagen erstellen.
Ein Beispiel aus der industriellen Prozesskontrolle ist das so genannte „Flavors-Paint-ShopSystem“ zum Streichen von LKWs. Es ist ein anschauliches Beispiel dafür, wie praktikabel
ein Multiagentensystem in der Industrie eingesetzt werden kann: Nach Verlassen des
Fliessbandes werden die LKWs entsprechend den Kundenwünschen in einer bestimmten
Farbe gespritzt. Es gibt jedoch weniger Lackierstationen als Farbtöne. Daher kann es notwendig sein, die Farben an einer Station auszutauschen, was wiederum lange dauert und
viel Farbe verbraucht.
Zu Beginn benutzte das Farboptimierungssystem ein klassisches Programm, das in Anpassung und Handhabung sehr teuer war. Außerdem war eine detaillierte Planung erforderlich,
die nur wenig Spielraum für mögliche Ausfälle der Anlage ließ. In einem zweiten Anlauf
wurde die Steuerung dieses System durch ein Multiagentensystem übernommen, in dem
jede Lackierstation durch einen Agenten repräsentiert wird. Wenn eine Station frei ist, lässt
sie einen neuen LKW aus der Warteschlage, in der permanent ca. 100 LKWs auf ihre Lackierung warten, einfahren. Die Auswahl wird aufgrund der drei folgenden Regeln getroffen:
1. Nimm den ersten LKW aus der Warteschlange, der die gerade eingesetzte Farbe
braucht.
2. Falls kein LKW diese Farbe benötigt, nimm den LKW mit der höchsten Priorität und
wechsle zur benötigten Farbe.
3. Falls kein LKW Priorität hat, nimm den nächsten aus der Warteschlange und wechsle
zur benötigten Farbe.
Auch wenn dieses System sehr einfach ist, konnte die Anzahl der Farbwechsel im Vergleich
zu dem zentralisierten System halbiert werden, was eine Einsparung von mehr als einer
Millionen Dollar pro Jahr ermöglichte. Hinzu kommt die Fehlertoleranz: Das System hat mit
dem Ausfall einzelner Stationen nun kein Probleme mehr.“ ([Ferber01] Seite 54)
Dieses Beispiel zeigt, mit welchen einfachen Regeln der Einsatz eines Multiagentensystems
wesentliche Vorteile gegenüber einem zentralistischen System bringen kann.
Seite 57 von 67
Lösen verteilter Probleme
Wenn zusätzlich zu der Aufgabenteilung auch der Problembereich verteilt ist, spricht man
vom Lösen verteilter Probleme. Das betrifft vor allen Anwendungen im Bereich der Analyse,
Erkennung, Fehlersuche und Kontrolle besonders im Bereich physikalisch verteilter Systeme. Für solche Systeme ist es meist schwierig, eine vollständige zentralistische Gesamtsicht aufzubauen. Beispiel für solche Systeme sind Elektrizitäts- oder ein Kommunikationsnetzwerke. Um derartige komplexe verteilte Strukturen zu überwachen und zu kontrollieren,
benutzt man am besten ebenfalls verteilte Agentensysteme.
Das von Onera und Alcatel-Alsthom entwickelte „Ideal-System“ ist ein typisches Beispiel für
die auf ein Multiagentensystem gestützte Überwachung und Fehlersuche in Telekommunikationsnetzwerken. Es beinhaltet drei Arten von Agenten: Aufseher lokalisieren Ausfälle und
identifizieren Fehler; Aktualisierungsagenten sichern die Kohärenz zwischen dem tatsächlichen Zustand des Netzwerkes und den Modellen der Agenten; Wartungsagenten schließlich
sind mit der Durchführung von Tests und Reparaturen an Netzwerkelementen betraut. Die
in einer Blackboard-Architektur operierenden Agenten bestehen aus fünf Modulen: einem
Kommunikationsmodul zur Verwaltung der Kommunikationsprotokolle, einem Expertenmodul mit Wissen über die Steuerung des Netzwerks, einem Kooperationsmodul zur Verwaltung der Kontakttabellen und der Selbstmodelle der Agenten sowie zur Modellierung der
Dialoge, ein Modul für die grafische Schnittstelle, damit ein Nutzer die Aktivitäten des Agenten verfolgen und ggf. eingreifen kann sowie einem Kontrollmodul zur Verwaltung der Aktivitäten aller Agenten.“ ([Ferber01] Seite 55)
In diesem Beispiel wird die verteilte Struktur und das verteilte Experten Wissen der einzelnen Agenten sehr gut verdeutlicht.
Verteilte Verfahren zum Lösen von Problemen
Agenten können auch auf die konventionelle Weise zum Lösen eines Problems eingesetzt
werde, wenn das Problem genau bekannt und formuliert ist, und alle benötigten Daten vorhanden sind. Beispiele hierfür sind die Gestaltung von Stundenplänen oder die Festlegung
der Reihenfolge der Schritte, um aus einem Labyrinth- und Graphenlösungen.
Multiagentensimulationen
Simulation beschäftigt sich damit, die reale Welt mittels eines theoretischen Models zu beschreiben. Simulationen werde besonders oft in der Physik, Chemie, Biologie, Ökologie,
Geografie und in den Sozialwissenschaften zur Erklärung und Vorhersage natürlicher Phänomene eingesetzt. Dazu entwerfen Wissenschaftler Modelle für einen Teil unsere Realität
und testen die Gültigkeit, indem sie auf Computern ausgeführt werden. Die Modelle beschreiben meist mathematische Beziehungen zwischen Variablen. Die Variablen werden mit
gemessenen Werten parametrisiert.
Seite 58 von 67
Die am häufigsten verwendeten Modelle sind Differentialgleichungen, Übergangsmatrizen
usw.. Sie basieren auf Wechselwirkung von Input- und Output-Variablen.
Numerische Simulationstechniken weisen folgende Probleme auf:
Abgeschlossenheit der Analyseebene
Die mathematischen Modelle verbinden Parameter miteinander, die sich alle auf
der gleichen Analyseebene befinden. Die Ebenen der Analyse sind voneinander
getrennt. Es ist meist nicht möglich, das ausgeübte Verhalten des einzelnen auf
der Mikroebene mit den globalen Variablen z.B. der Größe einer Population auf
der Makroebene in Einklang zu bringen.
Komplexität und Wirklichkeitsnähe der Parameter
Im Hinblick auf die Übereinstimmung mit der Realität beinhalten die Gleichungen
meist Parameter, die nicht, sehr schlecht oder nur ungenau abgeschätzt werden
können.
Probleme bei der Modellierung von Aktionen
Größte Schwierigkeiten haben mathematische Modelle mit den individuellen Aktionen und Entscheidungen von Individuen. Die meisten kollektiven Phänomene
sind das Ergebnis von Aktionen vieler Individuen, die sich durch die Entscheidung anderer Individuen beeinflussen lassen haben. Phänomen können nur
schwer erklärt werden, wenn die Aktionen nur unter dem Gesichtspunkt der
messbaren Konsequenzen auf der globalen Ebene oder ihrer individuellen Eintrittswahrscheinlichkeit gesehen werden.
Qualitative Mängel
Digitale Simulationen können nur quantitative Parameter berücksichtigen und erscheinen hilflos, wenn sie mit einer Menge von qualitativen Daten gefüttert werden sollen. Mathematische Methoden stoßen rasch an ihre Grenzen, wenn sie
mit den komplizierten Verhaltengewohnheiten von Spezies konfrontiert werden.
Ein bekannter Simulator, der auf einem Multiagentensystem basiert ist „Simdelta“.
„Der Simdelta-Simulator diente der Zusammenfassung des Wissens einer Reihe von Fachleuten (Fischexperten, Ökologen, Biologen, Anthropologen usw.), die viele Jahre lang die
Fischerei im zentralen Niger-Delta in Mali untersuchten. Es sollte ein Weg gefunden werden, der die Modellierung sowohl von quantitativen Daten (z.B. hinsichtlich der Entwicklung
der Überschwemmungen durch den Niger) als auch von qualitativen Daten (wie Fischereitechniken) erlaubt.
Mit dem von F. Bousquet und C. Camier [Cambier92] entwickelten Simulator kann man sowohl die Dynamik einer Fischpopulation – unter Berücksichtigung der zahlreichen biologischen und topologischen Faktoren, die deren Entwicklung beeinflussen können – als auch
die Entscheidungsprozesse der Fischer simulieren.
Seite 59 von 67
Die Fischschwärme und die Fischer werden dabei als Agenten modelliert. Dieser Ansatz
führte zu drei Arten von Agenten: Biotope als Bestandteil der Umwelt, Fische mit reaktivem
Verhalten und als kognitive Agenten modellierte Fischer. Die Umwelt besteht aus Biotopen,
die je nach Wasserstand in unterschiedlicher Weise miteinander verbunden sind. Für jedes
Biotop definiert eine Ressourcenfunktion die Menge an Futter, die einer Fischpopulation je
Zeiteinheit zur Verfügung steht. Die Fischschwärme sind Agenten, die jeweils Mengen von
Fischen repräsentieren und deren Parameter (Größe und Anzahl der Eier, Migrationen,
Nahrung usw.) möglich Anpassungsstrategien beschreiben.
Jeder Fischer wird als kognitiver Agent repräsentiert, sein Verhalten wird also durch den
Inhalt seines Wissensschatzes festgelegt, der seine Überzeugung und diejenigen Regeln
enthält, die seine kognitive Strategie zur Ausbeutung des Biotops beschreiben.
Zwei Versuchsreihen wurden durchgeführt. Bei der ersten ging es um die Veränderung der
Fischpopulation in Abhängigkeit von einer kontinuierlichen Zunahme des Fischens. Diese
Simulation beruhte letztendlich auf dem Wissen von Biologen über Vermehrung, Wachstum,
Migration und Sterblichkeit von Süßwasserfischen. Mit Hilfe der Simulation konnte der bereits bekannte, in drei typischen Phasen unterteilte Verlauf der Populationsentwicklung reproduziert werden. Des Weiteren konnte die Entwicklung eines eingeschränkten Fischfangsystems und insbesondere die Schwankung der spezifischen Zusammensetzung der Fischpopulation sowie die Größe der Fische modelliert werden.“ ([Ferber01] Seite 59 - 60)
Die zweite Versuchsreihe sollte das Verhalten der Fischer modellieren, die Entscheidungen
treffen und sich dabei an den erneuerbaren Ressourcen orientieren. Dieses Modell zeigte
die Bedeutung der Mechanismen zur Entscheidungsfindung im Zusammenhang mit der Dynamik von Fischpopulationen. Strategien, die auf ökonomischem Denken basieren, sind
danach langfristig im Ganzen wesentlich weniger effektiv als jene, die Regen über den
Zugriff auf Raum mit einbeziehen ([Ferber01], Seite 59 – 60).
4.3.3.2.
Der Entwurf synthetischer Welten
Die Konstruktion synthetischer Welten spielt in der Forschung eine bedeutende Rolle. Mit
ihrer Hilfe kann man spezielle Interaktionsmechanismen detaillierter analysieren, als dies
durch reale Anwendungen möglich wäre. Die Analyse des Kooperationsprotokolls oder das
Verstehen des Einflusses individuellen Verhaltens auf die Prozesse in einer Gesellschaft,
kann in der virtuellen Welt oftmals gründlicher als in der realen Welt erfolgen.
4.3.3.3.
Roboterkollektiven
Beim Entwurf von Roboterkollektiven geht es nicht um die Konstruktion von Robotern, sondern um die von Robotergruppen, die physisch zusammenarbeiten müssen, um eine gemeinsame Aufgabe zu erfüllen. Von der vorherigen Anwendung (Entwurf künstlicher Welten) unterscheidet sich diese Aufgabe darin, dass die Roboter-Agenten hier physikalisch in
der realen Welt agieren müssen.
Seite 60 von 67
Das Gebiet der verteilten Robotik umfasst zwei sehr unterschiedliche Teilgebiete: die zellulare Robotik und die mobile Robotik.
Die zellulare Robotik befasst sich mit dem modularen Roboterbau. Ein Roboter wird dabei
als ein Multiagentensystem betrachtet und jedes seiner Teile als ein eigener Agent. Um eine
Bewegung zu machen, ist somit das Zusammenwirken aller seiner Teile, also aller seiner
Agenten nötig.
In der mobilen Robotik setzt man mindestens zwei Roboter ein, die zur Erfüllung einer Aufgabe ihre Bewegungen abstimmen müssen. Z.B. um einen Fußboden zu säubern, ein Gebäude zu überwachen, Kanäle zu reparieren oder gefährliche oder entlegene Gegenden zu
erforschen.
4.3.3.4.
Kinetisches Programmdesign
„Es ist das Anliegen der Kinetik, ein neues Design von Computerprogrammen zu entwickeln, das über traditionelle Datenverarbeitungsverfahren hinausgeht und verteilte Software
mit einer hohen Flexibilität und ausgeprägten Fähigkeiten zur dynamischen Anpassung an
die Umwelt erzeugt. Kinetische Softwaredesign soll also zu Interaktion, Anpassung und Reproduktion von relativ autonomen Agenten nutzen, die in physisch verteilten Universen arbeiten.“([Ferber01] Seite 70)
Die Kinetik schlägt eine Technologie der Software Entwicklung vor, die auf dem Konzept der
Agenten und der Interaktion beruht. Jede Programmeinheit kann die Form eines Agenten
annehmen, der eine gewisse Autonomie besitz und eigene Ziele hat. Er lebt im Netz so wie
ein Tier in einem Ökosystem lebt. Er kooperiert oder handelt mit gleichartigen Einheiten. Der
Benutzer wird so zu einem Hirten, der der Agentenherde Anweisungen geben kann, um
später die Ergebnisse zu erhalten. Das ist zurzeit noch ein Bereich der Sciencefiction, aber
die grundlegenden Verfahren dazu existieren bereits. In absehbarer Zeit werden aber keine
Systeme im produktiv einsetzbaren Zustand existieren.
4.3.4.
Bewertung von Multiagenten-Systemen
Der Nachteil von multiplen Agentensystemen liegt nach wie vor in den Beschränkungen ihrer Kommunikation untereinander. Hier gibt es inzwischen Standardisierungsbemühungen,
um Interaktionen zwischen bisher inkompatiblen Agenten zu ermöglichen. Bis daraus aber
allgemein akzeptierte Regeln umgesetzt werden, wird dieses Hindernis der Hauptgrund
sein, dass mobile intelligente Agentensysteme nicht den erforderlichen Grad an Kooperationsfähigkeit und Intelligenz erlangen, den sie potentiell besitzen [SAPAI02].
Multiagentensysteme sind potentiell sehr gut für räumlich oder funktional verteilte Anwendungen geeignet, die aufgrund der sich dynamisch ändernden Umgebungsbedingungen
große Flexibilität besitzen müssen. Sie werden deshalb vor allem in den Bereichen verteilte
Planung und Kontrolle, kooperierende Expertensysteme und Computerunterstütztes Koope-
Seite 61 von 67
ratives Arbeiten eingesetzt [UNIBITF94].
Multiagentensysteme besitzen hohe qualitative Eigenschaften. Ein Agent in einem Multiagentensystem verfolgt mehrere, z.T. miteinander im Widerspruch liegende Ausprägungen
bzw. Arbeitsvorschriften und Ziele:
Erreichen der individuellen Ziele
Innerhalb der Gruppe muss der Agent seine eigenen Ziele so weit wie möglich erreichen
Abwägung von Interessen
Der einzelne Agent muss sich parallel zu seinem individuellen Verhalten mit den globalen
Zielen der Gruppe abstimmen, was eine dynamische Abwägung zwischen seiner eigenen
und der globalen Zielsetzung erfordert.
Vorteil: Kommunikatives und kooperatives Verhalten
Zur Erreichung seiner und der Ziele der Gruppe muss der einzelne Agent mit anderen
Gruppenmitgliedern kommunizieren und kooperieren. Das hat den Vorteil, dass Wissen auf
mehre Agenten verteilt werden kann. Mehrere spezialisierte Agenten bedeuten für eine
Implementation eine deutliche Erleichterung der Komplexität und einen höheren Grad der
Wiederverwendung eines Agenten.
Vorteil: Wirtschaftlichkeit
Ihre Konstruktion ist aufwendiger, kann aber in Bereichen (wie in Kapitel 4.4.3.1 dargestellt)
in speziellen Anforderungen durchaus ein wirtschaftlich sinnvolles System sein. Positiv ist
die Fehlertoleranz hervorzuheben.
Nachteil: Sicherheitstechnische Aspekte
Die verteilte Struktur und die Bereitschaft zu kommunizieren, stellen erhebliche Sicherheitsrisiken dar (siehe auch Kapitel 4.1.5 Bewertung der Sicherheit von Mobilen Agentensystemen).
Abschlussbemerkung Multiagentensysteme
Multiagentensysteme scheinen eines der interessantesten Agentensysteme zu sein, da sie
als Systeme die Möglichkeit bieten, durch Steigerung an Komplexität und Kooperation den
immer komplexeren Aufgabenstellungen gewappnet zu sein. Auf Grund ihrer Skalierbarkeit
und Fehlertoleranz stellen sie wahrscheinlich das interessanteste Modell für das Design von
autonomen Systemen dar. Mit Hilfe dieses System könnten z.B. viele Aufgaben vorab erledigt werden, um eine Marslandung der Menschen vorzubereiten. Diese Systeme werden
heutzutage schon verstärkt für Erkundungen von unbekannten Orten - z.B anderen Planeten - eingesetzt.
Seite 62 von 67
5. AUSBLICK
Agentensysteme allgemein bieten einiges an Potential, das genutzt werden könnte, Informationssammlung und –gewinnung zu effektivieren und Problemlösungen zu bieten. Im Bereich der Simulation und Unterstützung (Interface-Agenten) arbeiten v.a. intelligente Agenten bereits zuverlässig.
Leider stoßen auch sie an ihre Grenze, sobald sie in Kommunikation mit anderen Agenten
in sicherheitsrelevanten Bereichen eingesetzt werden sollen.
Rein Mobile Agenten sind aufgrund der hohen Sicherheitsrisiken und des administrativen
Aufwands in der Praxis nicht einsetzbar.
Multiagentensysteme bilden erfolgversprechende Ansätze zur Lösung von komplexen Aufgaben. Sie sind in der Praxis bereits sehr erfolgreich in Bereichen im Einsatz, wo sie in gekapselten normierten Systemen laufen können. In heterogenen Systemen sind sie bisher
kaum einsetzbar, außerdem werden sie durch ihre Kommunikationsfähigkeiten untereinander determiniert. Dabei ist man noch weit davon entfernt, dass voneinander unbekannte
Agenten sich treffen und miteinander kommunizieren oder sogar kooperieren.
Andere Agentenformen, die z.B. über konventionelle Techniken übers Netz, operieren oder
einfache Schnittstellenagenten (z.B. „Karl Klammer“) sind durchaus häufig im Einsatz. Diese
Agententypen werden auch in Zukunft eine immer größere Rolle spielen.
Bezugnehmend auf die unter Punkt 2 (Motivation) hypothetischen Aussichten, kann man
abschließend feststellen, dass es noch etliche Hürden zu überwinden gilt, bevor Agenten ihr
Potential ausspielen können.
Dazu gehört insbesondere, dass Agenten mit mobilen Fähigkeiten erst mit der bestehenden
Infrastruktur zusammenwachsen müssen (v.a. was sicherheitsrelevante Aspekte angeht),
dann auch noch miteinander kommunizieren und schließlich auch noch sich verändernden
Umweltbedingungen anpassen können müssen. Erst dies könnte dann auch einen sinnvollen Einsatz von KI-Strategien ermöglichen, so dass man mobile, frei bewegliche intelligente
Agenten im Multiagentensystem-Verbund operieren lassen könnte, die sich auch neuen
Aufgaben selbständig anpassen könnten.
Inwiefern dies allerdings eine Segnung der Zukunft oder erschreckende Zukunftstechnologie
sein wird, wird eine andere Arbeit klären müssen .......
Seite 63 von 67
6. QUELLENVERZEICHNIS
Das folgende Quellenverzeichnis enthält außer schriftlichen Quellen in Papierform auch elektronische Quellen.
Diese können durch ihre beiliegende URL eindeutig identifiziert werden. Soweit es möglich
war, wurde bei diesen Quellen außer dem Zugriffszeitpunkt (die URLs könnten sich ändern)
auch der Stand angegeben, soweit er der Seite anhand der Angaben des Autors, bzw. Angaben zur letzten Aktualisierung oder des HTML-Quellcodes entnommen werden konnte.
Es muss berücksichtigt werden, dass bei einer fehlenden Bemerkung „Stand“ es den Autoren nicht möglich war, die Aktualität des Dokumentes nachzuvollziehen.
„Zugriffszeitpunkt“ bezeichnet den letzten Zugriffszeitpunkt (bei mehrfachen Aufrufen).
Bei Dokumenten in Papierform wurde lediglich das Erscheinungsjahr hinten angestellt.
Der Aufbau des Quellenverzeichnisses ist alphabetisch nach den Abkürzungen (nicht nach
den Autoren).
Autoren als Individuen und Organisationen wie Firmen, Institute oder Organisationen als
Herausgeber wurden gleichberechtigt behandelt, soweit keine einzelner Autor namentlich
ermittelt werden konnte.
[Ballmer81]
Ballmer, T., Brennenstuhl, W.: „Speech act classification“
Springer, 1981
[BA01]
Baumann, J.: “Mobile Softwareagenten”
http://www.informatik.uni-stuttgart.de/ipvr/vs/lehre/ws9900/vorlesungen/MA/M
A.ppt (2001)
Stand: 2001
Zugriffszeitpunkt: 12.12.02
[BM98]
Breu, M.: „Intelligente Agenten (1998)“
http://pilot.fast.de:8030/Mitarbeiter/breu/WWWpages/Vorlesung/sld001.htm
Zugriffszeitpunkt: 12.12.02
Stand: 1998
[BO01]
Bossert, A.: „Agentensysteme“
FH Darmstadt, 2001
[BR]
Baumgartner, R.: „Konzepte der AI- Informationsagenten/-systeme im Internet“;
http://www.dbai.tuwien.ac.at/education/AIKonzepte/Folien/InternetAgenten.pdf
Zugriffszeitpunkt: 23.01.02
[BRHL99]
Busetta, P., Rönnquist, R., Hodgson, A., Lucas, A. : "Light-Weight Intelligent Software in Simulation"
Agent Oriented Software Pty. Ltd., Melbourne, Australia, 1999.
[CL95]
Cohen, R.E., Levesque, H.J.: "Communicative Actions for Artificial Agents"
Proceedings of the First International Conference on Multi-Agent Systems, San
Francisco, Cambridge: AAAI Press, p. 65-72, 1995.
Seite 64 von 67
[CMUMA01] The Intelligent Software Agents Lab -The Robotics Institut: “Multi-Agent Systems”
http://www-2.cs.cmu.edu/~softagents/multi.html
Zugriffszeitpunkt: 02.01.2003
[CMUAL01] The Intelligent Software Agents Lab -The Robotics Institut: “Multi-Agent Learning”
http://www-2.cs.cmu.edu/~softagents/learning.html
Zugriffszeitpunkt: 02.01.2003
[DFKI]
Deutsches Forschungszentrum für künstliche Intelligenz: „Lokationsadaptive
Agentensysteme“
http://www.dfki.de/~wahlster/Ladenburg/sld001.htm
Zugriffszeitpunkt: 26.02.03
[EW01]:
Engelbach, W.: „Customer Care Center in den USA - Professionelle Services
in innovativen Call Center Organisationen“;
http://www.incca.iao.fhg.de/Veroeffentlichungen/Frame_r_veroeffentlichungen
.htm#vortraege;
Stand: 10.01.01.
Zugriffszeitpunkt: 07.12.02
[Ferber01]
Ferber, J.: „Multiagentensysteme“
Addison-Wesley, 2001
[FG96]
Stan F., Graesser, A.: „Is it an Agent, or just a Program?: A Taxonomy for
Autonomous Agents“
Springer-Verlag 1996
[GG]
Gartner-Homepage
http://www.gartnergroup.com/
Zugriffszeitpunkt: 28.01.03
[GT00]:
Grulich, T.: „Seminararbeit Multiagentensysteme / Intelligente Agenten“
Universität Koblenz-Landau, 2000
[HAY95]
Hayes-Roth, B.: "An Architecture for Adaptive Intelligent Systems"
http://citeseer.nj.nec.com/context/38705/0
Stand: 1995
Zugriffszeitpunkt: 22.01.03
[IAG1]
IBM Corporation: “Intelligent Agent Strategy”
http://activist.gpl.ibm.com:81/WhitePaper/ptc2.htm
Zugriffszeitpunkt: 19.11.02
[IBM1]
The IBM Agent [http://activist.gpl.ibm.com:81/WhitePaper/ptc2.htm]
[JM01]:
Jung, M.: „Design und Realisierung einer Plattform für Informationsagenten“
www.informatik.haw-hamburg.de/~kvl/jung/diplom.pdf
Stand: 11.10.2001
Zugriffszeitpunkt: 23.12.02
[KUL02]
Kulzer, R., „Mein Banker, der Agent“
HANDELSBLATT, 13.3.2002.
Seite 65 von 67
[LDO]
Latein-Deutsches Onlinewörterbuch
http://wernersindex.de/latedeua.htm
Zugriffszeitpunkt: 13.11.02
[LO98]
Lange, D.B., Oshima, M.: “Programming and Deploying Java Mobile Agents with
Aglets”.
Addison Wesley 1998.
[MAE93]
Maes, P. Et al., "Learning Interface Agents"
Proceedings of the 11th National Conference on Artificial Intelligence. AAAI, MITPress/AAAI-Press, 1993.
[MAE95]
Maes, P. (1995), "Artificial Life Meets Entertainment: Life like Autonomous
Agents," Communications of the ACM, 38, 11, 108-114.
[MT99]
Malsch, T.: „’Artificial Societies’ außer Kontrolle? -Notizen zum Forschungsprogramm der Sozionik“
http://www.wand5.de/fiwi99/malsch%20text.htm;
Stand: 1999
Zugriffszeitpunkt: 27.11.02
[MIT]
Massachusetts Institute of Technology: “Software Agents Group”
http://agents.media.mit.edu
Stand: 29.05.01
Zugriffszeitpunkt: 03.01.03
[MT92]
Meyers Lexikonredaktion; 1992.
[NE99]
Neumann, B.: „Praktische Informatik 3“
Universität Hamburg, Arbeitsbereich Kognitive Systeme, Vorlesungsfolien 99.
[NIC]
NIC-LAS: “Avatar”;
http://www.nic-las.com/wissensnavigator/show.asp?area= develop&diff=avatare&displaymodus=long&nxplace=diff
Zugriffszeitpunkt: 26.11.02
[OS98]
Schnapauff, O.: „Seminar Netzwerkmanagement 1998 - Netzwerkmanagement mit Mobilen Intelligenten“;
http://216.239.51.100/search?q=cache:dqPz5VPfkH8C:www.ibr.cs.tubs.de/lehre/ws9798/seminar/schnapauff.ps.gz+Schnapauff+Intelligente+Agent
en&hl=de&ie=UTF-8
Stand: 27.01.98
Zugriffszeitpunkt: 04.01.03
[PPW02]
Pichler, J., Plösch, R., Weinrich, W.: „MASIF und FIPA: Standards für Agenten“
Informatik-Spektrum, 18.April 2002.
[PRO01]
Probst; F.: “Mobile Agenten in Verkehrsanwendungen”
http://wwwipd.ira.uka.de/~oosem/AIA2001/pdf/ProbstFolien.pdf
Zugriffszeitpunkt: 26.11.02
[RN95]
Russel, S., Norvig, P. "Artificial Intelligence: A Modern Approach"
Prentice-Hall, 1995.
Seite 66 von 67
[SAP]
SAP: „Software-Agenten – die fleißigen Helfer im Verborgenen“;
http://www.sapinfo.net/public/en/printout.php4/article/Article319013cc3e1f67b1b6/de
Stand: 22.04.2002
Zugriffszeitpunkt: 28.12.02
[SAPAI02]
SAP: “Software-Agents – Undercover Assistants on the Rise”
http://www.sapinfo.net/public/en/category.php4/Category28943c61b1e60d84b/page/0/article/Article-319013cc3e1f67b1b6/en
Zugriffszeitpunkt: 02.01.2003
[SCH01]
Scheffler, S.: „Agentensysteme -Architekturansätze und zentrale Konzepte“
http://www.syssoft.uni-trier.de/systemsoftware/Download/Seminare/ Middleware/middleware.8.book.html
Zugriffszeitpunkt: 07.11.02
[SI]
Siekmann, J.: „Multiagentensysteme“
Vorlesungsfolien Deutsches Forschungszentrum für Künstliche Intelligenz
Saarbrücken
[UNIBITF94] Wachsmuth, I.: „Agentensysteme“
http://www.techfak.uni-bielefeld.de/kvv/WS94-95/kommentare/392112.html
Zugriffszeitpunkt: 02.01.03
[UH]
Uni Hannover: „Agenten-Plattformen und Entwicklungsumgebungen“
http://www.kbs.uni-hannover.de/Lehre/Oberstufenlabor/ Gruppen/Travis/presentation/agents3/agents3.html
[WD99]
Warth, D.: „Praktische Umsetzung von Hypertext-Forschungsergebnissen in
HTML-Publishing“ – Kapitel „Agenten“
http://www.fask.uni-mainz.de/user/warth/hypertext/diplom/Hypertext.html
Stand 1999
Zugriffszeitpunkt: 23.12.02
[YH]
Yaahoo: Finanzen – Nachrichten: „Gartner meldet Nettogewinn für viertes
Quartal und Gesamtjahr“
http://de.biz.yahoo.com/021031/85/31mak.html
Stand: 31.10.02
Zugriffszeitpunkt: 05.01.03
Seite 67 von 67