Kein Folientitel - Institut für Numerische Methoden und Informatik im

Werbung
Präsentation
Agenten, Objekte, Komponenten ein Paradigma-Vergleich
Vortrag im Rahmen des Forum Bauinformatik 2001
München, 12. Oktober 2001
Dipl.-Inform. Sascha Alda
Institut für Informatik III
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Paradigmen in der Software Technik
Der Begriff „Paradigma“
• In der Software Technik bezeichnet man ein Paradigma als eine Menge von
Regeln, um ein „realweltliches System“ auf ein Computer Model abzubilden,
bzw. zu modellieren.
•
Abstraktion von unwesentlichen Details
•
Aufteilung des Systems in Softwaretechnische Artefakte
Vorstellung und Vergleich des
1. Objektorientiertem Paradigma
2. Agentenorientiertem Paradigma
3. Komponentenorientiertem Paradigma
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Objektorientierung
Grundlegende Eigenschaften
Objekt Modelle
• Wohlunterscheidbare Entität aus
Domänenwelt.
• Basismodel
• Statisches Model
• Zusammenfassung von Methoden
(=Verhalten) und Daten
• Dynamisches Model
• Kapselt Zustand
• Zustand (nur) durch
Methoden änderbar
Object ‚X‘
void a ( );
string b ( boolean );
Weitere Konzepte
char a ;
• Vererbung
• Programmiersprachen (Java,
C++, ADA, Eiffel, Smalltalk)
• Generalisierung
• Aggregation
• Polymorphismus
Unterstützung O.O. durch ...
public class X extends Object {
private char a;
• Modellierungssprachen (UML,
OMT, Booch)
• Datenbanken (OO-DB)
public void a ( );
public string b ( boolean b );
}
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
• CASE Tools (Together)
Agenten Technologie
Dynamisch
Proaktivität
Reaktivität
Autonomie
Charakter
Intelligente
Deterministisch
Agenten
Action
Output
Sensor
Input
Mobilität
Environment
Lernfähigkeit
Kommunikation
„Agents can be seen as a computer system, that is situated in some environment, and that is capable
of autonomous action within this environment in order to meet its design objectives.“ (Wooldridge)
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Vergleich von Agent und Objekt
1. Agent = Entität (=Subjekt,
aktives Objekt)
aus einer realen Domänenwelt
Objekt = Entität
2. Agent: Kapselung von Wissen und Zielen (Absichten) sowie Operationen
–
Wissen kann zur Laufzeit erweitert werden (Agent kann „lernen“)
Objekt: Kapselung von Daten sowie Operationen
–
Lernfähigkeit zur Laufzeit bei Objekten vollkommen unerwünscht
3. Agenten System i.d.R. schwieriger zu entwickeln als Objekt System
–
Berücksichtung von Konsistenz-, Koordinations- u. Sicherheitsaspekte
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Vergleich von Agent und Objekt
4. Agent kann den Request zur Ausführung einer Operation ablehnen, ein
Objekt kann dies nicht:
(Objekt System)
(Agenten System)
5. Ein Objekt darf nicht autonom handeln.
• Ein Objekt agiert nur nach Input oder Anforderung von einem anderen
Objekt
6. Ein Agent besitzt seinen eigenen Kontroll Prozess (Thread). In einem
Objekt System gibt es einen Kontroll Prozess
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Bedeutung von Java für Agententechnologie I
• Kaum unterstützende (standardisierte) Technologien bei Agenten (z.B.
Programmiersprachen, Modellierungsmethoden, Tools)
=> Rückgriff auf Technologien von anderen Paradigmen, z.B. JAVA:
Autonomie
Reaktivität
Agent
Thread
realisiert duch
Events
(Java-)Objekt
RMI
Kommunikation
Mobilität
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
• Java Archive Files
• Serialisierbarkeit
Bedeutung von Java für Agententechnologie II
Nachteile
• Kein Versenden und Rekonstruktion „aktiver“ Informationen
–
genauer Ausführungsstatus (z.B. Programmzähler, Stack, ...)
• Keine Möglichkeit für den Host, Ressourcen zu verwalten u. zu begrenzen
–
Systemüberlastung durch fremden Code
• Keine Zugriffsrechte auf Public Methoden
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Komponenten Technologie
Kompositionseinheit
Flexibilität

Unabhängigkeit (von
konkreten Komponenten)

ereignisbasiertes
Kommunikationsmodell

Verbindungen
zur Laufzeit



Abgeschlossenheit
Eindeutig definierte Schnittstellen
Kontextabhängigkeiten
Adaptivität
Skalierbarkeit
Mobilität

Plattformunabhängigkeit

Serialisierbarkeit


Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Räumliche Verteilung
Transparenz

Konfigurierbarkeit

Austauschbarkeit
zur Laufzeit
Vergleich Komponenten und Agent
• Viele Übereinstimmungen von Eigenschaften zwischen Agent und
Komponente, z.B.
–
Mobilität
–
Kommunikationsmodell
–
Anpassbarkeit
–
Verteiltheit
• Auch hier: Bessere Unterstützung der Komponententechnologie durch:
–
Programmiersprachen, z.B. Java (-->JavaBeans)
–
Werkzeuge zur Komposition und Anpassung von Komponenten
–
Standardisierte Komponentenmodelle etc.
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Zusammenhang zwischen Paradigmen
ObjektOrientierung
Dynamische
Aspekte
Wiederverwendbarkeit
Basistechnolgie
AgentenTechnologie
=> Paradigmen vermischen sich
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
KomponentenTechnologie
Backup Folien
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Bedeutung von Java für Agententechnologie II
• Vorteile
–
Plattformunabhängigkeit
–
Dynamisches Laden von Klassen
–
Serialisierbarkeit
–
Threads
–
Sicherheit
• Nachteile
–
kein Versenden und Rekonstruktion „aktiver“ Informationen
– genauer Ausführungsstatus (z.B. Programmzähler, Stack, ...)
–
Keine Möglichkeit für den Host, Ressourcen zu verwalten u. zu verwalten
– Systemüberlastung durch fremden Code
–
Keine Zugriffsrechte auf Public Methoden
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Objektorientierung - Motivation zur Komponententechnik
• Das objektorientierte Paradigma ermöglicht es, wiederverwendbare,
integrierbare Software Systeme zu entwickeln
• Trotzdem Feststellung:
–
Viele Beziehungen zwischen Objekten
–
Umfangreiche, wenig standardisierte Schnittstellen.
=> verringert den Grad der Integration und der Wiederverwendbarkeit
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Einsatz der Paradigmen - Ein Beispiel
Agent
ACL
Client
Client
Komponente
Server
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Einsatz der Paradigmen
• Objektorientierung als Basistechnologie
• Einsatz der Komponententechnologie zur Realisierung von verteilten,
anpassbaren, flexiblen Systemen.
• Bedarfsgerechter, pragmatischer Einsatz der Agententechnologie. Beispiele:
1. Konflikterkennung und -beseitigung durch stationäre Agenten
2. Verbesserung von DB Queries an verteilte Datenquellen
=> Reduzierung der Netzbelastung durch mobile Agenten
„Move the computations to the data rather than the data to the
computations“
Institut für Informatik III, Universität Bonn, c/o 2001, 14.02.2017
Herunterladen