9 Agentenorientierte Softwareentwicklung - Universität Stuttgart
9 Agentenorientierte Softwareentwicklung - Universität Stuttgart
9 Agentenorientierte Softwareentwicklung - Universität Stuttgart
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Softwaretechnik II<br />
ST II<br />
§ 9 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
Lernziele<br />
– Wissen, was ein Agent ist<br />
– Die agentenorientierte Denkweise verstehen<br />
– Die Konzepte der agentenorientierten <strong>Softwareentwicklung</strong> kennen<br />
– Die Vorgehensweise bei der agentenorientierten <strong>Softwareentwicklung</strong><br />
verstehen<br />
– Unterscheiden können, für welche Probleme Agenten geeignet sind<br />
Literatur<br />
– M. Luck, R. Ashri, M. D‘Inverno: Agent-Based Software Development,<br />
Artech House Publishers, 2004<br />
– R. Kühnle: Agentenbasierte <strong>Softwareentwicklung</strong>, Methode und<br />
Anwendungen, Addison-Wesley, 2001<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 404
Softwaretechnik II<br />
ST II<br />
§ 9 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.1 Herausforderungen bei komplexen technischen Systemen<br />
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.3 <strong>Agentenorientierte</strong> Methoden<br />
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 405
9.1 Herausforderungen bei komplexen technischen Systemen<br />
ST II<br />
Herausforderungen bei komplexen technischen Systemen 1<br />
Beispiel Produktionssysteme<br />
Zylinderkopffertigung<br />
Farbherstellung<br />
– Werkstücke durchlaufen einzelne<br />
Maschinen<br />
– Maschinen führen verschiedene<br />
Fertigungsschritte aus<br />
Herausforderungen:<br />
– Fehler in einer Maschine<br />
• Ausfall der gesamten Linie?<br />
– Hinzufügen oder Modifikation einer<br />
Maschine<br />
• Manuelle Anpassung der<br />
Steuerungssoftware erforderlich?<br />
– Neue Werkstücke und Produkt-<br />
Varianten<br />
• Neuentwicklung der<br />
Steuerungssoftware erforderlich?<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 406
9.1 Herausforderungen bei komplexen technischen Systemen<br />
ST II<br />
Herausforderungen bei komplexen technischen Systemen 2<br />
Beispiel Verkehrssysteme<br />
– Automatischer Fahrbetrieb<br />
– Automatische Streckenvergabe und<br />
Fahrplanverwaltung<br />
Herausforderungen:<br />
– Ausfall eines Streckenabschnitts<br />
• Dynamische Umleitung der<br />
Zugverbindung möglich?<br />
– Ausfall eines Zuges<br />
• Automatische Fahrplananpassung<br />
und Neudisposition von Zügen<br />
möglich?<br />
– Einführung neuer Verbindungen / Züge<br />
• Überarbeitung der Fahrpläne<br />
erforderlich?<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 407
9.1 Herausforderungen bei komplexen technischen Systemen<br />
ST II<br />
Herausforderungen bei komplexen technischen Systemen 3<br />
Beispiel Energiemanagement<br />
– Sicherheitsrelevante elektronische Systeme<br />
brauchen zuverlässige Energieversorgung<br />
– Verteilung der verfügbaren Energie auf<br />
einzelne Verbrauchersteuergeräte<br />
– Bei Bedarf Abschaltung von Verbrauchern<br />
durch Batteriesteuergerät<br />
Herausforderungen:<br />
– Zentrale Batteriesteuergeräte „Single<br />
Point of Failure“<br />
• Redundante Auslegung ist teuer<br />
– Dezentrale Energieverteilung durch alle<br />
Verbrauchersteuergeräte<br />
• Bisher keine Softwarelösung für<br />
diesen Ansatz<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 408
9.1 Herausforderungen bei komplexen technischen Systemen<br />
ST II<br />
Herausforderungen bei der <strong>Softwareentwicklung</strong><br />
Anforderungen bei den Beispielen:<br />
– Höhere Robustheit, Fehlertoleranz und Flexibilität<br />
Herausforderung:<br />
– Entwicklung flexibler und anpassungsfähiger Systeme<br />
Struktur<br />
Gesamtverhalten<br />
Ressourcen- und Leistungsverteilung<br />
Aufgabenverteilung<br />
– Änderungen von Struktur und Verhalten sind nicht immer vorhersehbar<br />
Abhängig von Umgebung des Systems<br />
Abhängig von aktueller Situation<br />
Ziel: Entwicklung von Systemen, die in der Lage sind, sich entsprechend<br />
der aktuellen Situation selbst zu organisieren<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 409
Frage zu Kapitel 9.1<br />
ST II<br />
Frage zu Kapitel 9.1<br />
Welche Herausforderungen gibt es bei <strong>Agentenorientierte</strong>r<br />
<strong>Softwareentwicklung</strong>?<br />
Antwort<br />
f<br />
f<br />
Komplexe Datenstrukturen<br />
<br />
Das Verhalten des Systems in der Entwurfsphase ist nicht vorhersehbar<br />
Komplexe Anforderungen<br />
<br />
Anpassungsfähige und flexible Systeme<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 410
Softwaretechnik II<br />
ST II<br />
§ 9 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.1 Herausforderungen bei komplexen technischen Systemen<br />
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.3 <strong>Agentenorientierte</strong> Methoden<br />
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 411
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
Nachteile heutiger Denkweise zur <strong>Softwareentwicklung</strong><br />
<strong>Softwareentwicklung</strong> für Automatisierungssysteme heute<br />
• Funktionsorientiert, ablauforientiert, zustandsorientiert, objektorientiert<br />
Struktur und Verhalten der Software im Entwurf fest vorgegeben<br />
• Funktionalität der Systemelemente<br />
• Beziehungen zwischen Systemelementen<br />
Statisches Modell der Software<br />
• Alle möglichen Situationen im Entwurf berücksichtig<br />
Hohe Abhängigkeit zwischen Systemelementen<br />
• Bsp.: Ausfall eines Elements<br />
a) Entweder Alternative im Entwurf definiert<br />
b) oder Ausfall der Funktion<br />
Ziel: Softwaresysteme, die auf Situationen reagieren können, die nicht<br />
konkret im Entwurf vorgesehen sind<br />
• Z. B. Sensorausfall<br />
• Z. B. Dynamisch alternativer Ablauf<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 412
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
Wie entwickelt man Software agentenorientiert?<br />
Problem-<br />
Beschreibung<br />
Analyse / Entwurf<br />
Modell<br />
Implementierung<br />
Softwaresystem<br />
1. Zerlegung<br />
und Abstraktion<br />
– Zerlegung in autonome Agenten<br />
– Abstraktion auf Basis<br />
agentenorientierter Konzepte<br />
2. Strukturierung<br />
– Strukturen werden nicht<br />
explizit vorgegeben<br />
– Beschreibung möglicher Beziehungen<br />
durch Interaktionsmodelle<br />
Die agentenorientierte <strong>Softwareentwicklung</strong> besteht aus<br />
<strong>Agentenorientierte</strong><br />
Konzepte<br />
Basieren auf<br />
<strong>Agentenorientierte</strong><br />
Methoden<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 413
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
<strong>Agentenorientierte</strong> Konzepte (1)<br />
– Agent:<br />
Softwareeinheit mit definiertem Ziel<br />
Autonomes Verhalten zur Erreichung des Ziels<br />
Interaktion mit Umgebung und anderen Agenten<br />
Dauerhafte Beibehaltung des inneren Zustandes<br />
– Grundkonzepte der agentenorientierten Denkweise<br />
Kontrolle über<br />
Zustand und<br />
Verhalten<br />
Hohe Abstraktion<br />
(z.B. Verhandlung)<br />
Zustand und Verhalten<br />
Autonomie<br />
Interaktion<br />
Kapselung<br />
Anpassungsfähigkeit<br />
Mobilität<br />
Zielorientierung<br />
Aktivität<br />
•Ziele vorgegeben<br />
•Bestimmt Verhalten<br />
•Ggf. anpassbar<br />
Proaktivität (vorausschauendes<br />
Verhalten,<br />
Eigeninitiative<br />
•Fortlaufender Kontrollfluss<br />
•Unabhängig von Aktivierung<br />
Persistenz<br />
Reaktivität (Umwelt wahrnehmen<br />
und reagieren)<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 414
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
<strong>Agentenorientierte</strong> Konzepte (2)<br />
Was bedeutet eigentlich Autonomie?<br />
Recht, eine geforderte Leistung entsprechend der aktuellen Fähigkeiten<br />
zu erbringen<br />
• vollständig – partiell – gar nicht<br />
Möglichkeit, innerhalb des Einflussbereiches selbstständig zu handeln<br />
Einschränkung der Autonomie möglich<br />
• Erfüllung von übergreifenden Anforderungen<br />
Unterschied zur Objektorientierung (höhere Abstraktionsebene)<br />
Objekt<br />
– Kapselung von<br />
Identität („wer“)<br />
Zustand („was“)<br />
Verhalten („wie“)<br />
– Keine Kontrolle über Aufruf<br />
Agent<br />
– Zusätzlich Kapselung von<br />
Freiheitsgrade „wann“<br />
der Aktionswahl „mit wem“<br />
und Interaktion „ob überhaupt“<br />
– Anfrage statt Aufruf<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong><br />
415
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
<strong>Agentenorientierte</strong> Konzepte (3)<br />
Wie finden Interaktionen bei Agenten statt?<br />
– Herkömmliche Software<br />
Interaktion auf syntaktischer Ebene<br />
Funktionsaufrufe zwischen Funktionen<br />
Botschaften zwischen Objekten<br />
Aufruf beinhaltet Bedeutung<br />
– Agenten: flexible Interaktionen<br />
Interaktion auf semantischer Ebene<br />
Austausch von Nachrichten<br />
Z.B. Anfrage, Informationsweitergabe,<br />
Angebot, Anmeldung<br />
– Bedeutung als Teil der Nachricht<br />
Objekt1<br />
Get_Sensorwert ()<br />
Objekt2<br />
Get_Sensorwert<br />
Komm.<br />
Agent1<br />
(request<br />
sender: Agent1<br />
receiver: Agent2<br />
Content: query(Sensor)<br />
Komm.<br />
Agent2<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 416
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
ST II<br />
Einsatzgebiete für agentenorientierte <strong>Softwareentwicklung</strong><br />
– Dezentrale Systeme<br />
Natürlich verteilt, modular<br />
– Strukturell veränderbare Systeme<br />
Nicht alle Strukturinformation zur Entwurfszeit bekannt<br />
Struktur ändert sich dynamisch<br />
Bsp.: Automatisierungsanlagen, Transportsysteme, Handelssysteme<br />
– Systeme mit komplexen, variablen Abläufen<br />
Bsp.: Produktionssysteme, Roboter, Flugleitsysteme<br />
– Kooperative Systeme<br />
Umfangreiche Koordinationsprozesse erforderlich<br />
Bsp.: E-Commerce, Informations-Management, Energiemanagement<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 417
Frage zu Kapitel 9.2<br />
ST II<br />
Frage zu Kapitel 9.2<br />
Warum kann derzeit die Steuerung von Echtzeitautomatisierungssystemen<br />
nicht agentenorientiert entwickelt werden?<br />
Antwort<br />
f<br />
f<br />
<br />
<br />
<br />
<br />
<br />
<br />
Struktur und Verhalten der Software im Entwurf vorgegeben<br />
Umfangreicher Code<br />
Statisches Modell der Software<br />
Parallele Tasks<br />
Abhängigkeit zwischen Systemelementen<br />
Hohe Zeitanforderungen an die Interaktion zwischen Teilsystemen<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 418
Softwaretechnik II<br />
ST II<br />
§ 9 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.1 Herausforderungen bei komplexen technischen Systemen<br />
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.3 <strong>Agentenorientierte</strong> Methoden<br />
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 419
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong> Methoden<br />
– Unterstützung der Schritte zwischen Problembeschreibung und<br />
Implementierung<br />
– Zusätzliche Konzepte für Analyse & Entwurf<br />
Unterstützung der agentenorientierten Grundkonzepte<br />
Z.B. Rollenanalyse, Use Cases, Zielanalyse<br />
Schwerpunkte auf Interaktion und Verhalten<br />
– Viele unterschiedliche Methoden<br />
Verschiedene Analysekonzepte<br />
und Vorgehensweisen<br />
Verschiedene Notation<br />
Teilweise industrielle Erfahrungen<br />
GAIA<br />
PASSI<br />
MaSE<br />
Agent-UML<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 420
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong> Analyse - Vorgehen<br />
Hilfsmittel zur agentenorientierten Betrachtung eines Sachverhalts<br />
1. Zielhierarchieanalyse<br />
Überführung der Anforderungen<br />
in detaillierte Ziele<br />
2. Rollenanalyse<br />
Position + Verantwortlichkeit<br />
(Aufgaben) eines Elements<br />
Gruppierung kohärenter Ziele zu Rollen<br />
Rollen haben konkrete Aufgaben<br />
Teilziel 1<br />
Rolle A<br />
Teilziel 1<br />
Gesamtziel<br />
Teilziel 2<br />
Teilziel 2.1 Teilziel 2.2<br />
Rolle B<br />
Teilziel 2, 2.2<br />
Aufg.1 Aufg. 2 Komm. Aufg. 3<br />
3. Agentenidentifikation<br />
Agenten = aktive Elemente im System<br />
Aufgaben und Entscheidungsträger<br />
Übernahme einer oder mehrerer Rollen<br />
Agent<br />
Rolle A<br />
Rolle B<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 421
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong> Analyse – Beispiel<br />
1. Ziele<br />
1. Überwache Pumpsystem und informiere Personal<br />
1.1 Überwache Temperatur<br />
und melde Ereignisse<br />
1.2 Überwache Druck<br />
und melde Ereignisse<br />
1.1.1<br />
Überwache<br />
Grenzwerte<br />
1.1.2<br />
Überwache<br />
Schwankung<br />
1.1.3<br />
Informiere<br />
Personal<br />
...<br />
Rollen<br />
Agenten<br />
GrenzwertWächter<br />
1.1.1<br />
Ermittle<br />
Temperatur<br />
Prüfe<br />
Bereich<br />
Temp.Melder<br />
1.1<br />
Melde<br />
Grenzwert- Ereignis<br />
überschreitung<br />
Monitoring-<br />
Agent<br />
Grenzwertwächter<br />
Temperaturmelder<br />
Personal<br />
Zeige An<br />
Ereignismelder<br />
1.1.3<br />
Informiere<br />
Personal<br />
Ergeignismeldung<br />
Alarm-<br />
Agent<br />
Ereignismelder<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 422
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong>r Entwurf (1)<br />
1. Beschreibung des agenteninternen Ablaufs<br />
Z.B. mit Zustandsdiagrammen<br />
Zustandsänderung des<br />
Pumpsystems<br />
[Sicherheitscheck OK]<br />
Zustandsänderung des<br />
Pumpsystems<br />
[Sicherheitscheck OK]<br />
S<br />
sicherer Zustand<br />
Sicherheitscheck<br />
Zustandsänderung<br />
[Sicherheitscheck nicht OK]<br />
unsicheren Zustand melden<br />
Zustandsänderung[Sicherheitscheck OK]<br />
unsicherer Zustand<br />
Sicherheitscheck<br />
E<br />
E<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 423
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong>r Entwurf (2)<br />
2. Beschreibung des Aufbaus der Agenten<br />
Z.B. mit Klassendiagrammen<br />
Agent<br />
(from JADE)<br />
<br />
Pumpsystem<br />
AGENT TYPE : String<br />
version : String = 1.0<br />
Pumpsystem()<br />
shutdown()<br />
setup()<br />
register_WithAMS()<br />
register_WithDF()<br />
SimpleBehaviour<br />
(from JADE)<br />
OneShotBehaviour<br />
(from JADE)<br />
Behaviour<br />
(from JADE)<br />
CompositeBehaviour<br />
(from JADE)<br />
CyclicBehaviour<br />
(from JADE)<br />
<br />
Anweisung zum Pumpsystem senden<br />
<br />
Pumpsystemanforderung empfangen<br />
<br />
Temperatur überwachen<br />
Anweisung zum Pumpsystem senden()<br />
start Task()<br />
Pumpsystemanforderung empfangen()<br />
start Task()<br />
Temperatur überwachen()<br />
start Task()<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 424
9.3 <strong>Agentenorientierte</strong> Methoden<br />
ST II<br />
<strong>Agentenorientierte</strong>r Entwurf (3)<br />
3. Beschreibung der Interaktionen zwischen Agenten<br />
Z.B. mit Sequenz- oder Aktivitätsdiagrammen<br />
Pumpsystemanforderung<br />
senden<br />
Pumpsystemanforderung<br />
empfangen<br />
Temperatur<br />
überwachen<br />
HW-Schnittstelle Anweisung<br />
zum Pumpsystem empfangen<br />
Anweisung zum<br />
Pumpsystem senden<br />
4. Beschreibung der Kommunikation zwischen Agenten<br />
1. Sprache (Nachrichtenformat)<br />
2. Interaktionsprotokoll<br />
3. Ontologie<br />
Festlegung der Bedeutung des Nachrichteninhalts<br />
Gemeinsamer Wissensbereich der Agenten<br />
Applikationsabhängig<br />
Z.B. „Sensor“ hat „Messwert“<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 425
Frage zu Kapitel 9.3<br />
ST II<br />
Frage zu Kapitel 9.3<br />
Welche Aktivitäten gehören zur agentenorientierten Analyse<br />
Antwort<br />
<br />
Ermittlung der Ziele des Systems<br />
f<br />
f<br />
Beschreibung der agentenorientierten Abläufe<br />
<br />
Ableitung der Rollen<br />
<br />
Identifizierung der Agenten<br />
Beschreibung der Interaktion zwischen Agenten<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 426
Softwaretechik II<br />
ST II<br />
§ 9 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.1 Herausforderungen bei komplexen technischen Systemen<br />
9.2 <strong>Agentenorientierte</strong> <strong>Softwareentwicklung</strong><br />
9.3 <strong>Agentenorientierte</strong> Methoden<br />
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 427
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
ST II<br />
Implementierung von Agenten<br />
AO-Konzepte<br />
Eigenschaften<br />
Problem-<br />
Beschreibung<br />
Analyse / Entwurf<br />
Modell<br />
Implementierung<br />
Softwaresystem<br />
– Wie können agentenorientierte Konzepte implementiert werden?<br />
Autonomie<br />
Trennung von Nachrichtenaustausch<br />
und -verarbeitung<br />
Abstrakte Interaktionen<br />
Verhandlungen<br />
Flexible Interaktionen<br />
und Beziehungen<br />
Ziele<br />
Proaktivität<br />
Kommunikation über Protokolle<br />
Verzeichnisdienste zum dynamischen<br />
Aufbau von Beziehungen<br />
Bedingungen, Regelbibliothek<br />
Interne Aktivierung, eigener Thread<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 428
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
ST II<br />
Aufbau eines Agenten<br />
– Aufbau des Agenten muss agentenorientierte Konzepte realisieren<br />
– Agent beinhaltet:<br />
Abbild der relevanten Umgebung<br />
Ziele<br />
Mögliche Aktionen<br />
Umgebungsmodell<br />
Verhaltensregeln<br />
Fähigkeiten<br />
Agent<br />
Umgebungsmodell<br />
Ziele<br />
Ziele<br />
Ziele<br />
Fähigkeiten<br />
Verhalten<br />
Wahrnehmung<br />
Beeinflussung<br />
U<br />
m<br />
g<br />
e<br />
b<br />
u<br />
n<br />
g<br />
– Architektur Agent: Einzelne Module z.B. für<br />
Kommunikation, Auftragsverarbeitung, Entscheidung, Verhandlung<br />
Interne Parallelität<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 429
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
ST II<br />
Aufbau von Agentensystemen<br />
– Agentensystem muss Agenteninteraktion und Agentenlebenszyklus<br />
unterstützen:<br />
Wissen über die Existenz anderer Agenten in der Umgebung<br />
Bekanntgabe der Fähigkeiten aller Agenten<br />
Kommunikationsmedium<br />
– Standard für Systemarchitektur von Agentensystemen<br />
Auskunftsdienst<br />
(White pages):<br />
Bezeichner und<br />
Kommunikationsadressen<br />
aller<br />
Agenten<br />
Kommunikationsinfrastruktur<br />
Agent<br />
Agent<br />
Management<br />
System<br />
Directory<br />
Facilitator<br />
Message Transport System<br />
Weitere<br />
Agentensysteme<br />
Auskunftsdienst<br />
(Gelbe-Seiten):<br />
• Anmelden<br />
eigener Dienste<br />
• Ermitteln der<br />
Dienste anderer<br />
Agenten<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 430
9.4 Agentensysteme – Aufbau, Struktur und Implementierung<br />
ST II<br />
Implementierung von Agenten<br />
– Verschiedene Möglichkeiten der Implementierung<br />
<strong>Agentenorientierte</strong> Programmiersprachen<br />
Konventionelle Programmiersprachen<br />
Agenten Frameworks / Plattformen<br />
Agenten Frameworks und Plattformen<br />
– Meist in herkömmlichen Programmiersprachen implementiert (Java)<br />
– Umfangreiche Hilfsmittel zur Implementierung<br />
Agentenerzeugung, Life-Cycle Management und Persistenz<br />
Bibliotheken für verschiedene Verhaltensstrategien<br />
Agentenkommunikation: Sprachen (z.B. ACL), Protokolle<br />
Agenteninteraktion: Verzeichnisdienste (Gelbe Seiten)<br />
– Laufzeitumgebung<br />
z.B. Agent-0<br />
z.B. Jade, Leap<br />
Je besser die Implementierungsumgebung agentenorientierte<br />
Konzepte unterstützt, desto einfacher ist die Implementierung<br />
Film: Agenten<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 431
Frage zu Kapitel 9.4<br />
ST II<br />
Frage zu Kapitel 9.4<br />
Was sind Bestandteile eines Agenten?<br />
Antwort<br />
f<br />
<br />
<br />
<br />
<br />
<br />
Umgebungsmodell<br />
Message Transport System<br />
Verhaltensregeln<br />
Fähigkeiten<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 432
Vorbereitungsfragen<br />
ST II<br />
Vorbereitungsfragen zu § 9<br />
Frage 1: Methoden (SS 04)<br />
Nennen Sie einen funktionalen Unterschied zwischen den Methoden PASSI und GAIA<br />
Frage 2: <strong>Agentenorientierte</strong> Entwicklung (SS 05)<br />
In welchen Anwendungsbereichen ist die agentenorientierte Entwicklung nicht sehr sinnvoll?<br />
Begründen Sie Ihre Aussage.<br />
© 2013 IAS, <strong>Universität</strong> <strong>Stuttgart</strong> 433