Benutzermodellierung in Web- Anwendungen - Informatik Uni

Werbung
Benutzermodellierung in WebAnwendungen
Vorlesung im Rahmen des Studienprojekts MUMS
Sommersemester 2003
Mark Giereth
Institut für Intelligente Systeme
Universität Stuttgart
Inhalt
Teil I: Konzepte der Benutzermodellierung
Teil II: Benutzermodellierung in Web-Anwendungen
Grundlagen und Problematik
Web-Anwendungen auf Basis von Java Servlets
Verwaltung von Sitzungsdaten
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
2
Herkömmliche Dialogsysteme
Benutzer muss wissen:
Welche Informationen zur Lösung seines Problems relevant
bzw. irrelevant sind
Herkömmliche Dialogsystem bieten nur ein "Durchblättern" des
Informationsangebots oder eine gezielte Suche an
Weitere Unterstützung für Such- und Selektionsprozess fehlt
Welche der relevanten Informationen sind im System
verfügbar und wie werden sie gefunden
Benutzer baut sich ein Modell des Systems auf (Benutzersicht)
System muss diese Modellbildung erleichtern
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
3
Benutzerorientierte Dialogsysteme
System bildet während der Interaktion Annahmen über:
die Ziele des Benutzers (im Rahmen des Anwendungsbereichs)
die Pläne, mit denen der Benutzer seine Ziele erreichen will
das Wissen des Benutzers im Rahmen des Anwendungsbeichs
Solche Annahmen über den jeweiligen Benutzer werden als
Benutzermodell bezeichnet
Mit Hilfe dieser Informationen versucht das System den
Benutzer bei seinen Zielen zu unterstützen
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
4
Beispiel eines benutzerorientierten Dialogsystems
Das System kann Annahmen über fehlendes oder bereits
vorhandenes Vorwissen des Benutzers verwenden und
Ziele des Benutzers mitberücksichtigen, um Antworten
verständlicher zu machen und redundante Anworten zu
vermeiden.
Beispiel:
Benutzer: Wann fährt der nächste Zug nach M.?
System: 15:15 Uhr, Bahnsteig 7.
Interpretation: Benutzer hat das Ziel mit dem nächsten Zug nach M.
zu fahren. Er kennt die Abfahrtszeit des Zuges nicht. Voraussetzung
für die Ausfühbarbeit des Plans ist Abfahrtszeit und Bahnsteig. Es ist
unwahrscheinlich, dass Benutzer zwar die Zeit nicht kennt, wohl aber
den Bahnsteig. Folglich wird auch die Information über den
Bahnsteig kommuniziert.
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
5
Anwendungen
Dialogsysteme (vgl. Kobsa)
Lern- und Tutorsysteme (vgl. Weber)
Aktive Hilfesysteme
Personalisierte Informationsdienste (vgl. Sharma)
Web-Anwendungen z.B. Online-Shops
etc.
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
6
Entwurfsentscheidungen
Welche Arten von Informationen über den Benutzer sollen
berücksichtigt werden?
Wie können diese Informationen repräsentiert werden?
Auf welche Weise können Informationen gesammelt und in
das Benutzermodell eingetragen werden?
Wie können solche Informationen verwendet werden?
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
7
Arten von Informationen
Ziele
Ziele
AnwendungsAnwendungswissen
wissen
Systemwissen
Systemwissen
Präferenzen,Einstellungen
Einstellungen
Präferenzen,
Dialogverhalten
Dialogverhalten
DeskriptiveInformationen
Informationen
Deskriptive
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
8
Beispiel: Bildung von Annahmen
Beispiel: Annahmen an welchen Themen ein Benutzer
interessiet ist:
Heuristiken:
Kauft ein Produkt zu dem Thema
Benutzer setzt ein Lesezeichen auf eine Seite, die ein bestimmtes
Thema besitzt
Benutzer besucht die Seite immer wieder
Benutzer speichert den Inhalt der Seite lokal ab
Benutzer verweilt eine längere Zeit auf der Seite
Benutzer schaut sich ähnliche Seiten an
etc.
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
9
Verwendung von Annahmen
Präsentation
Dialogablauf, Interaktionsmedien
Reihenfolge (das wichtigste zuerst)
Highlighting bestimmter Themen
etc.
Auswahl der relevanten Objekte aus großem Objektpool
Content-Based Filtering: Objekte werden durch Schlüsselwörter
beschrieben, Ranking der Schlüsselwörter von abgerufenen
Objekten, Einordnung von neuen Objekten bezüglich Ranking
Social Filtering: versucht Benutzer in Gruppen einzuordnen, z.B.
durch entsprechende Fragen, die Benutzer beantwortet. Oft
eingesetzt in Online-Shops (z.B. Amazon) mit dem Ziel einer
Abbildung von Gruppen auf Produkte
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
10
Dimensionen
Implizites vs. explizites Benutzermodell
Standardbenutzermodell vs. individuelles
Benutzermodell
Modellaufbau durch Benutzer (adaptierbar) vs.
Modellaufbau durch das System (adaptiv)
Statisches vs. dynamisches Benutzermodell
Für Benutzer transparentes Modell vs. für Benutzer
intransparentes Modell
Persistentes Modell vs. sitzungsbezogenes Modell
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
11
Standard- vs. individuelles Benutzermodell
Je unspezifischer der Anwendungsbereich und inhomogener
der Benutzerkreis, desto mehr wird es notwendig das
Benutzermodell des Systems zu individuallisieren
Individuelles
Modell
Benutzerkreis
inhomogen
homogen
Anwendungsbereich
spezifisch
Standardmodell
unspezifisch
Kombination, z.B.
gruppenbasiertes Modell
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
12
Probleme
Akzeptanzprobleme
Beobachtung durch das Programm
Intransparenz welche Daten über Benutzer gepseichert werden
Datenschutzproblem
Zeitproblem bei adaptierbarben Systemen
Verwendung wird als störend empfunden
Benutzer kann sich bevormundet fühlen
Zu scharfe Grenzen zwischen Stereotypen können dazu
führen, dass Benutzer sich im "Käfig seines Geschmacks"
fühlt
…
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
13
Literatur
C. Stary: "Interaktive Systeme", Vieweg, 1994
A. Kobsa: "Benutzermodellierung in Dialogsystemen",
Springer-Verlag, 1985
G. Weber, M. Specht: "User Modeling and Adaptive
Navigation Support in WWW-Based Tutoring Systems",
Proceedings of the 6th International Conference, UM97
A. Sharma: "A Generic Architecture for User Modeling
Systems and Adaptive web services", URL:
http://www.csd.abdn.ac.uk/ebiweb/papers/sharma.pdf
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
14
Inhalt
Teil I: Konzepte der Benutzermodellierung
Teil II: Benutzermodellierung in Web-Anwendungen
Grundlagen und Problematik
Web-Anwendungen auf Basis von Java Servlets
Verwaltung von Sitzungsdaten
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
15
Web-Anwendungen
Web-Anwendungen sind Anwendungen, die auf WebTechnologien (HTTP, HTML, XML, JavaScript, Cookies,
URL, Applets, …) aufsetzen
Beispiele für Web-Anwendungen sind Online-Shops,
-Auktionen oder -Informationsdienste
Die Vor- und Nachteile von Web-Anwendungen korrelieren
eng mit den Vor- und Nachteilen der eingesetzten WebTechnologien:
+ weltweite Verfügbarkeit
+ sehr gutes Deployment
- eingeschränkte Benutzeroberfläche
- apriori anonyme Benutzer
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
16
WWW und HTTP
Das World Wide Web ist von seiner Architektur her nach
dem Client-Server Prinzip aufgebaut.
Die Kommunikation zwischen Client und Server wird durch
das Hypertext Transfer Protocol (HTTP) festgelegt.
HTTP ist ein zustandsloses, verbindungsorientiertes
Protokoll der Anwendungsschicht
HTTP unterscheidet zwischen Request und Response
Data General
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
17
HTTP-Request-Response-Szenario
1. Der Benutzer gibt die URI http://www.uni-stuttgart.de/index.html ein
2. Der Browser fragt den DNS-Server nach der IP-Adresse für den DNSNamen www.uni-stuttgart.de
3. DNS-Server antwortet mit einer IP Adresse, z.B. 129.69.2.151
4. Der Browser baut eine TCP-Verbinung zu 129.69.2.151 auf
5. Der Browser sendet HTTP-Request:
GET /index.html HTTP/1.0 (+Header-Info)
6. Der Web-Server auf dem Rechner 129.69.2.151 bearbeitet den
Request. Er liest z.B. die Datei index.html aus dem Filesystem und
sendet diese über die TCP-Verbindung zurück
7. Die TCP-Verbindung wird geschlossen
8. Der Browser stellt den Inhalt dar
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
18
HTTP-Request-Response-Szenario (2)
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
19
HTTP-Response
Ein einfacher GET Request:
GET
/index.html
HTTP/1.0
Eine einfache Response
HTTP/1.0 200 OK
Date: Wed, 02 Aug 2000 08:15:07 GMT
Status: 200
Content-Type: text/html
Content-Language: en
<html>
<head><title>Hello World</title></head>
<body><h1>Hello World</h1></body>
</html>
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
20
Uniform Resource Identifier
Ein URI (RFC 2396) besteht aus folgenden Teilen:
protocol
host:port
request path
query string
http://localhost:8080/index.htm
http://selfhtml.teamone.de/index.htm
http://www.google.de/search?q=MUMS&ie=UTF-8&hl=de
Weitere:
ftp://ftp.is.co.za/rfc/rfc1808.txt
gopher://spinaltap.micro.umn.edu/00/Weather
mailto:[email protected]
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
21
Inhalt
Teil I: Konzepte der Benutzermodellierung
Teil II: Benutzermodellierung in Web-Anwendungen
Grundlagen und Problematik
Web-Anwendungen auf Basis von Java Servlets
Verwaltung von Sitzungsdaten
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
22
Eigenschaften von Java Servlets
Portabilität
ausführbar auf allen Systemen, für die es eine Java Virtual Machine
und einen Web-Server mit einer Servlet-Engine gibt
Zugriff auf alle Java-Bibliotheken, u.a.
JDBC für Datenbankzugriffe
CORBA und RMI für verteilte Objekte
Netzwerkunterstützung
Verwendung von XML-Technologien (XSLT, SOAP, etc.)
Effizienz
Ausführung als Threads (Leichtgewicht-Prozesse) innerhalb einer
JVM und nicht als eigenständige Betriebssystem-Prozesse
Höhere objektorientierte Programmiersprache
bessere Wartbarkeit und Wiederverwendbarkeit von Code im
Vergleich zu Scriptsprachen
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
23
Servlet Architektur
Servlets sind Java-Klassen, die das Servlet-Interface
implementieren und innerhalb einer Servlet-Engine laufen
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
24
Servlet und HttpServlet
Jedesmal wenn beim Web-Server eine Anfrage für ein
Servlet eintrifft, veranlaßt dieser die Servlet-Engine dazu,
die service() Methode des Servlets aufzurufen.
Ein HttpServlet ist ein auf HTTP angepasstes Servlet,
das eine Schnittstelle bereitstellt, um HTTP-Requests zu
lesen und HTTP-Responses zu schreiben
Übergeben werden:
ein HTTPServletResponse Objekt - kapselt HTTP-Response
ein HTTPServletRequest Objekt - kapselt HTTP-Request
HttpServlets besitzen darüberhinaus spezifische
doXXX() Methoden, wobei XXX die spezifischen HTTPMethoden wiederspiegelt. Z.B. doGet() für HTTP-GET, etc.
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
25
Servlet API
<<interface>>
Servlet
service()
init()
GenericServlet
doGet()
doPost()
…
HttpServlet
doGet()
doPost()
…
<<interface>>
ServletConfig
getInitParameter()
<<interface>>
HttpServletRequest
getCookies()
getSession()
getParamter()
<<interface>>
HttpSession
getAttribute()
setAttribute()
…
Cookie
setValue()
getValue()
getName()
<<interface>>
HttpServletResponse
addCookie()
encodeURL()
setStatus()
getOutputStream()
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
26
HTTP request and response interfaces
HttpServletRequest
HttpSession getSession()
returns the current session
associated with this request
String getHeader(String)
returns the value of the specified
request header as a String
Cookie[] getCookies()
returns all Cookie objects the
client sent with this request
String getParamter(String)
parameters are contained in the
query string or posted form data
…
HttpServletResponse
addCookie(Cookie)
adds the specified cookie to the
response
addHeader(String,String)
adds a response header with the
given name and value
String encodeURL(String)
encodes the specified URL by
including the session ID in it
setStatus(int)
sets the status code for this
response
…
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
27
Servlet registration and paths
The request path is composed of the following elements:
Context path: A concatenation of / with the Web application root
(here: /MUMS)
Servlet path: The path section that corresponds to the component
Path info: not part of the context path or the servlet path.
Pattern
Servlet
/ozon/*
OzonGenServlet
/*.jsp
HelpJspServlet
URI
Servlet path
Path info
/MUMS/ozon/index.html
/ozon
/index.html
/MUMS/help/feedback.jsp
/help/feedback.jsp null
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
28
Beispiel Servlet
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
ServletOutputStream out =
response.getOutputStream();
// schreiben von HTML in den Ausgabestrom
out.println("<html><body>hallo!</body></html>");
out.close(); // Ausgabestrom schliessen
}
}
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
29
Die Tomcat Servlet-Engine
Tomcat (aktuelle Version 4.1.18) ist die Referenzimplementierung der Java Servlet-Spezifikation 2.3 von der
Apache Group
Tomcat-Verzeichnissbaum:
Für jede Web-Applikation wird ein neues Verzeichnis unter
$TOMCAT_HOME\webapps angelegt.
Beispiel $TOMCAT_HOME\webapps\myApp
Unterhalb von myApp sollten die Verzeichnise:
WEB-INF, WEB-INF\classes und WEB-INF\lib angelegt
werden, welche die Java-Klassen (.class), die Java-Bibliotheken
(.jar) sowie die Einstellungen für die jeweilige Web-Anwendung in
der web.xml Konfigurationsdatei enthalten
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
30
HTML Formulare
Beispiel
<FORM action="http://localhost:8080/AddressServlet"
method="POST">
<input type="text" name="Name">
<!– Definition der weiteren Felder -->
</FORM>
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
31
Formulardaten auslesen und verarbeiten
Formulardaten werden als Parameter dem
HttpServletRequest-Objekt mitgegeben. Man erhält den
Wert eines Formular-Felds über die
getParameter(String)-Methode.
Beispiel:
String nameStr = request.getParameter("Name");
Der Parametername ist dabei der Name des jeweiligen
Formularelements
Das Ergebnis kann null sein, wenn es kein
Formularelement mit dem angegebenen Namen gibt oder
der Wert des Formularelements nicht gesetzt ist
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
32
Inhalt
Teil I: Konzepte der Benutzermodellierung
Teil II: Benutzermodellierung in Web-Anwendungen
Grundlagen und Problematik
Web-Anwendungen auf Basis von Java Servlets
Verwaltung von Sitzungsdaten
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
33
HttpSession
Provides a way to identify a user across more than one page
request and to store information about that user
A session usually corresponds to one user, who may visit a
site many times.
The server can maintain a session in many ways such as
using cookies or rewriting URLs
This interface allows servlets to:
View and manipulate information about a session, such as the
session identifier, creation time, and last accessed time
Bind objects to sessions, allowing user information to persist across
multiple user connections
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
34
HttpSession (2)
Object getAttribute(String name)
Returns the object bound with the specified name in this session, or null
if no object is bound under the name.
Enumeration getAttributeNames()
Returns an Enumeration of String objects containing the names of all
the objects bound to this session
long getCreationTime()
Returns the time when this session was created
String getId()
Returns a string containing the unique identifier assigned to this session
long getLastAccessedTime()
Returns the last time the client sent a request associated with this
session
void invalidate()
Invalidates this session then unbinds any objects bound to it.
void setAttribute(String name, Object value)
Binds an object to this session, using the name specified.
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
35
Session Events
HttpSessionBindingListener:
When an application stores an object in or removes an
object from a session, the session checks whether the
object implements this interface. If it does, the servlet
notifies the object that it has been bound to or unbound from
the session . The object is notified by an
HttpSessionBindingEvent object
HttpSessionListener:
Implementations of this interface are notified of changes to
the list of active sessions in a web application. To recieve
notification events, the implementation class must be
configured in the deployment descriptor for the web
application
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
36
Beispiel Code
...
HttpSession session = request.getSession(true);
Object warenkorb = session.getAttribute("Warenkorb");
if (warenkorb != null) {
// do something with it
} else {
warenkorb = new Hashtable();
}
...
// user got a product
((Hashtable)warenkorb).put(
product.getName(), product.getValue());
...
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
37
Sessions
Sessions
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
38
Links
Servlet-Seiten von SUN:
http://java.sun.com/products/servlet/
http://java.sun.com/products/servlet/download.html
Benutzermodellierung in Web-Anwendungen, Mark Giereth, 25. Juni 2003
39
Herunterladen