Übung 1.1: Einführung in die Technologie

Eine Enterprise-Bean ist eine Gruppe von JavaTM-Klassen und -Schnittstellen, die die EJB-Spezifikation (Enterprise JavaBeansTM) implementieren. Die EJB-Spezifikation ist ein Teil der JavaTM 2 Plattform, Enterprise Edition (J2EE)-Spezifikation. J2EE ist ist eine Gruppe standardisierter Java-Technologien, die Erweiterungen der Java 2 Standardisierten Plattform, Standard Edition (J2SE), darstellen. Es folgen einige der Technologien, die J2EE beinhaltet:

Anwendungen, die unter Verwendung der J2EE-Spezifikationen geschrieben wurden, können einfach auf jedem Server implementiert werden, der J2EE unterstützt, wie z. B. dem IBMR WebSphereR Application Server.

Die aktuellste Version der EJB-Spezifikation ist 2.1. Die Workbench unterstützt mehrere Versionen der EJB-Spezifikation, darunter 1.1, 2.0 und 2.1. In der Workbench finden Sie Verweise auf die verschiedenen Spezifikationsebenen. Bei der Erstellung eines containerverwalteten (CMP) Entity-Beans können Sie beispielsweise die 'CMP-Version' für 1.x oder 2.x auswählen, was jeweils den EJB-Versionen 1.1 und 2.0/2.1 entspricht.

Weitere Informationen über die J2EE- und die EJB-Technologien finden Sie auf folgenden Websites:

Informationen über die Verwendung dieser Technologien finden Sie auch unter den folgenden Themen im Informationszentrum:

Enterprise JavaBeans

Die EJB-Spezifikation definiert:

Eine Unternehmensanwendung kann auf einem EJB-Server (auch als Enterprise Java Server bezeichnet), wie z.B. auf dem von WebSphereR Application Server bereitgestellten, installiert und ausgeführt werden. Die Aufgabe des Servers ist es, einen EJB-Container bereitzustellen, in dem die Enterprise-Beans ausgeführt werden können. Ein EJB-Server und ein Container arbeiten zusammen, um die folgenden Dienste bereitzustellen:

Clientanwendungen greifen nicht direkt auf Enterprise-Beans zu. Stattdessen werden Schnittstellen bereitgestellt, die die Methoden der Enterprise-Bean auflisten, die dem Client zur Verfügung stehen. Der Container stellt die Implementierung der Schnittstellen in der Enterprise-Bean zur Verfügung.

Der EJB-Container

Die Arten von Enterprise-Beans

Es gibt drei Arten von Enterprise-Beans: Session-Beans, Entity-Beans und nachrichtengesteuerte Beans. Eine typische EJB-Anwendung besteht aus mehreren Entity-Beans, ergänzt um Session- und nachrichtengesteuerte Beans.

Entity-Beans werden verwendet, um relationale Datenbanktabellen darzustellen und mit diesen zu interagieren. Eine Entity-Bean stellt normalerweise eine Zeile in einer Datenbanktabelle dar, wobei die Spalten der Tabelle den Feldern des Beans entsprechen. Datenpersistenz bezieht sich auf die dauerhafte Speicherung von Daten in einem Datenbank- oder anderen Format. EJB-Container können die Persistenz für jede beliebige Entity-Bean übernehmen (containerverwaltete Persistenz oder CMP). Alternativ kann die Entity-Bean auch ihre eigene Persistenz übernehmen (über JavaBeans realisierte Transaktionspersistenz oder BMP).

Session-Beans werden verwendet, um mit anderen Entity-Beans zu interagieren. Sie stellen normalerweise einen Prozess oder einen Arbeitsablauf für eine Client-Anwendung bereit. Session-Beans können statusunabhängig (keine Daten werden gespeichert) oder statusabhängig (manche Daten werden gespeichert) sein. Normalerweise interagiert ein Anwendungsclient mit Session-Beans, welche wiederum mit den Entity-Beans arbeiten.

Nachrichtengesteuerte Beans stellen einen Übertragungsweg für Anwendungen bereit, die auf Entity-Beans zugreifen wollen. Sie können auf die gleiche Art verwendet werden wie Session-Beans. Der wesentliche Unterschied besteht darin, wie sie aufgerufen werden. Session-Beans (und Entity-Beans) werden synchron aufgerufen, während nachrichtengesteuerte Beans asynchron aufgerufen werden. Ein synchroner Aufruf an eine Session-Bean würde die Session-Bean direkt aufrufen. Ein asynchroner Aufruf an eine nachrichtengesteuerte Bean wäre die Übermittlung einer Nachricht, für die die nachrichtengesteuerte Bean empfangsbereit ist. Java Messaging Service (JMS) ist der grundlegende Übertragungsweg für nachrichtengesteuerte Beans.

Weitere Informationen über Enterprise-Beans finden Sie im Informationszentrum unter EJB-Architektur.

Die Anatomie einer Entity-Bean

Eine Entity-Bean enthält die folgenden Klassen und Schnittstellen:

Lokale und ferne Komponentenschnittstellen

Die lokalen und fernen Komponentenschnittstellen werden von Clientanwendungen verwendet, um auf die Enterprise-Beans zuzugreifen. Diese Schnittstellen führen die verfügbaren Geschäftslogikmethoden in einer Enterprise-Bean auf. Eine Enterprise-Bean kann eine ferne Schnittstelle, eine lokale Schnittstelle oder beides haben.

