116
Enterprise JavaBeans™ 2.0 Vortrag im Seminar Komponentenbasierte Softwareentwicklung Von Hauke Traulsen und Sebastian Lempert

Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

  • Upload
    others

  • View
    69

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Enterprise JavaBeans™ 2.0

Vortrag im SeminarKomponentenbasierte Softwareentwicklung

Von Hauke Traulsen und Sebastian Lempert

Page 2: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])2 von 116

Überblick

n Unternehmensanwendungenn Motivationn Anforderungen

n Allgemeinesn J2EE

n Einführungn Bestandteilen Architekturn Rollen

EinführungJ2EEEJBEJB 2.0Literatur

Page 3: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])3 von 116

Überblick

n EJBn Motivationn Einführungn Spezifikationn Rollenn Containern Beantypenn Bestandteile einer Bean

EinführungJ2EEEJBEJB 2.0Literatur

Page 4: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])4 von 116

Überblick

n EJB 2.0n JMSn MDBn Local Interfacesn CMP/CMRn EJB QLn Home Methods

EinführungJ2EEEJBEJB 2.0Literatur

Page 5: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])5 von 116

Enterprise Motivation (1)

n Verteilte transaktionsorientierte Anwendungen für Unternehmen

n serverseitigen Geschwindigkeitn Sicherheitn Zuverlässigkeit

EinführungJ2EEEJBEJB 2.0Literatur

Page 6: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])6 von 116

Enterprise Motivation (2)

n Schnelllebigkeit

n Bedarf in Design und Aufbaun Schnellern Weniger Geldn Weniger Ressourcenverbrauch

EinführungJ2EEEJBEJB 2.0Literatur

Page 7: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])7 von 116

Multi-tier Architektur (1)

Beispiel: 3-tier-Architektur

Präsentation(first tier)

Geschäftslogik(middle tier)

Daten(third tier)

GUI Server Datenbank

EinführungJ2EEEJBEJB 2.0Literatur

Page 8: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])8 von 116

Multi-tier Architektur (2)

EinführungJ2EEEJBEJB 2.0Literatur

Page 9: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])9 von 116

J2EE – Einführung (1)

Java 2 Enterprise Edition

n Reduktion der Kostenn Beschleunigung von Design und Entwicklungn Komponentenbasierter Ansatz

n Designn Entwicklungn Zusammenbaun Einsatz

EinführungJ2EEEJBEJB 2.0Literatur

Page 10: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])10 von 116

J2EE – Einführung (2)

n Verteiltes Multitier- Anwendungsmodell

n Wiederverwendbarkeit von Komponenten

n Entscheidungsfreiheit bei Wahl der Hersteller verschiedener Komponenten

EinführungJ2EEEJBEJB 2.0Literatur

Page 11: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])11 von 116

J2EE - Bestandteile (1)

EJB

JSPJDBC

JMS

JAXP JTA

?

Mail+JAF

Connector

JAAS

JNDI

EinführungJ2EEEJBEJB 2.0Literatur

Page 12: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])12 von 116

J2EE – Bestandteile (2)

Enterprise JavaBeans (EJB)Implementierung der Geschäftslogik

Java Server Pages (JSP)Verbindung von Web und Geschäftslogik

EinführungJ2EEEJBEJB 2.0Literatur

Page 13: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])13 von 116

J2EE – Bestandteile (3)

Java Database Connectivity (JDBC)Zugriff auf Datenbank aus EJB oder JSP heraus

Java Message Service (JMS)asynchrone Interprozess-Kommunikation

EinführungJ2EEEJBEJB 2.0Literatur

Page 14: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])14 von 116

J2EE – Bestandteile (4)

Java Naming And Directory Interface (JNDI)Lookup und Assoziation von Objekten durch deren Attribute

Java Transaction API (JTA)Transaktionsmanagement (RBs,Commits)

EinführungJ2EEEJBEJB 2.0Literatur

Page 15: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])15 von 116

J2EE – Bestandteile (5)

Java Mail und Java Activation Framework (JAF)E-Mails versendenJava Mail benutzt JAF (Datenzugriff)

Java API for XML Processing (JAXP)XML Verarbeitung

EinführungJ2EEEJBEJB 2.0Literatur

Page 16: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])16 von 116

J2EE – Bestandteile (6)

J2EE Connector ArchitectureRessourcenzugriff aus J2EE heraus aufandere Informationssysteme (EIS-Tier)

Java Authentication and Authorization Service (JAAS)Überprüfung von Aufrufsberechtigungen eines Nutzers oder einer Nutzergruppe

EinführungJ2EEEJBEJB 2.0Literatur

Page 17: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])17 von 116

J2EE - Architektur

J2EE-Architektur

ApplicationClient Container

ApplicationClient

J2SE

JMS

JAA

SJA

XPJD

BC

Web Container

JSP Servlet

J2SE

ApplicationClient Container

J2SE

Applet

JMS

JAA

SJTA

JAXP

Connector

JavaM

ailJA

F

EJB Container

J2SE

JMS

JAA

SJTA

JAXP

Connector

JavaM

ailJA

F

EJB

HTTPSSL

HTTPSSL

DatabaseDie einzelnen Bestandteile der J2EE ergänzen sich und ermöglichen eine umfassende Unterstützung von Geschäftsprozessen. Ein Applikations-Server implementiert die standardisierten Schnittstellen als Ablaufumgebung für Java Anwendungen

JDB

C

JDB

CEinführungJ2EEEJBEJB 2.0Literatur

