Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI02V2 Dipl.-Inform. Michael Klein [email protected] Dipl.-Inform. Heiko Schepperle [email protected] Organisatorisches Mein Name: Michael Klein eMail: [email protected] Homepage der Vorlesung: www.michaelklein.net/nki
Download ReportTranscript Vorlesung „Informationssystemen: Neuere Konzepte“ SS 2005 Kurs: WWI02V2 Dipl.-Inform. Michael Klein [email protected] Dipl.-Inform. Heiko Schepperle [email protected] Organisatorisches Mein Name: Michael Klein eMail: [email protected] Homepage der Vorlesung: www.michaelklein.net/nki
Vorlesung
„Informationssystemen: Neuere Konzepte“
SS 2005 Kurs: WWI02V2
Dipl.-Inform. Michael Klein
Dipl.-Inform. Heiko Schepperle
1
Organisatorisches
Mein Name: Michael Klein eMail: [email protected]
Homepage der Vorlesung: www.michaelklein.net/nki Vorlesung: Raum 210 2
Teil I (Michael Klein)
I-1: Web und Datenbanken (3) I-2: Objektorientierte Datenbanksysteme (2) I-3: ?
Teil II (Heiko Schepperle)
II-1: Data Warehousing & OLAP II-2: Data Mining II-3: Imperfektion in Datenbanken
Themen
3
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
Teil I
Do, 09.06. 10:45 – 13:15 Uhr Mi, 15.06. 08:00 – 10:30 Uhr (Rechnerübung) Do, 23.06. 10:45 – 13:15 Uhr Do, 30.06. 10:45 – 13:15 Uhr Mo, 04.07. 10:45 – 13:15 Uhr
Termine
5
Praktische Übungen
Übungsblätter
Auf der Homepage erhältlich Werden zu Beginn durchgesprochen Wichtig als Klausurvorbereitung
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 „Webtechnologien im Überblick I“ von Wassili Kazakos (FZI, Karlsruhe)
Inhalt
Themen heute:
Welche datenbankgestützten Webanwendungen gibt es?
Wie funktioniert das Web?
Wie bekommt man die Datenbankinhalte ins Web?
Welche Technik setzt man für was ein?
Einführung in Java Server Pages (JSP) 8
Webshops, Auktionshaus, E-Commerce (1)
Beispiel: Amazon.de
Ebay.de
9
Webshops, Auktionshaus, E-Commerce (2)
Eigenschaften:
Datenbank speichert Artikel, Kundendaten, Profile Versandinformationen, Auktionen etc.
Suchen in Artikeln Bestellen von Artikeln, Bieten auf Artikel Einsehen des Versandstatus Auch: Angabe von Kaufempfehlungen 10
Suchmaschinen (1)
Beispiele: Google.de
Altavista.com
11
Suchmaschinen (2)
Eigenschaften:
Crawler durchforsten Internet nach Seiten Datenbank speichert indizierte Seiten Welche Wörter/Wortgruppen sind enthalten Wer linkt auf diese Seite Suchen nach Stichworten/Wortgruppen möglich Ranking der Suchergebnisse nach unterschiedlichen Kriterien Meist einfache, funktionale Oberfläche 12
Webanwendungen, Weboberflächen (1)
Beispiele: Webmail Administrations oberflächen 13
Webanwendungen, Weboberflächen (2)
Eigenschaften:
Datenbank speichert Userinformation (inkl. Passwort), administrierte Daten (Mails, Ordner, Termine, etc.) 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/Zeit schriften, Spiegel.de
15
Web Portale, „inhaltsstarke“ Seiten (2)
Eigenschaften:
Komplexe, vielschichtige Seiten Viele Autoren, viele Informationsquellen Corporate Identity wichtig Formatvariationen für Ausgabegerät 16
Internetspiele (1)
Beispiel: BrettspielWelt, WarCraft III Battle.net Server 17
Internetspiele (2)
Eigenschaften:
Rechenintensive Anwendung Hoher graphischer Aufwand Spezielle Interaktionsbedürfnisse 18
Technischer Aufbau des Internets
Das Internet – Die Geschichte
Internet = Netz von Netzen 1960: das Internet entsteht aus dem militärischen ARPANET 1982: TCP/IP setzt sich durch 1990: Erste graphische Browser, das World Wide Web (WWW) entsteht ab 1990: Rasantes Wachstum des Internets 20
Das Internet - Technik
Stapel von Protokollen ISO/OSI-Referenzarchitektur, 7 Schichten Unabhängig von Betriebssystem & Netzwerktechnologie Teilnehmer sind durch eindeutige IP-Adresse ausgezeichnet Vielzahl von Diensten möglich Mail, WWW, File-Sharing, Web-Radio (Streaming), WebServices… 21
Klient Application Transport Network Data Link Physical
Schichten des Internets
HTTP TCP IP Server Application Transport Network Data Link Physical 22
Netzwerkschicht
Klient Server Application Transport Network HTTP TCP IP Application Transport 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 Sender Empfänger Paket 23
Transportschicht
Klient Server Application Transport Network HTTP TCP IP Application Transport 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 • Weiteres Protokoll: UDP 24
Anwendungsschicht - HTTP
Klient Server Application Transport Network HTTP TCP IP Application Transport 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
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 fettgeschrieben.
• 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 Transport Network ?
TCP IP Application Transport 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
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 Erwei terung Datenbankspezifisches Protokoll
DB
29
Weitere Zugriffsmöglichkeiten
Entfernte Methodenaufrufe
RMI / RPC Browser Applet RMI Server
Web Services
Anwendung HTTP(SOAP) SOAP Server
DB
Dienst Dienst Dienst
DB
30
Serverseitige Ansätze Der „klassische“ Weg
Serverseitige Ansätze - Übersicht
Generell:
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
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
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
Offline, Vorausberechnung von HTML-Seiten
Periodische Extraktion von Daten aus einem DBMS, Vorbereitung von statischen HTML Seiten Navigation mittels offline generierter Links Auslieferung als gewöhnliche HTML-Seite über HTTP
HTML
HTTP
HTML Generierungs werkzeug Datenbank HTML
35
Bewertung
Vorteile
Schneller Zugriff: Nur Ausliefern der HTML-Seiten Keine DB-Zugriffe Automatische Erfassung durch Suchmaschinen
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
Common Gateway Interface
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" Implementiert in beliebiger Programmier- oder Skriptsprache (z.B. CGI-Skripte). Häufig: Perl, C, C++ Datenbankintegration durch entsprechende Anwendungen 38
CGI-Skripte
Betätigung Submit-Button
JSP: foo.jsp
String datum = request.getParameter(„Datum“) 85
JSP-Aktionen und EJB
Standardaufgaben sollten auch weiterhin in Komponenten ausgelagert werden In Java: EJB Einbindung über JSP-Aktionen Aktion useBean Deklaration der Bean Syntax:
JSP-Aktionen und EJB
Aktion getProperty Lesen der Eigenschaft einer Komponente Syntax:
JSP und Synchronisation
Grundsätzlich mehrere Instanzen einer JSP Seite/eines Servlets möglich.
Abhilfe im Falle von Synchronisations problemen: <%@ page isThreadSafe="false" %> 88
JSP Sitzungsverfolgung / Session Management
JSP-Seiten nehmen an Sitzungsverwaltung teil In spezieller Variablen „session“ vom Typ HttpSession können Objekte unter Namen abgelegt werden <% Foo foo = new Foo(); session.putValue("foo",foo); %> Inhalt kann auch aus anderer Seite ausgelesen werden <% Foo myFoo = (Foo) session.getValue("foo"); %> Technik: Überwindung der Zustandslosigkeit durch clientseitige Cookies Häufigste Anwendung: Warenkorb 89
JSP Bewertung
Sehr stark: Mischung von Designcode (HTML) und Programmiersprachencode (JAVA) Trennung in TemplateEngine, z.B. WebMacro 90
Tutorial
JGuru: JSP Short Tutorial http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html
Sinnvoll für Praktische Übung 91