WWW Applikationen Vorlesung Anwendungssysteme Lernziele Wie funktioniert das

  • Slides: 21
Download presentation
WWW Applikationen Vorlesung Anwendungssysteme

WWW Applikationen Vorlesung Anwendungssysteme

Lernziele: • Wie funktioniert das WWW technisch? • Welche Basis-Interaktionsmöglichkeiten bietet das WWW? •

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.

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 Internet. Anwendungs-Protokoll, basiert auf TCP. • Basis-Datenmodell: Verteilte

HTTP Hypertext 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 Response Request Server

TCP: bidirektionale Verbindung • Ein Programm ist ständig bereit, eine Verbindung einzugehen: Der Serverprozess.

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.

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.

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:

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 Hyper. Text Markup Language • Blockstrukturierte Sprache für grafische Darstellung. Blöcke heißen Tags.

HTML Hyper. Text 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> <H 1> Hello World </H 1> This is <A HREF=http: //www. w 3 c. org> HTML. </A> </BODY> </HTML>

HTTP-Server • Einfaches Programm, das auf einem Socket lauscht. Typischerweise Benutzer nobody. • Pfade

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. •

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

Dreischicht-Architektur • Informationssysteme greifen typischerweise auf Datenbanken zu. • Zugriff auf Datenbank mit sprachspezifischer Datenbankschnittstelle C: ESQL Java: JDBC (SQLJ) Clients Middletier Datenbank

Benutzereingaben, Parameter. • HTTP bietet Standardmechanismus für Parameterübergabe in der URL: http: //www. beisp.

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

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 suche <FORM action= http: //. . . > suchbegriff </FORM> Wohnung ok Dies ist der HTML-Form.

Form-Elemente • • • Textfelder einzeilig Textbereiche Radio Buttons Checkboxes Choice Lists Submit- und

Form-Elemente • • • Textfelder einzeilig Textbereiche Radio Buttons Checkboxes Choice Lists Submit- und reset-Button

HTML-Interaktionsstil Browser • Ein Link startet interaktives Programm. Url • Ergebnis enthält wieder Links

HTML-Interaktionsstil Browser • Ein Link startet interaktives Programm. Url • Ergebnis enthält wieder Links auf Text interaktive Programme. Link Server Script 1 Script 2 Tabelle

Sitzungen im WWW • HTTP ist zustandsloses Protokoll. Der HTTP-Server speichert keine Zustände. •

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

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.

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. suche. Name(gesucht){ • gefundene= ${SELECT * FROM adressen WHERE name=gesucht} • while(gefundene. has. More()){ 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

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)

logged. On = false; set. Name(pretended. Name){ this. name = pretended. Name; this. logged.

logged. On = false; set. Name(pretended. Name){ this. name = pretended. Name; this. logged. On = true; } new. Mail(to, subject, msg){ if(! this. logged. On) abort; ${INSERT INTO mail VALUES(this. name, to, subject, msg)} print(„done“); } get. Mails(){ if(! this. logged. On) abort; all. Mails= ${SELECT from, subject, msg FROM mail WHERE to = this. name} while(all. Mails. has. More()){ print(all. Mails. from); . . . form(new. Mail, all. Mails. from, all. Mails. subject, *)}}