Schaffung eines Vergleichers für DIANE Service Descriptions (DSD)

42
1 Michael Müssig Schaffung eines Vergleichers für DIANE Service Descriptions (DSD) Diplomarbeit Michael Müssig Betr. Professor: Prof. Dr.-Ing Dr. h.c. P.C. Lockemann Betr. Mitarbeiter: Michael Klein

description

Schaffung eines Vergleichers für DIANE Service Descriptions (DSD). Diplomarbeit Michael Müssig Betr. Professor: Prof. Dr.-Ing Dr. h.c. P.C. Lockemann Betr. Mitarbeiter: Michael Klein. MOVIE getInfo… reserveSeat… buyDVD… downloadSoundtrack… chatWithMainActor… MORE…. Szenario. - PowerPoint PPT Presentation

Transcript of Schaffung eines Vergleichers für DIANE Service Descriptions (DSD)

Page 1: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

1

Michael Müssig

Schaffung eines Vergleichers für

DIANE Service Descriptions (DSD)

DiplomarbeitMichael Müssig

Betr. Professor: Prof. Dr.-Ing Dr. h.c. P.C. Lockemann

Betr. Mitarbeiter: Michael Klein

Page 2: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

2

Michael Müssig

Szenario

„Buche einen aktuellen Action-

Film, der um 20:00 Uhr in einem

Karlsruher Kino beginnt!“

Kinokarten-Buchdienst

MOVIE

getInfo…reserveSeat…buyDVD…downloadSoundtrack…chatWithMainActor…MORE…

Page 3: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

3

Michael Müssig

Nutzung eines passenden Dienstes

MobileAnwendung

Dienst-Anfrage

Dienst-Geber

Dienst-Geber

Dienst-Geber

Dienst-Geber

Dienst-Geber

Dienst-Angebot

Dienst-Angebot

Dienst-Angebot

Dienst-Angebot

Dienst-Angebot

?Welcher Dienstgeber ist geeignet? (Vergleich)Wie rufe ich den Dienst auf? (Konfiguration)

Page 4: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

4

Michael Müssig

Ablauf dienstorientierter Anwendungen

Repository(evtl. verteilt)

Dienstnehmer(Client)

Dienstgeber(Server)

1. Angebot beschreiben3. Anfrage beschreiben

4. suchen

5. vergleichen

6. auswählen7. konfigurieren

8. aufrufen 9. ausführen

10. Ergebnis übermitteln

2. veröffentlichen

Page 5: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

5

Michael Müssig

Aufgaben und Ziele

Schaffung eines Vergleichers für DSD

Hauptkriterium: Vollautomatische Dienstnutzung

Aufgaben des Vergleichers / Matcher1. Übereinstimmung von Angeboten zu Anfrage

Vergleichswert innerhalb [0,0 .. 1,0] präferenzbasiertes Vergleichen

2. Konfiguration der Dienste parametrisierbares Angebot Informationen nach Dienstnutzung (Anfrage)

Page 6: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

6

Michael Müssig

Gliederung

Verwandte Ansätze

Funktionsweise des Vergleichers

Live-Demo

Ergebnisse und Ausblick

Page 7: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

7

Michael Müssig

WSDL = Web Service Description Language einfach, weit verbreitet standardisiert durch W3C

Dienstbeschreibung Mangel an Semantik

Funktionalität erraten aus Nachrichtenfluss strikte Nachrichtenkompatibiliät

evtl. semantisch passender Dienst nicht nutzbar einfacher Vergleicher

Eingabe liefert mehr Ausgabe verlangt weniger

Verwandte Ansätze - WSDL

Serviceankommende Nachrichten

nachrichtenorientiert

ausgehende Nachrichten

Page 8: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

8

Michael Müssig

Verwandte Ansätze – OWL-S

ehemals DAML-S ontologiebasiert beschreibt nicht nur Nachrichtenfluss

Probleme des Vergleicher Zusammenhang Nachrichten/Zustandsübergang fehlt Verwendung von allgemeinen Heuristiken

keine Präferenzen integrierbar

Service

eingehende Nachrichten ausgehende Nachrichten

Anfangszustand Endzustand

zustands-/nachrichtenbasiert

Page 9: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

9