Page 18: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])18 von 116

J2EE – Rollen (1)

n Module

n Teilung des Entwicklungsprozesses

n Teilung des Einsatzprozesses

EinführungJ2EEEJBEJB 2.0Literatur

Page 19: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])19 von 116

J2EE – Rollen (2)

J2EE Product Providern Hersteller von OS, DBS, App.-/Web-Servern Implementieren J2EE-SpezifikationnàJ2EE – Server

J2EE Tool Providern Tools für Entwicklung, Zusammenbau und Einsatz

EinführungJ2EEEJBEJB 2.0Literatur

Page 20: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])20 von 116

J2EE – Rollen (3)

Application Component ProviderAnbieter von Enterprise Beans, Web Komponenten, Clients, etc

Application AssemblerKomponenten werden zusammengeführt(EJB-JARs, WARs à EAR)

EinführungJ2EEEJBEJB 2.0Literatur

Page 21: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])21 von 116

J2EE – Rollen (4)

Application DeployerEinbau der J2EE Anwendung, Administration, Kontrolle der Laufzeitumgebung

EinführungJ2EEEJBEJB 2.0Literatur

Page 22: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])22 von 116

J2EE – Spezifikation

n J2EESpezifikation1.3 vom 27.07.2001

n J2EE SDK ReferenzimplementierungSDK 1.3.1 vom 31.01.2002inklusive Dokumentation 25 MB

EinführungJ2EEEJBEJB 2.0Literatur

Page 23: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])23 von 116

EJB - Motivation

Vereinfachte Entwicklung kommerzieller AnwendungenEntwickler von kommerziellen Anwendungen sollen sich auf die Implementierung der Geschäftslogik, d. h. das Codieren von Geschäftsregeln, -logik und -wissen, konzentrieren können.

EinführungJ2EEEJBEJB 2.0Literatur

Page 24: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])24 von 116

EJB - Die EJB Spezifikation (1)

... ist eineStandardisierte API für die Entwicklung komponentenbasierter Software

... istein Bestandteil der J2EE-Spezifikation

... wird entwickelt vonvielen Leuten, vielen Firmen (Borland, Fujitsu, IBM, Oracle, Sun, Sybase etc.) und dem Java Community Process

EinführungJ2EEEJBEJB 2.0Literatur

Page 25: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])25 von 116

EJB - Die EJB Spezifikation (2)

Überblick über die Versionen

§ Version 1.0, 21.03.1998, 181 Seiten§ Version 1.1, 17.12.1999, 314 Seiten§ Version 2.0, 22.08.2001, 572 Seiten§ Version 2.1, 17.06.2002, 636 Seiten (Public Draft)

EinführungJ2EEEJBEJB 2.0Literatur

Page 26: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])26 von 116

EJB – Einführung (1)

Was sind EJB?

„The Enterprise JavaBeans architecture is a component architecture for the development and deployment of component-based distributed business applications. Applications written using the Enterprise JavaBeans architecture are scalable, transactional, and multi-user secure. These applications may be written once, and then deployed on any server platform that supports theEnterprise JavaBeans specification.“

Quelle: Sun microsystems(EJB Specification 2.0 vom 22.08.2001)

EinführungJ2EEEJBEJB 2.0Literatur

Page 27: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])27 von 116

EJB – Einführung (2)

Was sind EJB?

„Enterprise JavaBeans (EJB) components execute in a managed environment that supports transactions. Enterprise beans typically contain the business logic for a J2EE application.“

Quelle: Sun microsystems(J2EE Specification 1.3 vom 27.07.2001)

EinführungJ2EEEJBEJB 2.0Literatur

Page 28: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])28 von 116

EJB – Einführung (3)

n KomponentenmodellServerseitige Komponentenarchitektur für die J2EE-Plattform

n Verteilte AnwendungenEin Client nutzt Funktionalität eines Servers über Fernaufrufe (RPC / ROI), hier Java RMI

n Write once, run anywhere (WORA)Ein EJB läuft in jedem Server, der sich an die Spezifikation hält.

EinführungJ2EEEJBEJB 2.0Literatur

Page 29: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])29 von 116

EJB – Einführung (4)

Transaktionen und EJB

§ EJB laufen in einem Container, welcher laut J2EE Transaktionen unterstützen muss

§ Protokoll: Two-Phase-Commit (2PC) basierend auf dem OMG Transaction Service (OTS)

§ implementiert im Java Transaction Service (JTA)§ Unterstützung für mehrere Transaktionsmanager

(transactional resource manager)§ dadurch Überführung von Datenbanktransaktionen auf

Objekte

EinführungJ2EEEJBEJB 2.0Literatur

Page 30: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])30 von 116

EJB Architektur (1)

... besteht aus

§ einem EJB-Server§ EJB-Containern, die auf diesem Server laufen§ sog. "Home Objects" , sog. "Remote EJB Objects" und

Enterprise JavaBeans die in den Containern laufen§ mindestens einem EJB-Client§ weiteren Hilfssystemen wie JNDI, JTS, Sicherheitsdiensten

etc.

EinführungJ2EEEJBEJB 2.0Literatur

Page 31: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])31 von 116

EJB Architektur (2)

EJB ServerEJB Server

EJB Client

EJB ContainerEJB Container

EnterpriseJava Bean

Databases

Home Object

Enterprise Services and API

JND

IJN

DI

JTGJTG

Sec

urity

Sec

urity

JMS

JMS

EJB Object

HomeInterface

