Inhalt des Buches

1 Einführung

Vor dem Schreiben der ersten Programmzeile soll zunächst ein Überblick über die Einordnung von Enterprise JavaBeans in die Welt der Informationstechnik erfolgen. Außerdem werfen wir einen Blick auf die Rolle des Applikationsentwicklers im Umfeld von J2EE. Weiterlesen

1.1 Vom Transaktionsmonitor zum Applikationsserver

1.2 Komponenten der J2EE-Spezifikation

1.3 Die Sicht des Anwendungsentwicklers

1.4 Rollen im J2EE-Umfeld

2 Umgebung und Werkzeuge

Die Einarbeitung in die Entwicklung von Enterprise JavaBeans und Webservices gelingt am besten, wenn man versucht, die im Buch enthaltenen Programmbeispiele praktisch nachzuvollziehen. Dazu sind eine Reihe von Werkzeugen erforderlich, die in diesem Kapitel beschrieben werden. Weiterlesen

2.1 Applikationsserver

2.2 Entwicklungsumgebung

2.3 Das Build-Tool Ant

2.4 Nicht erst am Schluss: Logging und Testen

2.5 Die J2EE-Beispielapplikation

2.6 Die Organisation des Arbeitsbereiches

2.7 Compile- und Laufzeitumgebung

2.8 Überprüfung der Installation

2.9 Dokumentation und Hilfe

3 Die erste J2EE-Applikation

Üblicherweise beginnt die Einführung in eine neue Programmiersprache mit einem «Hello World» Programm. Dies ist ein kleines, aber vollständiges Programm, welches die grundlegende Anwendung der neuen Technologie illustriert, ohne alles bis ins Detail zu erklären. Dieser Tradition wollen wir folgen und in diesem Kapitel die Entwicklung und Inbetriebnahme einer vollständigen J2EE-Applikation durchführen. Weiterlesen

3.1 Die Aufgabe

3.2 Implementierung der Bean

3.3 Vom Quelltext zum Bytecode

3.4 Die Applikation wird gebaut

3.5 Inbetriebnahme der Applikation

3.6 Die Stunde der Wahrheit: Ein Testclient

4 Die Stateless Session-Bean

Eine Stateless Session-Bean kommt bei der Realisierung von Business-Methoden zum Einsatz, die keinen auf dem Server gehaltenen Konversionsstatus benötigen. Weiterlesen

4.1 Anwendungszweck

4.2 Bestandteile

4.3 Inbetriebnahme

5 Die Stateful Session-Bean

Eine Stateful Session-Bean kann einen Konversionsstatus halten. Damit wird der Client vom expliziten Verwalten dieses Status befreit, die Stateful Session-Bean kann so als Verlängerung des Clients in den Applikationsserver hinein aufgefasst werden. Weiterlesen

5.1 Anwendungszweck

5.2 Bestandteile

5.3 Inbetriebnahme

6 Hilfsmittel zur Erstellung von Beans

Obwohl die in den bisherigen Kapiteln vorgestellten Beispiele für Enterprise JavaBeans eher trivial waren, lohnt es sich schon jetzt, über Hilfsmittel zur Verbesserung und Erleichterung der Entwicklungsarbeit nachzudenken. Weiterlesen

6.1 Das Business-Interface Pattern

6.2 Verwendung des Kodegenerators XDoclet

7 J2EE Clients

In Kapitel 3 wurde bereits ein einfacher Client vorgestellt, der eine auf dem Applikationsserver installierte EJB benutzt. Im folgenden werden wir die Technologie von J2EE Application- Clients sowie J2EE-Webapplikationen kennen lernen. Außerdem soll ein genauerer Blick auf das von der J2EE-Laufzeitumgebung zur Verfügung gestellte Client-API geworfen werden. Weiterlesen

7.1 Verwendung von EJB-Referenzen

7.2 J2EE Application-Client

7.3 Webapplikationen

7.4 Lokale und entfernte Clients

7.5 Zusätzliche Funktionen für den Client

7.6 Service-Locator

8 Die Entity-Bean mit Container-Managed Persistence

Die in den vergangenen Kapiteln vorgestellten Typen von Enterprise JavaBeans beschäftigten sich mit der Modellierung von Prozessen. Dabei haben wir bisher elegant die Frage umschifft, mit welchen Daten die Prozesse eigentlich arbeiten und wie der Zugriff auf diese Daten erfolgt. Diese Frage wird in diesem Kapitel nun mit der Vorstellung der Entity-Bean beantwortet. Weiterlesen

8.1 Anwendungszweck

8.2 Ein Beispielszenario

8.3 Die Entity-Bean SimplePart

8.4 Inbetriebnahme der Entity-Bean

8.5 Ein Test-Client

9 Container-Managed Relationships

Die EJB-Spezifikation 2.x enthält die Möglichkeit, Beziehungen zwischen Entitäten unabhängig vom physikalischen Datenspeicher zu spezifizieren und zu verwenden. Diese als Container- Managed Relationships (CMR) bezeichnete Eigenschaft ist Thema dieses Kapitels. Weiterlesen

9.1 Versionen und Bauteile

9.2 Die Entitiy-Bean für Part

9.3 Die Entity-Bean für Version

9.4 Deployment-Deskriptor

9.5 Eigenschaften von CMR

9.6 Semantik für die Manipulation von Relationships

