Architektur von Web-Datenbanksystemen - PowerPoint PPT Presentation

About This Presentation
Title:

Architektur von Web-Datenbanksystemen

Description:

Architektur von Web-Datenbanksystemen – PowerPoint PPT presentation

Number of Views:122
Avg rating:3.0/5.0
Slides: 70
Provided by: htwk4
Category:

less

Transcript and Presenter's Notes

Title: Architektur von Web-Datenbanksystemen


1
Architektur von Web-Datenbanksystemen
2
Schichtenarchitektur
  • Aufteilung einer Web-DB-Anwendung in verschiedene
    Schichten
  • Logische Schichten vs. physische Schichten
  • Physisch
  • Aufteilung der Anwendung auf Client, DB-Server
    und Middleware
  • Middleware ein Webserver oder mehrere
    Application Server
  • Logisch
  • Einordung in einzelne Schichten hinsichtlich der
    Aufgabenverteilung
  • Gängiges Modell 3-Schichten-Architektur

3
3-Schichten-Architektur
  • Präsentationsschicht
  • Visualisierung der Dokumente auf Anwenderseite
  • Keine Anwendungslogik zur Erstellung der Seiten
    (thin clients)
  • Client Rechner mit Browser einschl. PlugIns
  • Anwendungslogikschicht
  • Weiterleitung von Anfragen des Client an den
    entsprechenden Dienst, Datenbankanfragen,
    Erstellung dynamischer Seiten und Zurücksendung
    an den Client
  • Weitere Aufgaben
  • Verwaltung von Transaktionen
  • Lastverteilung der Anfragen
  • Sicherheitsaufgaben
  • Datenhaltungsschicht
  • Speicherung der Daten Datenzugriff
  • Typischerweise Datebanksystem (auch Dateien
    möglich)

4
3- und 4-Schichtenarchitekturen
5
Klassifikation von Web-Informationssystemen
(WebIS)
  • unterschiedliche Komplexitätsgrade
  • Anwendungsgebiet bestimmt Architektur
  • in komplexen WebIS mehrere Architektur-varianten
    gleichzeitig vorhanden
  • Varianten
  • Statische WebIS
  • WebIS mit DB-Unterstützung
  • Applikationsorientierte WebIS
  • Ubiquitäre WebIS
  • Portal-orientierte WebIS

6
Statische WebIS
  • Dokumente in statischer Form auf Webserver
    abgelegt
  • Basis HTTP-Protokoll Web-Client lt-gt Web-Server
  • einfache Interaktivität (CGI, HTML-Formulare)
  • Vermischung von Präsentation, Inhalt und
    Hypertext
  • manuelle Pflege, Gefahr von Inkonsistenzen

7
Statische WebIS Bewertung
  • Vorteile
  • Einfachheit und Stabilität
  • niedrige Antwortzeiten
  • Einsatzgebiet
  • geringe Anzahl von Webseiten
  • niedrige Änderungsfrequenz
  • Heterogenität der Webseiten hinsichtlich
    Hypertextstruktur und Präsentation

8
WebIS mit DB-Unterstützung
Web-Client
Web-Server
Präsentation
DBS-Server
Inhalt
  • Vorteile
  • vereinfachte Aktualisierung der Webseiten
  • hoher Grad an Interaktivität
  • strukturierte Suche auf Basis von DB-Anfragen
  • dezentrale Aktualisierung des Datenbestandes
  • Nachteile
  • Verwaltung der Abbildungsvorschriften für
    Zusammenstellung der Webseite erforderlich

9
WebIS mit DB-Unterstützung (Forts.)
  • Motivation (Einsatzgebiet z.B. Produktkatalog)
  • große Anzahl von Webseiten
  • hohe Änderungsfrequenz
  • Homogenität der Webseiten hinsichtlich
    Hypertext-struktur und Präsentation
  • Nutzung existierender (Legacy)Datenbestände
  • Weiterführung
  • Integration heterogener verteilter Daten
  • strukturierte Daten (Datenbanken)
  • unstrukturierte Daten (Textdokumente)
  • semistrukturierte Daten (HTML-Dateien)