Remote Interface

Locate, Createand Remove, instance of EJB

Invoke Business methods of EJB

EinführungJ2EEEJBEJB 2.0Literatur

Page 32: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])32 von 116

EJB – Container: Spezifikationsanforderungen (1)

Ressourcen und Lebenszyklusmanagement§ Verteilung der Ressourcen auf die unterschiedlichen EJB

eines Containers.§ Erzeugung und Entfernung von Bean-Instanzen.

Zustandsverwaltung / Persistenz§ Der Zustand einer zustandsbehafteten Bean kann

abgespeichert bzw. persistent gemacht und wieder geladen werden.

EinführungJ2EEEJBEJB 2.0Literatur

Page 33: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])33 von 116

EJB - Container: Spezifikationsanforderungen (2)

Transaktionsmanagement

Sicherheit§ Für den Ablauf einer EJB können verschiedene

Sicherheitsklassen definiert werden.§ Durch Java Security Manager implementiert.

RPC und Ortstransparenz§ Fernaufrufe sind durch RMI implementiert.§ Ortstransparenz ist gegeben.

EinführungJ2EEEJBEJB 2.0Literatur

Page 34: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])34 von 116

EJB - Container: Spezifikationsanforderungen (3)

Hilfswerkzeuge§ Ein EJB Container besitzt eine gewisse Grundausstattung

an Hilfswerkzeugen.§ Erzeugung von Stubs und Skeletons.§ Logik, die für die verschiedenen Dienste notwendig ist (z.B.

Implementierung eines Namensdienstes)

EinführungJ2EEEJBEJB 2.0Literatur

Page 35: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])35 von 116

EJB Container:Zusätzliche Features (1)

Lastbalancierung§ Ressourcenaufteilung von gleichartigen EJB-Containern

untereinander.

Komponentenaustausch zur Laufzeit§ Einspielung neuer Versionen zur Laufzeit.

Verteilte Transaktionen§ Transaktionen über mehrere Container und Server hinweg.

EinführungJ2EEEJBEJB 2.0Literatur

Page 36: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])36 von 116

EJB Container:Zusätzliche Features (2)

XML-Unterstützung§ ... zur Repräsentation der Daten

Integration von CORBA§ CORBA-Unterstützung durch das Protokoll RMI-IIOP:

CORBA-Objekte kommunizieren mit Java Remote Objects

EinführungJ2EEEJBEJB 2.0Literatur

Page 37: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])37 von 116

EJB Architektur: Beantypen (3)

Session Beans

§ Modellierung von Geschäftsprozessen§ enthalten Geschäftslogik§ Lebenszeit entspricht in etwa einer Client-Session§ sind nicht nebenläufig, pro Session Bean immer nur ein

Client zur gleichen Zeit

EinführungJ2EEEJBEJB 2.0Literatur

Page 38: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])38 von 116

EJB Architektur: Beantypen (4)

Typen von Session Beans

§ Stateful Session Beans: Zustandsbehaftete Beans, z.B. für einen elektronischen Warenkorb

§ Stateless Session Beans: Zustandslose Beans.

EinführungJ2EEEJBEJB 2.0Literatur

Page 39: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])39 von 116

EJB Architektur: Beantypen (5)

Entity Beans

§ Modellierung von Daten: Objektorientierte Ansicht der gerade benötigten Daten aus der Datenbank.

§ Somit nur lokale Kommunikation beim Zugriff auf die Daten = erhöhte Performance.

§ Daten lassen sich leichter abfragen und modifizieren.§ nebenläufig: Gleichzeitige Nutzung durch mehrere Clients

EinführungJ2EEEJBEJB 2.0Literatur

Page 40: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])40 von 116

EJB Architektur: Beantypen (6)

Typen von Entity Beans

§ Bean-Managed Persistent Entity Bean: Persistenzmanagement von Hand

§ Container-Managed Persistent Entity Bean: ...

EinführungJ2EEEJBEJB 2.0Literatur

Page 41: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])41 von 116

Bestandteile einer EJB (1)

... laut J2EE Spezifikation

§ die eigentliche Enterprise JavaBean§ das EJB Object samt Remote Interface§ das Home Object samt Home Interface§ der Deployment Descriptor / das Manifest

(Verwaltungsinformationen)§ die EJB-Jar-Datei

EinführungJ2EEEJBEJB 2.0Literatur

Page 42: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])42 von 116

Bestandteile einer EJB (2)

EnterpriseBean Interface

public interface javax.ejb.EnterpriseBeanextends java.io.Serializable {}

§ muss von jeder EJB implementiert werden§ ist ein Marker Interface: Jede Klasse, es implementiert ist

automatisch eine EJB§ erbt von Serializable, somit ist jede EJB serialisierbar.

EinführungJ2EEEJBEJB 2.0Literatur

Page 43: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])43 von 116

Bestandteile einer EJB (3)

SessionBean Interface

public interface SessionBeanextends EnterpriseBean {...}

EntityBean Interface

public interface EntityBeanextends EnterpriseBean {...}

EinführungJ2EEEJBEJB 2.0Literatur

Page 44: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])44 von 116

Bestandteile einer EJB (4)

Remote Interface und EJB Object

public interface EJBObject extends Remote {...}

§ Das EJB Object ist ein Stellvertreter für die EJB mit einer Schnittstelle nach außen; ähnlich Skeleton aus CORBA

§ Aufrufe werden über das EJB Object und den Container an die EJB weitergeleitet.

