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
1
Michael Müssig
Szenario
MOVIE
getInfo…
reserveSeat…
buyDVD…
downloadSoundtrack…
chatWithMainActor…
MORE…
2
 Kinokarten-Buchdienst
„Buche einen
aktuellen Action-Film,
der um 20:00 Uhr in
einem Karlsruher
Kino beginnt!“
Michael Müssig
Nutzung eines passenden Dienstes
Mobile
Anwendung
DienstAnfrage
?
Welcher Dienstgeber ist geeignet? (Vergleich)
Wie rufe ich den Dienst auf? (Konfiguration)
3
DienstAngebot
DienstAngebot
DienstAngebot
DienstAngebot
DienstAngebot
DienstGeber
DienstGeber
DienstGeber
DienstGeber
DienstGeber
Michael Müssig
Ablauf dienstorientierter Anwendungen
8. aufrufen
Dienstnehmer
(Client)
3. Anfrage
beschreiben
6. auswählen
7. konfigurieren
Dienstgeber
(Server)
10. Ergebnis übermitteln
1. Angebot beschreiben
2. veröffentlichen
4. suchen
5. vergleichen
Repository
(evtl. verteilt)
4
9. ausführen
Michael Müssig
Aufgaben und Ziele

Schaffung eines Vergleichers für DSD

Hauptkriterium: Vollautomatische Dienstnutzung

Aufgaben des Vergleichers / Matcher
1. Übereinstimmung von Angeboten zu Anfrage
Vergleichswert innerhalb [0,0 .. 1,0]
 präferenzbasiertes Vergleichen
2. Konfiguration der Dienste


5
parametrisierbares Angebot
Informationen nach Dienstnutzung (Anfrage)
Michael Müssig
Gliederung
 Verwandte Ansätze
 Funktionsweise des Vergleichers
 Live-Demo
 Ergebnisse und Ausblick
6
Michael Müssig
Verwandte Ansätze - WSDL

WSDL = Web Service Description Language
 einfach, weit verbreitet
 standardisiert durch W3C
nachrichtenorientiert
ankommende Nachrichten

Service
ausgehende Nachrichten
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
7
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
zustands-/nachrichtenbasiert
eingehende Nachrichten
ausgehende Nachrichten
Service
Anfangszustand
8
Endzustand
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
9
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
Platzhalter
Platzhalter
Service
Anfangszustand
10
Endzustand
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
a)
Angebote
Anfrage
Generischer
Vergleicher
b)
ermöglicht
Anfrage
(präferenzbasiert)
Angebote
Persönlicher
Vergleicher
Heuristik
Verzerrte Vergleichswerte
11
Individuelle Vergleichswerte
Michael Müssig
Übersicht der Variablen
Eingabe
Angebot
• OffIN
• OffOUT
• wird beim Vergleich
gefüllt
• ist nach
Dienstnutzung durch
Anbieter gefüllt
• Dienstparameter
Anfrage
• ReqIN
• ReqOUT
• wird vor Vergleich
gefüllt
• ist nach
Dienstnutzung durch
Vergleicher gefüllt
• wiederverwendbar
12
Ausgabe
Michael Müssig
cineramaBookingService : Service
Beispiel - Offer
Angebot
presents
:ServiceProfile
effect
Owned
entity
Double
OUT
Integer
amount
number
price
OUT
Price
CinemaTicket
currency
Boolean
free
validFor
IN
Time
startTime
Integer
>= 1
<= 250
number
in {15:00, 20:00, 22:30}
Seat
seat
SeatInShow
date
within
Cinema
IN
Date
visible
== schauburg
title
OUT
Movie
year
IN
String
Integer
>= 2003
13
13
Currency
== eur
== <true>
OUT
>= 4.50
<= 8.50
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
effect
Owned
entity
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
14
year
Integer
== karlsruhe
14
Currency
~== 2004
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
15
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
effect
Owned
Primitiver
Datentyp
entity
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
16
year
Integer
== karlsruhe
16
Currency
~== 2004
Michael Müssig
Vergleich – Primitive Datentypen
Anfrage
Angebot
Double
Double
~<= 8.00
>= 4.50
<= 8.50
Vergleichswert
0.5
0,375
4
17
8
x
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
effect
Owned
Wertbasierte
Klasse
entity
0.375
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
18
year
Integer
== karlsruhe
18
Currency
~== 2004
1.0
Michael Müssig
Vergleich – Wertbasierte Klassen
 Isolierter Vergleich
 orthogonale Attribute
 rekursiver Abstieg
