Einführung in die Entwicklung von Enterprise JavaBeans
eingereicht von: Arne Vogt
Betreuer: Prof. Dr.-Ing. Uwe Lämmel
Wismar, den 6. März 2002
Einf ührung in die Entwicklung von Enterprise JavaBeans
I. Inhalt
I. INHALT 2
II. ABBILDUNGSVERZEICHNIS 3
III. ABKÜRZUNGSVERZEICHNIS 4
1. EINLEITUNG. 5
2. ÜBERBLICK ÜBER DIE ARCHITEKTUR. 6
2.1 DEFINITION EJB. 6
2.2 EJB OBJEKTE. 6
2.3 EJB INTERFACES KLASSEN 7
2.3.1 Das Remote Interface. 7
2.3.2 Home Interface. 7
2.3.3 Bean- Klasse 7
2.3.4 Primärschlüssel Klasse. 8
2.4 EIGENSCHAFTEN VON ENTITY- BEANS. 8
2.5 EIGENSCHAFTEN VON SESSIO-N BEANS. 8
2.5.1 Stateful Session Bean. 9
2.5.2 Stateless Session- Bean. 9
2.6 PERSISTENZ. 9
2.7 MULTI-TIER ARCHITEKTUR / EJB ARCHITEKTUR. 9
2.8 J2EE - JAVA TO ENTERPRISE EDITION 10
2.8.1 Components - Komponenten. 10
2.8.2 Container 11
2.9 EJB CONTAINER. 11
2. 10 NAMENSDIENST. 12
2.11 SCHRITTE DES DEPLOYMENT- PROZESSES. 12
2.11.1 Festlegen der Deployment- Eigenschaften 12
2.11.2 Erzeugen der EJB Container-Klassen. 12
2.11.3 Laden der EJB- Klassen in den WebLogic Server 13
3. HAUPTTEIL. 14
3.1 REMOTE- INTERFACE. 14
3.2 HOME- INTERFACE 15
3.3 BEA-N KLASSE 15
3.4. PRIMÄRSCHLÜSSEL. 16
3.5 DEPLOYMENT- DISKRIPTOREN UND JAR- DATEIEN 17
4. CLIENT- APPLIKATION. 24
5. ZUSAMMENFASSUNG. 31
6. LITERATURVERZEICHNIS 33
- 2 -
Einführung in die Entwicklung von Enterprise JavaBeans
II. Abbildungsverzeichnis
Abb. 1 : Multi-Tier Architektur ..................................................................................................... 10
Einführung in die Entwicklung von Enterprise JavaBeans
1. Einleitung
Die Softwarefirma SPM, die mir die Absolvierung meines studienbegleitenden Praktikums (praktisches Semester) ermöglichte, beschäftigt sich vorrangig mit der Entwicklung von Enterprise Applikationen, der Implementierung und dem Betrieb hochqualitativer, technologisch führender integrierter Lösungen.
Meine Aufgabe war es einen Client zu entwickeln, der auf Enterprise JavaBeans zugreift. Dieser soll die Daten aus der Datenbank der Dresdner Bank auslesen und in eine Datei schreiben. Der Client kann von verschiedenen Programmen genutzt werden z.B.: von JSP und Servlet, die dann die Daten aus der Datei auslesen und in einem Browser darstellen.
Die Arbeit soll einen Einblick in die Technologien der Enterprise JavaBeans geben. Ich werde eine kleine Einführung in die Entwicklung von Enterprise JavaBean geben, es soll meine ersten Schritte bei der Erlernung aufzeigen.
Zunächst sollen einige Hintergrundkonzepte näher erläutert werden.
Einführung in die Entwicklung von Enterprise JavaBeans
2. Überblick über die Architektur
2.1 Definition EJB
EJB sind visuell nicht fassbare, serverseitige Applikationen (Komponenten), die mit Clients kommunizieren, um ihnen einen Dienst zur Verfügung zu stellen. Sie können aber auch funktional wirken und z.B.: laufend etwas Berechnen ohne dabei mit anderen Komponenten in Interaktion zu treten. [4]
Grundsätzlich versteht man unter EJB die Spezifikation der Enterprise JavaBeans Komponenten Architektur für verteilte Systeme und der Schnittstelle zwischen dem EJB Server und den EJB Komponenten. [4]
Man unterscheidet grob zwischen folgenden Schlüsseleigenschaften der EJB Spezifikation: Sie stellt die reine Programmierung der Geschäftslogik, jedoch nicht der Systemprogrammierung dar. In einer EJB wird die Business-Logik abgebildet, welche ein Begriff für eine serverseitige Komponente ist.
Der Server stellt standardmäßig Systemlevel Services wie Transaktionen, Sicherheit, Threading, Persistenz etc. zur Verfügung und passt die EJB Komponenten diesen Standards mit Hilfe eines Deployment- Werkzeuges vor jeder Verteilung an. Der Server dient ebenfalls als Komponentenmodell für die Entwicklung und Verteilung von Java-Komponenten in einer verteilten Multi-Tier Umgebung. Die einzelnen Komponenten sind zwischen den verschiedenen Applikationsservern und Betriebssystemen voll portable.
Zusätzlich können die EJBs nicht nur mit Java-Clients und Java-Komponenten kommunizieren, sondern auch über DCOM mit Windows-Programmen und über IIOP mit CORBA Servern in Kontakt treten. [5]
Man unterscheidet zwei Arten von Enterprise Beans. Zum einen Session- Beans, die dem Client Methoden zur Berechnung und Datenverarbeitung zur Verfügung stellen, und zum anderen Entity-Beans, die persistente Daten einer Datenbank repräsentieren. [6]
2.2 EJB Objekte
Eine EJB kapselt vorrangig auf Daten operierte, anwendungsspezifische Business-Logik und differenziert dabei zwei Arten von Beans. Die sogenannte „ Session- Bean“ ist ein kurzlebiges, transientes Objekt, wo hingegen das Objekt der „ Entity- Bean“ durch Dauerhaftigkeit und Persistenz geprägt ist. [3]
Einführung in die Entwicklung von Enterprise JavaBeans
2.3 EJB Interfaces & Klassen
Der EJB Container generiert während der Ausführung automatisch ein EJB Home Object und Home Interface und instantiiert gleichzeitig ein EJB Object und Remote Interface für jede Instanz einer EJB. Eine Identifizierung einer einsatzbereiten EJB erfolgt durch das Home Interface, Home Object, Remote Interfaces, EJB Object, Enterprise Bean Class, Deployment Descriptor und dem Primary Key (bei Entity- Beans).
Es müssen zwei Interfaces und eine oder zwei Klassen definiert werden.
2.3.1 Das Remote Interface
Das Remote Interface definiert die Schnittstelle der Business-Logik, die eine EJB implementiert. Es erweitert javax.ejb.EJBObject, das wiederum java.rmi.Remote erweitert. [3] Im Remote- Interface sind nun die Methoden definiert, die die Bean dem Client zur Verfügung stellt. Das Remote- Interface muss immer von EJB- Object abgeleitet werden und alle Methoden müssen die RemoteException werfen. [6]
2.3.2 Home Interface
Es definiert Methoden zur Verwaltung einer EJB, wie z.B.: das Erzeugen, Finden und Entfernen einer EJB. Die generierte Klasse einer EJB, die dieses Interface implementiert wird auch als EJB Home bezeichnet. [3]
Das Home- Interface erweitert javax.ejb.EJBHome, welches wiederum java.rmi.Remote erweitert. Im Home- Interface wird nun die create()- Methode definiert, die dem Client oder auch anderen Beans erlaubt, die Bean zu erzeugen. Die Implementierung kann man in der Position eines Programmierers außer Acht lassen. Es sind auch mehrere create()- Methoden denkbar, die sich aber nur in der Parameterliste unterscheiden dürfen. Als Rückgabewert müssen alle create()- Methoden den Remote- Interface- Typ haben. Außerdem muss von allen Methoden die RemoteException und CreateException geworfen werden. Zu jeder create()-Methode gibt es in der Bean- Klasse eine korrespondierende ejbCreate()- Methode (eine so genannte Callback- Methode), die nach Ausführung von create() aufgerufen wird. [6]
2.3.3 Bean- Klasse
Die Bean- Class stellt die Repräsentation der eigentlichen Implementierung der Geschäftslogik dar, die weder Remote- noch Home- Interface beinhaltet. Sie muss Methoden bieten, deren Signaturen mit den Signaturen des zugehörigen Remote- Interfaces übereinstimmen. [3] Eine Entity- Bean muss javax.ejb.EntityBean implementieren, eine Session- Bean javax.ejb.SeessionBean. Sowohl Entity- Bean als auch Session- Bean erweitern javax.ejb.EnterpriseBean.
Einführung in die Entwicklung von Enterprise JavaBeans
2.3.4 Primärschlüssel Klasse
Primärschlüssel-Klasse ist eine sehr einfache Klasse, die einen Zeiger in die Datenbank zur Verfügung stellt. Nur Entity- Beans haben einen Primärschlüssel. Die einzige Anforderung an diese Klasse ist das Implementieren von java.io.Serializable. [Monson-Haefel00]
2.4 Eigenschaften von Entity- Beans
Es ist im Gegensatz zu Session- Beans auch erlaubt, dass mehrere Clients eine Referenz auf ein und dieselbe Entity- Bean- Instanz haben. Der EJB- Container kümmert sich dabei um die Vermeidung von Konflikten (wenn bspw. ein Client einen Datensatz lesen, und ein anderer einen Datensatz schreiben möchte). [7]
Entity- Beans repräsentieren Daten in einer Datenbank oder einem persistenten Speicher, bzw. aus einer existierenden Anwendung. Hierbei werden die Objekte anhand eines Primärschlüssels eindeutig identifiziert und mit den Daten in der Datenbank synchronisiert, welches durch die transaktionale Zustandsfähigkeit der Entity- Bean ermöglicht wird. Sie ist außerdem sehr widerstandsfähig und überlebt sowohl den Serverprozess, als auch den Absturz eines solchen. [8] Man unterscheidet bei Entity- Beans zwischen container- und bean- managed- persistence. Bei container- managed- persistence baut der Container die Verbindung zur Datenbank auf und ab, übernimmt sämtliche Datenbankzugriffe und kümmert sich um die Abgleichung der Membervariablen mit den Feldern des Datensatzes. Der Vorteil hierbei ist, dass der Programmierer der Bean keinerlei Kenntnisse in Datenbankprogrammierung haben muss und die Entwicklungszeit daher auch geringer ist.
Bei bean- managed- persistence hingegen ist der Programmierer für alle diese Aufgaben verantwortlich. [7]
2.5 Eigenschaften von Session- Beans
Die hauptsächlichen Funktionsbereiche der Business-Logik orientierten Session Beans liegen in der Berechnung und Datenverarbeitung und, aufgrund der Client Applikationserweiterung, in der Verwaltung von Prozessen oder Aufgaben. Sie können Referenzen anderer Beans haben und so auch Koordinationsaufgaben zwischen verschiedenen Beans übernehmen.
Im Gegensatz zur Entity- Bean, ist die Session- Bean ein transientes (übergangs) Objekt, das nur von einem Client verwendet wird und nur durch seine Erzeugung entsteht und bis zum expliziten Löschen durch ihn auch wieder entfernt werden kann. Die Session- Bean überlebt einen Absturz bzw. Neustart des Servers/Containers üblicherweise nicht. Allerdings kann sie eine laufende Transaktion zurücksetzen und über das Starten und Beenden einer solchen informiert werden (sog. Synchronisation). Sie nimmt aber nicht am 2-Phasen Protokoll teil und verfügt auch nicht über einen für den Client sichtbaren Schlüssel zur eindeutigen Identifizierung. Das 2- Phasen Protokoll ist ein Mechanismus, der es ermöglicht, dass Transaktionen über verschiedene Server und Datenbank hinweg verwaltet werden.
Arbeit zitieren:
Arne Vogt, 2002, Einführung in die Entwicklung von Enterprise JavaBeans (EJB), München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Arne Vogt hat den Text Einführung in die Entwicklung von Enterprise JavaBeans (EJB) veröffentlicht
Arne Vogt hat einen neuen Text hochgeladen
0 Kommentare