§ Das EJB Object wird durch das Remote Interface beschrieben und automatisch vom Container generiert.

§ Das EJB Object ist Container-abhängig

EinführungJ2EEEJBEJB 2.0Literatur

Page 45: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])45 von 116

Bestandteile einer EJB (5)

Kommunikation mit einer EJB

EJB-Container

Client

Rem

ote

Inte

rfac

e

EJBEJBObject

EinführungJ2EEEJBEJB 2.0Literatur

Page 46: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])46 von 116

Bestandteile einer EJB (6)

Home Interface und Home Object

public interface EJBHome extends Remote {...}

§ Dem Home Object kommt die Rolle einer Object Factoryzu: Sie liefert eine Referenz auf ein EJB Object zurück.

§ Das Home Objects wird durch das Home Interface beschrieben und automatisch vom Container generiert.

§ Das Home Object ist Container-abhängig.

EinführungJ2EEEJBEJB 2.0Literatur

Page 47: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])47 von 116

Bestandteile einer EJB (7)

Erzeugung von EJB-Instanzen

EJB-Container

Client

Rem

ote

Inte

rfac

e

EJBEJBObject

Hom

eIn

terf

ace

HomeObject

2. Erzeuge EJB Object

5. Zugriffauf EJB

1. Frage nach

Referenz

3. SendeReferenz

4. Zugriffauf EJBObject

EinführungJ2EEEJBEJB 2.0Literatur

Page 48: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])48 von 116

Bestandteile einer EJB (8)

Deployment Descriptor

§ Für Verwaltungsinformationen zuständig.§ legt fest, welche Dienste des EJB-Containers durch die

Bean genutzt werden sollen.§ Bean-Management: Namen der EJBs, zugehörige Objekte

und Schnittstellen, Bean-Typ§ Persistenz: Betrifft Entity Beans (container managed?)§ Transaktionsmanagement§ Sicherheit

EinführungJ2EEEJBEJB 2.0Literatur

Page 49: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])49 von 116

Bestandteile einer EJB (10)

Die EJB-Jar-Datei

§ Auslieferungsformat einer EJB: Sämtliche Dateien werden in eine JAR-Datei gepackt.

§ EJB Object bzw. Home Object sind nicht enthalten, da vom Container automatisch generiert ... dafür aber notwendigerweise Remote Interface bzw. Home Interface!

EinführungJ2EEEJBEJB 2.0Literatur

Page 50: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])50 von 116

EJB - Die sechs Rollen (1)

Enterprise Bean Provider§ Bean Hersteller. Erzeugnis: EJB-JAR-File.

Application Assembler§ Fügt mehrere EJB zu einer größeren Anwendung

zusammen. Erzeugnis: EJB-JAR-File.

Deployer§ Integriert eine gelieferte EJB in das System, bringt die EJB

in einem Container zum Laufen.

EinführungJ2EEEJBEJB 2.0Literatur

Page 51: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])51 von 116

EJB - Die sechs Rollen (2)

EJB Server Provider§ Spezialisiert auf das Gebiet des verteilten

Transaktionsmanagements (z.B. OS-, Middleware- bzw. Datenbankhersteller).

§ Momentan ist diese Rolle gleichbedeutend mit der des EJB Container Providers.

EJB Container Provider§ Stellt Deployment-Tools und die Laufzeitumgebung für EJB

zur Verfügung § Häufig Server/Container Provider in Einem

EinführungJ2EEEJBEJB 2.0Literatur

Page 52: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])52 von 116

EJB - Die sechs Rollen (3)

System Administrator§ Verantwortlich für die Konfiguration und Administration der

Rechner- und Netzwerkinfrastruktur.§ Überwachung von EJB Server und Container.

EinführungJ2EEEJBEJB 2.0Literatur

Page 53: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])53 von 116

EJB Architektur: Namensdienst (1)

JNDI§ Java Naming and Directory Interface§ Wird vom Client angesprochen, um das Home Object

finden zu können.§ Eigentlich nur eine Spezifikation: Muss von dem Container-

Hersteller bereitgestellt werden.

EinführungJ2EEEJBEJB 2.0Literatur

Page 54: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])54 von 116

Zusammenfassung

Vorteile§ Unabhängigkeit von zugrundeliegender Middleware§ Plattformunabhängigkeit und WORA§ Strukturierte Anwendungsentwicklung durch Rollen§ (verteiltes) Transaktionsmanagement§ Portierbarkeit und Skalierbarkeit§ Nahtlose Integration von CORBA

EinführungJ2EEEJBEJB 2.0Literatur

Page 55: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])55 von 116

EJB 2.0

EJB 2.0 Spezifikation

n Final Release vom 22.08.2001n 2/3 umfangreicher als 1.1n 572 Seiten

EinführungJ2EEEJBEJB 2.0Literatur

Page 56: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])56 von 116

EJB 2.0 – JMS (1)

n Java Message Service

n Seit 2.0 in J2EE integriert

n Jedes Element von J2EE àProducer / Consumer von Nachrichten

EinführungJ2EEEJBEJB 2.0Literatur

Page 57: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])57 von 116

EJB 2.0 – JMS (2)

n Konzept eines JMS-Servers

n Häufig in den EJB-Applicationsserver integriert

n Verwaltet Topics und Queues

EinführungJ2EEEJBEJB 2.0Literatur

Page 58: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])58 von 116

EJB 2.0 – JMS (3)

n Pub/Subn Übermittlung einer Nachricht an mehrere Consumer