offer
Double
amount
OUT
Price
 amount
 Vergleichswert = 0.375
currency
>= 4.50
<= 8.50
Currency
== eur
 currency
 Vergleichswert = 1.0
 Price
 Verbindungsstrategie:
AND
 0.375 * 1.0
 Vergleichswert = 0.375
19
request
0.375
0.375
Double
amount
~<= 8.00
Price
currency
Currency
== eur
1.0
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
effect
Owned
entity
0.375
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
date
within
OUT
Date
Öffentliche
Entitätsklasse
>= 2004-12-27
visible
<= 2004-12-31
IN
locatedIn
genre
Genre
Movie
City
20
year
Integer
== karlsruhe
20
Currency
~== 2004
Michael Müssig
Vergleich – Öffentliche Entitätsklassen
offer
title
OUT
Movie
IN
String
spiderman2 : Movie
title
genre
„Spiderman 2"
action : Genre
year
year
Integer
>= 2003
2004
terminator3 : Movie
genre
request
„Terminator 3"
action : Genre
year
genre
Movie
Genre
== action
year
Integer
~== 2004
21
title
2003
harryPotter3 :
Movie
title
genre
„Harry Potter 3"
family : Genre
year
2004
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
effect
:ServiceProfile
Teilöffentliche
Entitätsklasse
Owned
entity
Double
amount
OUT
Integer
number
price
CinemaTicket
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
22
== karlsruhe
22
Currency
Spiderman 2 : 1.0
Terminator 3: 0.5
year
Integer
~== 2004
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
IN
Time
startTime
in {15:00, 20:00, 22:30}
SeatInShow
date
IN
Date
visible
OUT
Movie

23
title
IN
String
spezieller Vergleich mit erweitertem
Bewertungskriterium unabdingbar
Michael Müssig
Ausführungswahrscheinlichkeit
 Vergleicher berechnet Ausführungswahrscheinlichkeit
 Abschätzung
 möglicher Variablenbelegungen
 möglicher Instanzen
IN
Time
startTime
in {15:00, 20:00, 22:30}
SeatInShow
date
IN
Date
visible
OUT
Movie
24
title
IN
String
Michael Müssig
OffIN-Kombinationen
Anfrage
Angebot
IN
startTime
IN
Time
20:00
1
in {15:00, 20:00, 22:30}
SeatInShow
SeatInShow
Date
date
date
>= 2004-12-27
<= 2004-12-31
visible
IN
genre
Genre
action:Genre
Movie
IN
Date
5
String
2
visible
title
OUT
Movie
year
Integer
~== 2004
 10 mögliche OffIN-Kombinationen
25
Time
startTime
year
IN
Integer
>= 2003
Michael Müssig
Verbesserung durch deklaratives Binden


Ausführungswahrscheinlichkeit oft recht niedrig
Deklaratives Binden von Variablen
 Anbieter muss dies explizit erlauben
