Vorlesung Informationssystemen Neuere Konzepte SS 2005 Kurs WWI

  • Slides: 91
Download presentation
Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI 02 V 2 Dipl. -Inform. Michael

Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI 02 V 2 Dipl. -Inform. Michael Klein kleinm@ipd. uni-karlsruhe. de Dipl. -Inform. Heiko Schepperle schepperle@ipd. uni-karlsruhe. de 1

Organisatorisches n Mein Name: Michael Klein n e. Mail: kleinm@ipd. uni-karlsruhe. de n Homepage

Organisatorisches n Mein Name: Michael Klein n e. Mail: kleinm@ipd. uni-karlsruhe. de n Homepage der Vorlesung: www. michaelklein. net/nki n Vorlesung: Raum 210 2

Themen Teil I n I-1: n I-2: n I-3: (Michael Klein) Web und Datenbanken

Themen Teil I n I-1: n I-2: n I-3: (Michael Klein) Web und Datenbanken (3) Objektorientierte Datenbanksysteme (2) ? Teil II n II-1: n II-2: n II-3: (Heiko Schepperle) Data Warehousing & OLAP Data Mining Imperfektion in Datenbanken 3

Details zu Teil I I-1: Web und Datenbanken ? 1. Webinformationssysteme, JSP ? 2.

Details zu Teil I I-1: Web und Datenbanken ? 1. Webinformationssysteme, JSP ? 2. Praktische Rechnerübung zu JSP ? 3. Komponentenarchitekturen, EJB I-2: Objektorientierte Datenbanksysteme ? 1. Objektorientierte Modellierung ? 2. Persistenz von Objekten (optional) I-3: Web Services? 4

Termine Teil I n Do, 09. 06. 10: 45 – 13: 15 Uhr n

Termine Teil I n Do, 09. 06. 10: 45 – 13: 15 Uhr n Mi, 15. 06. 08: 00 – 10: 30 Uhr (Rechnerübung) n Do, 23. 06. 10: 45 – 13: 15 Uhr n Do, 30. 06. 10: 45 – 13: 15 Uhr n Mo, 04. 07. 10: 45 – 13: 15 Uhr 5

Praktische Übungen n Übungsblätter ? Auf der Homepage erhältlich ? Werden zu Beginn durchgesprochen

Praktische Übungen n Übungsblätter ? Auf der Homepage erhältlich ? Werden zu Beginn durchgesprochen ? Wichtig als Klausurvorbereitung n Programmieraufgabe JSP ? Dienen zur Vertiefung der Themen ? Im Rechnerraum ? In Gruppen zu bearbeiten ? klausurrelevant 6

Vorlesung „Informationssystemen: Neuere Konzepte“ Teil „Web & Datenbanken“ Michael Klein Webinformationssysteme Erweiterung der Vorlesung

Vorlesung „Informationssystemen: Neuere Konzepte“ Teil „Web & Datenbanken“ Michael Klein Webinformationssysteme Erweiterung der Vorlesung „Webtechnologien im Überblick I“ von Wassili Kazakos (FZI, Karlsruhe)

Inhalt Themen heute: n Welche datenbankgestützten Webanwendungen gibt es? n Wie funktioniert das Web?

Inhalt Themen heute: n Welche datenbankgestützten Webanwendungen gibt es? n Wie funktioniert das Web? n Wie bekommt man die Datenbankinhalte ins Web? n Welche Technik setzt man für was ein? n Einführung in Java Server Pages (JSP) 8

Webshops, Auktionshaus, E-Commerce (1) Beispiel: Amazon. de Ebay. de 9

Webshops, Auktionshaus, E-Commerce (1) Beispiel: Amazon. de Ebay. de 9

Webshops, Auktionshaus, E-Commerce (2) Eigenschaften: n Datenbank speichert Artikel, Kundendaten, Profile Versandinformationen, Auktionen etc.

Webshops, Auktionshaus, E-Commerce (2) Eigenschaften: n Datenbank speichert Artikel, Kundendaten, Profile Versandinformationen, Auktionen etc. n Suchen in Artikeln n Bestellen von Artikeln, Bieten auf Artikel n Einsehen des Versandstatus n Auch: Angabe von Kaufempfehlungen 10

Suchmaschinen (1) Beispiele: Google. de Altavista. com 11

Suchmaschinen (1) Beispiele: Google. de Altavista. com 11

Suchmaschinen (2) Eigenschaften: n Crawler durchforsten Internet nach Seiten n Datenbank speichert indizierte Seiten

Suchmaschinen (2) Eigenschaften: n Crawler durchforsten Internet nach Seiten n Datenbank speichert indizierte Seiten ? Welche Wörter/Wortgruppen sind enthalten ? Wer linkt auf diese Seite n Suchen nach Stichworten/Wortgruppen möglich n Ranking der Suchergebnisse nach unterschiedlichen Kriterien n Meist einfache, funktionale Oberfläche 12

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrationsoberflächen 13

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrationsoberflächen 13

