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 Report

Transcript 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