Request
Date
Offer
IN
Date
>= 2004-12-27
<= 2004-12-31
Deklarative Bindung
Date
>= 2004-12-27
<= 2004-12-31
26
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
effect
Owned
entity
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
Ausgabevariable
binden
Seat
== eur
validFor
startTime
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
27
year
Integer
== karlsruhe
27
Currency
~== 2004
Michael Müssig
cineramaBookingService : Service
Beispiel - Offer
Angebot
presents
:ServiceProfile
effect
Owned
entity
Double
OUT
Integer
amount
number
price
OUT
Price
CinemaTicket
currency
Boolean
free
validFor
IN
Time
startTime
Integer
>= 1
<= 250
number
in {15:00, 20:00, 22:30}
Seat
seat
SeatInShow
date
within
IN
Date
visible
Cinema
== schauburg
title
OUT
Movie
year
IN
String
Integer
>= 2003
28
28
Currency
== eur
== <true>
OUT
>= 4.50
<= 8.50
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
29
Michael Müssig
Beispiel - Request
myBookingRequest : Service
Anfrage
presents
:ServiceProfile
Ausgabevariable
binden
effect
Owned
entity
Double
amount
OUT
Integer
number
CinemaTicket
price
~<= 8.00
Price
currency
== eur
validFor
startTime
Seat
Cinema
IN
Time
seat
SeatInShow
Date
date
within
OUT
>= 2004-12-27
<= 2004-12-31
visible
IN
locatedIn
genre
Genre
Movie
City
30
year
Integer
== karlsruhe
30
Currency
~== 2004
Michael Müssig
cineramaBookingService : Service
Beispiel - Offer
Angebot
presents
:ServiceProfile
effect
Owned
entity
Double
OUT
Integer
amount
number
price
OUT
Price
CinemaTicket
currency
Boolean
free
validFor
IN
Time
startTime
Integer
>= 1
<= 250
number
in {15:00, 20:00, 22:30}
Seat
seat
SeatInShow
date
within
IN
Date
visible
Cinema
== schauburg
title
OUT
Movie
year
IN
String
Integer
>= 2003
31
31
Currency
== eur
== <true>
OUT
>= 4.50
<= 8.50
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
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
33
Michael Müssig
Übersichtstabelle Vergleicher
offer
Beschreibung
Primitiver
Datentyp
Primitive
MENGE
Modus:
„minimizing“
IN Variable
oder
Menge
Modus
„maximizing“
34
GeradenRepräsentation
Minimum
innerhalb
offer-Intervall
GeradenRepräsentation
Maximum
innerhalb offerIntervall
Wertbasierte
Klasse
ClassV
Matche AttributBedingungen
rekursiv
Wechsle zu Modus
„maximizing“
Matche AttributBedingungen
rekursiv
Öffentliche
Entitätsklasse
Entitätsklasse
ClassPE
ClassE
Stoppe rekursives
Graph-Matching
Aktiviere
return mode „all“
Iteriere über
Instanzen im Pool
Matche AttributBedingungen
rekursiv
Bilde Cluster von
Instanzen mit
gleicher IN-Bindung
Aktiviere
return mode „all“
Minimiere
innerhalb des
Cluster
Wechsle zu Modus
„maximizing“
Maximiere
zwischen den
Clustern
Matche AttributBedingungen
rekursiv
Michael Müssig
LIVE - Demo
VERGLEICHER
35
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)
36
Michael Müssig
Danke für Ihre
Aufmerksamkeit!
DIANE Project
http://www.ipd.uni-karlsruhe.de/DIANE/de
37
Michael Müssig
DSD - Mengen
 deklarative Mengen
 Beschreibungselemente
 Type Check Strategy
 Direct Conditions
 Property Conditions
 Missing Strategy
 Connecting Strategy
<Type>
tcs
direct conditions
connection strategy
38
prop. condition
ms
Set
Michael Müssig
DSD - Mengen (2)
 Primitive Mengen
Integer
< 100
 Wertbasierte Mengen
PriceV
amount
<= 8.00
 Entitäts-Mengen
(öffentlich/teilöffentlich)
MoviePE
39
Double
year
Integer
> 2000
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
40
IN
Integer
< 100
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 Request
3. Bilde Cluster
 gleiche OffIN-Variablenbelegung
 Minimum innerhalb des Clusters
4. Maximum zwischen den Clustern
41
Michael Müssig
Einelementige Menge
 Menge deklarativ einelementig
Currency
== eur
 Menge durch Variable einelementig
 Element kann nach Dienstausführung bestimmt werden
Double
amount
OUT
Price
currency
>= 4.50
<= 8.50
Currency
== eur
42

Vergleich