Michael Müssig

Verwandte Ansätze - WSMO

WSMO = Web Service Modelling Ontology

Heterogenität erlaubt Auflösung durch Mediatoren

nicht vollständig automatisierbar

Unterschied Angebot/Anfrage ABER: Präferenzen schwer einstellbar

unvollständiger Vergleicher Mediator nicht integriert

Page 10: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

10

Michael Müssig

Vergleicher in DSD

reine Zustandsorientierung kombinierte Betrachtung des Nachrichtenflusses und der

Beschreibung

Vergleich auf Instanzebene Beschreibung von Instanzen

„Buche Harry Potter“ vs. „Suche Kinokartenbuchdienst“

zustandsorientiert

Service

Anfangszustand Endzustand

Platzhalter Platzhalter

Page 11: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

11

Michael Müssig

Vergleicher in DSD (2)

Unterscheidung Angebot/Anfrage Funktionalität gesucht, nicht spezieller Dienst mehrere Dienste können Funktion erfüllen

vollständige Präferenzintegration in Anfragen individueller Vergleicher, keine allgemeine Heuristik

Generischer Vergleicher

Angebote Anfrage

PersönlicherVergleicher

Angebotea) b)

Verzerrte Vergleichswerte Individuelle Vergleichswerte

Anfrage(präferenzbasiert)

ermöglicht

Heuristik

Page 12: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

12

Michael Müssig

Übersicht der Variablen

Angebot

Anfrage

Eingabe Ausgabe

• OffIN

• wird beim Vergleich gefüllt

• Dienstparameter

• OffOUT

• ist nach Dienstnutzung durch Anbieter gefüllt

• ReqIN

• wird vor Vergleich gefüllt

• wiederverwendbar

• ReqOUT

• ist nach Dienstnutzung durch Vergleicher gefüllt

Page 13: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

13

Michael Müssig

Beispiel - Offer

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

IntegerOUT number

TimeIN

DateIN

startTime

date

price Price

OUT

currency Currency

== eur

SeatInShow

validFor

Boolean

== <true>free

cineramaBookingService : Service

Double

>= 4.50<= 8.50

amount

visible

Movietitle

year Integer

>= 2003

StringIN

in {15:00, 20:00, 22:30}

>= 1 <= 250

OUT

Cinema

== schauburg

Angebot

13

Page 14: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

14

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

14

Page 15: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

15

Michael Müssig

Der Vergleichs-Algorithmus

Vergleich und Konfiguration des Angebots Garantierter Vergleichswert (worst case)

Graph-Vergleich anfragegetrieben rekursiver Abstieg innerhalb des Graphs Unterscheidung bzgl. Element-Typ Teilmengeneigenschaft

2 Modi minimizing: Vergleicher bestimmt schlechtesten Wert maximizing: Vergleicher bestimmt besten Wert

Page 16: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

16

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

PrimitiverDatentyp

16

Page 17: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

17

Michael Müssig

Vergleich – Primitive Datentypen

Double

>= 4.50<= 8.50

Double

~<= 8.00

Anfrage Angebot

x4

0.5

Vergleichswert

8

0,375

Page 18: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

18

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

WertbasierteKlasse

0.375

1.0

18

Page 19: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

19

Michael Müssig

Vergleich – Wertbasierte Klassen

Isolierter Vergleich orthogonale Attribute rekursiver Abstieg

amount Vergleichswert = 0.375

currency Vergleichswert = 1.0

Price Verbindungsstrategie:

AND 0.375 * 1.0 Vergleichswert = 0.375

PriceOUT

currency Currency

== eur

Double

>= 4.50<= 8.50

amount

offer

Price

currency Currency

== eur

Double

~<= 8.00amount

request

0.375

1.0

0.375

Page 20: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

20

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

Öffentliche Entitätsklasse

0.375

20

Page 21: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

21

Michael Müssig

Vergleich – Öffentliche Entitätsklassen

Movietitle

year Integer

>= 2003

StringINOUT

Moviegenre

yearInteger

~== 2004

Genre

== action

offer

request

harryPotter3 :Movie

title„Harry Potter 3"

genre family : Genre

year

2004

spiderman2 : Movietitle

„Spiderman 2"

genre action : Genre

