Lade Inhalt...

Message-Driven Beans - Ein Einblick in Theorie und Praxis

Seminararbeit 2011 21 Seiten

Informatik - Internet, neue Technologien

Leseprobe

Inhaltsverzeichnis

Abkürzungsverzeichnis

Abbildungsverzeichnis

Listingverzeichnis

1. Einleitung
1.1 Thema
1.2 Zielsetzung
1.3 Aufbau
1.4 Anmerkung

2. Grundlagen
2.1 JavaEE Application Server
2.2 EJB
2.3 Message-Driven Bean

3. Message-Driven Beans
3.1 Einführung
3.2 Java-Message Service
3.2.1 Punkt-zu-Punkt-Modell
3.2.2 Publish-Subscribe-Modell
3.3 Bestandteile einer Message-Driven Bean
3.3.1 Aufbau
3.3.2 Annotationen
3.3.3 Lebenszyklus
3.4 Anwendungsgebiete

4. Implementierung des Java-Message Services
4.1 GlassFish
4.2 JBoss

5. Schlussbetrachtung

Anhang

Literaturverzeichnis

Internetverzeichnis

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

Abbildungsverzeichnis

Abbildung 1: Point-To-Point-Kommunikationsmodell

Abbildung 2: Publish-Subscribe-Kommunikationsmodell

Listingverzeichnis iv

Listingverzeichnis

Listing 1: Einfacher JMS-Sender

Listing 2: Einfacher JMS-Empfänger

Listing 3: Implementierung einer Message-Driven Bean

Listing 4: Beispieleintrag Destination

1. Einleitung

1.1 Thema

Die vorliegende Seminararbeit befasst sich mit dem Thema „Message-Driven Beans - ein Einblick in Theorie und Praxis“, welche im Rahmen des Wahlmoduls Webanwendungsentwicklung im Wintersemester 2010/11 an der Hochschule für Ökonomie und Management durchgeführt wird.

Dabei wird das Thema im Umfeld des aktuellen Enterprise Java Beans (EJB) 3.x Standards abgehandelt. Die älteren Versionen von EJB werden nicht berücksichtigt.

1.2 Zielsetzung

Ziel dieser Arbeit ist es, das Thema Message-Driven Beans (MDBs) ganzheitlich zu erläutern. Dabei wird darauf eingegangen, was MDBs sind, wie sie implementiert werden und welche Anwendungsgebiete für die MDBs existieren. Am Ende dieser Arbeit ist der Leser in der Lage, den Begriff Message-Driven Bean im EJB-Umfeld einzusortieren, eine Message-Driven Bean eigenständig zu programmieren und abzuwägen, ob eine MDB für ein Anwendungsgebiet sinnvoll ist.

1.3 Aufbau

Das zweite Kapitel erläutert die Grundlagen, um den Begriff Message-Driven Bean im richtigen Kontext einsortieren zu können. Es erklärt, was ein Application Server in der Java Enterprise Edition Welt ist, wofür Enterprise JavaBeans da sind und was der Begriff Message-Driven Bean bedeutet.

Das dritte Kapitel beschäftigt sich tiefer mit Message-Driven Beans. Zu Anfang werden Grundlagen für nachrichtenbasierte Systeme geschaffen und die Begrifflichkeiten in dem Umfeld erläutert und festgelegt. Es wird der zu Grunde liegende Java-Message Service erläutert und die grundsätzlich zwei verschiedenen Implementierungen einer Message-Driven Bean erklärt. Dieses Kapitel zeigt außerdem konkret, wie eine Message-Driven Bean programmiert wird und erhält deshalb Listings, die die Implementierung zeigen. Zusätzlich wird in diesem Kapitel auf mögliche Anwendungsgebiete von Message-Driven Beans eingegangen.

Das vierte Kapitel geht auf die Implementierungen des JMS auf den zwei Application-Sever JBoss und GlassFish ein. Dabei wird untersucht, wie und inwieweit die Application-Server den Standard implementiert haben und wo die Unterschiede liegen.

