Kontext-basierte Personalisierung von Web Services
Markus Keidl, Stefan Seltzsam, Christof König und Alfons Kemper
Universität PassauFakultät für Mathematik und Informatik
94030 Passau<Nachname>@db.fmi.uni-passau.de
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 2
Gliederung
Motivation Kontext für Web Services Dienstplattform ServiceGlobe Dynamische Dienstauswahl Zusammenfassung und Ausblick
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 3
Motivation Einsatz von Web Services im B2C-
Bereich Heterogener Nutzerkreis erfordert
Personalisierbarkeit und Flexibilität
Kontext inkl. Vorgaben für dynamische Dienstauswahl
Internet als verteiltes System Dienstplattform ServiceGlobe
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 4
Kontext für Web Services
Informationen für einen Web Service, um Benutzern eine angepasste und personalisierte Version seiner selbst zur Verfügung zu stellen
Auswertung erfolgt automatisch, soweit möglich
Übertragung im SOAP-Header Verwendung ist optional
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 5
Kontextinformationen
Kontaktinformationen:Name, Adresse, Email, …
Klienteninformationen:Hard-/Software, Standort, …
Vorgaben für die dynamische Dienstauswahl
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 6
Was ist ServiceGlobe?
Forschungsplattform für Web Services Implementiert in Java Basierend auf Standards (XML, SOAP,
UDDI, WSDL, …) Entwicklung von neuen Technologien
für die Ausführung und Entwicklung von Diensten
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 7
Eigenschaften von ServiceGlobe
Dienste sind mobiler Code Laden des Codes von Diensten zur Laufzeit Verteilung von Diensten
Runtime Service Loading Sicherheitssystem Transaktionssystem Lastbalancierung und automatische
Dienstreplikation
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 8
Einteilung von Diensten
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 9
Beispielszenario: Portal für Reiseagenturen
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 10
in oder bei Leipzig
Code-Bibliothek
AttaktionenSuche
Reiseplanung
Klient
Service-Host
UDDI-Verzeichnis
Service-Host
Zoo Leipzig
Externer Dienst
Thomaskirche
Externer Dienst
Architektur von ServiceGlobe
Auerbachs Keller
Externer Dienst
Reiseplanung
AttraktionenSuche
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 13
Dynamische Dienstauswahl
UDDI: Zuordnung von Diensten zu tModels (Beschreibung der Funktionalität und der Schnittstelle)
'Aufruf eines tModels' anstatt 'Aufruf eines Dienstes'
Beeinflussung von Auswahl und Aufruf durch Vorgaben
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 14
Beispiel zur Dienstauswahl
AttraktionenSuche
Auerbachs Keller
S_2
Zoo Leipzig
S_3
Thomaskirche
S_1
UDDI-Verzeichnis
tModel: Attraktion
S_1 S_2 S_3
Programmieren
Aufruf des tModels
Attraktion
Aufruf der Dienste
S_1 S_2
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 15
Klassifikation von Vorgaben
Metadaten-Vorgaben
Orts-Vorgaben
Modus-Vorgaben
Antwort-Vorgaben
Ergebnis-Vorgaben
Selektion Eigenschaft Timeout FirstN
Präferenzen X X XEinschränkungen
Anwendung auf Metadaten(UDDI, …)
Anwendung auf SOAP-Antwort
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 16
Metadaten-Vorgaben
XPath-Anfragen auf Dienst-Metadaten Metadaten: UDDI + zusätzliche Beispiele:
<metadataPreference> /businessEntity/name="Sheraton"</metadataPreference>
<metadataCondition> /ServiceMetadata/CostsPerCall="0"</metadataCondition>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 17
Orts-Vorgaben
Auswahl anhand des Dienst-Standorts (festgelegt in UDDI)
Beispiele:<locationCondition
addressType="Geographical" serviceType="All">
<center>DE-SN-LEJ</center> <maxDistance>50km</maxDistance></locationCondition>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 18
Modus-Vorgaben
Spezifikation der Anzahl der aufzurufenden Dienste
Aufrufmodi: One, Some, All Beispiele:
<modeCondition modeType="Some" number="5" numberType="Percentage"/>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 19
Antwort-Vorgaben Eigenschafts-Vorgaben:
Abfrage von Eigenschaften einer Antwort Einfügen von Eigenschaften durch Dienste, Dienstplattform
Selektions-Vorgaben: XPath-Anfragen auf SOAP-Antwort Beispiel:
<propertyCondition> <signature> <signatureDN> CN=Cust,O=Universität Passau, C=DE </signatureDN> </signature></propertyCondition>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 20
Ergebnis-Vorgaben
Timeout-Vorgaben FirstN-Vorgaben Beispiele:
<timeoutCondition value="100" valueUnit="Seconds"/>
<firstNCondition number="10" numberType="Percentage"/>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 21
Kombination von Vorgaben
Operatoren: AND, OR Negation:
Metadaten-, Selektions-Vorgaben: negierte XPath-Ausdrücke
Orts-, Eigenschafts-Vorgaben:momentan noch nicht möglich
Modus-, Ergebnis-Vorgaben: nicht sinnvoll
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 22
Beispiel für eine Vorgaben-Kombination Beispiel:
<orGroup> <andGroup> <metadataCondition> /ServiceMetadata/ServiceType="Dynamic" </metadataCondition> <locationPreference serviceType="Dynamic" addressType="Geographical"> <pattern>DE-SN-LEJ</pattern> </locationPreference> </andGroup> <locationPreference serviceType="All"
addressType="Geographical"> <pattern>DE-*-*</pattern> </locationPreference></orGroup>
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 23
Auswertung von Vorgaben
Zusammenfassen aller Vorgaben für einen tModel-Aufruf
Transformation in DNF Auflösung von Konflikten basierend
auf Prioritäten Parallele Auswertung von disjunktiv
verknüpften AND-Termen
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 24
Quellen für Vorgaben
Angabe direkt im Web Service Vorgaben im Kontext:
Klient fügt Vorgaben in Kontext ein Service-Hosts Web Services in der Aufrufkette
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 30
Zusammenfassung
Kontext für Web Services Dienstplattform: ServiceGlobe
Architektur Schlüsseleigenschaften
Dynamische Dienstauswahl Personalisierbare und flexible
Ausführung von Diensten
BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 31
Ausblick
Caching von SOAP-Antworten Evaluierung von automatisch
auswertbaren Kontextinformationen und Dienst-Metadaten
Weitere Informationen (inkl. Demo):http://www.db.fmi.uni.passau.de/projects/sg