Vorlesung „Informationssystemen: Neuere Konzepte“

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Inhalt – Technische Grundlagen
Basis-Architekturen für Web-Anwendungen
Datenbankzugriff im WWW (Kommerzielle Systeme)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Grundlagen der Sprache
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
JAVA RMI.
Prof. Dr. Bernhard Wasmayr
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
Einführung Servlets/JSPs
20:00.
Zusatzfolien zu B-Bäumen
Gegenstand EDV Thema: Informative Webseiten
Seminar Internet - Technologie
Web-HMI einbinden SPS-Technik mit Video, Multimedia und Entertainmentsystemen kombinieren I Peter Steib.
Eine Einführung in die CD-ROM
GBI Genios Wiso wiso bietet Ihnen das umfassendste Angebot deutsch- und englischsprachiger Literatur für die Wirtschafts- und Sozialwissenschaften. Wir.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Basiswissen für Partner und interessierte Kunden Technologie.
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
CGI (Common Gateway Interface)
Programmierprojekt Java Server Pages
Java Server Pages Sergej Keterling
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Oliver Spritzendorfer Thomas Fekete
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Dynamische Webseiten-Generierung
Datenanbindung in Webapplikationen
Einführung in PHP.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Client-Server-Modell
Provider und Dienste im Internet
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
© Fink/Spengler/AINF-Lehrgang 2003 – Folie 1 AINF/3. Jahrgang Netzwerke Anwendungen (Clientseitig) Karl Brenner, Andreas Fink, Gerhard Jüngling, Albert.
Folie Einzelauswertung der Gemeindedaten
Online GIS Online GIS – Der Nutzer Matthias Hofschen, ESRI Germany ESRI EUROPEAN USER CONFERENCE.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
->Prinzip ->Systeme ->Peer – to – Peer
Datenbanken im Web 1.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Das World Wide Web Stephan Becker TIT05BGR SS06. Das World Wide Web Übersicht Hypertext & Hypermedia HTML Dokumentenidentifikation Dokumententransport.
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
 Präsentation transkript:

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

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

Themen 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

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?

Termine 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

Praktische Übungen Übungsblätter Programmieraufgabe JSP 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

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

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)

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

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

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

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

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrations- oberflächen

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

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo.de Zeitungen/Zeit-schriften, Spiegel.de

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

Internetspiele (1) Beispiel: BrettspielWelt, WarCraft III Battle.net-Server

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

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

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…

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

Netzwerkschicht Klient Server Application Application HTTP Transport TCP 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 Sender Empfänger Paket

Transportschicht Klient Server Application Application HTTP Transport TCP 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 Weiteres Protokoll: UDP

Anwendungsschicht - HTTP Klient Server Application Application HTTP Transport Transport TCP 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, …

Typisches Dokumentformat bei HTTP: HTML Application Application HTTP 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

Anwendungsschicht: weitere Protokolle Klient Server Application Application ? Transport Transport TCP 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

Zugriff auf Datenbanken über das Web

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

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

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

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

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 Generierungs- werkzeug Datenbank HTTP HTML HTML

Bewertung Vorteile Nachteile 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

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

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

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

Bewertung Vorteile Nachteile 2002 Bewertung Vorteile Beliebige Programme können integriert werden Sicherheit durch eigenen Prozess Volle Suchfunktionalität des darunter liegenden DBMS (z.B. SQL) 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 Informationsintegration & Web-Portale

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

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

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

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

Server Side Includes Statt HTML-Generierung Erweiterung von HTML um Programmfragmente Bei Aufruf der HTML-Seite werden serverseitig die Programmfragmente ausgeführt Z.B. Zeitstempel, Versionsnummer etc. Vorteile Einfach für kleinere Anwendungszwecke Nachteile WebServer-abhängige proprietäre Erweiterung von HTML Befehlssatz reicht für komplexere Anwendungen nicht keine vollwertige Programmiersprache

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

Ausführungsvarianten Anwendung erstellen Anwendung erstellen <HTML> <xyz:...> </HTML> <HTML> <jsp:...> </HTML> Übersetzungs- zeit (einmalig) Laufzeit Interpreter Compiler Ausführbares Programm Laufzeit HTML- Dokument HTML- Dokument  interpretiert  kompiliert

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

Bewertung Vorteile: Nachteile: 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 Nachteile: Häufig geringe Geschwindigkeit Starke Mischung von HTML und Programmiersprache

Übersicht Webinformationssysteme WebDB-Techniken Serverseitige HTML-Generierung Offline durch Vorberechnung von HTML-Seiten Durch Zugriff auf HTML-generierende Anwendung Durch Einbettung HTML-generierender Skriptteile Generierung statischer Seiten CGI API-basiert interpretiert kompiliert SSI ASP PHP JSP

Client-seitige Ansätze

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

Clientseitige DB-WWW-Integration Realität: Höhere Ansprüche an die Benutzeroberfläche Teilverlagerung von Funktionalität auf die Client-Seite 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

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

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

Übersicht Webinformationssysteme WebDB-Techniken Serverseitige HTML-Generierung Clientseitige GUI Java Applet JavaScript PlugIns … Offline durch Vorberechnung von HTML-Seiten Durch Zugriff auf HTML-generierende Anwendung Durch Einbettung HTML-generierender Skriptteile Generierung statischer Seiten CGI API-basiert interpretiert kompiliert SSI ASP PHP JSP

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

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

