schaffung eines vergleichers für diane service descriptions (dsd)
Post on 20-Jan-2016
25 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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…
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)
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
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)
6
Michael Müssig
Gliederung
Verwandte Ansätze
Funktionsweise des Vergleichers
Live-Demo
Ergebnisse und Ausblick
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
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
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
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
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
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
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
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
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
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
17
Michael Müssig
Vergleich – Primitive Datentypen
Double
>= 4.50<= 8.50
Double
~<= 8.00
Anfrage Angebot
x4
0.5
Vergleichswert
8
0,375
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
35
Michael Müssig
LIVE - Demo
VERGLEICHER
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)
37
Michael Müssig
Danke für IhreAufmerksamkeit!
DIANE Projecthttp://www.ipd.uni-karlsruhe.de/DIANE/de
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
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
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
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
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
top related