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