10
Applikationsorientierte WebIS
Web-Client
Web-Server
Applikations-Server
PräsentationApplikationslogik
IIOP
Inhalt
DBS-Server
  • Funktionalität des Applikations-Servers
  • DB-Anbindung
  • Transaktionsmanagement
  • Sicherheit
  • Lastausgleich
  • Caching

11
Applikationsorientierte WebIS (Forts.)
  • Produkte
  • kombinierte Web-/Applikationsserver Coldfusion,
    Netscape Application Server, Oracle Internet
    Application Server
  • Enterprise-Application-Server WebSphere (IBM),
    WebLogic (Bea Systems)
  • Motivation
  • hohe zu erwartende Server-Last, bei großer Anzahl
    gleich-zeitig zugreifender Clients
  • komplexe Geschäftslogik, z.B. bei Online-Kauf
    oder Online-Buchung)
  • hohe Transaktionsorientiertheit, z.B. bei
    Online-Banking-Anwendungen

12
Ubiquitäre WebIS
Web-Client
Web-Server
PräsentationApplikationslogik
Applikations-Server
Anpassungs-komponente
DBS-Server
Inhalt
  • Ziel
  • richtigen Dienst
  • zum richtigen Zeitpunkt
  • am richtigen Ort
  • in der richtigen Form
  • anbieten

13
Ubiquitäre WebIS (Forts.)
  • Produkte
  • Oracle Wireless Application Server
  • WebSphere Transcoding Publisher (IBM)
  • Motivation
  • Zugriff auf die im WebIS präsentierte Information
    nicht nur über WWW, sondern z.B. auch über mobile
    Endgeräte
  • Anpassung der Inhalte und/oder der
    Präsentationsaspekte an Benutzerprofile
    (Personalisierung)
  • Realisierung lokations/zeitabhängiger Dienste,
    wie z.B. lokationssensitiver Museumsführer

14
Portal-orientierte WebIS
Web-Client
Web-Server
Aggregation
Präsentation
Portlet 1
Portlet 2
Portlet 3
Applikationslogik
Web Service 1
Web Service 2
Web Service 3
Inhalt
Daten 2
Daten 3
Daten 1
Architektur eines portal-orientierten WebIS
15
Portalorientiertes WebIS (Forts.)
  • Große Anwendungen mit vielen Diensten ? erfordert
    portalorientierte Architektur
  • Portal zentraler Zugang zu einem
    Anwendungssystem, welches verschiedene Dienste
    und Anwendungen integriert und z.B. Funktionen
    zur Suche oder Personalisierung bereitstellt
  • Portlets Teile von Dokumenten aus
    unterschiedlichen Quellen
  • Zusammensetzen von Portlets zu ganzen Seiten, die
    über Web-Server an den Client verschickt werden
  • Einsatz von Web Service-Technologien, die den
    Aufruf von Diensten über definierte
    Schnittstellen ermöglichen
  • Vorteil hohe Flexibilität bei der Verwendung der
    Portlets

16
HTTP-Protokoll
  • Hypertext Transfer Protokoll (HTTP) für
    Kommunikation zwischen Web-Server und Client
  • Funktionsweise Request-Response-Prinzip
  • HTTP-Request URL
  • HTTP-Response gewünschte Dokument
  • Verbindungs- und statusloses Protokoll keine
    dauerhafte Verbindung, keine Speicherung des
    Zustands zwischen Client und Server
  • Methoden zur Anforderung eines Dokuments
  • GET Client fordert die angegebene URL an, wobei
    eventuelle Parameter im String der URL mitgegeben
    werden
  • POST Client schickt Daten an den Server, wobei
    diese nicht in der URL sondern direkt im Header
    der Anforderung übergeben werden
  • HEAD, PUT, DELETE keine Bedeutung für die
    Entwicklung von Webapplikationen

17
HTTP Request
  • 1. Zeile Methode, Ressource, Version des
    HTTP-ProtokollsGET http//www.test.de/index.html
    HTTP/1.0
  • Mehre Message Header, die zusätzliche
    Informationen übertragen
  • Accept MIME-Typen, die der Client verarbeiten
    kann
  • Host Domainname des Webservers
  • Referer URL der Herkunftsressource
  • User-Agent Name und Version des Clientbrowsers
  • Authorization Benutzername und Paßwort des
    Clients, Authorization Header als Reaktion auf
    WWW-Authenticate-Header des Servers zum Zugriff
    auf das gewünschte Dokument
  • Bei Methode POST Anhängen von Daten (aus
    Formular) an die Headerinformationen,
    z.B.Eingabe1StrasseEingabe254455

