Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami
Michael Kropiwoda Oliver Losch
September 2001
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Gliederung
1. Einleitung
1.1 Definition
1.2 Einordnung
1.2.1 Client/Server-Architektur
1.2.2 Middleware
2. EJB-Design
2.1 Aufbau
2.2 Anwendungsarchitekturen
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Gliederung
3. Komponenten
3.1 Server
3.2 Container
3.3 Beans
3.3.1 Session Beans
3.3.2 Entity Beans
3.4 Deployment Descriptor
3.5 JNDI
3.6 Client
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Gliederung
4. Interaktion der Komponenten im Beispiel
5. Einsatzbereich
5.1 Anwendungsgebiete
5.2 Vergleich mit alternativen Ansätzen
5.3 Vor- und Nachteile
6. Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Definition EJB Einordnung• Client/Server-Architektur• Middleware
Enterprise für unternehmenskritische Anwen-dungen entwickelt
Java objekt-orientierte Programmier-sprache
Beans wiederverwendbare Komponenten
EJB Architektur für komponentenorien-tierte, verteilte Anwendungen
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Definition EJB Einordnung• Client/Server-Architektur• Middleware
„EJB ist eine Architektur für
verteilte, transaktionsorientierte
Geschäftsanwendungen“
Enterprise JavaBeans sind
keine JavaBeans
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Definition EJB Einordnung• Client/Server-Architektur• Middleware
Datenhaltung
2-tier Modell
3/n-tier ModellApplikationserver entkoppelt Datenhaltung und Endanwendung
Businesslogik fest in Anwendung integriert
Applikation ist direkt mit Datenhaltung verbundenBusinesslogik ist fest in Anwendung integriert
Business-LogikAnwendung
Business-Logik
Applikation-Server
Präsentation Datenhaltung
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Definition EJB Einordnung• Client/Server-Architektur• Middleware
DBEJB-ServerClientClient
EJB-Server
andere Appl.
DB
DB
DB
ClientClient
ClientClient
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Definition EJB Einordnung• Client/Server-Architektur• Middleware
Physikalisches Netzwerk
Anwendungs-interaktion
Objekt-interaktion
TransportorientierteSchichten
TransportorientierteSchichten
MIDDLEWAREz.B. Java RMI, CORBA, COM+
CLIENT
MIDDLEWAREz.B. EJB‘s,
CORBA Components
SERVER
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Aufbau Anwendungs-architekturen
DB
CLIENT
EJB Server
CONTAINER
DD
Session BeanHome Interface &Home Object
Remote Interface &Remote Object
Naming Interface
Entity Bean
JDBC
DB
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Aufbau Anwendungs-architekturen
Server-SidePresentation
Server-SideBusiness-Logic
Client-SidePresentation
EJB-Container
Web-Server
Browser
Desktop
EnterpriseIS
EJB
EJB
EJB
Other devices
JSP
JavaServlet
J2EEPlatform
J2EEPlatform
J2EEPlatform
JavaApplikation
Pure HTML
JavaApplet
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
EJB - Server
EJB –Container
Kommunikationmit Client
Kommunikationmit Client
JNDIJNDI
Kommunikationmit OS
Kommunikationmit OS
EJB –Container
Server stellt Basisdienste (z.B. Laufzeitumgebung, Netzwerkprotokoll) für Container bereit
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Server Container Beans
Definiert durch EJB – Spezifikation
Nicht spezifiziert
• Serverhersteller gehen zum J2EE-konformen Server über
• Schnittstelle zwischen Server und Container nicht spezifiziert
• Server und Container meist vom selben Hersteller
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Container
• stellt Laufzeitumgebung für EB`s dar
• macht eine EB über JNDI zugänglich
• ist Vermittler zwischen Client und EB (Client greift nie direkt auf EB zu)
• stellt Standardschnittstellen zur Verfügung (Home- u. Remote-Object)
Stellt EB`s Java - API`s zur Verfügung
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Container-Dienste
Lifecycle-Management (Erzeugung, Initialisie- rung und Löschen von EB)
Load-balancing (Swapping von Session Beans)
Persistenz-Management (für Entity Beans)
Transaktions-Management (Gewährleistung des erforderlichen Kontextes für Methoden)
Generierung von Stubs und Skeletons für RMI
Sicherheits-Management
Poolmanagement für Beans
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
jar - FileDeployment
Container
Bean Lifecycle-management
Load - Balancing
Persi
sten
z-
man
agem
ent
Gen
erierun
g
der B
ean-
Klas
sen
Pool-m
anagementSic
herhei
ts-
man
agem
ent
Tran
saktion
sm
anag
emen
t
Containerservices
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Beans (EB)
Server-seitige Komponenten
implementieren die Anwendungslogik
werden in einem Container deployed, der ihnen zur Laufzeit eine Umgebung zur Verfügung stellt, in der sie existieren können
greifen auf die vom Container zur Verfügung ge- stellten Dienste zurück
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
XMLXML Deployment
Descriptor
Bean-Klasseimport java.rmi.RemoteExeption;
import javax.ejb.*;
public class XYBean implements EntityBean {
…}
Remote-Interface Home-Interface
Primarykey-Klasse
Bestandteile
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Session Beans
implementieren die Anwendungslogik
stehen einem Client exklusiv zur Verfügung
nicht persistent
Transaktionsmanagement bean-managed transactions container-managed transactions
stateless statefull
Session Beans
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Lebenszyklus – stateless Session Beans
nicht existent
pooled ready
ejbRemove()ejbCreate()
<method>(…)
Client
Container
System Exception
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Lebenszyklus – statefull Session Beans
ready
ready in TA
nicht existent
passiviert
<method>(…)
<method>(…)
BEGIN COMMIT od. ROLLBACK
ejbPassivate()ejbCreate()
ejbRemove()
ejbActivate()
Löschen nach Timeout
System Exception
Client
Container
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Entity Beans
repräsentieren Daten
zentrale Ressource, die von mehreren Clients zeitgleich in Anspruch genommen werden kann
persistent bean-managed persistence container-managed persistence
mittels Primärschlüssel eindeutig identifizierbar
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Lebenszyklus – Entity Beans
nicht existent pooled
ready sync ready async
ready updateClient
Container
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Datei (XML-Format)
teilt dem Container mit, wie die EB zur Laufzeit zu behandeln ist
enthält deskriptive Informationen über
die Struktur und Abhängigkeiten einer EB
das Verhalten der EB zur Laufzeit
die Kombinationsmöglichkeiten mit anderen EBs einer jar-Datei zu komplexen Bausteinen
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
<ejb-jar> <enterprise-beans> <session>
<!-- Name der Bean im JNDI --><ejb-name>Kurs</ejb-name>
<!-- Klasse des HomeInterfaces --><home>KursHome</home>
<!-- Klasse des RemoteInterfaces --><remote>Kurs</remote>
<!-- Klasse der EnterpriseBean --><ejb-class>KursBean</ejb-class>
<!-- Sessiontyp: Stateless --><session-type>Stateless</session-type>
<!-- Transaktionstyp: Containermanaged --><transaction-type>Container</transaction-type>
</session> </enterprise-beans> <assembly-descriptor>
<!-- mit dem assembly-descriptor kann man z.B. Rollen verteilen --> </assembly-descriptor> </ejb-jar>
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Container-Tools
PrimaryKey-Klasse
Bean-Klasse
Deployment-Descriptor
Remote-Interface Home-Interface
Home-Interface Remote-Interface
XML-Dokument
Remote-ObjektHome-Objekt
Klasse
Interface
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
JNDI API• Applikation Programming Interface• Wichtigstes Element: Context interface• Lookup(Name) liefert Objekt dieses Namens
Naming Manager • Funktionalität wird vor dem Entwickler verborgen
JNDI SPI• Service Provider Interface• ermöglicht Nutzung unterschiedlicher Middleware
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
ApplicationApplication
JNDI APIJNDI API
Naming ManagerNaming Manager
JNDI SPIJNDI SPI
CORBACORBA . . .RMIRMI JNDI -Implementierungsmöglichkeiten
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Client
findet Beans durch JNDI
kommuniziert mit Enterprise Beans über Interfaces Home und Remote
muss nicht in Java geschrieben und kompiliert sein
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Server JNDIContainer DeploymentDescriptor
ClientBeans• Session Beans• Entity Beans
Client
Home ObjectHome Object
Remote ObjectRemote Object
JNDIJNDI
AnwendungAnwendung
lookup(EJB-Name)
Client Stub Remote
Client Stub Home
EJBHome
alle Methodender EJB
create(),find(),remove()
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Beispiel für das Zusammenspiel der Komponenten
Client...verbindet sich mit Server...erstellt Objekt...ruft Funktion auf...zerstört Objekt
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Übersicht ServerKomponenten Übersicht Code
DB
DB
CLIENTCLIENT
EJB Server
CONTAINER
DD
Session BeanSession BeanHome Interface &Home Object
Home Interface &Home Object
Remote Interface &EJB Object
Remote Interface &EJB Object
Naming InterfaceNaming Interface
Entity Bean
JDBC
ClientKomponente Übersicht Code
Ablauf
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Bean KursBean
eigentliche Bean
implementiert Home Interface KursHome
implementiert Remote Interface Kurs
bei JNDI bekannt als Kurs
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
public interface KursHome extends EJBHome {
. . .
// Methode zum Erzeugen eines Kurses
Kurs create() throws CreateException, RemoteException;
. . .
}
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
Home Interface KursHome
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
// erbt von EJBObject
public interface Kurs extends EJBObject {
// Deklaration der Methoden
public String getName() throws RemoteException;
}
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
Remote Interface Kurs
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
public class KursBean implements SessionBean {
. . .
// Implementieren aller SessionBeanInterface Methoden
public void ejbActivate() {...}
public void ejbPassivate() {...}
public void ejbRemove() {...}
public void ejbCreate() throws CreateException {...}
. . .
// Methode die vom Client aufgerufen wird
public String getName() {
return "WWI00B";
}
}
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
EB KursBean
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
public class Client {
. . .
// Verbinden mit JNDI
Context ctx = getInitialContext();
// Bean im JNDI suchen
Object home = ctx.lookup("Kurs");
. . .
// Verbindung zum HomeInterface herstellen
KursHome home = (KursHome) narrow(home, KursHome.class);
. . .
// ein neues Objekt erstellen
Kurs einKurs = (Kurs) narrow(home.create(), Kurs.class);
// Methode von Kurs aufrufen
String message = einKurs.getName();
// Objekt entfernen
einKurs.remove();
. . .
}
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Übersicht ServerKomponenten Übersicht Code
ClientKomponente Übersicht Code
Ablauf
Client lookup(Kurs) Server
Container
KursBean
Home Stub
Home Stub
RI getName()
Remote Stub
Remote Stub
JNDI
HomeObject
RemoteObject
HI create()
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Anwendungs-gebiete
Vergleich mit alternativen Ansätzen• CORBA
Vor- undNachteile
Enterprise JavaBeans unterstützen Wiederverwendbarkeit Modularität Thin Clients (Last-)Verteilung Transaktionsmanagment
daher Einsatzbereiche insbesondere: als Middleware zur Anbindung von Internet-Anwendungen an bestehende Systeme für Intra- und Internetanwendungen
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Anwendungs-gebiete
Vergleich mit alternativen Ansätzen• CORBA
Vor- undNachteile
EJB CORBA
Sprachunter-stützung
Java bzw.
via CORBA
sprachunabhängig
Plattform-unterstützung
alle Plattformen
mit Java-VM
plattformunabhängig
Kommunikation synchron synchron
Sicherheit Java-Sicherheitsmodell sehr umfangreich
Eignung für komplexe Systeme
uneingeschränkt uneingeschränkt
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Fazit
Welchen Nutzen bietet der Einsatz von EJB?
Unternehmen
Stabilität
Verknüpfung inhomogener Systeme (Plattformunabhängigkeit)
kostengünstigere Applikationen
Lastverteilung, Pooling (Performanz)
Entwickler
Verkürzung von Entwicklungszeiten
einfachere Programmierung
Anwender (Client-Entwickler)
Transparenz
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenam Beispiel
Einsatzbereich
Ausblick
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch
Einleitung
EJB-Design
Komponenten
Zusammenspielder Komponentenim Beispiel
Einsatzbereich
Ausblick
Literaturverzeichnis
C. Crenshaw, The Developer`s Guide to Understanding EJB Applications, 2000, New Jersey
S. Denniger/I. Peters, Enterprise JavaBeans, 2000, München
A. Thomas, Enterprise JavaBeans Technology, 1998, Boston
V. Matena/M. Hapner, Enterprise JavaBeans Specifi- cation, 1999, Palo Alto
Top Related