440 likes | 533 Vues
Agentenbasierte Softwareentwicklung. Referent: Theodor Foerster. Gliederung. Einführung Motivation Beispiel Konzepte Methodik Ausblick & Fazit. Einführung. Bestimmte Anforderungen Inhärente Verteilung Eingeschränkte Umgebungssicht => System von Agenten. Motivation .
E N D
Agentenbasierte Softwareentwicklung Referent: Theodor Foerster Agentenbasierte Softwareentwicklung
Gliederung • Einführung • Motivation • Beispiel • Konzepte • Methodik • Ausblick & Fazit Agentenbasierte Softwareentwicklung
Einführung • Bestimmte Anforderungen • Inhärente Verteilung • Eingeschränkte Umgebungssicht => System von Agenten Agentenbasierte Softwareentwicklung
Motivation • Einheitliche Entwicklungsmethodik • Synergien nutzen => Vorteile von Frameworks Agentenbasierte Softwareentwicklung
Gliederung • Einführung • Motivation • Beispiel • Konzepte • Methodik • Ausblick & Fazit Agentenbasierte Softwareentwicklung
Virtueller Fußball • Server als Simulator • Agenten als Spieler • Simulator kümmert sich um reale Spielverhältnisse • Agenten können sich absprechen • Vizeweltmeister RoboCup 98 (Simulation) Agentenbasierte Softwareentwicklung
Weitere Beispiele • Assistent zur Nutzung verteilten Know-hows • Schwindelmex • Dezentralisiertes, flexibles Job-Shop-Scheduling Agentenbasierte Softwareentwicklung
Gliederung • Einführung • Motivation • Beispiel • Konzepte • Methodik • Ausblick & Fazit Agentenbasierte Softwareentwicklung
Gemeinsamkeiten • Nachrichtenaustausch • Ähnliche Gliederung der Komponenten Konzepte für • Analyse • Entwurf • Implementierung Agentenbasierte Softwareentwicklung
Analyse - Bestandteile • Steuerungsmodul • Wissensbasis • Interaktionmodul • Ausführungsmodul • Managementschnittstelle Agentenbasierte Softwareentwicklung
Bestandteile - Steuerungsmodul • Regelt Kommunikation • Konfiguriert den Agenten • Enthält Entscheidungsalgorithmus • Vorteil: Komponenten müssen nicht alle anderen kennen • Nachteil: Eingeschränkter Informations- und Steuerungsfluss Agentenbasierte Softwareentwicklung
Bestandteile - Wissensbasis • Dreigeteilt in • Fähigkeiten und Handlungsvarianten • Aktuelle Umgebungsinformationen • Ziele • Spezialinformationen • Wissensbasis beeinflusst Entscheidungen Agentenbasierte Softwareentwicklung
Bestandteile - Interaktionsmodul • Sendet/empfängt Umgebungsinformationen • anwendungsspezifische Aufgaben Agentenbasierte Softwareentwicklung
Bestandteile - Ausführungsmodul • Führt verpflichtende Aktionen aus • Kapselt Aktionsausführung von Aktionsauswahl • Enthält Parallelisierungstrategie Agentenbasierte Softwareentwicklung
Bestandteile - Managementmodul • Enthalten wenn kein klarer Ablauf erkennbar • Für geordneten Ablauf zuständig • Einstellungen Agentenbasierte Softwareentwicklung
Analyse - Datenstrukturen • Umgebungsinformation • Handlungsaufforderung • Situation • Aktion • Plan • Fähigkeit • Handlungsvariante • Ziel • Verpflichtung • Aktivität Agentenbasierte Softwareentwicklung
Übersicht Datenstrukturen Agentenbasierte Softwareentwicklung
Analyse - Algorithmen • Aktualisierung der Umgebungsinformation • Auswahl der nächsten Aktion • Ablaufsteuerung Agentenbasierte Softwareentwicklung
Übersicht Algorithmen Agentenbasierte Softwareentwicklung
Analyse - Systemsicht • Adresse • Identifikation • Nachricht • Umgebungsinformation & Handlungsaufforderung • Protokoll • Kommunikationsregeln Agentenbasierte Softwareentwicklung
Entwurf - Bestandteile • Steuerungsmodul • Wissensbasis • Interaktionsmodul • Ausführungsmodul • Managementschnittstelle Agentenbasierte Softwareentwicklung
Beispiel - Wissensbasis Agentenbasierte Softwareentwicklung
Entwurf - Datenstrukturen • Umgebungsinformation • Liste aus Attribut-Werte-Paaren • Request • Parameter, Priorität, Endtermin • Capabilities • Namen, Parametername, Wertebereich, Bearbeitungsdauer, uvm. • ... Agentenbasierte Softwareentwicklung
Entwurf - Algorithmen • Aktualisierung der Umgebungsinformation • Entsprechender Parameter in die Wissensbasis • Auswahl der nächsten Aktion • Ablaufsteuerung • Managt einzelne Tasks (stop, run,...) Agentenbasierte Softwareentwicklung
Entwurf - Systemsicht • Adresse • Host, port, ID • Nachricht • Sender, Empfänger, Typ, Inhalt • Protokoll • z.B. Beziehung von Nachrichtentyp und Rolle Agentenbasierte Softwareentwicklung
Implementierung • Verschiedene Kommunikationstechniken • Datenschutz und –sicherheit • Parallelität • Frage der Programmiersprache • Java (OOP) vs. Prolog (logisch) Agentenbasierte Softwareentwicklung
Aspekte • Konzepte variieren nach Fragestellung • Speziell zu beachtende Gebiete • Wissensrepräsentation • OOP • Agententechnik generell Agentenbasierte Softwareentwicklung
Gliederung • Einführung • Motivation • Beispiel • Konzepte • Methodik • Ausblick & Fazit Agentenbasierte Softwareentwicklung
Methodik - Begriffe • Agent • Verteilte Softwaresysteme • Software-Entwicklung • Analyse und Entwurfsmuster • Frameworks Agentenbasierte Softwareentwicklung
Begriffe - Framework • Anpassbare Menge an abhängigen Klassen • Wiederverwendbare Abstraktion • Framework enthält • Konzepte • Schnittstellen • Invarianten der Interaktion • Ablaufsteuerung • Basis-Implementierung Agentenbasierte Softwareentwicklung
Begriffe - Framework Makro Architektur „Erst lose, dann starr“ Agentenbasierte Softwareentwicklung
Strukturierung des Framework • Abhängig von der Programmiersprache • In Schichten gegliedert • Konzeptschicht • Standardschicht • Variantenschicht • Implementierung kann in jeder Schicht ansetzen Agentenbasierte Softwareentwicklung
Framework - Bestandteile • Standardschicht: abstrakte Klassen der Komponenten • Variantenschicht: Kommunikation & Wissensmanagement Agentenbasierte Softwareentwicklung
Framework - Datenstrukturen • Standardschicht: z.B. Aktionsauswahl & Speicherung der Umgebung • Variantenschicht: Aktion & Handlungsvarianten Agentenbasierte Softwareentwicklung
Framework - Algorithmen • Standardschicht: abstrakte Ablaufsteuerung • Variantenschicht: z.B. Planauswahl Agentenbasierte Softwareentwicklung
Framework - System • Unterstützt Zusammenspiel mehrerer Agenten • Enthält Analysefunktionen • Kann Kooperationspläne abspeichern Agentenbasierte Softwareentwicklung
Entwicklungsmethoden • Agentenorientierte Analyse • Theoriebasierte Konstruktion • Entwickeln mit Mitteln der Logik • BDI-Agenten • Modellierung durch Skripts • uvm. Agentenbasierte Softwareentwicklung
Entwicklungsmethoden • Unterscheidung: • Herangehensweise • Ausgangspunkt • Eingesetzte Mittel • Phasen (Analyse, Entwurf,…) • Sichtweise Agentenbasierte Softwareentwicklung
Agenten & Java • Agenten benötigen keine Vererbung • Als Implementierungssprache geeignet • Es existiert noch kein auf Java abgestimmtes Framework Agentenbasierte Softwareentwicklung
Bestehende Frameworks in Java • AgentBuilder (www.agentbuilder.com) • ABE • Intelligent Agent Factory • JACK Agentenbasierte Softwareentwicklung
Gliederung • Einführung • Motivation • Beispiel • Konzepte • Methodik • Ausblick & Fazit Agentenbasierte Softwareentwicklung
Ausblick • Framework muss in konkreten Projekten bestehen • Zusammenspiel von Agenten & Java ausführlicher evaluieren => Praktikum: Verteiltes Programmieren von Agentensystemen Agentenbasierte Softwareentwicklung
Fazit • Entwicklungsmethode für Agentensysteme • Eignung in Projekten? Agentenbasierte Softwareentwicklung
Ende Fragen?!? Literatur: Kühnel, Ralf; Agentenbasierte Softwareentwicklung, Addison Wesley Http://www.ki.informatik.hu-berlin.de Agentenbasierte Softwareentwicklung