18
HTTP Response
  • Status
  • Version des verwendeten HTTP-Protokolls
  • Statuscode
  • textuelle Beschreibung des Status
  • Beispiel
  • Optionale Response-Header
  • Server Name und Version des Webservers
  • WWW-Authenticate Verlangt vom Client eine
    Authentifizierung und gibt u.a. das
    Authentifizierungsschema an
  • Location URL der Ressource
  • Eigentliches Dokument (falls eines
    zurückgeliefert werden soll)ltHTMLgtltHEADgtltTITLE
    gtTitelzeilelt/TITLEgtlt/HEADgtltBODYgt

19
Anbindungsarchitekturen
20
Anbindungsarchitekturen - Varianten
  1. Anwendung mit statischen Seiten Datenbankinhalte
    manuell einarbeiten, keine Kommunikation mit der
    Datenbank
  2. Realisierung der Webanwendung als CGI-Programm
    Datenbankzugriff vom Programm. Die fertige
    HTML-Seite wird zum Client übertragen.
  3. Applets werden zum Client übertragen und dort
    ausgeführt. Die Kommunikation mit der DB findet
    dabei direkt mit dem Client statt, z.B. über JDBC
    (nicht HTTP!)
  4. Server-APIs serverseitige Erweiterungen für den
    Zugriff auf die Datenbank und den Aufbau der
    HTML-Datei.
  5. Einsatz von Servlets in der Serverumgebung,
    erfordert spezielle Servlet Engine und eine Java
    Virtual Machine (JVM). DB-Zugriff erfolgt z. B.
    über die JDBC-API oder direkt, wenn Servlet
    Engine im Datenbankserver integriert ist.
  6. Auslagerung komplexer Programmlogik auf einen
    Applikationsserver. Dieser realisiert auch die
    Verbindung zur Datenbank, wobei DB-Verbindungen
    zur Performance-Verbesserung zwischengespeichert
    werden.
  7. Erstellung der HTML-Dateien über einen
    Präprozessor Verarbeitung von XML- und
    XSL-Dateien (siehe auch Vorlesung XML-Datenbanken
    / 7. Semester)

21
Anbindungstechnologien
22
Anforderungen an eine DB-Server-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)

23
Client-Seitige DB-Anbindungen
Web-Client
Web-Server
Applet
JVM
DBS-Server
JDBC
  • Prinzip
  • Übertragung von Java Applets (plattformunabhängige
    r Bytecode) vom Web-Server zum Client
  • Direkte Verbindung zum Datenbank-Server über JDBC
  • Ausführung der Clients durch eine Java Virtual
    Machine (JVM)

24
Serverseitige DB-Anbindung
  • Generierung von HTML-Seiten im Server und
    Zurücksenden an den Client
  • Daten aus der Datenbank können in HTML-Dokument
    enthalten sein
  • 2 Ansätze (je nach Generierungsmethode)
  • Externe Programme erzeugen den HTML-Code des
    Dokuments (HTML-Generierende Anwendungen)
  • Erweiterung der Serverfunktionalität
    Anreicherung des HTML-Codes um spezifische
    Funktionalitäten zum Einfügen von dynamischem
    Inhalt ins Dokument (HTML-Erweiterungen)

25
Serverseitige Anbindung Externe Programme
26
Serverseitige Anbindung Erweiterung der
Serverfunktionalität
27
Serverseitige Anbindung
  • Dokumente können nur die Darstellungsmöglichkeiten
    von HTML nutzen
  • Überprüfung von Benutzereingaben durch
    clientseitige Skriptsprache (Java Script) oder
    nach Senden der Anfrage
  • Anzeige der Seiten auf beliebigem Browser, keine
    zusätzliche Installation von Programmen auf
    Clientseite erforderlich
  • DB-Verbindung wird nur von Seiten des Web- oder
    Applikationsservers aufgebaut, keine Verbindung
    von der Clientseite über das zustandslose
    HTTP-Protokoll
  • mehrschrittige Anfragen eines Clients an die DB
    nur über Umwege realisierbar