Die Leistung ist besser, wenn Sie auf eine Enterprise-Bean unter Verwendung der lokalen Schnittstelle und nicht unter Verwendung der fernen Schnittstelle zugreifen. Einige der Gründe für die Leistungsverbesserung sind:

Die lokale Schnittstelle wurde aus Gründen der verbesserten Leistungswerte zur EJB 2.0-Spezifikation hinzugefügt. Es wird empfohlen, Entity-Beans bei der Gestaltung in Sitzungsfassaden einzubinden, damit Clients über Remotezugriff auf die Session-Bean zugreifen, die Session-Bean hingegen lokal auf die Entity-Bean zugreifen kann. Diese Vorgehensweise ermöglicht Remotezugriff für Clients bei gleichzeitig verbessertem Leistungsverhalten.

Lokale und ferne Home-Schnittstellen

Die Home-Schnittstelle einer Entity-Bean wird ebenfalls von Clientanwendungen verwendet, um auf die Enterprise-Bean zuzugreifen. Bei den verfügbaren Methoden handelt es sich jedoch um Lebenszyklusmethoden, unter anderem zur Suche, Erstellung und Entfernung von Entity-Beans innerhalb des EJB-Containers. Home-Schnittstellen können ebenfalls fern oder lokal sein.

Enterprise-Beanklassen

Enterprise-Beanklassen enthalten die Geschäftslogik der Unternehmensanwendung. Methoden in den Schnittstellen stellen die entsprechenden Methoden in den Beanklassen der Clientanwendung zur Verfügung.

Primärschlüsselklassen

Ein Primärschlüssel ist eine eindeutige ID, die einem bestimmten Eintrag in der Datenbank zugeordnet ist. Bei einer Mitarbeiterdatenbank hat beispielsweise jeder Mitarbeiter eine eindeutige Mitarbeiter-ID. Jedes Exemplar eines Primärschlüssels entspricht einer eindeutigen ID und damit einem spezifischen Mitarbeiterdatensatz in der Datenbank.

Die Anatomie einer Unternehmensanwendung

Die J2EE-Spezifikation definiert die Dateien und die Verzeichnisstruktur einer Unternehmensanwendung. Darüber hinaus werden die Dateitypen .war, .ear und .jar spezifiziert, wobei jeder Dateityp einen bestimmten Zweck erfüllt.

Eine EAR-Datei (Enterprise Archive) ist der Pakettyp für eine Unternehmensanwendung. Sie enthält WAR- und JAR-Dateien, sowie einen Anwendungsimplementierungsdeskriptor (application.xml), der Metadaten über die Unternehmensanwendung enthält.

Eine WAR-Datei (Web Archive) enthält Dateien für eine Webanwendung, wie z.B. Abbildungen, HTML-Dateien, Servlets und JSPs. Sie enthält außerdem Metadaten in Form eines Webimplementierungsdeskriptors (web.xml).

JAR-Dateien (Java Archives) enthalten Java-Klassen. In EJB-Anwendungen können JAR-Dateien EJB-Module oder eine EJB-Clientanwendung enthalten.

EJB-Module enthalten die EJB-Beans selbst, sowie weitere Metadaten. Hierzu gehört unter anderem auch einen EJB-Implementierungsdeskriptor (ejb-jar.xml). EJB-Module, die auf dem WebSphere Application Server implementiert werden, können auch Metadaten enthalten, die IBM-spezifische Erweiterungen und Binding-Informationen enthalten. Eine EJB-Clientanwendung enthält die Java-Programme, die für den Zugriff auf eine EJB-Anwendung verwendet werden, sowie einen Clientimplementierungsdeskriptor (application-client.xml).

Workbenchprojekte und Dateitypen für EJB-Entwicklung
Dateityp Bedeutung Anwendungstyp Implementierungsdeskriptor
.ear Unternehmensarchiv Unternehmensanwendung application.xml
.war Webarchive Web web.xml
.jar Java-Archiv EJB
EJB-Client
ejb-jar.xml
application-client.xml

Die Verwendung von UML mit Visual Editor

Visual Editor verwendet Unified Modeling Language (UML), um die Struktur und den Aufbau von Java-Klassen und Schnittstellen, einschließlich EJB-Komponenten, grafisch darzustellen. Sie stellt Mechanismen bereit, über die Beziehungen zwischen Klassen sowie Arbeitsabläufe grafisch dargestellt werden können. Durch Verwendung der UML-Tools innerhalb der Workbench können Sie Java-Klassen und Schnittstellen oder andere EJB-Komponenten grafisch bearbeiten. Sie können die Erstellung einer EJB-Komponente direkt aus einem Klassendiagramm heraus initialisieren. Der zu Grunde liegende Code wird generiert und dann, bearbeitungsbereit, grafisch an das Klassendiagramm übergeben. Änderungen, die an einem UML-Klassendiagramm vorgenommen werden, resultieren in Änderungen an dem zu Grunde liegenden Code. Änderungen am zugrundeliegenden Code werden im Klassendiagramm wiedergegeben.

In der Workbench wird ein UML-Klassendiagramm als Datei mit einer Erweiterung .dnx gespeichert.

UML 2 ist eine Standardspezifikation, die von der Object Management Group (OMG) bereitgestellt wird. Auf der Website der OMG finden Sie außerdem eine Einführung in UML.

Im Informationszentrum finden Sie detaillierte Informationen über die folgenden Themen:

Sie sind nun bereit, um mit Übung 1.2: Den Arbeitsbereich vorbereiten zu beginnen.

Feedback
(C) Copyright IBM Corporation 2000, 2005. Alle Rechte vorbehalten.