Kontext-basierte Personalisierung von Web Services Markus Keidl, Stefan Seltzsam, Christof König und Alfons Kemper Universität Passau Fakultät für Mathematik und Informatik 94030 Passau @db.fmi.uni-passau.de.
Download ReportTranscript Kontext-basierte Personalisierung von Web Services Markus Keidl, Stefan Seltzsam, Christof König und Alfons Kemper Universität Passau Fakultät für Mathematik und Informatik 94030 Passau @db.fmi.uni-passau.de.
Kontext-basierte Personalisierung von Web Services Markus Keidl, Stefan Seltzsam, Christof König und Alfons Kemper Universität Passau Fakultät für Mathematik und Informatik 94030 Passau <Nachname>@db.fmi.uni-passau.de Gliederung Motivation Kontext für Web Services Dienstplattform ServiceGlobe Dynamische Dienstauswahl Zusammenfassung und Ausblick BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 2 Motivation Einsatz von Web Services im B2CBereich 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 3 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 4 Kontextinformationen Kontaktinformationen: Name, Adresse, Email, … Klienteninformationen: Hard-/Software, Standort, … Vorgaben für die dynamische Dienstauswahl BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 5 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 6 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 7 Einteilung von Diensten BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 8 Beispielszenario: Portal für Reiseagenturen BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 9 Architektur von ServiceGlobe in oder bei Leipzig Klient Zoo Leipzig Externer Dienst Auerbachs Keller Service-Host Service-Host AttraktionenSuche AttaktionenSuche Reiseplanung Externer Dienst Thomaskirche UDDIVerzeichnis Externer Dienst Code-Bibliothek BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 10 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 11 Beispiel zur Dienstauswahl UDDI-Verzeichnis tModel: Attraktion S_1 S_2 Zoo Leipzig S_3 S_3 Auerbachs Keller S_2 Programmieren AttraktionenSuche Thomaskirche Aufruf des der tModels Dienste Aufruf Attraktion S_1 S_2 BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services S_1 12 Klassifikation von Vorgaben MetadatenOrtsModusVorgaben Vorgaben Vorgaben AntwortVorgaben ErgebnisVorgaben Selektion Eigenschaft Timeout FirstN X Präferenzen X X Einschränkungen Anwendung auf Metadaten (UDDI, …) Anwendung auf SOAP-Antwort BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 13 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 14 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 15 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 16 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 17 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 18 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 19 Beispiel für eine VorgabenKombination 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 20 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 21 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 22 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 23 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 BTW '03 - Leipzig - Kontext-basierte Personalisierung von Web Services 24