WWW Applikationen
Vorlesung Anwendungssysteme
Lernziele:
• Wie funktioniert das WWW technisch?
• Welche Basis-Interaktionsmöglichkeiten bietet das WWW?
• Wie konstruiert man damit Web-basierte Informationssysteme, die auf Datenbanken zugreifen?
WWW
• 1990 Tim Berners-Lee, CERN:WWW basiert auf neuen Standards HTTP und HTML. Erster Browser: Nexus.
• 1993 Mosaic-Browser, Marc Andreessen gründet Netscape.
• 1995 Bill Gates stoppt Microsoft Network, Internet Explorer wird entwickelt.
HTTPHypertext Transfer Protocol
• Zustandsloses Internet-Anwendungs-Protokoll, basiert auf TCP.
• Basis-Datenmodell: Verteilte Server mit eigenen Filesystemen.
• Request-Response Paradigma. Auf einen Request wird ein File geliefert.
• Nicht nur für HTML.
Browser
Server
Request
Response
TCP: bidirektionale Verbindung
• Ein Programm ist ständig bereit, eine Verbindung einzugehen: Der Serverprozess.
• Auf einem Rechner werden Serverprozesse durch ihren Port unterschieden.
• Der Client eröffnet die Verbindung aktiv.
• Während der Verbindung sind beide Prozesse bidirektional verbunden durch ASCII-Streams.
HTTP-Request
• Wird an Server gerichtet, üblicherweise Port 80.
• Request ist ein ASCII-Stream.
• Erste Zeile bei einfachen Requests– Befehl (GET, POST, HEAD, ...)– Absoluter Filename.
GET ag-db/index.html \n
HTTP-Response
• Besteht aus einem Statuswert und einer Datei.
• Statuswert: 200 = OK.404 = not found.
• Sonderfall Redirection: Die Response ist eine neue URL, die automatisch geladen wird.
URLUniform Ressource Locator
• Kompakte Darstellung eines Zugriffs mittels eines Netzwerkprotokolls:
• http://www.inf.fu-berlin.de:80/ag-db/index.html
protocol://server.domain:port/path/file.extension
HTML HyperText Markup Language
• Blockstrukturierte Sprache für grafische Darstellung.Blöcke heißen Tags.
• Wichtiges Tag: Hyperlink. Enthält als Parameter eine URL.
• Benutzereingaben mittels Forms. Diese erzeugen aus den Benutzereingaben einen HTTP-Request.
<HTML> <TITLE> Demo Page </TITLE> <BODY> <H1> Hello World </H1> This is <A HREF=http://www.w3c.org> HTML. </A> </BODY> </HTML>
HTTP-Server
• Einfaches Programm, das auf einem Socket lauscht. Typischerweise Benutzer nobody.
• Pfade in den Anfragen werden vom Serverprogramm oft übersetzt. Pfade in den Anfragen sind daher nur virtuelle Pfade.
• Für viele Anwendungen: Rückgabe konstanter Files reicht nicht aus (z.B. Suchmaschinen).
Server-Skripting
• Auf der Serverseite werden anwendungsspezifische Programme ausgeführt. Diese liefern ein File.
• Ursprüngliche Methode: CGI
– CGI: Common Gateway Interface.
– Je Request wird ein Prozess gestartet.
– Standardausgabe ist Serverantwort.
Browser
Request
Response
Server
Anwendungs-Programm
Dreischicht-Architektur
• Informationssysteme greifen typischerweise auf Datenbanken zu.
• Zugriff auf Datenbank mit sprachspezifischer DatenbankschnittstelleC: ESQLJava: JDBC (SQLJ)
Datenbank
Middletier
Clients
Benutzereingaben, Parameter.
• HTTP bietet Standardmechanismus für Parameterübergabe in der URL:http://www.beisp.de/cgi-bin/myscript/myoption?vl=aws&termin=1
• myoption ist virtueller Pfad
• vl und termin sind Parameter mit Werten.
• HTTP erlaubt Fernaufrufe von Methoden, die Parameter nehmen und Texte liefern.
HTML-Forms
• Ein Form ist ein Bestandteil einer HTML-Seite (ein Tag), der verschiedene Eingabeelemente enthält.
• Ein Form konstruiert aus den Benutzereingaben eine parametrisierte (interaktive) URL.
Darstellung
Quellcode
suche
Wohnung
ok
suche
<FORM action=http://...>
suchbegriff
</FORM>
Dies ist der HTML-Form.
Form-Elemente
• Textfelder einzeilig
• Textbereiche
• Radio Buttons
• Checkboxes
• Choice Lists
• Submit- und reset-Button
HTML-Interaktionsstil
• Ein Link startet interaktives Programm.
• Ergebnis enthält wieder Links auf interaktive Programme.
Browser Server
Url
Script1
TextLink
Script2
Tabelle
Sitzungen im WWW
• HTTP ist zustandsloses Protokoll. Der HTTP-Server speichert keine Zustände.
• Sitzungen erfordern, daß der Server den Client mit früheren Anfragen identifizieren kann.
• Möglichkeiten: URL-rewriting, Cookies.
Design von Web Applikationen
• Entwurf auf Grundlage des WWW Interaktionsstils.
• Applikation besteht aus Methoden, die Parameter nehmen und Seiten zurückgeben.
• Die Rückgabeseiten enthalten Daten und Forms, die wiederum andere Methoden aufrufen.
Logischer Entwurf
• Angabe der Parameter einer Methode.
• Angabe der daraus konstruierten SQL-Anweisungen. Resultate erhalten Namen.
• Erzeugung der neuen Seite aus den Resultaten. Die neue Seite besteht aus Informationen, Links und Forms.
sucheName(gesucht){• gefundene=
${SELECT * FROM adressenWHERE name=gesucht}
• while(gefundene.hasMore()){ print(gefundene.name); print(gefundene.anschrift); print(gefundene.email); link(loesche, gefundene.key)}
}
(Tabelle:
adressen(key, name,anschrift, email)
Sitzungen im logischen Entwurf
• Methoden werden objektorientiert aufgefasst.
• In einer Sitzung wird immer dasselbe Sitzungsobjekt aufgerufen.
• Im Sitzungsobjekt können Daten abgespeichert werden.
• Beispieltabelle:mail(to, from, subject, msg)
loggedOn = false;
setName(pretendedName){ this.name = pretendedName; this.loggedOn = true;}newMail(to, subject, msg){ if(! this.loggedOn) abort; ${INSERT INTO mail VALUES(this.name, to, subject, msg)} print(„done“);}getMails(){ if(! this.loggedOn) abort; allMails= ${SELECT from, subject, msg FROM mail WHERE to = this.name} while(allMails.hasMore()){ print(allMails.from); ... form(newMail, allMails.from, allMails.subject, *)}}