Inhaltsverzeichnis

Werbung
vii
Inhaltsverzeichnis
1
Einleitung
1
2
Grundlagen von Webanwendungen
7
2.1
Hypertext Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.4 Cookies und Request-übergreifende Zustandsinformation . . 14
2.1.5 Verbindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.6 Authentifizierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.7 WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2
Hypertext Transfer Protocol over TLS . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Funktionsumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Arbeitsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
22
23
26
2.3
Auszeichnungssprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4
Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Grundlagen der Applet-Programmierung . . . . . . . . . . . . . . .
2.4.2 Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.3 Applet-Kontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.4 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
32
33
34
2.5
Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1 Grundprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2 Grundlagen der Servlet-Programmierung . . . . . . . . . . . . . . .
2.5.3 Sitzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.4 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.5 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
36
38
41
43
44
2.6
JavaServer Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.1 Grundprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.2 Elemente von JavaServer Pages . . . . . . . . . . . . . . . . . . . . . . .
2.6.3 Tag-Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.4 Darstellung als XML-Dokument . . . . . . . . . . . . . . . . . . . . .
46
46
46
52
54
2.7
Java 2 Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7.1 Arten von Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7.2 J2EE-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
viii
Inhaltsverzeichnis
2.8
Architektur von Webanwendungen . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2 EIS-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.3 EJB-Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.4 Webclient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.5 Business-to-Business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
60
61
63
64
69
3
JDBC – Die Datenbankschnittstelle für Java-Programme
71
3.1
Das Grundprinzip von JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2
Ein einführendes Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3
Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.4
Ausführung von SQL-Operationen . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Parameterlose SQL-Operationen (Klasse Statement) . . . . . .
3.4.2 Vorübersetzte und parametrisierte Anweisungen . . . . . . . . .
3.4.3 Aufruf von gespeicherten Programmen . . . . . . . . . . . . . . . .
3.4.4 Escape-Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.5 Spezielle Methoden der Statement-Klassen . . . . . . . . . . . . .
3.4.6 Oracle-spezifische Basisklassen . . . . . . . . . . . . . . . . . . . . . .
3.5
Ergebnismengen, Datentypen und get/set-Methoden . . . . . . . . . . . . 89
3.5.1 Erweiterungen von ResultSet . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.2 RowSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.5.3 Standarddatentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.5.4 Belegung von PL/SQL-Tabellen . . . . . . . . . . . . . . . . . . . . . 108
3.5.5 Datentyp ROWID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.5.6 REF CURSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.5.7 Objekttypen (Struct) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.5.8 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.5.9 Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.6
Benutzerdefinierte Java/SQL-Abbildung zur Objektbehandlung . . .
3.6.1 Standardkonforme Java/SQL-Abbildung . . . . . . . . . . . . .
3.6.2 Oracle-spezifische Java/SQL-Abbildung . . . . . . . . . . . . . .
3.6.3 Serialisierung von Objekten als RAW- oder
BLOB-Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.4 SQLJ-Objekttypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
117
120
3.7
Aufbau von Datenbankverbindungen . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 Treiberregistrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.2 Verbindungsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.3 Data Sources und JNDI-Namensdienst . . . . . . . . . . . . . . .
3.7.4 Connection Pooling und Caching . . . . . . . . . . . . . . . . . . .
3.7.5 Connection Pooling mit dem OCI-Treiber . . . . . . . . . . . . .
3.7.6 Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
128
129
130
133
136
140
3.8
Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8.1 Transaktionssteuerung über die Connection-Klasse . . . . . .
3.8.2 Verteilte Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8.3 Java Transaction API . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
140
143
149
82
83
84
85
87
88
89
126
127
Inhaltsverzeichnis
3.9
3.10
Zugriff auf Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.1 Information über Tabellen und Sichten mit
DatabaseMetaData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.2 Information zu Anfrageergebnissen mit
ResultSetMetaData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.3 Schemainformation zu benutzerdefinierten
Objekttypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9.4 Ermittlung der Treiberversion . . . . . . . . . . . . . . . . . . . . . .
152
154
155
Abweichungen vom JDBC2-Standard . . . . . . . . . . . . . . . . . . . . . . .
3.10.1 Spezielle Oracle-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.2 Ausführungsgruppierung (»Batch Update«) . . . . . . . . . . . .
3.10.3 Array-Fetches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.4 Vordefinition von Spalten . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.5 Caching von Statements . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.6 Properties-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10.7 Nicht unterstützte JDBC2-Konzepte . . . . . . . . . . . . . . . . . .
156
156
156
159
160
161
162
163
152
153
3.11
Maßnahmen zur Performanzverbesserung . . . . . . . . . . . . . . . . . . . 163
3.12
Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12.2 Oracle-Connection-Manager . . . . . . . . . . . . . . . . . . . . . . .
3.12.3 Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13
Serverseitige Treiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4
SQLJ – SQL-Einbettung in Java
4.1
Unterschiede zu JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
4.2
Grundprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
4.3
Eingebettetes SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Hostvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Allgemeine SQLJ-Anweisungen . . . . . . . . . . . . . . . . . . . . .
4.3.3 Transaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.4 SELECT-INTO-Szenario . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.5 Nullwertbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.6 Iteratoren zur Abarbeitung von Anfrageergebnissen . . . . . .
4.3.7 Ausnahmebehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.9 Ausführungsreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . .
173
174
176
177
178
179
179
184
185
4.4
Handhabung von Datenbankverbindungen . . . . . . . . . . . . . . . . . . .
4.4.1 Registrierung einer Treiberklasse . . . . . . . . . . . . . . . . . . . .
4.4.2 Kontexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.3 Verbindungskontexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4 Ausführungskontexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.5 Unterstützung von JNDI-DataSources . . . . . . . . . . . . . . . .
186
186
186
187
192
195
4.5
Objekte und Kollektionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.1 Schwach getypte Klassen . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 Stark getypte Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.3 Geschachtelte Iteratoren für geschachtelte Tabellen . . . . . .
195
196
197
198
165
165
165
166
169
ix
x
Inhaltsverzeichnis
4.6
JPublisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.1 Aufruf von JPublisher . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.2 Namensgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.3 Beeinflussung der Implementierung . . . . . . . . . . . . . . . . . .
4.6.4 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.5 Weitere Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6.6 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
200
203
206
207
209
209
4.7
SQLJ-Präcompiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.1 Ablauf des gesamten Übersetzungsvorgangs . . . . . . . . . . .
4.7.2
Präcompiler-Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.3 Angabe von Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.4 Ausgabeverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.5 Semantische Prüfungen . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.6 Oracle-spezifische Codegenerierung . . . . . . . . . . . . . . . . . .
4.7.7 Steuerung der Präkompilierung und Kompilierung . . . . . .
4.7.8 Produktspezifische Anpassung . . . . . . . . . . . . . . . . . . . . . .
4.7.9 Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.10 Präcompiler-Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . .
210
210
213
214
215
215
217
218
220
221
222
4.8
SQLJ-Erweiterungen von Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . 223
4.8.1 Oracle-spezifische Datentypen . . . . . . . . . . . . . . . . . . . . . . 223
4.8.2 Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
4.9
SQLJ in Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
4.10
Interoperabilität von SQLJ mit JDBC und PL/SQL . . . . . . . . . . . . . 226
4.10.1 Interoperabilität mit JDBC . . . . . . . . . . . . . . . . . . . . . . . . 226
4.10.2 Interoperabilität mit PL/SQL . . . . . . . . . . . . . . . . . . . . . . . 227
4.11
Dynamisches SQL in SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
5
Java-Programme im Datenbankserver
5.1
Oracle JVM: Oracles Java Virtual Machine . . . . . . . . . . . . . . . . . . 230
5.2
Gespeicherte Programme in Java – Ein Beispiel . . . . . . . . . . . . . . . 231
5.3
Implementierung in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
5.4
Laden in die Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
5.5
Registrierung (Publishing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
5.6
Aufruf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
6
Datenbankunterstützung für XML
259
6.1
Einführung in XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Grundbegriffe von XML . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Konzepte von XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.3 Document Type Definition . . . . . . . . . . . . . . . . . . . . . . . .
6.1.4 XML Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.5 XML-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.6 XPath-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.7 XSL-Stylesheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
260
260
262
264
266
266
271
275
6.2
XML-Unterstützung in Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
229
Inhaltsverzeichnis
6.3
Grobgranulare Speicherung von XML-Dokumenten . . . . . . . . . . . .
6.3.1 Die CONTAINS-Funktion von OracleText . . . . . . . . . . . .
6.3.2 Indextypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.3 XML-Funktionalität in OracleText . . . . . . . . . . . . . . . . . .
288
288
294
302
6.4
Der Objekttyp SYS.XMLType . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Methoden des Objekttyps XMLType . . . . . . . . . . . . . . . . .
6.4.2 Erzeugen von XMLType-Objekten . . . . . . . . . . . . . . . . . . .
6.4.3 Qualifikation und Extraktion . . . . . . . . . . . . . . . . . . . . . .
6.4.4 Modifikation von XML-Dokumenten . . . . . . . . . . . . . . . .
6.4.5 SQL-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.6 Java-Zugang zu XMLType-Objekten . . . . . . . . . . . . . . . . .
310
311
312
313
315
316
316
6.5
Feingranulare Behandlung von XML-Dokumenten
mit dem XML SQL Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.1 Kanonische Abbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5.2 Lesen mit der Java-Klasse OracleXMLQuery . . . . . . . . . . .
6.5.3 Feingranulares Speichern mit Java OracleXMLSave . . . . . .
6.5.4 Ausführung über Kommandozeile . . . . . . . . . . . . . . . . . . .
317
318
321
324
325
6.6
Erzeugen von XML aus Datenbankdaten in SQL . . . . . . . . . . . . . .
6.6.1 PL/SQL-Paket DBMS_XMLGEN . . . . . . . . . . . . . . . . . . . .
6.6.2 Die SQL-Funktion SYS_XMLGEN . . . . . . . . . . . . . . . . . .
6.6.3 Die SQL-Funktion SYS_XMLAGG . . . . . . . . . . . . . . . . . .
6.6.4 SQLX-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
327
327
330
333
334
6.7
Das XSQL-Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1 Das Prinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.2 Ändern von XML-Dokumenten in der Datenbank . . . . . . .
6.7.3 Parametrisierte Aktionen . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.4 Fehlerausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.5 Benutzerdefinierte Action Handler . . . . . . . . . . . . . . . . . . .
6.7.6 Stylesheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.7 Aufrufmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.8 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339
339
341
343
346
347
348
349
350
6.8
URI-Unterstützung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8.1 URI auf Datenbankdaten . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8.2 Der URIType-Objekttyp . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.8.3 Registrierung eigener Protokolle . . . . . . . . . . . . . . . . . . . . .
6.8.4 Erzeugen von DBUri-Referenzen mit der
SQL-Funktion SYS_DBURIGEN . . . . . . . . . . . . . . . . . . . .
6.8.5 Aufruf über einen Webbrowser . . . . . . . . . . . . . . . . . . . . .
350
351
353
354
Oracle XML/DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9.1 XML/DB-Speicherungsformen . . . . . . . . . . . . . . . . . . . . . .
6.9.2 Erstellung eines XML-Schemas mit/ohne
Abbildungsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9.3 Registrierung eines XML-Schemas . . . . . . . . . . . . . . . . . . .
6.9.4 Generierung eines XML-Schemas . . . . . . . . . . . . . . . . . . . .
6.9.5 Anlegen von Tabellen mit XMLType . . . . . . . . . . . . . . . . .
6.9.6 Bearbeitung von XMLType-Tabellen . . . . . . . . . . . . . . . . .
6.9.7 APIs für Oracle XML/DB . . . . . . . . . . . . . . . . . . . . . . . . . .
357
358
6.9
355
357
361
365
367
368
370
377
xi
xii
Inhaltsverzeichnis
6.9.8
6.9.9
6.10
XMLType-Sichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Systemsichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
XML/DB-Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.1 WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.2 ACL-Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.3 DBMS_XDB-PL/SQL-Paket zur Administration
des Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.4 Repository-Sichten zur Manipulation der Dokumente . . . .
6.10.5 JNDI-Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.6 Pfadbasierter Zugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.10.7 Versionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
379
381
382
384
385
387
388
389
7
Der Oracle9i Application Server
391
7.1
Überblick über den Oracle9i Application Server . . . . . . . . . . . . . . .
7.1.1 J2EE and Web Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.2 Portal and Wireless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.3 Business Intelligence and Forms . . . . . . . . . . . . . . . . . . . . .
7.1.4 Unified Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.5 Infrastruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.6 Eine Beispielinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.7 Architektur für Skalierbarkeit und Verfügbarkeit . . . . . . .
392
393
394
394
395
395
396
396
7.2
Oracle HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Architektur des Webservers . . . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.3 Dynamische Generierung von Inhalten . . . . . . . . . . . . . . .
7.2.4 Manipulieren der URL des HTTP-Requests . . . . . . . . . . . .
7.2.5 Beeinflussen der Kopfzeilen der HTTP-Response . . . . . . . .
7.2.6 HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.7 WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.8 Administrative Funktionen . . . . . . . . . . . . . . . . . . . . . . . .
7.2.9 Diverse Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
398
399
402
405
410
414
416
416
417
420
7.3
Oracle9iAS Web Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
7.3.1 Grundlegendes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
7.3.2 Edge Side Includes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
7.4
Oracle9iAS Containers for J2EE . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Das EJB-Komponentenmodell . . . . . . . . . . . . . . . . . . . . . .
7.4.2 Entity- und Session-Beans . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.3 Implementierung von Session-Beans . . . . . . . . . . . . . . . . .
7.4.4 Implementierung von Entity-Beans . . . . . . . . . . . . . . . . . .
7.4.5 Bean-gesteuerte Persistenz . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.6 Container-gesteuerte Persistenz . . . . . . . . . . . . . . . . . . . . .
7.4.7 Transaktionssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.8 Spezielle Aspekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.9 Hinweise zur Verwendung von Enterprise JavaBeans . . . .
428
428
429
430
441
443
450
455
458
459
Inhaltsverzeichnis
7.5
Tag-Libraries für Oracle9iAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1 JSP Markup Language . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.2 Die SQL-Tag-Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.3 Die XML-Tag-Libary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.4 Allgemeine Utility-Tags . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.5 E-Mail-Versand in JSP-Seiten . . . . . . . . . . . . . . . . . . . . . . .
7.5.6 Die Tag-Library für Dateitransfers . . . . . . . . . . . . . . . . . . .
7.5.7 Die EJB-Tag-Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.8 Der Web Object Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.9 Tag-Bibliotheken anderer Oracle9i-Produkte . . . . . . . . . . .
464
464
467
472
475
476
478
480
482
488
7.6
Oracle9iAS Single Sign-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 Überblick über Oracle9iAS Single Sign-On . . . . . . . . . . . . .
7.6.2 Arbeitsweise bei Partnerapplikationen . . . . . . . . . . . . . . . .
7.6.3 Programmierung einer Partnerapplikation in Java . . . . . . .
7.6.4 Der Oracle HTTP Server als Partnerapplikation . . . . . . . . .
7.6.5 Single Sign-On bei externen Applikationen . . . . . . . . . . . .
489
489
490
493
498
499
A
Objektrelationale Modellierung
501
Literatur
505
Stichwortverzeichnis
513
xiii
Herunterladen