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