year

2004

terminator3 : Movietitle

„Terminator 3"

genre action : Genre

year

2003

Page 22: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

22

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

TeilöffentlicheEntitätsklasse

Spiderman 2 : 1.0

Terminator 3: 0.522

Page 23: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

23

Michael Müssig

Vergleich – Teilöffentliche Entitätsklassen

Vergleicher fehlt vollständiges Wissen Attribute nicht orthogonal

Ausführung bei offIN-Belegung mit Vergleichswert >0 nicht garantiert

spezieller Vergleich mit erweitertem Bewertungskriterium unabdingbar

TimeIN

DateIN

startTime

date

SeatInShow

visible

Movietitle String

IN

in {15:00, 20:00, 22:30}

OUT

Page 24: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

24

Michael Müssig

Ausführungswahrscheinlichkeit

Vergleicher berechnet Ausführungswahrscheinlichkeit Abschätzung

möglicher Variablenbelegungen möglicher Instanzen

TimeIN

DateIN

startTime

date

SeatInShow

visible

Movietitle String

IN

in {15:00, 20:00, 22:30}

OUT

Page 25: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

25

Michael Müssig

OffIN-Kombinationen

TimeIN

Date

startTime

date

SeatInShow

visible

Moviegenre

year Integer

~== 2004

GenreIN

>= 2004-12-27<= 2004-12-31

Anfrage Angebot

10 mögliche OffIN-Kombinationen

TimeIN

DateIN

startTime

date

SeatInShow

visible

Movietitle

year Integer

>= 2003

StringIN

in {15:00, 20:00, 22:30}

OUT

1

5

2

20:00

action:Genre

Page 26: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

26

Michael Müssig

Verbesserung durch deklaratives Binden

Ausführungswahrscheinlichkeit oft recht niedrig Deklaratives Binden von Variablen

Anbieter muss dies explizit erlauben

Date

>= 2004-12-27<= 2004-12-31

DateIN

Request Offer

Deklarative Bindung Date

>= 2004-12-27<= 2004-12-31

Page 27: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

27

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

Ausgabevariablebinden

27

Page 28: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

28

Michael Müssig

Beispiel - Offer

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

IntegerOUT number

TimeIN

DateIN

startTime

date

price Price

OUT

currency Currency

== eur

SeatInShow

validFor

Boolean

== <true>free

cineramaBookingService : Service

Double

>= 4.50<= 8.50

amount

visible

Movietitle

year Integer

>= 2003

StringIN

in {15:00, 20:00, 22:30}

>= 1 <= 250

OUT

Cinema

== schauburg

Angebot

28

Page 29: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

29

Michael Müssig

Binden von ReqOUT-Variablen

Angebot ist Menge falls erlaubt, deklarative Bindung einelementig, Füllwert gegeben mehrelementig, Angebot passt nicht zu Anfrage

Angebot ist OffOUT Referenz auf OUT-Variable

Angebot ist Instanz/OffIN direkter Füllwert

Page 30: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

30

Michael Müssig

Beispiel - Request

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

TimeIN

Date

startTime

date

pricePrice

currency Currency

== eur

SeatInShow

validFor

Cinema

myBookingRequest : Service

Double

~<= 8.00amount

visible

Moviegenre

year Integer

~== 2004

GenreIN

City

== karlsruhe

locatedIn

>= 2004-12-27<= 2004-12-31OUT

Anfrage

Ausgabevariablebinden

30

Page 31: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

31

Michael Müssig

Beispiel - Offer

Owned

number

within

Seat

:ServiceProfile

presents

effect

CinemaTicket Integer

OUT

seat

entity

IntegerOUT number

TimeIN

DateIN

startTime

date

price Price

OUT

currency Currency

== eur

SeatInShow

validFor

Boolean

== <true>free

cineramaBookingService : Service

Double

>= 4.50<= 8.50

amount

visible

Movietitle

year Integer

>= 2003

StringIN

in {15:00, 20:00, 22:30}

>= 1 <= 250

OUT

Cinema

== schauburg

Angebot

31

Page 32: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

32

Michael Müssig

Binden von ReqOUT-Variablen

Angebot ist Menge falls erlaubt, deklarative Bindung einelementig, Füllwert gegeben mehrelementig, Angebot passt nicht zu Anfrage

