Institut für Informatik III, Universität Bonn, c/o 2001, Präsentation Agenten, Objekte, Komponenten - 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, 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, Objektorientierung Grundlegende Eigenschaften Wohlunterscheidbare Entität aus Domänenwelt. Zusammenfassung von Methoden (=Verhalten) und Daten Kapselt Zustand Zustand (nur) durch Methoden änderbar Object X a void a ( ); b string b ( boolean ); char a ; Weitere Konzepte Vererbung Generalisierung Aggregation Polymorphismus Objekt Modelle Basismodel Statisches Model Dynamisches Model Unterstützung O.O. durch... Programmiersprachen (Java, C++, ADA, Eiffel, Smalltalk) Modellierungssprachen (UML, OMT, Booch) Datenbanken (OO-DB) CASE Tools (Together) X public class X extends Object { private char a; a public void a ( ); b public string b ( boolean b ); }
Institut für Informatik III, Universität Bonn, c/o 2001, IntelligenteAgenten Environment Sensor Input Action Output Autonomie ProaktivitätReaktivität Charakter Agenten Technologie 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) Mobilität Kommuni- kation Dynamisch Deterministisch Lernfähig- keit
Institut für Informatik III, Universität Bonn, c/o 2001, Vergleich von Agent und Objekt 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 1.Agent = Entität (=Subjekt, aktives Objekt) Objekt = Entität aus einer realen Domänenwelt 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, Vergleich von Agent und Objekt 5. Ein Objekt darf nicht autonom handeln. Ein Objekt agiert nur nach Input oder Anforderung von einem anderen Objekt 4. Agent kann den Request zur Ausführung einer Operation ablehnen, ein Objekt kann dies nicht: (Objekt System) (Agenten System) 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, Kaum unterstützende (standardisierte) Technologien bei Agenten (z.B. Programmiersprachen, Modellierungsmethoden, Tools) => Rückgriff auf Technologien von anderen Paradigmen, z.B. JAVA: Agent AutonomieReaktivität Kommunikation (Java-)Objekt ThreadEvents RMI realisiert duch Mobilität Java Archive Files Serialisierbarkeit Bedeutung von Java für Agententechnologie I
Institut für Informatik III, Universität Bonn, c/o 2001, 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, Komponenten Technologie Kompositionseinheit l Abgeschlossenheit l Eindeutig definierte Schnittstellen l Kontextabhängigkeiten Adaptivität l Konfigurierbarkeit l Austauschbarkeit zur Laufzeit Mobilität l Plattformunabhängigkeit l Serialisierbarkeit Skalierbarkeit l Räumliche Verteilung l Transparenz Flexibilität l Unabhängigkeit (von konkreten Komponenten) l ereignisbasiertes Kommunikationsmodell l Verbindungen zur Laufzeit
Institut für Informatik III, Universität Bonn, c/o 2001, 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, Zusammenhang zwischen Paradigmen Objekt- Orientierung Dynamische Aspekte Agenten- Technologie Wiederver- wendbarkeit Kompo- nenten- Technologie Basistechnolgie => Paradigmen vermischen sich
Institut für Informatik III, Universität Bonn, c/o 2001, Backup Folien
Institut für Informatik III, Universität Bonn, c/o 2001, 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, 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, Client Server ACL Einsatz der Paradigmen - Ein Beispiel Client-Server Communication Agent Komponente
Institut für Informatik III, Universität Bonn, c/o 2001, 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 Einsatz der Paradigmen