ASDL:Software-Agenten

From Wiki

Jump to: navigation, search

Endbericht des ASDL-Projekts
Inhaltsverzeichnis | Hauptseite des ASDL-Projekts

2.1 Suchtaktiken und Suchstrategien <<<<< | 2.2 Software-Agenten | >>>>> 2.3 Adaptivität

Contents

Allgemein

Software-Agenten sind eine Art Programmierparadigma - also das der Programmiertechnik zugrunde liegende Prinzip (wie z.B. Objektorientierung). Der Entwickler hält gewisse Formen und Vereinbarungen ein und bekommt dadurch wünschenswerte Effekte/Eigenschaften des Programms.

Eigenschaften

Nähert man sich dem Kompositum "Software-Agent" über eine Definition der Teilkomponenten:

Software: "Software bezeichnet alle nichtphysischen Funktionsbestandteile [...] eines Computers [...] ."1
Agent: "Ein Agent (lat. Handelnder) handelt im Auftrag eines anderen für dessen Interessen. Agenten können somit Aufträge von Staaten, Wirtschaftsunternehmen oder Privatpersonen ausführen." 2

so kann man auf die Wortbedeutung implizierten Eigenschaften eines solchen schließen.

  • Autonomie (autonom) - das Programm arbeitet weitgehend unabhängig von Benutzereingriffen (Selbständige Arbeitsweise)
  • Interaktion / Wahrnehmung
    Agent und Umwelt
    Agent und Umwelt
    • reaktiv - das Programm reagiert auf (Änderung der) Umgebung
    • proaktiv - das Programm löst Aktionen aufgrund eigener Initiative aus
    • sozial - das Programm kommuniziert/kooperiert mit anderen (Agenten). Zur Kooperation ist evtl. Koordination notwendig.
    • lernfähig/anpassungsfähig - das Programm lernt aufgrund zuvor getätigter Entscheidungen bzw. Beobachtungen. – adaptiv
  • Intelligenz
    • Fach- oder Bereichswissen
    • Schlußfolgern und Planen
  • Mobilität - Ein mobiler Agent kann sich zwischen (verschieden) Umwelten bewegen.

Aus Sicht der Umwelt kann man dem Agenten (also dem Zusammenwirken aller Eigenschaften) eine Art Charakter zugestehen. Die genauen Ausprägungen der Eigenschaften variieren stark je nach (Verwendungs-)Zweck des Agenten. Als Schlussfolgerung nun zwei Definitionen, die häufig verwendet werden:

"Der Begriff Agent stellt eine Metapher für bestimmte Softwareprogramme dar, welche die Fähigkeit haben, eine vorgegebene Aufgabe in einer offenen Umgebung unter Zuhilfenahme von bestimmten menschlichen Eigenschaften wie autonomem Verhalten, sozialer Kooperation, Intelligenz und Lernfähigkeit durchzuführen. Die Ausprägung bzw. der Umfang der Fähigkeiten hängt vom jeweiligen Einsatzbereich ab."3
"Ein Softwareagent ist ein Programm, das für einen Benutzer bestimmte Aufgaben erledigen kann und dabei einen Grad an Intelligenz besitzt, der es befähigt, seine Aufgaben in Teilen autonom durchzuführen und mit seiner Umwelt auf sinnvolle Art und Weise zu interagieren."4

Beide Definitionen zusammen decken die „Idee“ der Software-Agenten recht gut ab. Um die Begriffsbestimmung über die Eigenschaften abzurunden, ist noch wichtig zu erwähnen, dass ein Agent immer nur ein Teil seiner Umwelt ist, auf die er spezialisiert ist. Er ist konzipiert auf bestimmte, auf ihn zurechtgeschnittene, Einflüsse der Umwelt zu reagieren.

Vorteile

Da nun aufgezeigt ist, was einen Agenten ausmacht, sollte man auch auf die Vorteile der Agenten orientierter Programmierung kommen. Leider ist es nicht so einfach, eine abschließende Features-Liste der Agentensysteme im Allgemeinen aufzustellen. Agentenbasierte Softwareentwicklung ist kein Ansatz der einen anderen Ansatz ausschließt (wie z.B. objektorientierte Programmierung - prozedurale Programmierung). Vielmehr ergänzt dieser Ansatz andere mögliche und bekommt so auch deren Vor- und Nachteile. Hinzu kommt noch - wie bereits schon erwähnt – die Spezialisierung eines Agenten. Deshalb ist die nun folgende Liste der "Features Agentenbasierender Softwareentwicklung" nicht im vollen Umfang überall gültig sondern mehr eine Liste von möglichen Features:

  • Natürlich die bereits genannten Eigenschaften selber
  • für eine Aufgabe kann es mehrere Agenten geben (Lastspitzen / Robustheit / Useablity)
  • Verteiltes Rechnen (verteilte Bearbeitung / verteilte Datenhaltung)
  • Einzelne Komponenten können im laufenden Betrieb ausgetauscht werden
  • Einfache Implementierung von neuen Agenten (Funktionalitäten), da Agent nur von Basis (= Directory, Kommunikation, Framework) abhängig
  • Skalierbarkeit
  • Schwarmintelligenz
  • Client-Rechner nur noch zur Repräsentation des Ergebnisses
  • Idee passt zur Struktur des Internets