(publish)n Kommunikationskanal: „Topic“n An-/Abmeldung von Consumer an einem Topic

(subscribe)n Listenerkonzept

EinführungJ2EEEJBEJB 2.0Literatur

Page 59: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])59 von 116

EJB 2.0 – JMS (4)

n P2P n Point To Pointn Auswahl eines von mehreren potentiellen

Empfängernn Viele Produkte: Auswahl nach Lastverteilungn Kommunikationskanal: „Queue“

EinführungJ2EEEJBEJB 2.0Literatur

Page 60: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])60 von 116

EJB 2.0 – JMS (5)

n Queues und Topics per Naming-Service verfügbar

n Steuerung von Web-Komponenten, Session Beansund Entity Beans über RMI-IIOP: Synchron

n Client-Applikation und Message Driven Beans: Asynchron

EinführungJ2EEEJBEJB 2.0Literatur

Page 61: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])61 von 116

EJB 2.0 – MDB (1)

Message Driven Beans

n Neuer (dritter) Beantypn Möglich durch Integration von JMSn Asynchrone Methodenaufrufen Per Definition: JMS-Consumer

n Kann dennoch Nachrichten senden

EinführungJ2EEEJBEJB 2.0Literatur

Page 62: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])62 von 116

EJB 2.0 – MDB (2)

Bis Spezifikation 1.1:

Problem: Nachrichten nicht teil von Transaktionen

Client JMS-ServerExt.Java

programmSession Bean

Pool

Applicationserver

EinführungJ2EEEJBEJB 2.0Literatur

Page 63: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])63 von 116

EJB 2.0 – MDB (3)

n Spezifikation 2.0

Client JMS-Server MDB Pool

Applicationserver

EinführungJ2EEEJBEJB 2.0Literatur

Page 64: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])64 von 116

EJB 2.0 – MDB (4)

n Implementiert zwei Interfacesn javax.ejb.MessageDrivenBean

n Methoden zum Erzeugen neuer Beansn Vorbereitung der Verarbeitung von Nachrichten

n javax.jms.MessageListenern public void onMessage(Message m);n Vom Container genutzt, um Bean Nachricht zu

übermitteln

EinführungJ2EEEJBEJB 2.0Literatur

Page 65: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])65 von 116

EJB 2.0 – MDB (5)

n MDB ähnlich Stateless Session Beansn geeignet zum Instance - Poolingn Lastverteilung

n Immer vom Container aufgerufenn Darum: kein Home-Interfacen Unsichtbar für Client

EinführungJ2EEEJBEJB 2.0Literatur

Page 66: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])66 von 116

EJB 2.0 – MDB (6)

n Definition von Selector möglichn Problem: Erzeugung der Instanzen unsichtbar für

den Entwickler durch den Containern Lösung: Deployment Descriptor bietet Elemente zur

Definition

<container-transaction> <exclude-list><method-permission>

EinführungJ2EEEJBEJB 2.0Literatur

Page 67: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])67 von 116

EJB 2.0 – MDB (7)

n Concurrency hier erlaubtn Keine Garantien über die Ausführungsreihenfolge

von eintreffenden nebenläufig verarbeiteten Nachrichten

n Vorbereitung der Bean auf Nebenläufigkeit

n Sonst nicht erlaubtn Container verliert Teil der Kontrolle

EinführungJ2EEEJBEJB 2.0Literatur

Page 68: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])68 von 116

EJB 2.0 – Local Interfaces (1)

n Spezifikation 1.xn Home-Interface (Lebenszyklus)n Remote-Interface (Geschäftslogik)n Generelle Ortsunabhängigkeit (RMI)n Kommunikation zwischen Beans auch in der

gleichen JVMn immer über RMIn Serialisierungn bis 10000 mal langsamer als lokal

EinführungJ2EEEJBEJB 2.0Literatur

Page 69: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])69 von 116

EJB 2.0 – Local Interfaces (2)

n Spezifikation 2.0

n Einführung des Local Interface – Konzeptesn Parameterübergabe innerhalb einer JVM damit per

Referenzn Somit Aufgabe der Ortstransparenz

EinführungJ2EEEJBEJB 2.0Literatur

Page 70: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])70 von 116

EJB 2.0 – Local Interfaces (3)

n Motivation

n Sowohl grobe als auch feine Sicht der Beansmöglich

n fein = stark voneinander abhängige Beansn Feine Sicht wird durch Local Interface beschleunigt

EinführungJ2EEEJBEJB 2.0Literatur

Page 71: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])71 von 116

EJB 2.0 – Local Interfaces (4)

n Neu: Zwei Gruppen von Interfaces

n Home – Interfacesn Erzeugen, Suchen, Löschen, Neu: „Home-Methods“

n Component Interfacesn Ersetzt Begriff „Remote-Interface“n Beschreibt Zugriff auf die Geschäftslogik

EinführungJ2EEEJBEJB 2.0Literatur

Page 72: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])72 von 116

EJB 2.0 – Local Interfaces (5)

n Interfaces dieser Gruppen wahlweise als LocalInterface oder Remote Interface

n Resultat: Vier mögliche Interfacesn Local Homen Local Componentn Remote Homen Remote Component

EinführungJ2EEEJBEJB 2.0Literatur

Page 73: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])73 von 116

EJB 2.0 – Local Interfaces (6)

n Möglichkeit vorhanden, nur Remote- bzw. Local-Interfaces zu verwenden

n Rückgabewerte entsprechendn Local Home Methoden geben Local Component