Anwendungen für Webdatenbanken

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

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

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

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

Webanwendungen, Weboberflächen (1) Beispiele: Webmail Administrations- oberflächen

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

Web Portale, „inhaltsstarke“ Seiten (1) Beispiele: Yahoo.de Zeitungen/Zeit-schriften, Spiegel.de

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

Internetspiele (1) Beispiel: BrettspielWelt, WarCraft III Battle.net-Server

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

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

Im Detail: Java Server Pages (JSP)

Übersicht Webinformationssysteme WebDB-Techniken Serverseitige HTML-Generierung Clientseitige GUI Java Applet JavaScript PlugIns … Offline durch Vorberechnung von HTML-Seiten Durch Zugriff auf HTML-generierende Anwendung Durch Einbettung HTML-generierender Skriptteile Generierung statischer Seiten CGI API-basiert interpretiert kompiliert SSI ASP PHP JSP

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

Java Server Pages (JSP) 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

JSP Ablauf HTTP- Server Generierung des JSP Servlet aus JSP Page (HTML + Scripting) JSP- page client Datenbank Anfrage Antwort SQL Anfragen Ergebnisse Verbindungsaufbau Zustand

JSP Elementtypen JSP-Direktiven JSP-Skriptelemente JSP-Aktionen 2002 Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP-Direktiven Nachrichten/Anweisungen an den HTTP-Server 2002 JSP-Direktiven 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" %> page-Direktive Steuerung der Übersetzung <%@page attrib1="txt" attrib2="txt" ... %> Beispiel <%@ page errorPage="/error.html" %> taglib-Direktive Zur Erzeugung benutzerspezifischer Tags JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP-Skriptelemente (1) 2002 JSP-Skriptelemente (1) 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() {...} %> Anweisungsfragemente/Scriplet Einbettung von Java-Fragmenten Syntax: <% Anweisungsfragment(e) %> Lokale Variablendeklaration <% int i=1; while (i<10) {out.println(i);i++;} %> JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP-Skriptelemente (2) 2002 JSP-Skriptelemente (2) Ausdrücke Einfachste Art eines Skripts Syntax: <%= Ausdruck %> Umwandlung zur Laufzeit in String (toString-Methode) Beispiel: <%= variable %> entspricht <%out.print(variable);%> Kommentare Syntax: <%-- comment --%> JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP-Aktionen Ziel Aktion include Aktion forward 2002 JSP-Aktionen Ziel Erzeugen und Verändern von Objekten Steuerung der aktuellen Ausführung Aktion include Aufruf einer Seite zur Ausführungszeit (auch JSP möglich) Syntax: <jsp:include page="Pfadangabe" /> Aktion forward Weiterleitung der Anfrage an eine andere Seite Syntax: <jsp:forward page="Pfadangabe" /> JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP: Beispiel 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) ) Aktuelle Produktname und Photo sollen nun über das Web zur Verfügung gestellt werden

JSP: Beispiel <%-- page-Direktive --%> <%@ page errorPage="error.html" import="java.sql.*" session="false" %> <html> <body> <h1 align="center"> Produktliste vom <%-- Ausdruck --%> <%= new java.util.Date().toLocaleString()%> </h1> ...

JSP: Beispiel (Forts.) ... <%-- Datenbank-Verbindung --%> <%-- Deklaration der Instanzvariablen --%> <%! Connection con; %> <%-- Skriplet zum Verbindungsaufbau und Abfrage--%> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection ("jdbc:odbc:ProduktDatenbank", "name", "pwd"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery ("SELECT name, photo_URL FROM artikel"); %>

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.getString(1)%> </td> <td> <img src="<%=rs.getString(2)%>"> </td> <%}%> </table> <%-- Verbindung schließen--%> <% rs.close();%> </body> </html>

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.getParameter(„Datum“)

2002 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:useBean id="varName" class="KlassenName" scope="GültigkeitsBereich"/> JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP-Aktionen und EJB Aktion getProperty Aktion setProperty 2002 JSP-Aktionen und EJB Aktion getProperty Lesen der Eigenschaft einer Komponente Syntax: <jsp:getProperty name="varName" property="AttributsName" Aktion setProperty Schreiben der Eigenschaft einer Komponente Syntax: <jsp:setProperty name="varName" property="AttributsNam" value="Wert"/>, oder <jsp:setProperty name="varName" property="AttributsName" param="cgi-parameter" /> JSP Elementtypen Evtl. Beispiele rausziehen in ein Gesamtbeispiel JSP Aktionen Informationsintegration & Web-Portale

JSP und Synchronisation Grundsätzlich mehrere Instanzen einer JSP-Seite/eines Servlets möglich. Abhilfe im Falle von Synchronisations-problemen: <%@ page isThreadSafe="false" %>

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

JSP Bewertung Sehr stark: Mischung von Designcode (HTML) und Programmiersprachencode (JAVA) Trennung in TemplateEngine, z.B. WebMacro

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

Danke für die Aufmerksamkeit!