28
Serverseitige Technologien im Überblick
  • CGI (am Beispiel Perl)
  • Web-Server API
  • Server Side Include (SSI)
  • Active Server Page (ASP)
  • PL/SQL und PL/SQL Server Page (PSP)
  • PHP
  • Übergreifende Technologien
  • Java Database Connectivity (JDBC)
  • SQLJ
  • Java und J2EE (Enterprise Java Beans)
  • Java Servlet
  • Java Server Page (JSP)

29
Common Gateway Interface (CGI)
  • Keine Programmiersprache
  • Kann mit allen Sprachen realisiert werden, die
    Zugriff auf Umgebungsvariable sowie die
    Standardein- und ausgabe erlauben (z.B. Perl, C,
    C)
  • Standardisierte Schnittstelle für die
    Kommunikation zwischen Web-Server und externen
    Programmen (Übergabe von Daten von HTML-Seiten an
    Programme)
  • Aufbau
  • Verschiedene Umgebungsvariablen für die
    Datenübertragung Web-Server ? CGI-Programm
  • Variablen mit festem Namen bei jeder
    Client-Anfrage neu initialisiert und vom
    CGI-Programm für die HTML-Generierung nutzbar

30
Umgebungs-variablen einer CGI-Anwendung
31
Allgemeiner Ablauf der Programmausführung bei CGI
  • Allgemeines Prinzip

Server-Rechner
Client (Anwender)
2. CGI-Skriptaufrufen
HTML-Dateimit Formular
Daten-bank
CGI-Skript
1. Formularabschicken
WWW-Server
4. HTML-Datei aus Abfrage-Report erzeugen
3. DB abfragen Abfrage-Report der DB auswerten
übertragen
automatischerzeugteHTML-Datei
automatischerzeugteHTML-Datei
5. HTML-Datei übertragen
32
Ablauf der Verarbeitung bei Ablauf eines
CGI-Programms
33
CGI Bewertung
  • Vorteile
  • Unterstützung durch alle Web-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 (da Zugriff auf Betriebssystem-Ressourc
    en des Web-Servers)
  • Aufwendige Programmerstellung
  • Formatierung des Dokuments problematisch, da
    generiert

34
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

35
Ablauf der Verarbeitung mit PL/SQL
  • Entwicklungsunterstützung durch WebServer
    Developers Toolkit (Menge von Packages)
  • HTP (HyperText Procedures) HTF (HyperText
    Functions)
  • erleichtern die Generierung von HTML-Tags aus
    PL/SQL heraus
  • OWA_UTIL
  • Dienstfunktionen für eine bequemere Generierung
    von HTML-Output

36
Toolkit - Beispiele
htp.title(My First Page Title)
PL/SQL
HTML
ltTITLEgtMy First Page Titlelt/TITLEgt
titlehtf.title(My First Page Title)
Funktionsauruf
Verschachtelung
htp.center(htf.header(1,My First HTML Header -
Level 1))
ltCENTERltltH1gtMy First HTML Header - Level
1lt/H1gtlt/CENTERgt
37
Toolkit - Überblick
  1. Print-Prozeduren
  2. Struktur-Tags
  3. Head-Related Tags
  4. Body Tags
  5. List Tags
  6. Character Format Tags
  7. Form Tags
  8. Table Tags
  9. OWA_UTIL Package

38
Beispiel Web Server Developer Kit
CREATE OR REPLACE PROCEDURE home_page AS BEGIN
htp.htmlOpen htp.headOpen htp.title(My
home page) htp.headClose htp.bodyOpen htp.p
rint (This is the home page of user
generated on sysdate
.) htp.bodyClose htp.htmlClose END
39
PL/SQL Server Pages (PSP)Grundidee
  • Internet-Seiten mit dynamischer Präsentation von
    Inhalten durch Einsatz von PL/SQL-Anweisungen
  • Server-Side Scripting (Generierung der Seiten im
    DB-Server - nicht im Webserver)
  • Basiert auf PL/SQL Web Toolkit
  • Bestandteil von Oracle Application Server (OAS)
    und Oracle WebDB
  • Einbindung dynamischer Inhalte durch
    PL/SQL-Skripte, durch spezielle Tags
    gekennzeichnet