Interfaces zurück

EinführungJ2EEEJBEJB 2.0Literatur

Page 74: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])74 von 116

EJB 2.0 – Local Interfaces (7)

n Kritische Betrachtungn Stark vernetzte Beans mit Local Interfaces

(Clustering)n Fassaden- Bean

n Kommuniziert mit Cluster-externemn Cluster-interne Bean

n Wird nur von Beans desselben Clusters angesprochen

EinführungJ2EEEJBEJB 2.0Literatur

Page 75: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])75 von 116

EJB 2.0 – Local Interfaces (8)

n Forced Facadesn Cluster-interne EJBs, die als Rückgabewert an

Elemente ausserhalb des Clusters auftreten, brauchen (z.B. im Falle eines Remote Clients) ein erzwungenes Remote-Interface

n Problem: Abhängige Local Interface-Rückgabewerte führen zu weiteren Forced Facades

EinführungJ2EEEJBEJB 2.0Literatur

Page 76: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])76 von 116

EJB 2.0 – Local Interfaces (9)

n Problem bei Dual Interfaces:n Cluster-Bean erschafft via LocalHome eine Instanz

einer anderen Beann Folge: Hat ein Local Interface bekommenn Rückgabe zum Remote Client: Transformation einer

Lokalreferenz in eine Remotereferenz notwendig

EinführungJ2EEEJBEJB 2.0Literatur

Page 77: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])77 von 116

EJB 2.0 – Local Interfaces (10)

n Transformationstypenn Methode steht bei erschaffener Instanz zur

Verfügung (getRemote...)n ... sonst: Eigenregie

n Via Local Interface Primary Key der Instanz erfragenn Via JNDI das Remote Home Interface holenn Via Find-Methode mit Primary Key das Remote

Component Interface holen

EinführungJ2EEEJBEJB 2.0Literatur

Page 78: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])78 von 116

EJB 2.0 – Local Interfaces (11)

n Schwierigkeit vorherzusehen, welche Methoden in welchem Interface (= Remote oder Local) benötigt werden

n EJB Designer realisiert Grossteil der Methoden in beiden Interfaces

n Mehr Entwicklungsarbeit, unterschiedliche Semantik (?) nach außen gleicher Methoden

n größerer Deployment Descriptor

EinführungJ2EEEJBEJB 2.0Literatur

Page 79: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])79 von 116

EJB 2.0 – Local Interfaces (12)

n Anderer Ansatz:n Cluster-Bean-Hersteller soll nicht zu einem Remote

Interface gezwungen werdenn Definition: Aktivität = Menge von Methodenn Einführung einer Facade Bean für jede Aktivität:

Session Bean, die das Remote Interface stellt und intern auf das Local Interface zugreift

EinführungJ2EEEJBEJB 2.0Literatur

Page 80: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])80 von 116

EJB 2.0 – Local Interfaces (13)

n Neues Problem:n Jede neue Aktivität führt

n zu neuer Session Beann wahrscheinlich zur Verschmelzung von Clustern

(Schnittmenge der benötigten Entity Beans)n zu riesigen Clustern (z.B. Session Bean greift auf

mehrere Cluster-Beans zu, die in unterschiedlichen Clustern stecken)

EinführungJ2EEEJBEJB 2.0Literatur

Page 81: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])81 von 116

EJB 2.0 – Local Interfaces (14)

n Weitere Nachteile dieses Ansatzesn Alle Session Beans könnten auf alle Entity-Beans

zugreifen: „komponentenbasierter Spaghetti-Code“n Facade Session Beans sind extra konstruiert à nicht wiederverwendbarà Komponenten ?

n Gesteigerte Komplexität in Entwicklung und Wartung

EinführungJ2EEEJBEJB 2.0Literatur

Page 82: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])82 von 116

EJB 2.0 – Local Interfaces (15)

n Letzter Versuchn Kontra Bildung eines Riesenclustersn Kommunikation zwischen Facade Beans

unterschiedlicher Clustern Aber Problem:

n Zyklen bei Session Beans sind verbotenn Wiederum steigende Komplexität bei den Session Beans

EinführungJ2EEEJBEJB 2.0Literatur

Page 83: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])83 von 116

EJB 2.0 – Local Interfaces (16)

à Local Interfaces nur unter bestimmten Gegebenheiten eine gute Lösung

à Alternativlösung entwickelt ... siehe Literatur: H. A. Schmid

EinführungJ2EEEJBEJB 2.0Literatur

Page 84: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])84 von 116

EJB 2.0 – CMP (1)

n Container Managed Persistence è CMP EntityBeansn Seit EJB 1.1n In EJB 1.1 Problem der schlechten Portierbarkeit

EinführungJ2EEEJBEJB 2.0Literatur

Page 85: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])85 von 116

EJB 2.0 – CMP (2)

n Spezifikation 2.0n Bean Klassen und Persistenz genügend spezifiziertn Portierung von Sourcecode leichtn Generator (kommt mit Container) erzeugt aus

Deployment Descriptor- Beschreibung Container-spezifische Hilfsklasse

EinführungJ2EEEJBEJB 2.0Literatur

Page 86: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])86 von 116

EJB 2.0 – CMP (3)

n Weitere Vorteile

n Generatorwerkzeug erzeugt Unabhängigkeit von der Persistenzschicht

n Generierung vermindert Testbedarf

EinführungJ2EEEJBEJB 2.0Literatur

Page 87: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])87 von 116

EJB 2.0 – CMP/CMR (1)

