Martin Backschat / Bernd Rücker Enterprise JavaBeans 3.0 Grundlagen - Konzepte - Praxis 2. Auflage unter Mitwirkung von Stefan Scheidt Oliver-Arne Hammerstein Spetärum kJTAKADEMISCHER VERLAG ELSEVIER SPEKTRUM AKADEMISCHER VERLAG Inhaltsverzeichnis 1 1.1 1.2 1.3 1.4 Einführung und Grundlagen Software-Entwicklung im Unternehmensumfeld Architekturen für Enterprise-Anwendungen Middleware-Technologien Enterprise JavaBeans 1 2 7 13 23 2 2.1 2.2 2.3 2.4 2.5 2.6 Konzepte und Architektur von EJB 3-0 Überblick Elemente der EJB-Architektur Enterprise Beans Client-Sicht auf Session Beans Bestandteile von Enterprise Beans Die Laufzeitumgebung des EJB-Containers 27 28 28 36 38 42 48 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Session Beans Einführung Client- und Container-Sicht auf Session Beans Stateful Session Beans Stateless Session Beans Entwicklung von Session Beans Ein Warenkorb als Stateful Session Bean Stateless Session Beans als Web-Service Web-Service-Clients 65 67 71 77 85 86 95 98 101 4 4.1 4.2 4.3 4.4 Java-Persistenz mit Entities Die Bedeutung von Persistenz Entities Entity-Manager Lebenszyklus-Ereignisse und Callbacks 109 110 114 123 141 5 5.1 5.2 5.3 5.4 Objektrelationales Mapping mit JPA Mapping des persistenten Zustands Vererbungshierarchien Beziehungen Fetching-Strategien 147 148 171 182 215 6 6.1 6.2 6.3 6.4 6.5 Das Ouery-API und JPOL Überblick Das Ouery-API Select-Queries mit JPOL Massendaten-Operationen mit JOPL Native SOL-Queries 219 220 220 227 241 243 7 7.1 7.2 Message-Driven Beans Eigenschaften von Messaging-Systemen Java Message Service (JMS) \ 245 246 247 VII 7.3 7.4 7.5 7.6 Einsatzszenarien von Message-Driven Beans Der Lebenszyklus von Message-Driven Beans Aufbau von Message-Driven Beans Das News-Ticker-Beispiel 253 258 260 267 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 Transaktionen Konzepte der Transaktionsverarbeitung Transaktionssteuerung in EJB Isolation von Transaktionen Verteilte Transaktionen Transaktionen, Bean-Typen und Rollen Transaktionsbehandlung bei Ausnahmen. Isolation und Locking im Java Persistence API 273 274 279 292 295 298 304 309 9 9.1 9.2 Sicherheit Sicherheitsmechanismen von Java EE EJB-Sicherheitsmanagement 315 316 325 10 10.1 10.2 10.3 Weitere Dienste des EJB-Containers Der Enterprise Naming Context (ENC) Interception Timer-Dienst 337 338 346 362 11 11.1 11.2 11.3 Packaging und Deployment Packaging und Assembly Deployment im Java-EE-Applikationsserver Der EJB-Deployment-Deskriptor (DD) 375 376 382 385 12 12.1 12.2 12.3 Design und Entwicklung Performance und Skalierbarkeit Design-Tipps Testen von Enterprise Beans und JPA-Entities 397 398 404 411 13 13.1 13.2 13.3 13.4 13.5 Frameworks: Spring und Seam Leichtgewichtige Java-EE-Entwicklung Einführung in das Spring Framework Vergleich von Spring und EJB 3.0 Integration von Spring und EJB 3.0 Das Seam-Framework 415 416 416 420 441 454 14 14.1 14.2 14-3 14.4 14.5 Integration im Umfeld von Java EE Überblick ? Geschäftsprozesse Lang laufende Transaktionen Typische Integrationsarchitekturen SOA und Java EE 463 464 466 477 478 482 15 JBossjBPM 15.1' Grundlagen 15.2 jBPM und Java Enterprise viii 491 492 501 Inhaltsverzeichnis 15-3 15-4 Beispielanwendung Integration in JBoss Seam 506 517 16 16.1 16.2 16.3 16.4 BPM mit BPEL Beispielanwendung Deployment und Test BPEL = Web-Services? Fazit BPEL 521 522 530 531 533 A A.1 A.2 A.3 A.4 A.5 A.6 Referenz zu EJB 3.0 EJB-Ausnahmen JPA-Ausnahmen Annotationen Der XML-Deployment-Deskriptor Zugriff auf EJB-2.1-Komponenten Konfigurationsdateien für das JPA 537 538 539 540 547 548 550 B B.l B.2 B.3 Java Enterprise Edition 5 Die Java-EE-Architektur Java-EE-Programmierschnittstellen RMI-IIOP 551 552 558 570 C C.l C.2 C.3 Produkte .>. Java-EE-5-Applikationsserver Entwicklungsumgebungen für EJB 3.0 Business Process Engines 577 578 585 587 t Literaturverzeichnis Index Inhaltsverzeichnis 591 .- 595 . ix