420 likes | 507 Views
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.
E N D
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 • Kinokarten-Buchdienst „Buche einen aktuellen Action-Film, der um 20:00 Uhr in einem Karlsruher Kino beginnt!“
? Welcher Dienstgeber ist geeignet? (Vergleich) Wie rufe ich den Dienst auf? (Konfiguration) Dienst- Angebot Dienst- Angebot Dienst- Angebot Dienst- Angebot Dienst- Angebot Dienst- Geber Dienst- Geber Dienst- Geber Dienst- Geber Dienst-Geber Nutzung eines passenden Dienstes Mobile Anwendung Dienst- Anfrage
8. aufrufen 10. Ergebnis übermitteln 6. auswählen 7. konfigurieren 4. suchen Ablauf dienstorientierter Anwendungen 9. ausführen Dienstnehmer (Client) Dienstgeber (Server) 3. Anfrage beschreiben 1. Angebot beschreiben 2. veröffentlichen 5. vergleichen Repository (evtl. verteilt)
Aufgaben und Ziele • Schaffung eines Vergleichers für DSD • Hauptkriterium: Vollautomatische Dienstnutzung • Aufgaben des Vergleichers / Matcher • Übereinstimmung von Angeboten zu Anfrage Vergleichswert innerhalb [0,0 .. 1,0] • präferenzbasiertes Vergleichen • Konfiguration der Dienste • parametrisierbares Angebot • Informationen nach Dienstnutzung (Anfrage)
Gliederung • Verwandte Ansätze • Funktionsweise des Vergleichers • Live-Demo • Ergebnisse und Ausblick
Verwandte Ansätze - WSDL • 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 – 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
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
Vergleicher in DSD • reine Zustandsorientierung • kombinierte Betrachtung des Nachrichtenflusses und der Beschreibung • Vergleich auf Instanzebene • Beschreibung von Instanzen • „Buche Harry Potter“ vs. „Suche Kinokartenbuchdienst“
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
Übersicht der Variablen Eingabe Ausgabe • OffIN • wird beim Vergleich gefüllt • Dienstparameter • OffOUT • ist nach Dienstnutzung durch Anbieter gefüllt Angebot • ReqIN • wird vor Vergleich gefüllt • wiederverwendbar • ReqOUT • ist nach Dienstnutzung durch Vergleicher gefüllt Anfrage
Beispiel - Offer Angebot 13
Beispiel - Request Anfrage 14
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
Beispiel - Request Anfrage Primitiver Datentyp 16
Vergleich – Primitive Datentypen Vergleichswert 0.5 0,375 4 x 8
Beispiel - Request Anfrage Wertbasierte Klasse 0.375 1.0 18
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 0.375 0.375 1.0
Beispiel - Request Anfrage 0.375 Öffentliche Entitätsklasse 20
Beispiel - Request Anfrage Teilöffentliche Entitätsklasse Spiderman 2 : 1.0 Terminator 3: 0.5 22
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
Ausführungswahrscheinlichkeit • Vergleicher berechnet Ausführungswahrscheinlichkeit • Abschätzung • möglicher Variablenbelegungen • möglicher Instanzen
OffIN-Kombinationen Anfrage Angebot 1 20:00 5 action:Genre 2 10 mögliche OffIN-Kombinationen
Verbesserung durch deklaratives Binden • Ausführungswahrscheinlichkeit oft recht niedrig • Deklaratives Binden von Variablen • Anbieter muss dies explizit erlauben Deklarative Bindung
Beispiel - Request Anfrage Ausgabevariable binden 27
Beispiel - Offer Angebot 28
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
Beispiel - Request Anfrage Ausgabevariable binden 30
Beispiel - Offer Angebot 31
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
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
LIVE - Demo VERGLEICHER
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)
DIANE Project http://www.ipd.uni-karlsruhe.de/DIANE/de Danke für Ihre Aufmerksamkeit!
<Type> tcs prop. condition Set direct conditions ms connection strategy DSD - Mengen • deklarative Mengen • Beschreibungselemente • Type Check Strategy • Direct Conditions • Property Conditions • Missing Strategy • Connecting Strategy
DSD - Mengen (2) • Primitive Mengen • Wertbasierte Mengen • Entitäts-Mengen(öffentlich/teilöffentlich) Integer < 100 PriceV amount Double <= 8.00 MoviePE year Integer > 2000
IN Integer < 100 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
Matching – Öffentliche Entitätsklassen • komplettes Wissen über Instanzen • alle Instanzen veröffentlicht • Stoppe rekursives Graphmatching • Iteration über Instanzen • Ist Instanz im Offer enthalten? • Matche Instanz mit Request • Bilde Cluster • gleiche OffIN-Variablenbelegung • Minimum innerhalb des Clusters • Maximum zwischen den Clustern
Einelementige Menge • Menge deklarativ einelementig • Menge durch Variable einelementig • Element kann nach Dienstausführung bestimmt werden