==Bestandteile==
Bestandteile Software-Agent
Bestandteile Software-Agent

Aus den Eigenschaften lassen sich bestimmte Forderungen an den "Aufbau" eines Software-Agenten stellen. Die nebenstehende Grafik ist so oder ähnlich öfter in der Literatur zu finden. Ein Agent führt eine Handlugen/Aktionen aus - dazu bedraf es eines Effektors der die Handlungen in der Umwelt/Umgebung vornimmt. Damit diese Handlungen Zielgerichtet sind (und/oder der Erfog überprüft werden kann) benötigt der Agent eine Wahrnehmung der Umwelt/Umgebung über Sensoren. Diese Sensoreninformationen werden dann "im Inneren" des Agenten (evtl. aufbereitet) und können neue Aktionen auslösen. Es versteht sich das die Umwelt/Umgebung zum Agenten bzw seinen Senor und Effektor passen muss.

Agentenbegriff zu unscharf ?

Charakteristika & Forschungsgebiete
Charakteristika & Forschungsgebiete
Ein Entwickler wird einen Agenten zu einem bestimmten Zweck erschaffen. Die konkrete Modellierung der dargestellten Komponenten bzw. der Ausprägung der Eigenschaften eines Agenten ist in hohem Maße von der Aufgabe des Agenten abhängig. So ist eine Zuordnung eines Agenten in eine gewisse "Klasse" möglich. In der Literatur findet sich aufgrund der Unschärfe des Agenten-Begriffs eine Vielzahl von Klassifizierungen, so dass eine allgemeine Aufzählung an dieser Stelle wenig sinnvoll erscheint. Die Unschärfe erklärt sich aus der Herkuft der aufgezeigen Charakteristika aus verschieden Fachgebieten. Einen Überblick versucht die nebenstehende Grafik zu bieten.

DAFFODIL - Alles Agent oder was

DAFFODIL = (Distributed Agents for User-Friendly Access of Digital Libraries) Wie der volle Name des Projektes nahe legt, benutzt die “DAFFODIL-Umwelt“ Agenten, besser: das Agenten-Paradigma. Natürlich ließe sich die Funktionalität von DAFFODIL auch mit anderen Herangehensweisen erstellen. Die Agentenbasierende scheint aber aufgrund der „Features“ ein guter Ansatz zu sein – besonders wenn man sich klar macht, dass über die sehr dynamische Struktur Internet gearbeitet wird, Zielgruppe des Produktes keine Experten-Benutzer sind und diese auch noch "User-Friendly" behandelt werden sollen.

Verweis auf Architektur

An dieser Stelle ist es sehr hilfreich, sich die konkrete Umsetzung des Software-Agenten Programmierparadigma in DAFFODIL zu verdeutlichen. Um Redundanz zu vermeiden, an dieser Stelle ein Verweis auf das Kapitel Designentscheidungen und Architektur.

Einordung in den Kontext ASDL

Titel des Projektes ist "Adaptive Suchunterstützung in Digitalen Bibliotheken". Grundlegende Information zum Thema "Adaptivität" gibt es in diesem Kapitel. "Suchunterstützung in Digitalen Bibliotheken" liefert das bereits fertige DAFFODIL-Framework mit den umgesetzten Komponenten, bzw. deren Agenten. Die Aufgabe bestand also darin, Adaptivität in das Framework zu implementieren, was auch aufgrund der Features des Agenten-Paradigma gelang.

References

  • [1] de.wikipedia.org
  • [2] de.wikipedia.org
  • [3] Matthias Klusch: Intelligent Information Agents, Agent based information discovery and Management on the Internet; Springer 1998
  • [4] Walter Brenner, Rüdiger Zarnekow, Hartmut Wittig: Intelligente Softwareagenten - Grundlagen und Anwendung; Springer 1998


2.1 Suchtaktiken und Suchstrategien <<<<< | 2.2 Software-Agenten | >>>>> 2.3 Adaptivität

Personal tools