Kein Folientitel

Download Report

Transcript Kein Folientitel

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.
HTTP
Hypertext Transfer Protocol
• Zustandsloses InternetAnwendungs-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
Response
Request
Server
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.
URL
Uniform 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
AnwendungsProgramm
Dreischicht-Architektur
Clients
• Informationssysteme
greifen typischerweise
auf Datenbanken zu.
• Zugriff auf Datenbank
mit sprachspezifischer
Datenbankschnittstelle
C: ESQL
Java: JDBC (SQLJ)
Middletier
Datenbank
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
Quellcode
suche
• Ein Form ist ein
Bestandteil einer HTMLSeite (ein Tag), der
verschiedene
Eingabeelemente enthält.
• Ein Form konstruiert aus
den Benutzereingaben
eine parametrisierte
(interaktive) URL.
Darstellung
<FORM action=
http://...>
suchbegriff
suche
</FORM>
Wohnung
ok
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
Text
Link
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 SQLAnweisungen. Resultate
erhalten Namen.
• Erzeugung der neuen Seite
aus den Resultaten. Die
neue Seite besteht aus
Informationen, Links und
Forms.
sucheName(gesucht){
• gefundene=
${SELECT * FROM adressen
WHERE 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, *)}}