Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design...

42
Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich Ausblick Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch September 2001

Transcript of Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design...

Page 1: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 2: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 3: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 4: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 5: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 6: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 7: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 8: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 9: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 10: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 11: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 12: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 13: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 14: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 15: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 16: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 17: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 18: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 19: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 20: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 21: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 22: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 23: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 24: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 25: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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>

Page 26: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 27: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 28: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 29: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 30: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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()

Page 31: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 32: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 33: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 34: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 35: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 36: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 37: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 38: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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()

Page 39: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 40: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 41: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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

Page 42: Stephan Bury Pascal Busch Bita Gerami Michael Kropiwoda Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten am Beispiel Einsatzbereich.

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