n CMR = Container Managed Relations

n Verwaltung von Relationen zwischen Beans durch Container

EinführungJ2EEEJBEJB 2.0Literatur

Page 88: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])88 von 116

EJB 2.0 – CMP/CMR (2)

n 1.xn Abfrage der Fremdschlüsselbeziehungen durch

Find-Methodenn 2.0

n Beziehungen definiert im Deployment Descriptor

EinführungJ2EEEJBEJB 2.0Literatur

Page 89: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])89 von 116

EJB 2.0 – CMP/CMR (3)

n Abstrakte get/set Methoden in den Beans

n Implementierung durch Generator (beim Container)

EinführungJ2EEEJBEJB 2.0Literatur

Page 90: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])90 von 116

EJB 2.0 – CMP/CMR (4)

n Kardinalitäten: 1:1, 1:M, M:N

n Local Interface, java.util.Set bzw. java.util.Collectionals Parameter in den get() und set() Methoden

n Nur einsetzbar für CMP Entity Beans

EinführungJ2EEEJBEJB 2.0Literatur

Page 91: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])91 von 116

EJB 2.0 – CMP/CMR (5)

n M:N Relationenn Müssen in relationalen Datenbanken mit dritter

Verbindungstabelle dargestellt werdenn Neu: Nur Angabe im Deployment Descriptor, vorher

explizite Bean-Modellierung

EinführungJ2EEEJBEJB 2.0Literatur

Page 92: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])92 von 116

EJB 2.0 – CMP/CMR (6)

n 1:M bzw. 1:1 Beziehungenn erlauben das „Cascade Delete“, wenn das

löschende Element einzeln ist (die 1-Seite)n Vergleiche Datenbankenn Spezifikation 2.0 bietet Technik an:

Aufruf von ejbRemove() am anderen Ende der Beziehung

EinführungJ2EEEJBEJB 2.0Literatur

Page 93: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])93 von 116

EJB 2.0 – CMP/CMR (7)

n Container ist für referentielle Integrität zuständig

n Grosse Rolle von CMR bei Anfragen per EJB QL (folgt)

EinführungJ2EEEJBEJB 2.0Literatur

Page 94: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])94 von 116

EJB 2.0 – CMP – Dependent Value Classes

n instanziierbare und serialisierbare Java Klassenn werden serialisiert in der Datenbank gespeichertn Nachteil: Schlechte Performance bei Anfragen

EinführungJ2EEEJBEJB 2.0Literatur

Page 95: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])95 von 116

EJB 2.0 – EJB QL (1)

Enterprise JavaBeans Query Language

n Ist eine „query specification language“n Benutzt zum Auffinden von Datenn Keine Manipulation ! (vgl. SQL)

EinführungJ2EEEJBEJB 2.0Literatur

Page 96: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])96 von 116

EJB 2.0 – EJB QL (2)

n Bis Spezifikation 1.1:n Eingebettete SQL-Anfragen im Sourcecode

n Verlust der Unabhängigkeit gegenüber der Persistenzschicht

n EJB QL arbeitet als Anfragesprache auf dem abstrakten Schema der Bean im Deployment Descriptor

EinführungJ2EEEJBEJB 2.0Literatur

Page 97: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])97 von 116

EJB 2.0 - EJB QL (3)

n Suchfunktionalitätn Jeweils Signaturen im Quellcode:

n Find-Methoden im Home Interfacen Select-Methoden in der Bean-Klasse

n Signaturen wiederholen im Deployment Descriptorn Ebenfalls im DD: Anfrage

n (angelehnt an SQL92)

EinführungJ2EEEJBEJB 2.0Literatur

Page 98: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])98 von 116

EJB 2.0 – EJB QL (4)

n Select_clause from_clause

[ where_clause ]

n Methodenparameter: ?1, ?2,...

EinführungJ2EEEJBEJB 2.0Literatur

Page 99: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])99 von 116

EJB 2.0 – EJB QL (5)

n TRUE, FALSEn +, -, *, /n =, >, >=, <, <=, <>n NOT, AND, ORn BETWEEN, IN, LIKE, NULL, EMPTY, MEMBERn CONCAT, SUBSTRING, LENGTH,...n .....

EinführungJ2EEEJBEJB 2.0Literatur

Page 100: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])100 von 116

EJB 2.0 – EJB QL (6)

Beispiel für find-Methode(im Home Interface folgende Signatur):

public Collection findXXX(int id, Date maxDate)throws FinderException

à

EinführungJ2EEEJBEJB 2.0Literatur

Page 101: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])101 von 116

EJB 2.0 – EJB QL (7)

<query><query-method>

<method-name>findXXX</method-name><method-params>

<method-param>int</method-param><method-param>java.sql.Date</method-param>

</method-params></query-method><ejb-ql> <![CDATA[SELECT OBJECT(v) FROM ABCBean v

WHERE v.id = ?1AND v.gueltigbis = ?2 ]]>

</ejb-ql></query>

EinführungJ2EEEJBEJB 2.0Literatur

Page 102: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])102 von 116

EJB 2.0 – EJB QL (8)

n Select Methodenn Neu in 2.0n Abstrakt in der Bean mit Prefix:

n „ejbSelect...“n im Gegensatz zu ejbFind() nicht nach außen

sichtbarn Umsetzung wie bei ejbFind()

EinführungJ2EEEJBEJB 2.0Literatur

Page 103: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])103 von 116

EJB 2.0 – Home Methods (1)