40
PSP Beispiel
lt_at_ page language"PL/SQL" gt lt_at_ plsql
procedure"psp_bspseite" gt lt_at_ plsql
parameter"p_name" default"null"gt ltHTMLgt ltHEADgt
ltTITLEgtBeispielseite mit PL/SQL Server
Pagelt/TITLEgt lt/HEADgt ltBODYgt ltH1gtBeispielseite mit
PL/SQL Server Pagelt/H1gt lt -- Inhalt des
Parameters p_name anzeigen, wenn belegt if
not(p_name is null) then gt Hallo
ltp_namegt. ltpgt Client-IP-Adresse
ltowa_util.get_cgi_env('REMOTE_ADDR')gt ltEND
ifgt ltFORM methodPOSTgt Bitte Namen eingeben
ltINPUT type"text" name"p_name"
size"30"gt lt/FORMgt lt/BODYgt lt/HTMLgt
41
Schrittfolge PSP
  • Kompilieren der PSP-Datei mittels loadpsp
  • Erzeugen einer gespeicherten Prozedur in der
    Datenbank (Procedure-Tag)
  • HTML-Anweisungen werden unter Verwendung des
    PL/SQL Web-Toolkits in Print-Anweisungen des
    HTTP-Pakets umgewandelt
  • PL/SQL-Anweisungen der Skripteinschübe werden
    unverändert übernommen
  • Komfortablere Entwicklung, da automatische
    Übersetzung

42
PSP Beispiel Generierter PL/SQL Code
(Gespeicherte Prozedur)
( p_name IN VARCHAR2 default null) AS BEGIN
NULL htp.prn( ltHTMLgt ltHEADgt ltTITLEgtBeispielseite
mit PL/SQL Server Pagelt/TITLEgt lt/HEADgt ltBODYgt ltH1
gtBeispielseite mit PL/SQL Server
Pagelt/H1gt ) -- Inhalt des Parameters p_name
anzeigen, wenn belegt if not(p_name is null)
then htp.prn( Hallo ) htp.prn(p_name) . . .
43
Verarbeitung einer PSP
  1. Weiterleiten der Anfrage vom Browser an den
    Modul mod_plsql
  2. Verbindung zur Datenbank, Ausführung der
    gespeicherten Prozedur
  3. Erzeugung einer HTML-Seite durch Prozedur
  4. Zurücksenden des HTML-Dokuments an mod_plsql
  5. Zurücksenden der HTML-Seiteals HTTP-Response
    zumanfragenden Client

44
Vorteile von PSP
  • Trennung von Anwendungs- und Präsentationslogik
  • HTML-Anweisungen und PL/SQL Code separat
  • Abgrenzung durch PL/SQL-spezifische Tags
  • Leichte Erlernbarkeit
  • Einfacher Zugriff auf Daten der Datenbank
  • Kein Umweg über HTTP oder JDBC
  • Ausführung im Server (PSP selbst in der DB)
  • Verbindung mit anderen Skriptsprachen möglich
  • z.B. Javascript oder Visual Basic-Script (zur
    Prüfung von Benutzereingaben)
  • nicht kombinierbar mit anderen serverseitigen
    Scripting-techniken

45
Nachteile von PSP
  • Stärkere Beanspruchung des DB-Servers
  • Statische Seiten besser im Web-Server speichern
  • Plattformabhängigkeit
  • Beschränkt auf Oracle
  • Migration auf andere DB erfordert Neuentwicklung
    der Anwendung

46
PHP
  • PHP Personal Homepage Tools (war ursprünglich
    eine Sammlung von Tools und Makros)
  • entwickelt von Rasmus Lerdorf 1994, Open Source
    Produkt
  • serverseitige, in HTML eingebettete
    Script-Sprache (Ausführung auf dem Webserver)
  • plattformunabhängig
  • unterstützt umfangreiche Menge von
    Oracle-Funktionen (erfordert Installation im
    Web-Server)
  • verwandt mit
  • Active Server Pages (ASP) von Microsoft
  • Java Server Pages (JSP)
  • PL/SQL Server Pages (PSP) von Oracle

