Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and...

24
Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar „Component and Aspect Engineering“ im WS03/04 FlexiBeans / FreEvolve von Alexander Höck

Transcript of Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and...

Page 1: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1

Seminar„Component and Aspect Engineering“

im WS03/04

FlexiBeans / FreEvolve

von Alexander Höck

Page 2: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 2

Inhalt

Flexi Beans

FreEvolve

Page 3: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 3

JavaBeans - Schwächen

Kommunikation nur via Events

Unterscheidung „Absender“

Keine integrierte Remote-Unterstützung

Page 4: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 4

FlexiBeans: Überblick

Anpassung von JavaBeans

Ziel: Benötigte Änderungen bzgl. FreEvolve

Schnittstellen werden Ports genannt

Erweiterung um die Punkte: Shared Variable Interaction Port Names ( Absenderunterscheidung) Remote Interaction

Page 5: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 5

FlexiBeans: Shared Variable Interaction (1)

Realisiert als Objekte

Zugriff über Interface

Methoden für Datenzugriff (z.B. getValue/setValue)

Component A Component B Interface

Component A Component B

Shared Object

Interface

Möglich: Implementation des Interface durch eine Komponente

Page 6: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 6

FlexiBeans:Shared Variable Interaction (2) Eine Komponente muss

Shared Object instanzieren bietet Port zum „Holen“ des Objekts Konvention:

Andere Komponenten bietet Port zum „Setzen“ und „Vergessen“ des Objekts Konvention:

public <Interface> getShared<Interface>_<Port_Name>();

public setShared<Interface>_<Port_Name>(<Inteface> o);public forgetShared<Interface>(<Inteface> o);

Page 7: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 7

FlexiBeans:Shared Variable Interaction (3) Problem:

Multithreading

KomponenteA

KomponenteB

SharedObject

Zeit

23readread

set(24)

set(24)

24 (statt 25)

Page 8: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 8

FlexiBeans:Java Events

ähnlich wie bei JavaBeans

Kontrollfluss wird an Empfänger übergeben

zusätzlich zu JavaBeans: Benannte Ports mehrere Envent-Listener vom selben Typ

Page 9: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 9

FlexiBeans:Remote Interaction Realisation via Java RMI

Folgen: Event-Quelle muss RemoteException abfangen Empfänger muss die Klasse UnicastRemoteObject erweitern

Page 10: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 10

FreEvolve: Eigenschaften

Komponentenbasiert

Anpassungen zur Laufzeit möglich

Client- / Server-Architektur

Page 11: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 11

FreEvolve: Anwendungen

Anwendungen bestehen aus: FlexiBeans Komponenten

Anwendungen werden definiert durch: Client-CAT Server-CAT Remote bind Dateien DCAT Dateien Benutzertabelle

Page 12: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 12

FreEvolve: CAT

i_component Package.ComboBox{ required Werteliste RemoteList sharedObject; provided ValueChanged RemoteActionListener event; config_parameter Pos int; config_parameter Width int;}

Atomare Komponente i_component:

a_component Auswahl{ required Werteliste RemoteList sharedObject; provided ExitEvent RemoteActionListener event; subcomponent feld Package.ComboBox{ Pos := 100; Width := 200; } bind Werteliste - feld.Werteliste; bind ExitEvent – feld.CalueChanged;}

Komplexe Komponente a_component / s_component:

Page 13: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 13

FreEvolve: CAT

Komponente 1 Komponente 2

X

required

provided

Page 14: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 14

FreEvolve: Client-/Server-CAT(1)

Strukturbeschreibung Client-Seite der Anwendung

Listet die verwendeten FlexiBeans (als i_component)

Definiert (mindestens eine) komplexe Komponente

Bei Server-CAT: keine sichtbaren Komponenten

Page 15: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 15

FreEvolve: Client-/Server-CAT(2)

i_component Package.ComboBox{ required Werteliste RemoteList sharedObject; provided ValueChanged RemoteActionListener event; config_parameter Pos int; config_parameter Width int;}

FlexiBean als i_component:

a_component Auswahl{ required Werteliste RemoteList sharedObject; provided ExitEvent RemoteActionListener event; subcomponent feld Package.ComboBox{ Pos := 100; Width := 200; } bind Werteliste - feld.Werteliste; bind ExitEvent – feld.CalueChanged;}

Komposition als a_component:

Page 16: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 16

FreEvolve: Remote Binds

Spezifikation, wie zwei CATs verbunden sind. Normalerweise: Verbindung von Client- & Server-CAT Notwendig weil:

mehrere Ports von einem Typ möglich unverbundene Ports möglich

Format: rbind PortXYZVonTypABC – PortZYXVonTypABC;

Page 17: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 17

FreEvolve: DCAT

die genannten Definitionen zusammenfügens_component Anwendung{ subcomponent anwendungsClient ClientCAT LOCAL; subcomponent anwendungsServer ServerCAT SERVER; bind anwendungsClient anwendungsServer remoteBindDatei;};

hier: Client / Server andere Konstellationen auch beschreibbar

Page 18: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 18

FreEvolve: Benutzerverwaltung

Berechtigungen je DCAT-Datei je Beutzer

Menüstruktur von FreEvolve Plattform erstellt

Page 19: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 19

FreEvolve: Zusammenspiel

Benutzer

A DCAT1B DCAT1A DCAT2C DCAT3

DCAT

CAT1CAT2CATA

Server CAT

FelxiBean1

Remote Bind

...

Client CAT

FlexiBean1FlexiBean2

Class Files

FlexiBean1FlexiBean2

Page 20: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 20

FreEvolve: Anpassungs-API

zur Laufzeit möglich von jeder Stelle im Netzwerk/Internet Verschiedene Möglichkeiten:

direkt über API aus der Anwendung über 3D-User-Interface über Agenten

Page 21: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 21

FreeVolve: Anpassung zur Laufzeit

Durch Proxy-Objekte vereinfacht

Komponente 1

Komponente 2

Proxy

Komponente 3

Problematisch: Feste Objektreferenzen

Page 22: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 22

Fre

Evo

lve:

Str

uktu

r

Page 23: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 23

Zusammenfassung

FlexiBeans: Erweiterung von JavaBeans Shared Objects RMI

FreEvolve: Client- / Server-Architektur Komponentenbasiert (FlexiBeans) Anpassungen zur Laufzeit Elegante Möglichkeiten zur Anpassung (3D, Agenten, 2D,...)

Page 24: Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 1 Seminar Component and Aspect Engineering im WS03/04 FlexiBeans / FreEvolve von.

Universität Bonn, Seminar Softwaretechnologie WS 03/04, Alexander Höck 24

Quellen

Stiemerling, Oliver: Component-Based Tailorability (Dissertation)

Hinken, Ralph: Verteilte komponentenbasierte Anpassbarkeit für Groupware (Diplomarbeit)

O. Stiemerling, P. Constanza, A.B. Cremers: Object Identity and Dynamic Recomposition of Components

http://www.freevolve.org