Suchen und Finden
Service
Enterprise JavaBeans - Die 3. Generation
Werner Eberling, Jan Leßner
Verlag Carl Hanser Fachbuchverlag, 2007
ISBN 9783446412941 , 293 Seiten
Format PDF, OL
Kopierschutz Wasserzeichen
Inhalt
7
Einführung
11
Bevor es losgeht
11
Zielgruppe und Leseregeln
12
Application-Server, Tools und Codebeispiele
13
Formatierungen und Sprachgebrauch
14
Danksagung
14
Feedback
15
1 Technische Grundlagen und historische Entwicklungen
16
1.1 Client-Server-Systeme
16
1.2 Die 3-Schichten-Architektur
19
1.3 Ein bisschen Komponenten-Theorie
22
1.4 EJBs und die Java Enterprise Edition
25
1.5 Handwerkszeug aus der Java Standard Edition 5
27
1.5.1 Annotationen
27
1.5.2 Generics
28
1.5.3 Autoboxing
29
2 Erste Schritte
30
2.1 Die Neuheiten kurz gefasst
30
2.2 Hello World
32
2.2.1 Installation der JEE-Plattform
32
2.2.2 Implementierung einer EJB
34
2.2.3 Installation der EJB (Deployment)
35
2.2.4 Implementierung des Clients
36
2.2.5 Aufräumen
39
2.3 Spielregeln
40
2.3.1 Rollen
40
2.3.2 Einschränkungen im Programmiermodell
42
2.4 Wie es weitergeht
44
3 SessionBeans
45
3.1 Einführung
45
3.2 Stateless SessionBeans
47
3.2.1 Bestandteile einer Stateless SessionBean
49
3.2.2 Implementierung im Detail
52
3.2.3 Lokaler Zugriff auf Stateless SessionBeans
58
3.2.4 Stateless SessionBeans als Webservice-Endpunkt
60
3.2.5 Neue Beans und alte Clients – EJB2- Sicht auf EJB3- SessionBeans
65
3.3 Stateful SessionBeans
67
3.3.1 Bestandteile einer Stateful SessionBean
68
3.3.2 Lifecycle und Event Callback Methoden
70
3.3.3 Abschließende Bemerkungen
74
3.4 Session-Context
74
3.5 Exceptions
76
3.5.1 Applikations- und System-Exception
76
3.6 Alternative zur Annotation: Der XML-Deskriptor
78
4 Entities
81
4.1 Das Problem mit der Persistenz
81
4.2 Einige Grundlagen
83
4.2.1 Die Data-Source
83
4.2.2 Die wichtigsten Begriffe vorweg
85
4.3 Eine erste Datenbankanwendung
90
4.3.1 Der Lebenszyklus von Entities
94
4.3.2 Grundfunktionen des Entity-Managers
97
4.4 O/R-Mapping
99
4.4.1 Abbildung von Klassen auf Tabellen
100
4.4.2 Abbildung von Attributen auf Spalten
103
4.4.3 Abbildung von Vererbungen
114
4.5 Beziehungen
121
4.5.1 Bi- und unidirektionale Beziehungen verstehen
122
4.5.2 Beziehungstypen
124
4.5.3 1:1-Beziehungen
124
4.5.4 1:N-Beziehungen
128
4.5.5 N:1-Beziehungen
134
4.5.6 N:M-Beziehungen
136
4.5.7 Noch mehr Beziehungen
140
4.6 Abfragen
141
4.6.1 JPA-Schnittstellen für Abfragen
144
4.6.2 Alles Wesentliche auf einen Blick
145
4.6.3 GROUP-BY und HAVING
152
4.6.4 SELECT
152
4.6.5 ORDER-BY
153
4.6.6 Unterabfragen
154
4.6.7 Massenlöschungen und -aktualisierungen
155
4.6.8 SQL- Abfragen
156
4.6.9 Benannte Abfragen
157
4.7 Noch mehr Entities
158
4.8 Entities im Rückblick
160
5 Message-Driven Beans
162
5.1 Einführung
162
5.2 Nachrichtenbasierte Systeme mit JMS
163
5.2.1 Der Nachrichtenserver als Kommunikationsbus
164
5.2.2 Einer sendet, einer empfängt – das Punkt-zu-Punkt-Modell
164
5.2.3 Einer sendet, viele hören zu – das Publish-Subscribe-Modell
169
5.3 Bestandteile einer Message-Driven Bean
171
5.3.1 Lebenszyklus einer Message-Driven Bean
171
5.3.2 Bestandteile einer Message-Driven Bean
172
5.4 Alternative zur Annotation: Der XML-Deskriptor
175
5.5 Abschließende Bemerkungen
176
6 EJB-Konfiguration
178
6.1 Einführung
178
6.2 Der lokale JNDI-Kontext
178
6.3 EJB-Referenzen
181
6.4 Konfigurations-Parameter
185
6.5 Ressourcen-Manager-Fabriken
186
6.6 Nachrichtenziele
189
6.7 Noch mehr referenzierte Objekte
191
6.8 Abschließende Bemerkungen zum Deployment- Deskriptor
192
7 Transaktionen
195
7.1 Systemkonsistenz in Komponentenarchitekturen
195
7.1.1 Ressourcen
197
7.2 Container-verwaltete Transaktionen
200
7.2.1 Zurückrollen von CMTs
201
7.2.2 Deklaration von CMTs
204
7.2.3 CMTs in Message-Driven Beans
208
7.2.4 Situationen mit unspezifiziertem Transaktionskontext
208
7.3 Bean-verwaltete Transaktionen
209
7.4 Transaktionale Ressourcen
212
7.4.1 Persistenzkontexte
212
7.4.2 Data-Sources
212
7.4.3 JMS-Verbindungen
213
7.4.4 Stateful SessionBeans und SessionSynchronization
214
7.5 Client-verwaltete Transaktionen
217
8 Sicherheit
219
8.1 Einführung
219
8.2 Wer klopft denn da? – Die Authentifizierung
219
8.2.1 Erste Schritte
219
8.2.2 Der Caller-Principal
221
8.2.3 Principal Delegation
221
8.2.4 Technische Details der Authentifizierung des Clients
222
8.2.5 Serverseitige Authentifizierung
228
8.3 Rollenbasierte Autorisierung
232
8.3.1 Deklaratives Sicherheitsmanagement
233
8.3.2 Programmatisches Sicherheitsmanagement
235
8.3.3 Abbildung der logischen Rollen
236
8.3.4 Grenzen des rollenbasierten Ansatzes
237
8.4 Datenverschlüsselung und Integrität
238
9 Noch mehr EJBs
240
9.1 Einfache Aspektorientierung mit EJB3
240
9.1.1 Interceptor-Methoden
241
9.1.2 Interceptor-Klassen
244
9.1.3 Aspekte über XML-Deskriptoren
247
9.2 Timed Objects
249
9.3 Ein alternativer Weg zur Remote-Referenz: Der Handle
251
10 Blick über den Tellerrand
253
10.1 Testen von EJBs
253
10.1.1 Warum Testen?
253
10.1.2 Unit-Tests mit Entities und Dependency-Injection
255
10.1.3 Server-unterstütztes Testen
256
10.2 Wichtige EJB-Entwurfmuster
258
10.2.1 Evtl. bekannte Muster sind weiter gültig
258
10.2.2 Neue Muster mit EJB 3.0
262
10.2.3 Was es nicht mehr gibt
263
10.3 Migration auf EJB3
264
10.3.1 Drei (und eine) Migrations-Strategien
264
10.3.2 Migrieren, aber wie?
267
11 Ein Stein würfelt nicht
270
11.1 Zum Spiel
270
11.2 Funktionsweise der Spielplattform
272
11.3 Technisches Modell
273
11.3.1 Versuchungen
273
11.3.2 Design-Entscheidungen
274
11.3.3 Das Komponentenmodell
276
11.3.4 Das Entitätenmodell
277
11.3.5 Die Package-Struktur
278
11.4 Hingucker
279
11.5 Erweiterungsmöglichkeiten
282
11.6 Einige Anmerkungen zum Schluss
283
Literatur
284
Register
286