10 Die EJB Query Language

Dieses Kapitel enthält eine Beschreibung der Enterprise JavaBeans Query Language (EJB QL). Dabei steht die beispielhafte Vermittelung der Anwendung der Sprache im Mittelpunkt, auf eine Wiedergabe ihrer exakten Notation [EJBSPEC03] sei hier verzichtet. Weiterlesen

10.1 Syntax

10.2 Beispiele

11 Architektur der EJB-Schicht

Für das in Kapitel 9 vorgestellte Beispiel von Entity-Beans mit Container-Managed Relationships sind wir bisher die Vorstellung eines Testclients schuldig geblieben. Das hatte gute Gründe, denn wir wollen uns jetzt etwas mehr Gedanken über das Zusammenwirken von Client-Applikationen mit der EJB-Schicht machen. Weiterlesen

11.1 Das Session-Facade Pattern

11.2 Data Transfer Object

11.3 Die EJB ProductDataSession

12 Bean-Managed Persistence

Entity-Beans mit Bean-Managed Persistence bieten dem Entwickler volle Kontrolle über die Art und Weise des Zugriffs auf den persistenten Datenspeicher. Weiterlesen

12.1 Anwendungszweck

12.2 Die Beispiel-Datenbank

12.3 Realisierung der Entity-Beans mit BMP

12.4 Die Session-Facade

12.5 Entity Beans: Ja oder Nein?

13 Methoden-Leitfaden für Entity-Beans

Die letzen fünf Kapitel haben sich mit den verschiedensten Aspekten der Entwicklung von Entity-Beans befasst. An dieser Stelle ist daher eine Zusammenfassung im Stil eines stichwortartigen Leitfadens angebracht. Weiterlesen

13.1 Lebenszyklus der Entity-Bean

13.2 Bean-Klasse

13.3 Local-Home- und Remote-Home-Interfaces

13.4 Local- und Remote-Interface

13.5 Primary Key

14 Message-Driven Bean

Die Message-Driven Bean unterscheidet sich von den bisher vorgestellten Enterprise JavaBeans durch die Verwendung eines asynchronen Aufrufmodells. Weiterlesen

14.1 Asynchrones Messaging

14.2 Message Services und J2EE

14.3 Der Java Message Service

14.4 Message-Driven Bean

14.5 Eine JMS Beispielapplikation

14.6 Fazit

15 Der Timer-Service

Der Timer-Service ist in der EJB-Spezifikation 2.1 neu hinzugekommen. Er erlaubt das zeitgesteuerte einmalige oder periodische Ausführen von Aktionen. Weiterlesen

15.1 Das Beispiel

15.2 Die Bean-Klasse wird zum TimedObject

15.3 Starten und Beenden eines Timers

15.4 Reaktion auf ein Timer-Ereignis

15.5 Test

15.6 Fazit

16 Backendsysteme

Der Zugriff auf verschiedene Arten von Backendsystemen ist essentiell für die Integration bestehender Unternehmensanwendungen in die J2EE-Welt. In diesem Kapitel werden dafür geeignete Technologien vorgestellt. Weiterlesen

16.1 Überblick

16.2 Ressource Connections für Standard-Backends

16.3 J2EE Connector Architecture

16.4 CORBA

16.5 Webservices

17 Security

Das Security-Management eines J2EE-Applikationsservers unterstützt Anwender und Entwickler bei der Implementierung eines Sicherheitskonzeptes, das nur bestimmten autorisierten Benutzern den Zugriff auf gesicherte Komponenten, wie EJBs, Webseiten und Ressourcen, erlaubt. Weiterlesen

17.1 Declarative Security

17.2 Programmatic Security

17.3 Autorisierungsmechanismen

17.4 Eine abgesicherte Applikation

17.5 Fazit

18 Transaktionssteuerung

Die J2EE-Ablaufumgebung stellt den Anwendungen einen mächtigen Transaktionsdienst zur Verfügung. Je nach den konkreten Erfordernissen kann die Transaktionssteuerung dabei auf unterschiedlichen deklarativen und programmtischen Ebenen vorgenommen werden. Weiterlesen

18.1 Transaktionen

18.2 Container-Managed Transactions

18.3 Bean-Managed Transactions

18.4 Isolation

18.5 Time-out und User Think Time

18.6 Fazit

19 Threads und Reentranz

Threads sind unverzichtbar für leistungsfähige Serveranwendungen. Jedoch stellt die damit verbundene Nebenläufigkeit erhöhte Anforderungen an die Erstellung von thread-sicheren Programmen. Das EJB-Programmiermodell beinhaltet daher eine ebenso einfache wie pragmatische Lösung: Weiterlesen

19.1 Keine Nebenläufigkeit!

19.2 Reentranz

20 Webservices

Implementierungen der EJB-Spezifikation in der Version 2.1 bieten die Möglichkeit, eine Stateless Session-Bean ohne großen Aufwand als Webservice-Endpunkt zu betreiben. Weiterlesen

20.1 SOAP, WSDL und JAX-RPC

20.2 Die Stateless Session-Bean als Webservice

20.3 Webservice-Clients

20.4 Fazit

21 Literaturverzeichnis

Links zum Thema

Weiterlesen:

Die 2. Auflage des Buches steht unter einer Creative Commons Lizenz und ist online als PDF-Datei zum freien Download verfügbar.