Angebot ist OffOUT Referenz auf OUT-Variable

Angebot ist Instanz/OffIN direkter Füllwert

Page 33: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

33

Michael Müssig

Binden von ReqOUT-Variablen

Angebot ist Menge falls erlaubt, deklarative Bindung einelementig, Füllwert gegeben mehrelementig, Angebot passt nicht zu Anfrage

Angebot ist OffOUT Referenz auf OUT-Variable

Angebot ist Instanz/OffIN direkter Füllwert

Page 34: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

34

Michael Müssig

Übersichtstabelle Vergleicher

Primitiver Datentyp

WertbasierteKlasse

EntitätsklasseÖffentliche

Entitätsklasse

Geraden-Repräsentation

Minimum innerhalb offer-Intervall

Geraden-Repräsentation

Maximum innerhalb offer-Intervall

MENGEModus:„minimizing“

Matche Attribut-Bedingungen rekursiv

Wechsle zu Modus „maximizing“

Matche Attribut-Bedingungen rekursiv

Primitive ClassV ClassEClassPE

IN Variable

oder

MengeModus„maximizing“

Aktiviere return mode „all“

Matche Attribut-Bedingungen rekursiv

Aktiviere return mode „all“

Wechsle zu Modus „maximizing“

Matche Attribut-Bedingungen rekursiv

Stoppe rekursives Graph-Matching

Iteriere über Instanzen im Pool

Bilde Cluster von Instanzen mit gleicher IN-Bindung

Minimiere innerhalb des Cluster

Maximiere zwischen den Clustern

offerBeschreibung

Page 35: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

35

Michael Müssig

LIVE - Demo

VERGLEICHER

Page 36: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

36

Michael Müssig

Ergebnisse und Ausblick

Vergleicher erfüllt Anforderungen automatischer Dienstnutzung Berechnung des Vergleichwertes individueller Matcher (Präferenzen) Bindung der Variablen

Erkenntnis: Teilöffentliche Klassen effektiv, aber nicht effizient

(Ausführungswahrscheinlichkeit) deklarative Bindung

TODO: Erweiterte Evaluation

Ausblick: Erweiterung des Vergleichers Definition von Abhängigkeiten zwischen Attributen lokale Optimierung (Pruning)

Page 37: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

37

Michael Müssig

Danke für IhreAufmerksamkeit!

DIANE Projecthttp://www.ipd.uni-karlsruhe.de/DIANE/de

Page 38: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

38

Michael Müssig

DSD - Mengen

deklarative Mengen Beschreibungselemente

Type Check Strategy Direct Conditions Property Conditions

Missing Strategy Connecting Strategy

<Type>

direct conditions

connection strategy

tcs

Setprop. condition

ms

Page 39: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

39

Michael Müssig

DSD - Mengen (2)

Primitive Mengen

Wertbasierte Mengen

Entitäts-Mengen(öffentlich/teilöffentlich)

Integer< 100

PriceV

amount Double<= 8.00

MoviePE

year Integer> 2000

Page 40: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

40

Michael Müssig

DSD - Variablen

Variable als besondere Menge spätere Bindung

IN-Variable ReqIN – bereits gebunden OffIN – Bindung während Matching

OUT-Variable OffOUT – evtl. Referenzierung ReqOUT – Bindung nach Matching

IntegerIN

< 100

Page 41: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

41

Michael Müssig

Matching – Öffentliche Entitätsklassen

komplettes Wissen über Instanzen alle Instanzen veröffentlicht

Stoppe rekursives Graphmatching Iteration über Instanzen

1. Ist Instanz im Offer enthalten?2. Matche Instanz mit Request3. Bilde Cluster

gleiche OffIN-Variablenbelegung Minimum innerhalb des Clusters

4. Maximum zwischen den Clustern

Page 42: Schaffung eines Vergleichers  für  DIANE Service Descriptions (DSD)

42

Michael Müssig

Einelementige Menge

Menge deklarativ einelementig

Menge durch Variable einelementig Element kann nach Dienstausführung bestimmt werden

PriceOUT

currency Currency

== eur

Double

>= 4.50<= 8.50

amount

Currency

== eur