Techniken zur DB-Server- Anbindung
Client-Seite Java
Applet
ActiveX PlugIn CGI SSI Server API
ASP Java Servlet
JSP Server-Seite
DB-Server SQLJ
JDBC ODBC
Generierungsmethode HTML-Generierende
Applikation
HTML/XML- Erweiterung
Anbindung
Integrierte Benutzerschnittstelle
– Verschiedene Medientypen
– Browser-Darstellung, keine proprietären Formate
Interaktivität
– erfordert zustandswahrende Verbindung
Konsistenz und Datenintegrität
Performance
Sicherheit
– Programme, die von Web-Server geladen werden
Skalierbarkeit
Offenheit
– Konflikt mit Performance (Java vs. Microsoft)
Web-DB-Anbindungsarchitekturen
Common Gateway Interface (CGI)
Prinzip:
Client (Anwender) Server-Rechner
HTML-Datei
mit Formular Daten-
bank WWW-
Server automatisch
erzeugte
HTML-Datei
CGI- Skript
automatisch erzeugte
HTML-Datei Formular
abschicken übertragen
CGI-Skript aufrufen
HTML-Datei übertragen
DB abfragen
Abfrage-Report der DB auswerten
HTML-Datei aus Abfrage-Report erzeugen
CGI Bewertung
Vorteile:
– Unterstützung durch alle WWW-Server
– Anforderungsspezifisch programmiert
– schnell und flexibel
Nachteile:
– Pro Interaktion Start eines CGI-Prozesses / Aufbau einer DB- Verbindung (Verbesserung FastCGI)
– Kein Transaktionskonzept zwischen Client und WWW-Server, Problem der Realisierung von Zuständen
– Logische Formular-Eingabefehler erst im CGI-Programm erkannt
– Sicherheit
– Aufwendige Programmerstellung
– Formatierung des Dokuments problematisch, da generiert
Server Side Includes (SSI)
Prinzip:
– Erweiterung der Funktionalität von Web Servern
– SSI = dynamische HTML-Dokumente, angereichert mit speziellen Steuerungsbefehlen in HTML-Syntax und DB-Zugriffsfunktionalität (z.B. Anzeige aktueller Uhrzeit oder Börsenkurse)
– Ebenfalls möglich:
Aufruf anderer Anwendungen (z.B. CGI-Programme, BS- Kommandos) und Erzeugung eines neuen Prozesses
Verarbeitung regulärer HTML-Formulare
Active Server Pages (ASP)
HTML Dokument mit eingebetteten Anweisungen in VBScript oder JScript
ASP Bestandteil des Internet Information Server
große Funktionalität durch Mächtigkeit der Skript- Sprachen (aber geringer als Java/C++)
Einbettung von SQL in Skriptsprache (DB-Zugriff über ODBC und ADOs)
Session Management mit Hilfe von Session-IDs (von Cookies übertragen)
Zugriff auf Formular- und Umgebungsvariablen
Java Servlets
Einordnung:
– als serverseitige Applets bezeichnet
– Pendant zu den Server-Erweiterungs-APIs von MS und Netscape
– Bestandteil des JDK 1.2 (somit kompatibel mit vielen Web- Server-Herstellern)
Voraussetzung
– Integration einer JVM in den Web-Server bzw. Kooperation mit einem Zusatzprozeß
Vorteile:
– Plattform- und herstellerunabhängige Erweiterung von Web- Servern möglich (durch Standard Java Extension API)
– Dynamisches Binden möglich (Java-Klassenlader)
Hinzufügen und Entfernen von Moduln ohne Neustart des Servers
Web/DB-Anbindung über Java Servlets
Weitere Vorteile
alle Möglichkeiten der Sprache Java
Web-Client Web-Server Servlet-Engine
DB-Server Java-
Klassenbibliothek
HTTP
J V M
JDBC
gleiches Sicherheitskonzept wie Java (Security Manager),
verhindert Ressourcenmißbrauch
Leistung: bleiben im Speicher des Servers, DB-Verbindung nur
einmal nötig
Lastverteilung: Aufruf anderer Servlets möglich
Java Server Pages (JSP)
Weiterentwicklung des SSI-Mechanismus und Erweiterung des Servlet-Konzepts
mischt statisches HTML mit dynamischem Code (Anwendungslogik)
Anwendungslogik: Java Beans, JDBC-Objekte,
Enterprise Java Beans (EJB), RMI-Objekte (Remote Method Invocation) - aufrufbar aus JSP-Seite
strikte Trennung von Design/Präsentation einer Seite von deren Inhalt bzw. Logik
zusätzliche JSP-Engine muß installiert werden
Betrachtung der server-seitigen Ansätze
Bewertung von Funktionalität und Architektur
Realisierung von Zuständen
Sicherheits-Aspekte
Realisierung von Zuständen
Zustandslosigkeit
– HTTP-Kommunikationsverbindung zwischen Web-Browser und Web-Server nur während einer Anfragebearbeitung
– Folge: Transaktionen beschränkt auf diese Zeitspanne (jedesmal neue DB-Verbindung herstellen)
– Bedarf zusätzlicher Techniken zur Realisierung kontextabhängiger Mehrschritt-Arbeitsgänge (z.B. Führen eines Warenkorbes)
Realisierung von Zuständen durch
– Session IDs (identifiziert Web-Sitzung)
– User IDs (Benutzeridentifikation für personalisierte Angebote)
Techniken
– HTTP-Cookies
– URL-Kodierung
– Formularvariable (Hidden Fields)
Formularvariable
Zuweisung einer eindeutigen Kennung an den Benutzer während der Interaktion mit dem
WWW-Server (z.B. in Form einer ID)
Eintrag der Session-ID als versteckte
Eingabevariable ins HTML-Formular, z.B.
<INPUT TYPE=HIDDEN NAME=SID VALUE=4711>
Nutzung der Session-ID für die weitere Kommunikation (z.B. Bestimmung des
Warenkorb-Besitzers bei langen Vorgängen
über diese ID)
Formularvariable Bewertung
Vorteil:
– Unabhängig von Browsertyp und Browserkonfiguration
Nachteile:
– Session-ID muß in allen HTML-Dokumenten des Benutzers bei einem Vorgang und allen
Folgeaktionen einkodiert sein
– Erfordert dynamische Erzeugung von HTML- Dokumenten
Belastet den Web-Server
Erschwert die Anwendungsentwicklung
HTTP-Cookie
Unabhängig vom eigentlichen HTML-Dokument
Bestandteil der Meta-Information zu einer HTML-Seite
– Vom Server zum Browser übertragen
– Temporär im Browser gespeichert
Beispiel:
Set-Cookie:
KNR=“4711“;Version=“1“;Path=“/katalog“;
MAX-Age=“1800“
– Übertragung des Cookies KNR=4711 (Kunden-Nr.) bei jeder Dokumentenanforderung im Verzeichnis /katalog (falls
Cookies unterstützt werden)
– Max-Age definiert die Verfallsdauer (im Beispiel max.
HTTP-Cookie Bewertung
Vorteile:
– Automatische Unterstützung durch den Browser
– Einsatz unanhängig von der Kodierung in einer HTML-Seite
– Bei gleichzeitiger Verwendung mehrerer Cookies Speicherung vieler Informationen möglich
– Anwendung bei E-Shops: Speichern von Waren- korbinhalten
Nachteile
– Nicht von allen Browsern unterstützt
– Benutzer kann Cookies abschalten bzw. verweigern
Sicherheit
Sicherheit = Übertragungssicherheit + Zugriffsschutz
Zugriffskontrolle:
– HTTP-Authentisierung: Einschränkung des Zugriffs auf bestimmte Unterverzeichnisse oder den ganzen Server für bestimmte Benutzer
– Einschränken des Verbindungsrechts auf bestimmte Adressen / Domains (Konfiguration des Web-
Servers)
– Werkzeugunterstützung für ID-Wechsel (Web-User
Sicherheit (Forts.)
Übertragungssicherheit für Passwörter u.a.
vertrauliche Daten
– Standard: Secure Socket Layer (SSL)
Grundlage RSA-Verfahren
Benötigt Zertifikat auf Seiten des Web-Servers
Client entscheidet über Übertragung, falls Server nicht zertifiziert
– Nachteil von SSL: kurze Schlüssellängen, somit besondere Sicherheitsanforderungen erfüllt
– Erfordert Speziallösungen: z.B. für Online-Banking eigene Sicherheitsprotokolle, basierend auf Java