Im fünften und somit letzten Kapitel wird das Thema Message-Driven Beans in Form einer Schlussbetrachtung zusammengefasst.

1.4 Anmerkung

Programmbeispiele werden in Form von Listings in der Schriftart Courier New dargestellt. Um dem Leser die Beispiele im Zusammenhang erklären zu können, werden die Beispiele in den Text integriert und nicht als Anhang beigefügt. Ausschnitte von Quellcode innerhalb des Textes werden ebenfalls in Courier New dargestellt.

In seltenen Fällen werden Begriffe kursiv dargestellt, um sie besonders hervorzuheben.

Des Weiteren werden Begrifflichkeiten aus dem IT-Bereich, wenn es möglich ist, in der deutschen Sprache wiedergegeben. Begriffe, für die es keine adäquate Übersetzung gibt, wie z.B. „Session-Bean“, werden als englische Begriffe verwendet und in die deutsche Sprache mit ihrer Grammatik integriert.

2. Grundlagen

2.1 JavaEE Application Server

EJBs sind Bestandteil eines Java Enterprise Edition (JavaEE oder JEE früher J2EE) Application Servers. JavaEE besteht im Gegensatz zur Java Standard Edition (JavaSE) nicht aus einem einzelnen Programmpaket, sondern umfasst eine Fülle von Spezifikationen und Schnittstellen, um auf dessen Basis aus modularen Komponenten verteilte, mehrschichtige Anwendungen entwickeln zu können. Die JavaEE liegt in der aktuellen Version 6 vor, die am 10.12.2009 veröffentlicht wurde. Diese Arbeit setzt die Version 5 oder höher voraus, da diese für die Enterprise Java Beans 3.0 notwendig ist.

Der Application Server stellt zur Ausführung einer EJB-Komponente einen sogenannten EJB-Container zur Verfügung. Sie implementieren die für die Ausführung von EJB-Komponenten benötigten Funktionalitäten, die in der Enterprise JavaBeans Spezifikation definiert sind1.

Dieser Container kümmert sich nicht nur um die Garbage Collection und Portierbarkeit, sondern stellt z.B. sicher, dass Komponenten nur so aufgerufen werden, wie es die Berechtigungen der Aufrufer erlauben. Zusätzlich sorgt er dafür dafür, dass jede Komponenteninstanz nur von einem Thread gleichzeitig durchlaufen wird und trotzdem viele Clients gleichzeitig von einem Server bedient werden können2.

2.2 EJB

Am 02.05.2006 wurde die neuste Version des Standards Enterprise JavaBeans 3.0 veröffentlicht. Diese Version stellt eine erhebliche Vereinfachung für die Entwicklung von Systemen nach dem Client-Server Muster dar. Dabei soll die Fachlichkeit im Vordergrund stehen und technische Aspekte bei der Softwareentwicklung in den Hintergrund treten3.

Einfach ausgedrückt dienen EJBs allein dazu, verteilte Client-Server-Systeme auf Basis von Java zu implementieren. Von einem „verteilten System“ wird dann gesprochen, wenn sich die Gesamtheit einer Applikation auf verschiedene, gleichzeitig aktive, interagierende Programme verteilt. Client-Server-Systeme stellen ein Modell zur Umsetzung von „verteilten System“ dar. Der Server stellt seine Dienste bereit, der Client nutzt diese Dienste.4.

Es wird zwischen den Komponenten SessionBeans, Entities und Message- Driven Beans unterschieden. SessionBeans unterteilen sich in Stateful und Stateless SessionBeans. Stateless SessionBeans stellen Dienstfunktionen zur Verfügung, für welche die Komponente keine Informationen über den Zustand des Aufrufers kennen muss. Dadurch lassen sich solche Komponenten vom Server auch sehr ressourcenschonend verwalten. Im Gegensatz dazu sind die Stateful SessionBeans in der Lage, sich client-spezifische Statusinformationen zu merken. Dadurch kann sich ein Interaktionsvorgang über mehrere Methodenaufrufe erstrecken, ohne dass die SessionBean die Daten der vorherigen Methodenaufrufe verliert. Entities Komponenten bilden die Geschäftsobjekte, auf denen die Anwendung operiert. Sie sind persistent und besitzen ein eindeutiges Identifikationsmerkmal, über das erkennbar ist, welchen Datensatz einer zugrunde liegenden Datenbank sie gerade repräsentieren5.