47
PHP
  • PHP-Seite als Script-Datei
  • Extension .php
  • Verarbeitung durch PHP-Prozessor
  • Einbettung von Skripteinschüben in spezielle Tags
  • lt? echo Hello world! ?gt
  • lt?php echo Hello world! ?gt
  • ltscript languagephpgt echo Hello
    world!lt/scriptgt

48
Verarbeitung einer PHP-Seite
49
PHP Beispiel
ltHTMLgt ltHEADgt ltTITLEgtTestseite mit
PHPlt/TITLEgt lt/HEADgt ltBODYgt ltH1gtTestseite mit
PHPlt/H1gt lt?php // Lesen des per HTTP-Post
übertragenen Parameters aus Array p_name
_POST'p_name' if (p_name) // Namen
ausgeben, wenn eingegeben. print("Hallo
p_name.ltpgt") // Zugriff auf Umgebungsvariable
print("Client-IP-Adresse "._SERVER'REMOTE_ADDR'
) lt/scriptgt ltFORM method"POST"gt Bitte Namen
eingeben ltINPUT type"text" name"p_name"
size"30"gt lt/FORMgt lt/BODYgt lt/HTMLgt
50
Java und Datenbanken
  • Java Database Connectivity (JDBC)
  • Idee
  • Drivertypen
  • Klassen und Schnittstellen
  • SQLJ (Embedded SQL in Java)
  • J2EE Anwendungen
  • Java Servlets
  • Java Server Pages

51
Java Database Connectivity (JDBC)
  • Motivation
  • Zugriff auf SQL-Datenbanken mit Java benötigt
  • Nachteil selbstgestrickter Java-Zugriffsmethoden
  • aufwendig
  • fehlerbehaftet
  • nicht einfach portierbar
  • Überwindung des Mismatch zwischen
  • Java (objektorientiert, ohne Pointer)
  • C (prozedural, mit Pointern)
  • SQL (mengenorientiert)
  • Beziehung zu ODBC
  • Wurde in Anlehnung an ODBC (Open Database
    Connectivity) entwickelt und mit einer ähnlichen
    Klassenbibliothek ausgestattet

52
JDBC (Forts.)
  • DB-Kommunikation erfolgt über ein Call Level
    Interface (CLI)
  • Basiert auf Java kann Objekte direkt verwenden,
    um DB-Objekte und ihre Operationen direkt und
    natürlich darzustellen
  • Beispiel Objekt Connection mit einer Methode
    close()
  • JDBC-Klassenbibliothek
  • Seit JDK 1.1 im Sprachumfang enthalten, wird
    ständig um weitere Funktionalität ergänzt
  • Trennung in ein Core API und Standard
    Extension API

53
JDBC Entwurfsziele
  • Call-Level Dynamic SQL API
  • Äquivalent zu ODBC und X/Open CLI
  • Allgemeines API, das die Basis-SQL-Funktionalität
    unterstützt
  • Höhere APIs (z.B. mit Mapping Klassen-Tabellen)
    können darauf aufsetzen
  • Implementierbar on top of allgemeinen SQL-APIs
  • Implementierbar auf Basis von ODBC und X/Open CLI
  • Brückentreiber JDBC-ODBC somit leicht
    realisierbar
  • SQL Conformance
  • Jeder SQL-Dialekt verarbeitbar, falls ein
    JDBC-Driver dafür vorhanden ist
  • Mindest-Anforderung SQL-92 (Entry Level) muß von
    allen Drivern unterstützt werden
  • Strenges, statisches Typing
  • Einfaches API für den Normalfall (80-20 Regel)

54
JDBC-Architektur
Application Driver Manager Driver
Driver Driver Data source Data
source Data source
JDBC API
JDBC Driver API
Proprietär
55
JDBC Klassen und Interfaces
java.sql.DriverManager(class, class methods)
java.sql.Driver(interface, drivers only)
java.sql.Connection(interface)
java.sql.Connection(interface)
java.sql.Statement(interface)
java.sql.Statement(interface)
java.sql.Statement(interface)
java.sql.Resultset(interface)
java.sql.Resultset(interface)
56
Überblick Datenbankanfragen mit JDBC
Datenbankverbindung herstellen
Connect
Datenbankanfrage
Query
Processresults
Ergebnisse verarbeiten
Verbindung zur DB schließen
Close
57
Phase 1 Connect
Connect
Driver registrieren
Verbindung zur Datenbank
Query
Processresults
Close
58
Phase 2 Query
Connect
Query
Erzeuge ein Statement
Abfrage auf Datenbank
Processresults
Close
59
Statement Object
  • Ein Statement Objekt sendet SQL-Befehl zur
    Datenbank.
  • Man benötigt aktive Connection, um JDBC
    Statement zu erzeugen.
  • Statement hat drei Methoden, um ein SQL Statement
    zu erzeugen
  • executeQuery()für QUERY Statements
  • executeUpdate()für INSERT, UPDATE, DELETE, oder
    DDL statements
  • execute() für beliebiges Statement

60
Phase 3 Verarbeiten der Ergebnisse
Connect
Query
Durchlaufen der Ergebnisse
Zuweisen der Ergebnisse an Java- Variablen
ProcessResults
Close
61
Das ResultSet Objekt
  • JDBC liefert die Ergebnisse einer Query in einem
    ResultSet Objekt.
  • Ein ResultSet verwaltet einen Cursor, der auf den
    aktuellen Datensatz zeigt.
  • Verwende next() zum Durchlaufen des Result Set
    Satz für Satz.
  • getString(), getInt(), usw. für Wertzuweisung an
    Java-Variablen.

62
Phase 4 Close
Connect
Query
Schließe Result Set
ProcessResults
Schließe Statement
Close
Schließe Connection
63
JDBC Beispiel SELECT
// Create a connection and connect Connection
conn Statement stmt ResultSet rs int
partID float price conn
DriverManager.getConnection("jdbcodbcSales",
"myname",
"mypassword") // Create a statement and execute
a SELECT statement stmt conn.createStatement()
rs stmt.executeQuery ("SELECT PartID,
Price FROM Parts")
64
JDBC Beispiel SELECT (Forts.)
// Fetch and print each row while (rs.next())
partID rs.getInt(1) price
rs.getFloat(2) System.out.println("Part
Number " partID "
Price " price) // Close the result
set rs.close() // Close the statement and
connection stmt.close() conn.close()
65
JDBC Beispiel UPDATE
// Create a connection and connect Connection
conn Statement stmt int rowCount conn
DriverManager.getConnection("jdbcodbcSales",
"myname",
"mypassword") conn.setAutoCommit(false) //
Create a statement and execute an UPDATE
statement stmt conn.createStatement() rowCo
unt stmt.executeUpdate ("UPDATE Parts SET
Price 10.0 WHERE PartID 123")
66
JDBC Beispiel UPDATE (Forts.)
// Check if row was changed if (rowCount ! 0)
System.out.println("Price changed") else
System.out.println("Part not found") //
Commit the transaction conn.commit() // Close
the statement and connection stmt.close() conn.cl
ose()
67
J2EE Anwendungen
  • J2EE Java 2 Platform Enterprise Edition
  • Standard für die Entwicklung mehrschichtiger,
    komponentenbasierter Java-Anwendungen
  • Vereinfacht Entwicklung durch Definition eines
    Programmiermodells auf Basis von
    standar-disierten und komponentenbasierten
    Objekten
  • Oracle Application Server Oracle10gAS (OC4J)
  • vollständige Umsetzung eines J2EE-Containers
    JSP, Java Servlets, EJB, JDBC

68
Java Servlets
  • Einordnung
  • kleine Serverprogramme
  • Voraussetzung
  • Integration einer JVM in den Web-Server bzw.
    Kooperation mit einem Zusatzprozess
  • Voller Zugriff auf Java-API
  • Vorteile
  • Plattform- und herstellerunabhängige Erweiterung
    von Web-Servern möglich (durch standardisierte
    Servlet-API)
  • Dynamisches Binden möglich (Java-Klassenlader)
  • Hinzufügen und Entfernen von Modulen ohne
    Neustart des Servers

69
Web/DB-Anbindung über Java Servlets
  • Weitere Vorteile
  • alle Möglichkeiten der Sprache Java

Web-Client
Web-Server
HTTP
J V M
Servlet-Engine
  • 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
  • mehr Programmieraufwand, Ent-wicklungsumgebungen
    verfügbar

Java-Klassenbibliothek
JDBC
DB-Server
Write a Comment
User Comments (0)
About PowerShow.com