Webanwendungen, Weboberflächen (2) Eigenschaften: n Datenbank speichert Userinformation (inkl. Passwort), administrierte Daten (Mails, Ordner,

Webanwendungen, Weboberflächen (2) Eigenschaften: n Datenbank speichert Userinformation (inkl. Passwort), administrierte Daten (Mails, Ordner, Termine, etc. ) n Web dient als Oberfläche, diese von beliebigen Ort, auf beliebigen (webfähigen) Gerät einsehen und verändern zu können 14

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo. de Zeitungen/Zeitschriften, Spiegel. de 15

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo. de Zeitungen/Zeitschriften, Spiegel. de 15

Web Portale, „inhaltsstarke“ Seiten (2) Eigenschaften: n Komplexe, vielschichtige Seiten n Viele Autoren, viele

Web Portale, „inhaltsstarke“ Seiten (2) Eigenschaften: n Komplexe, vielschichtige Seiten n Viele Autoren, viele Informationsquellen n Corporate Identity wichtig n Formatvariationen für Ausgabegerät 16

Internetspiele (1) Beispiel: Brettspiel. Welt, War. Craft III Battle. net. Server 17

Internetspiele (1) Beispiel: Brettspiel. Welt, War. Craft III Battle. net. Server 17

Internetspiele (2) Eigenschaften: n Rechenintensive Anwendung n Hoher graphischer Aufwand n Spezielle Interaktionsbedürfnisse 18

Internetspiele (2) Eigenschaften: n Rechenintensive Anwendung n Hoher graphischer Aufwand n Spezielle Interaktionsbedürfnisse 18

Technischer Aufbau des Internets

Technischer Aufbau des Internets

Das Internet – Die Geschichte n Internet = Netz von Netzen n 1960: das

Das Internet – Die Geschichte n Internet = Netz von Netzen n 1960: das Internet entsteht aus dem militärischen ARPANET n 1982: TCP/IP setzt sich durch n 1990: Erste graphische Browser, das World Wide Web (WWW) entsteht n ab 1990: Rasantes Wachstum des Internets 20

Das Internet - Technik n Stapel von Protokollen ? ISO/OSI-Referenzarchitektur, 7 Schichten n Unabhängig

Das Internet - Technik n Stapel von Protokollen ? ISO/OSI-Referenzarchitektur, 7 Schichten n Unabhängig von Betriebssystem & Netzwerktechnologie n Teilnehmer sind durch eindeutige IP-Adresse ausgezeichnet n Vielzahl von Diensten möglich ? Mail, WWW, File-Sharing, Web-Radio (Streaming), Web. Services… 21

Schichten des Internets Klient Server Application HTTP Application Transport TCP Transport Network IP Network

Schichten des Internets Klient Server Application HTTP Application Transport TCP Transport Network IP Network Data Link Physical 22

Netzwerkschicht Klient Server Application HTTP Application Transport TCP Transport Network IP Network • vergibt

Netzwerkschicht Klient Server Application HTTP Application Transport TCP Transport Network IP Network • vergibt weltweilt eindeutige IP-Adressen, z. B. 155. 23. 21. 2 • Sucht einen Weg zwischen zwei Netzteilnehmern (Routing) • zustandslos, d. h. Pakete wandern unabhängig durch das Netz Empfänger Sender Paket 23

Transportschicht Klient Server Application HTTP Application Transport TCP Transport Network IP Network • Stellt

Transportschicht Klient Server Application HTTP Application Transport TCP Transport Network IP Network • Stellt eine Verbindung zwischen zwei Teilnehmern her • Explizites Öffnen und Schließen nötig • Ordnet die ankommenden Pakete • Regelt die Geschwindigkeiten zwischen den Partnern (Staukontrolle) • Weist Pakete der entsprechenden Anwendung zu (Ports, Multiplexing) • zustandsbasiert 24 • Weiteres Protokoll: UDP

Anwendungsschicht - HTTP Klient Server Application HTTP Application Transport TCP Transport Network IP Network

Anwendungsschicht - HTTP Klient Server Application HTTP Application Transport TCP Transport Network IP Network • Nutzt eine TCP-Verbindung, um Daten (Hypertexte) zu übertragen • get: Anfordern einer Datei vom Server • put: Ablegen einer Datei auf dem Server • post: Übermitteln von Parametern & Anforderung einer Datei • Zustandslos • für jede Datei muss ein neues get gesendet werden • Server kennt Verlauf der Klientenaktionen nicht • Weitere Protokolle: RMI, FTP, SMTP, … 25

Typisches Dokumentformat bei HTTP: HTML Application HTTP Application Ausgetauschte Information z. B. im HTML-Format

Typisches Dokumentformat bei HTTP: HTML Application HTTP Application Ausgetauschte Information z. B. im HTML-Format • Hypertext Markup Language • Mischt Text mit Markup-Elementen (Tags), die Aussehen und Verhalten modifizieren • z. B. Dieser Text ist <b>fettgeschrieben</b>. • Möglichkeit zur • Verlinkung auf andere Seiten • Definition von Formularfeldern für Benutzereingaben • Plattformunabhängig, wird von einem HTML-Renderer (üblicherweise einem Browser) auf dem Zielsystem dargestellt 26

Anwendungsschicht: weitere Protokolle Klient Server Application ? Application Transport TCP Transport Network IP Network

Anwendungsschicht: weitere Protokolle Klient Server Application ? Application Transport TCP Transport Network IP Network Vielzahl weiterer Anwendungsprotokolle: • Remote Method Invocation (RMI), Remote Procedure Calls (RPC) • Verteiltes Programmieren • Entfernter Aufruf von Methoden/Funktionen • Serialisierung und Versendung der Parameter • Simple Object Access Protocol (SOAP) über HTTP • Zugriff auf Web Services • Eigene Protokolle 27

Zugriff auf Datenbanken über das Web

Zugriff auf Datenbanken über das Web

Zugriff auf Datenbanken über das Web Unterschiedlich je nach Protokoll auf Anwendungsebene. Extreme: 1.

Zugriff auf Datenbanken über das Web Unterschiedlich je nach Protokoll auf Anwendungsebene. Extreme: 1. Serverseitige Generierung, Thin Client: Browser HTTP(HTML) HTTP Server DB 2. Klientenseitige Verarbeitung, keine Logik im Server, Rich Client: Erwei. Browser terung Datenbankspezifisches Protokoll DB 29

Weitere Zugriffsmöglichkeiten Entfernte Methodenaufrufe Browser Applet RMI / RPC RMI Server DB Web Services

Weitere Zugriffsmöglichkeiten Entfernte Methodenaufrufe Browser Applet RMI / RPC RMI Server DB Web Services Anwendung HTTP(SOAP) SOAP Server Dienst DB 30

Serverseitige Ansätze Der „klassische“ Weg

Serverseitige Ansätze Der „klassische“ Weg

Serverseitige Ansätze - Übersicht Generell: n Serverseitige Generierung von HTML-Seiten ? Offline, durch Vorberechnung

Serverseitige Ansätze - Übersicht Generell: n Serverseitige Generierung von HTML-Seiten ? Offline, durch Vorberechnung statischer HTML-Seiten ? Durch Zugriff auf HTML-generierende Anwendungen ? Durch Einbettung HTML-generierender Skriptteile in statisches HTML kompiliert interpretiert 32

Serverseitige Ansätze - Bewertung n Generelle Vorteile: ? Zentrale Wartbarkeit der Anwendungslogik ? Geringe

Serverseitige Ansätze - Bewertung n Generelle Vorteile: ? Zentrale Wartbarkeit der Anwendungslogik ? Geringe Anforderungen an den Klienten (nur Browser) ? Plattformunabhängigkeit – Klient sieht reines HTML ? Sicherheit – Klient greift nicht direkt auf Datenbank zu ? Sicherheit – Kein aktiver Code beim Klienten n Generelle Nachteile: ? Eingeschränkte GUI-Möglichkeiten ? Zustandslosigkeit von HTTP ? HTML ist doch nicht so plattformunabhängig ? Jede Interaktion erfordert Kommunikation mit dem Server 33

Serverseitige Ansätze 1. Offline, Vorberechnung von HTML-Seiten

Serverseitige Ansätze 1. Offline, Vorberechnung von HTML-Seiten

Offline, Vorausberechnung von HTML-Seiten n Periodische Extraktion von Daten aus einem DBMS, Vorbereitung von

Offline, Vorausberechnung von HTML-Seiten n Periodische Extraktion von Daten aus einem DBMS, Vorbereitung von statischen HTML Seiten n Navigation mittels offline generierter Links n Auslieferung als gewöhnliche HTML-Seite über HTTP HTML HTTP Generierungswerkzeug Datenbank HTML 35

Bewertung n Vorteile ? Schneller Zugriff: Nur Ausliefern der HTML-Seiten ? Keine DB-Zugriffe ?

Bewertung n Vorteile ? Schneller Zugriff: Nur Ausliefern der HTML-Seiten ? Keine DB-Zugriffe ? Automatische Erfassung durch Suchmaschinen n Nachteile ? Im Vergleich zu Datenbanksystemen begrenzte Suchfunktionalität ? Aktualisierungs- und Konsistenzproblem ? Keine Anwendungsfunktionalität, kein richtiges Reagieren auf Eingaben 36

Serverseitige Ansätze 2. Durch Zugriff auf HTML-generierende Anwendungen

Serverseitige Ansätze 2. Durch Zugriff auf HTML-generierende Anwendungen

Common Gateway Interface n Common Gateway Interface ? Definierte Schnittstelle für den Zugriff auf

Common Gateway Interface n Common Gateway Interface ? Definierte Schnittstelle für den Zugriff auf Server-seitige Anwendungen ? Ermöglicht HTTP-Servern den Zugriff auf externe, lokale Anwendungen ? Beispiel: http: //www. klick-and-bau. com/cgi/suche? term=tisch&preis=1 Aufruf des Programms "suche" mit den parametern "term" und "preis" n Implementiert in beliebiger Programmier- oder Skriptsprache (z. B. CGI-Skripte). Häufig: Perl, C, C++ n Datenbankintegration durch entsprechende Anwendungen 38

CGI-Skripte Betätigung Submit-Button <FORM METHOD="POST" ACTION="http: //www. fzi. de/ cgi-bin/my-form"> Aufruf des Skriptes mit

CGI-Skripte Betätigung Submit-Button <FORM METHOD="POST" ACTION="http: //www. fzi. de/ cgi-bin/my-form"> Aufruf des Skriptes mit Parametern Initialisierung bei jedem Aufruf HTTPServer client Anfrage Aufbau der DB Verbindung bei jedem Aufruf Datenbank CGI-Skript Verbindungsaufbau SQL Anfrage Antwort Ergebnis HTTP Server Antwortet Skript übermittelt HTML und beendet sich Skript generiert HTML Skript stellt Anfrage an DB 39

Bewertung n Vorteile ? Beliebige Programme können integriert werden ? Sicherheit durch eigenen Prozess

Bewertung n Vorteile ? Beliebige Programme können integriert werden ? Sicherheit durch eigenen Prozess ? Volle Suchfunktionalität des darunter liegenden DBMS (z. B. SQL) n Nachteile ? Ein Prozess pro Anfrage ? Keine Speicherung des Zustands ? Für jede DB-Anfrage Verbindung aufbauen und trennen ? Keine Trennung von Präsentation und Anwendungslogik ? CGI-Skripte nur für kleine Anwendungen 40

API-basierte Ansätze n Entwickelt um Nachteile der CGI-Skripte zu überwinden ? Die CGI-Schnittstelle bleibt

API-basierte Ansätze n Entwickelt um Nachteile der CGI-Skripte zu überwinden ? Die CGI-Schnittstelle bleibt erhalten n Erweiterungen werden in den Adressraum des Servers geladen ? Müssen nur einmal geladen werden ? Werden in Threads statt Prozessen ausgeführt n Bekanntesten Vertreter ? NSAPI (Netscape) ? ISAPI (Microsoft) ? Java Servlets (Sun) 41

API-basierte Ansätze Betätigung Submit-Button <FORM METHOD="POST" ACTION="http: //www. fzi. de/ cgi-bin/my-form"> Aufruf des Programms,

API-basierte Ansätze Betätigung Submit-Button <FORM METHOD="POST" ACTION="http: //www. fzi. de/ cgi-bin/my-form"> Aufruf des Programms, Parameterübergabe Initialisierung bei ersten Aufruf (einmalig) Verbindungsaufbau zur DB beim ersten Aufruf (einmalig) HTTPServer client Datenbank Verbindungsaufbau Anfrage Programm SQL Anfragen Antwort Ergebnisse Zustand Beliebig viele SQL Anfragen HTML-Rückgabe HTML-Generierung 42

Bewertung n Vorteile ? Höhere Leistungsfähigkeit Session-Verwaltung Zustände, z. B. DB-Verbindung ? Weniger Ressourcenverbrauch

Bewertung n Vorteile ? Höhere Leistungsfähigkeit Session-Verwaltung Zustände, z. B. DB-Verbindung ? Weniger Ressourcenverbrauch n Nachteile ? Keine Standardisierung ? Mangelnde Sicherheit ? Keine Trennung von Präsentation und Anwendungslogik 43

Serverseitige Ansätze 3. Durch Einbettung HTML-generierender Skriptteile in statisches HTML

Serverseitige Ansätze 3. Durch Einbettung HTML-generierender Skriptteile in statisches HTML

Server-Side Skripting n In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert n Beliebig viele HTML-Quellen

Server-Side Skripting n In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert n Beliebig viele HTML-Quellen können aufgenommen werden HTML Datenbank Scripting Anwendungs. Logik 46

Ausführungsvarianten Anwendung erstellen Laufzeit <HTML> Anwendung erstellen <HTML> <xyz: . . . > <jsp:

Ausführungsvarianten Anwendung erstellen Laufzeit <HTML> Anwendung erstellen <HTML> <xyz: . . . > <jsp: . . . > </HTML> Interpreter Übersetzungszeit (einmalig) Compiler Ausführbares Programm Laufzeit HTMLDokument interpretiert HTMLDokument kompiliert 47

Typische Vertreter Interpretiert: n PHP - Personal Home Page n ASP - Active Server

Typische Vertreter Interpretiert: n PHP - Personal Home Page n ASP - Active Server Pages (Microsoft IIS) n Server Side Java. Script (Netscape) Kompiliert: n JSP - Java Server Pages n ASP. NET – Active Server Pages. NET 48

Bewertung n Vorteile: ? Starke Verbreitung, gute Unterstützung ? Volle Programmiersprachenfunktionalität ? Standardisierung ?

Bewertung n Vorteile: ? Starke Verbreitung, gute Unterstützung ? Volle Programmiersprachenfunktionalität ? Standardisierung ? Überbrückung der Zustandslosigkeit durch „Tricks“ ? Einbindung externer Programme möglich ? Statische Teile brauchen nicht erzeugt zu werden n Nachteile: ? Häufig geringe Geschwindigkeit ? Starke Mischung von HTML und Programmiersprache 49

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf HTMLgenerierende Anwendung Generierung statischer Seiten CGI API-basiert Durch Einbettung HTMLgenerierender Skriptteile interpretiert SSI ASP PHP kompiliert JSP 50

Client-seitige Ansätze

Client-seitige Ansätze

Zugriff auf Datenbanken über das Web Unterschiedlich je nach Protokoll auf Anwendungsebene. Extreme: 1.

Zugriff auf Datenbanken über das Web Unterschiedlich je nach Protokoll auf Anwendungsebene. Extreme: 1. Serverseitige Generierung, Thin Client: Browser HTTP(HTML) HTTP Server DB 2. Klientenseitige Verarbeitung, keine Logik im Server, Rich Client: Browser Applet Datenbankspezifisches Protokoll DB 52

Clientseitige DB-WWW-Integration n Realität: ? Höhere Ansprüche an die Benutzeroberfläche ? Teilverlagerung von Funktionalität

Clientseitige DB-WWW-Integration n Realität: ? Höhere Ansprüche an die Benutzeroberfläche ? Teilverlagerung von Funktionalität auf die Client-Seite n Nicht mehr HTML-Generierung ? Erweiterung 1: mehr Interaktion/Überprüfung auf dem Client ? Erweiterung 2: Windows-ähnliche Benutzerführung ? Erweiterung 3: Unmittelbarer Zugriff auf die Daten 53

Funktionalität auf der Client-Seite n Browser-spezifische Erweiterungen: Plug-Ins ? z. B. Macromedia Shockwave, Macromedia

Funktionalität auf der Client-Seite n Browser-spezifische Erweiterungen: Plug-Ins ? z. B. Macromedia Shockwave, Macromedia Flash n Skript-Sprachen ? z. B. Java. Script, Visual Basic Script n Volle Programmiersprachen ? Java (Applets) ? Visual. Basic, C++ über Active. X controls n Übliche Aufteilung ? Benutzerschnittstelle auf dem Client ? Datenbankdienste weiterhin auf dem Server Vom Direktzugriff von Client auf die DB ist aus Sicherheitsgründen abzuraten 54

Beispiel: Client-seitige Integration Präsentation/ Interaktion Server-Prozess Datenbank Anwendungs. Logik Daten 55

Beispiel: Client-seitige Integration Präsentation/ Interaktion Server-Prozess Datenbank Anwendungs. Logik Daten 55

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf HTMLgenerierende Anwendung Generierung statischer Seiten CGI API-basiert Clientseitige GUI Durch Einbettung HTMLgenerierender Skriptteile interpretiert SSI ASP PHP Java Applet Java. Script Plug. Ins … kompiliert JSP 56

Resümee n Häufigste Formen ? HTML-Generierung auf Serverseite: CGI mit Perl, C, C++ PHP,

Resümee n Häufigste Formen ? HTML-Generierung auf Serverseite: CGI mit Perl, C, C++ PHP, JSP, ASP ? Bei starker Interaktion und komplexer Benutzerführung Clientseitige Erweiterung (Java. Skript, Java) n Keine „beste Lösung“ für alle Fälle n Kriterien im Einzelfall entsprechend Anforderungen gewichten n Immer zu beachten: ? rasanter technologischer Fortschritt ? rasche Produktentwicklungen 57

Ausblick Neue „Hype“-Themen auf dem Gebiet n Java. Server Faces ? vereinfachte, modulare GUI-Erstellung

Ausblick Neue „Hype“-Themen auf dem Gebiet n Java. Server Faces ? vereinfachte, modulare GUI-Erstellung auf dem Client n Web. Services ? Einbindung von externer Funktionalität über das Web n Zugang auch für mobile Geräte (Handys, PDAs…) n Microsoft ASP. NET n … 58

Anwendungen für Webdatenbanken

Anwendungen für Webdatenbanken

Webshops, Auktionshaus, E-Commerce (1) Beispiel: Amazon. de Ebay. de 60

Webshops, Auktionshaus, E-Commerce (1) Beispiel: Amazon. de Ebay. de 60

Webshops, Auktionshaus, E-Commerce (2) Techniken: n Meist Relationale DBMS n Klient: Normaler Browser, Cookies,

Webshops, Auktionshaus, E-Commerce (2) Techniken: n Meist Relationale DBMS n Klient: Normaler Browser, Cookies, wenig Java. Script n Serverseitig: CGI (C++? ), (EJB) 61

Suchmaschinen (1) Beispiele: Google. de Altavista. com 62

Suchmaschinen (1) Beispiele: Google. de Altavista. com 62

Suchmaschinen (2) Techniken: n Farm relationaler DBMS, Parallele Datenbanken n Serverseitig: CGI meist mit

Suchmaschinen (2) Techniken: n Farm relationaler DBMS, Parallele Datenbanken n Serverseitig: CGI meist mit schnellen, kompilierten Sprachen, z. B. C, C++ n Client: Reiner Browser, sehr schlanke Seiten 63

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrationsoberflächen 64

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrationsoberflächen 64

Webanwendungen, Weboberflächen (2) Technik: n Meist rel. Datenbanken n Serverseitige Skriptsprachen: Perl, Python, PHP,

Webanwendungen, Weboberflächen (2) Technik: n Meist rel. Datenbanken n Serverseitige Skriptsprachen: Perl, Python, PHP, JSP n Klientseitig: Standardbrowser 65

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo. de Zeitungen/Zeitschriften, Spiegel. de 66

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo. de Zeitungen/Zeitschriften, Spiegel. de 66

Web Portale, „inhaltsstarke“ Seiten (2) Technik: n Content-Management-System n Trennung von Struktur und Inhalt

Web Portale, „inhaltsstarke“ Seiten (2) Technik: n Content-Management-System n Trennung von Struktur und Inhalt XML n Meist realisiert durch CGI n Administration der Inhalte auch über Web möglich n Klientseitig: Browser Layout-Templates Rohdaten CMS Anzeigbare Webseite 67

Internetspiele (1) Beispiel: Brettspiel. Welt, War. Craft III Battle. net. Server 68

Internetspiele (1) Beispiel: Brettspiel. Welt, War. Craft III Battle. net. Server 68

Internetspiele (2) Technik: n Serverseitig nicht berechenbar n In Standardbrowser nicht anzeigbar n Clientseitige

Internetspiele (2) Technik: n Serverseitig nicht berechenbar n In Standardbrowser nicht anzeigbar n Clientseitige Anwendung berechnet Graphiken, Spielverlauf etc. ? Java Applet, Kommunikation mit Server über eigenes Protokoll ? eigene Anwendung, eigenes Protokoll n Serverseitige Datenbank: Speichert angemeldete Nutzer, laufende Spiele etc. n Meist: Nach Beginn des Spieles Peer-to-Peer-Kommunkation ohne Einbeziehung des Servers 69

Literatur Erhard Rahm, Gottfried Vossen Web und Datenbanken. Konzepte, Architekturen, Anwendungen. DPunkt Verlag 2002

Literatur Erhard Rahm, Gottfried Vossen Web und Datenbanken. Konzepte, Architekturen, Anwendungen. DPunkt Verlag 2002 Kazakos, Schmidt, Tomczyk Datenbanken und XML. Konzepte, Anwendungen, Systeme Springer Verlag 2002 http: //www. datenbanken-und-xml. de 70

Im Detail: Java Server Pages (JSP)

Im Detail: Java Server Pages (JSP)

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf

Übersicht Webinformationssysteme Web. DB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTMLSeiten Durch Zugriff auf HTMLgenerierende Anwendung Generierung statischer Seiten CGI API-basiert Clientseitige GUI Durch Einbettung HTMLgenerierender Skriptteile interpretiert SSI ASP PHP Java Applet Java. Script Plug. Ins … kompiliert JSP 72

Server-Side Skripting n In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert HTML Datenbank Scripting Anwendungs.

Server-Side Skripting n In HTML-Seiten werden zusätzliche HTML-generierende Quellen integriert HTML Datenbank Scripting Anwendungs. Logik 73

Java Server Pages (JSP) n n Bestandteil der Java 2 Plattform Enterprise Edition Trennung

Java Server Pages (JSP) n n Bestandteil der Java 2 Plattform Enterprise Edition Trennung von (HTML-)Präsentation und Inhalt Zugriff auf weitere HTML-Quellen über Beans und Servlets Ablauf ? Erstellung einer JSP ? Aufruf der JSP durch den Benutzer Überprüfung, ob sich die JSP geändert hat oder ob sie neu ist (Gegebenenfalls Übersetzung der JSP in ein Servlet) Ausführung des Servlets ? Rückgabe des Ergebnisses 74

JSP Ablauf HTTPServer Generierung des JSP Servlet aus JSP Page (HTML + Scripting) JSPpage

JSP Ablauf HTTPServer Generierung des JSP Servlet aus JSP Page (HTML + Scripting) JSPpage client Datenbank Verbindungsaufbau Anfrage Antwort JSPServlet SQL Anfragen Ergebnisse Zustand 75

JSP Elementtypen n JSP-Direktiven n JSP-Skriptelemente n JSP-Aktionen 76

JSP Elementtypen n JSP-Direktiven n JSP-Skriptelemente n JSP-Aktionen 76

JSP Elementtypen JSP-Direktiven n n Nachrichten/Anweisungen an den HTTP-Server Keine Ausgabe Syntax: <%@. .

JSP Elementtypen JSP-Direktiven n n Nachrichten/Anweisungen an den HTTP-Server Keine Ausgabe Syntax: <%@. . . %> include-Direktive ? Einfügen von Texten vor der Übersetzung ? <%@include file="Pfadangabe"%> ? Beispiel <%@ include file="copyright. txt" %> n page-Direktive ? Steuerung der Übersetzung ? <%@page attrib 1="txt" attrib 2="txt". . . %> ? Beispiel <%@ page error. Page="/error. html" %> n taglib-Direktive ? Zur Erzeugung benutzerspezifischer Tags 77

JSP-Skriptelemente (1) JSP Elementtypen n Vereinbarungen / Deklarationen ? Deklarationen von Variablen, Methoden und

JSP-Skriptelemente (1) JSP Elementtypen n Vereinbarungen / Deklarationen ? Deklarationen von Variablen, Methoden und inneren Klassen ? Syntax: <%! Vereinbarung(en) %> ? import über die Direktive ? Beispiel: Instanzvariablen: <%! int i=0; float f; %> Methode: <%! public String Zeit() {. . . } %> n Anweisungsfragemente/Scriplet ? Einbettung von Java-Fragmenten ? Syntax: <% Anweisungsfragment(e) %> ? Lokale Variablendeklaration ? Beispiel: <% int i=1; while (i<10) {out. println(i); i++; } %> 78

JSP-Skriptelemente (2) JSP Elementtypen n Ausdrücke ? Einfachste Art eines Skripts ? Syntax: <%=

JSP-Skriptelemente (2) JSP Elementtypen n Ausdrücke ? Einfachste Art eines Skripts ? Syntax: <%= Ausdruck %> ? Umwandlung zur Laufzeit in String (to. String-Methode) ? Beispiel: <%= variable %> entspricht ? <%out. print(variable); %> n Kommentare ? Syntax: <%-- comment --%> 79

JSP-Aktionen JSP Elementtypen n Ziel ? Erzeugen und Verändern von Objekten ? Steuerung der

JSP-Aktionen JSP Elementtypen n Ziel ? Erzeugen und Verändern von Objekten ? Steuerung der aktuellen Ausführung n Aktion include ? Aufruf einer Seite zur Ausführungszeit (auch JSP möglich) ? Syntax: <jsp: include page="Pfadangabe" /> n Aktion forward ? Weiterleitung der Anfrage an eine andere Seite ? Syntax: <jsp: forward page="Pfadangabe" /> 80

JSP: Beispiel n Angenommen, klick-and-bau. com verwaltet Artikelstammdaten in der folgenden Tabelle: ARTIKEL( Id

JSP: Beispiel n Angenommen, klick-and-bau. com verwaltet Artikelstammdaten in der folgenden Tabelle: ARTIKEL( Id CHAR(12), Name VARCHAR(25), Beschreibung VARCHAR(512), Photo_URL VARCHAR(512), Hersteller_Id CHAR(12) Kategorien VARCHAR(256), Status INT, Preis NUMERIC(8, 2) ) n Aktuelle Produktname und Photo sollen nun über das Web zur Verfügung gestellt werden 81

JSP: Beispiel <%-<%@ page-Direktive --%> page error. Page="error. html" import="java. sql. *" session="false" %>

JSP: Beispiel <%-<%@ page-Direktive --%> page error. Page="error. html" import="java. sql. *" session="false" %> <html> <body> <h 1 align="center"> Produktliste vom <%-- Ausdruck --%> <%= new java. util. Date(). to. Locale. String()%> </h 1>. . . 82

JSP: Beispiel (Forts. ) . . . <%-<%-<%! Datenbank-Verbindung --%> Deklaration der Instanzvariablen --%>

JSP: Beispiel (Forts. ) . . . <%-<%-<%! Datenbank-Verbindung --%> Deklaration der Instanzvariablen --%> Connection con; %> <%-- Skriplet zum Verbindungsaufbau und Abfrage--%> <% Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); con = Driver. Manager. get. Connection ("jdbc: odbc: Produkt. Datenbank", "name", "pwd"); Statement stmt = con. create. Statement(); Result. Set rs = stmt. execute. Query ("SELECT name, photo_URL FROM artikel"); %>. . . 83

JSP: Beispiel (Forts. ) . . . <%-Ausgabe in zwei Spalten. . . --%>

JSP: Beispiel (Forts. ) . . . <%-Ausgabe in zwei Spalten. . . --%> <table> <tr> <th>Name</th><th>Bild</th> </tr> <%-. . . Zeile für Zeile--%> <% while (rs. next()){ %> <tr><td> <%= rs. get. String(1)%> </td> <img src="<%=rs. get. String(2)%>"> </td> </tr> <%}%> </table> <%-Verbindung schließen--%> <% rs. close(); %> </body> </html> 84

Parameterübergabe in JSP request Enthält die Parameter, die per HTTP über POST von einer

Parameterübergabe in JSP request Enthält die Parameter, die per HTTP über POST von einer anderen Seite übergeben wurden. Bsp: HTML: <form action=„foo. jsp“ method=„post“> <input type="hidden" value=„ 20021220" name=„Datum"> <input type="submit" value=„Abschicken"> </form> JSP: foo. jsp String datum = request. get. Parameter(„Datum“) 85

JSP-Aktionen und EJB JSP Elementtypen n Standardaufgaben sollten auch weiterhin in Komponenten ausgelagert werden

JSP-Aktionen und EJB JSP Elementtypen n Standardaufgaben sollten auch weiterhin in Komponenten ausgelagert werden ? In Java: EJB ? Einbindung über JSP-Aktionen n Aktion use. Bean ? Deklaration der Bean ? Syntax: <jsp: use. Bean id="var. Name" class="Klassen. Name" scope="Gültigkeits. Bereich"/> 86

JSP-Aktionen und EJB JSP Elementtypen n Aktion get. Property ? Lesen der Eigenschaft einer

JSP-Aktionen und EJB JSP Elementtypen n Aktion get. Property ? Lesen der Eigenschaft einer Komponente ? Syntax: <jsp: get. Property name="var. Name" property="Attributs. Name" n Aktion set. Property ? Schreiben der Eigenschaft einer Komponente ? Syntax: <jsp: set. Property name="var. Name" property="Attributs. Nam" value="Wert"/>, oder <jsp: set. Property name="var. Name" property="Attributs. Name" param="cgi-parameter" /> 87

JSP und Synchronisation Grundsätzlich mehrere Instanzen einer JSPSeite/eines Servlets möglich. Abhilfe im Falle von

JSP und Synchronisation Grundsätzlich mehrere Instanzen einer JSPSeite/eines Servlets möglich. Abhilfe im Falle von Synchronisationsproblemen: <%@ page is. Thread. Safe="false" %> 88

JSP Sitzungsverfolgung / Session Management n JSP-Seiten nehmen an Sitzungsverwaltung teil n In spezieller

JSP Sitzungsverfolgung / Session Management n JSP-Seiten nehmen an Sitzungsverwaltung teil n In spezieller Variablen „session“ vom Typ Http. Session können Objekte unter Namen abgelegt werden <% Foo foo = new Foo(); session. put. Value("foo", foo); %> n Inhalt kann auch aus anderer Seite ausgelesen werden <% Foo my. Foo = (Foo) session. get. Value("foo"); %> n Technik: Überwindung der Zustandslosigkeit durch clientseitige Cookies n Häufigste Anwendung: Warenkorb 89

JSP Bewertung Sehr stark: n Mischung von Designcode (HTML) und Programmiersprachencode (JAVA) n Trennung

JSP Bewertung Sehr stark: n Mischung von Designcode (HTML) und Programmiersprachencode (JAVA) n Trennung in Template. Engine, z. B. Web. Macro 90

Tutorial n JGuru: JSP Short Tutorial http: //java. sun. com/developer/online. Training/JSPIntro/contents. html n Sinnvoll

Tutorial n JGuru: JSP Short Tutorial http: //java. sun. com/developer/online. Training/JSPIntro/contents. html n Sinnvoll für Praktische Übung 91

Danke für die Aufmerksamkeit!

Danke für die Aufmerksamkeit!