2.3 Message-Driven Bean

SessionBeans stellen synchrone Methodenaufrufe nach dem Konzept der Remote-Method-Invocation (RMI) dar. Message-Driven Beans ermöglichen die Integration von asynchroner nachrichten basierter Kommunikation innerhalb der EJB-Welt auf Basis des Remote Message Services (RMS)6.

3. Message-Driven Beans

3.1 Einführung

Nicht alle Aufgaben einer komplexen Anwendung müssen sofort abgearbeitet werden. Oft genügt es, der Anwendung einen Befehl in Form einer Nachricht zukommen zu lassen, auf die zu einem gegebenen Zeitpunkt reagiert wird7.

Große Serversysteme arbeiteten nachrichtenbasiert, lange bevor komponentenbasierte Systeme, wie sie die JEE unterstützt, Mode wurden. Solche Systeme werden auch als nachrichtenbasierte Middleware (MOM) bezeichnet. Hierbei einigen sich Sender und Empfänger auf ein einheitliches Nachrichtenformat, „kennen“ sich jedoch nicht näher. Der Aufruf findet asynchron statt. Aus diesem Grund sind Änderungen bzw. Erweiterungen an der Methodensignatur serverseitig möglich, ohne dass der Client davon betroffen ist, solange das Nachrichtenformat nicht davon betroffen ist. Es ist sogar möglich, dass beide Seiten in unterschiedlichen Programmiersprachen erstellt worden sind oder auf verschiedenen Hardware-Architekturen laufen8.

3.2 Java-Message Service

Innerhalb der JEE wi]rd auf nachrichten basierte Systeme nach den Regeln und über die Schnittstellen der Java Message Service (JMS) zugegriffen.

„Die Begriffe Client und Server, wie sie üblich genutzt werden, existieren in der nachrichtenbasierten Welt nicht. Hier wird von Nachrichten-Erzeugern (Sendern) und Nachrichten-Verbrauchern (Empfängern) gesprochen. Der Begriff Server bleibt der Infrastruktur vorbehalten, die für die Entgegennahme, Verteilung und Zustellung der Nachrichten zuständig ist und in Form eines JMS- Providers Teil eines jeden JEE-konformen Application-Servers ist“9.

Dieser Server hat die Aufgabe, die Nachrichten vom Erzeuger entgegenzunehmen und dem bzw. den Verbraucher(n) zuverlässig zuzustellen.

[...]


1 Vgl. Ihns/Heldt/Wirdemann/Zuzmann, (2004), S. 51

2 Vgl. Eberling/Lessner (2007), S.13

3 Vgl. Eberling/Lessner (2007), S.1

4 Vgl. Schill/Springer (2007), S.14

5 Vgl. Eberling/Lessner (2007), S.14

6 Vgl. Eberling/Lessner (2007), S.155f

7 Vgl. Rozanski (2007), S. 149

8 Vgl. Eberling/Lessner (2007), S.155

9 Eberling/Lessner (2007), S.156

Details

Seiten
21
Jahr
2011
ISBN (eBook)
9783656121121
Dateigröße
447 KB
Sprache
Deutsch
Katalognummer
v188353
Institution / Hochschule
FOM Essen, Hochschule für Oekonomie & Management gemeinnützige GmbH, Hochschulleitung Essen früher Fachhochschule
Note
1,7
Schlagworte
message-driven beans einblick theorie praxis

Autor

Zurück

Titel: Message-Driven Beans - Ein Einblick in Theorie und Praxis