n Zusätzliche Methodenn Definiert im Home-Interfacen Neben create-, remove-, find-n Beziehen sich auf eine Menge von Instanzenn Wie static-Methoden in Java (Klassenmethoden)

EinführungJ2EEEJBEJB 2.0Literatur

Page 104: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])104 von 116

EJB 2.0 – Home Methods (2)

n Implementierungn „ejbHome“-Präfix für den Methodennamenn Public – muss seinn Static – darf nicht sein

EinführungJ2EEEJBEJB 2.0Literatur

Page 105: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])105 von 116

EJB 2.0 – Home Methods (3)

n Beispiel: Remote-Interfacepublic int berechneXY() throws RemoteException;

n Implementierungpublic int ejbHomeBerechneXY() {

....}

EinführungJ2EEEJBEJB 2.0Literatur

Page 106: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])106 von 116

EJB 2.0 – Home Methods (4)

n WICHTIGn Keine Instanzmethoden aus einer ejbHome-

Implementierung aufrufen (vgl. static, wo der Compiler protestieren könnte)

EinführungJ2EEEJBEJB 2.0Literatur

Page 107: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])107 von 116

EJB 2.0 – Home Methods (5)

n Lebenszyklus einer Entity-Beann does not exist (keine Methodenaufrufe möglich)

n pooledç (alle Instanzen noch gleich: Zustand für den Aufruf von ejbSelect- und Home-Methoden)

n ready (ejbCreate, usw. sorgen für Attributbelegung einzelner Instanz, jetzt Component-Interface-Methoden aufrufbar)

EinführungJ2EEEJBEJB 2.0Literatur

Page 108: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])108 von 116

EJB 2.0 – Run-As-Security (1)

n Erweiterung des bestehenden Aufruf-Berechtigungskonzept

n Definieren von „Rollen“, die Aufrufer innehaben kann

n Rollendefinition im Deployment-Descriptorn Weiterreichen des Security-Contextes bei inneren

Methodenaufrufen, welcher die Benutzeridentität beinhaltet

EinführungJ2EEEJBEJB 2.0Literatur

Page 109: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])109 von 116

EJB 2.0 – Run-As-Security (2)

n Run-As steht für:n Zuweisung einer Identität an eine Bean

1) Nutzer ruft Methode X der Bean auf2) Überprüfung, ob er dies darf3) Bean hat Identität „admin“ (z.B.)4) Alle Methodenaufrufe in X werden gegen „admin“ auf Berechtigung geprüft.

EinführungJ2EEEJBEJB 2.0Literatur

Page 110: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])110 von 116

EJB 2.0 – Run-As-Security (3)

n Run-As verhindert Mehrfach-implementierung von Methoden.

EinführungJ2EEEJBEJB 2.0Literatur

Page 111: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])111 von 116

Literatur

A. Eberhart, S. Fischer (2001)Java-Bausteine für E-Commerce-AnwendungenHanser

G. Seshadri (1999)Enterprise Java Computing – Applications and ArchitectureCambridge University Press

V. Gruhn, M. Schneider (2002)EJB 2.0 AnwendungenAddison-Wesley

EinführungJ2EEEJBEJB 2.0Literatur

Page 112: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])112 von 116

Literatur

V. Matene, M. Hapner (1998)Enterprise JavaBeanshttp://www.java.sun.com/products/ejb/docs.html

V. Matene, M. Hapner (1999)Enterprise JavaBeans Specification, v1.1http://www.java.sun.com/products/ejb/docs.html

L. DeMichiel, L. Yalçinalp, S. Krishnan (2001)Enterprise JavaBeans Specification, Version 2.0http://www.java.sun.com/products/ejb/docs.html

EinführungJ2EEEJBEJB 2.0Literatur

Page 113: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])113 von 116

Literatur

L. DeMichiel (2002)Enterprise JavaBeans Specification, Version 2.1 (Public Draft)http://java.sun.com/products/ejb/docs.html

B. Shannon (2001)Java 2 Platform Enterprise Edition Specification, v1.3http://java.sun.com/j2ee/download.html

M. Pawlan, D. Green, K. Haase, S. Bodoff,E. Jendrock, B. Stearns (2002)The J2EE Tutorialhttp://java.sun.com/j2ee/download.html

EinführungJ2EEEJBEJB 2.0Literatur

Page 114: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])114 von 116

Literatur

E. Pelegri-Llopart (2001)JavaServer Pages Specification Version 1.2http://java.sun.com/products/jsp/download.html

D. Coward (2001)Java Servlet Specification Version 2.3http://java.sun.com/products/servlet/download.html

H.A. Schmid (2002)An Evaluation of the Use of Enterprise JavaBeans 2.0Local InterfacesUniversity of Applied Sciences, Konstanz

EinführungJ2EEEJBEJB 2.0Literatur

Page 115: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])115 von 116

Anbieter von EJB Komponenten

Weitere Informationen unter ...

http://www.componentsource.com/java

http://www.flashline.com/components/è Marketplaceè EJB

http://industry.java.sun.com/solutions/è Enterprise JavaBeans Components

EinführungJ2EEEJBEJB 2.0Literatur

Page 116: Enterprise JavaBeans 2 - Freie Universität JavaBean… · „Enterprise JavaBeans (EJB) components executein a managed environmentthat supports transactions. Enterprise beans typically

Hauke Traulsen ([email protected])Sebastian Lempert ([email protected])116 von 116

Ende der Präsentation

Vielen Dank für IhreAufmerksamkeit!