11. Enterprise Java Beans Grundlagen der Programmierung II (Java)

Werbung
11. Enterprise Java Beans
Grundlagen der
Programmierung II (Java)
Prof. Dr. Bernhard Humm
Hochschule Darmstadt – University of Applied Sciences
Sommersemester 2006
Übersicht Grundlagen der Programmierung II
Einordnung in den Kontext der Vorlesung
Anwendungsentwicklung (Referenzarchitektur, Softwarekategorien)
Anwendungs-Komponenten (Anwendungskern)
Datenbankzugriff
Graphische Benutzeroberflächen (Swing, JSF)
Client- / Serverkommunikation (RMI)
Berechtigungsverwaltung
Application Server (EJB)
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 2
Agenda
Agenda
Übersicht
Übersicht
Enterprise Java Beans
Architektur-Überlegungen
Literatur
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006.
27.6.2006
Seite 3
Übersicht
Einordnung in die Referenzarchitektur für betriebliche
Informationssysteme
cd Quasar Architecture
«Abstract T Component»
«A Component»
Client Management
Dialog
Application Server
stellen Dienste
bereit für:
Anwendungsrahmen
Persistence
«Abstract T Component»
Application Kernel
Facade
Transaction
Transaction
«A Component»
«Abstract T Component»
Application
Component
Authorization
Alternatives
«Abstract T Component»
Alternatives
Authorization
Also: alle serverseitigen Dienste
für Enterprise
Applications
«Abstract T Component»
Persistence
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 4
Übersicht
Java Buzzwords
JDBC
J2EE
JavaBeans
J2SE
JTS
Java
Client-Server
RMI
JSP
JMS
EJB
Servlet
WORA
Stub
JTA
Skeleton
XML
N-Tier
Thin Client
JNDI
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 5
Übersicht
N - Tier Architekturen
Präsentation
Applikationsserver
und/oder
Webserver
Datenbanken + (Alt)
Anwendungen
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 6
Übersicht
J2EE - Java 2 Platform, Enterprise Edition
Aktuelles Release: Enterprise Edition 5, EJB 3.0
Spezifikation, Referenzimplementation, BluePrints und Design Richtlinien
Kompatibilitätstest
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 7
Übersicht
Übersicht J2EE Architektur
J2EE Server:
Laufzeitumgebung für
Container
EJB Container:
Laufzeitumgebung für
Beans
Enterprise
Bean:
Anwendungsobjekte
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 8
Agenda
Agenda
Übersicht
Enterprise
JavaBeans
Beans
Enterprise Java
Architektur-Überlegungen
Literatur
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006.
27.6.2006
Seite 9
Enterprise Java Beans
EJB: die Theorie ist verständlich;
die Praxis ist eher anstrengend
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 10
Enterprise Java Beans
Enterprise Bean Typen
Session Beans
– zustandslos (stateless)
– zustandsbehaftet (stateful)
Entity Beans
– Persistenz durch Container (Container Managed Persistence, CMP)
– Persistenz durch Bean (Bean Managed Persistence, BMP)
Message-driven Beans
Session Bean
Enterprise Bean
Entity Bean
Stateful Session Bean
Stateless Session Bean
Container-managed Persistence
Bean-managed Persistence
Message-driven Bean
EJB
26.06.2006 - v3
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 11
Enterprise Java Beans
SessionBean
Serverseitiger Anwendungsdienst: entspricht Anwendungsfall in der
Referenzarchitektur
Ist jeweils einer Client Session zugeordnet:
– stateless: für die Dauer eines Methodenaufrufs; kein eigener
Zustand
– stateful: Zustand (conversational state) bis Client terminiert oder
die Bean freigibt
Transient: Zustand wird nicht gespeichert
Beispiele aus der Library Application:
Registration
Lending
Accounting
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 12
Enterprise Java Beans
SessionBeans: Codebeispiel
import java.util.*;
import javax.ejb.*;
public class CartBean implements SessionBean {
String customerName;
String customerId;
Vector contents;
public void addBook(String title) {
contents.addElement(title);
}
public void removeBook(String title) throws BookException {
contents.removeElement(title);
}
public CartBean() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 13
Enterprise Java Beans
EntityBean
Persistentes Geschäftsobjekt, Speicherung in einer relationalen
Datenbank
Analog zu Entities und EntityManagers in der Referenzarchitektur
Zentrale Ressource, für viele Clients gleichzeitig ->
Transaktionskontrolle
Schlüssel / Identität, Assoziationen zwischen EntityBeans
Persistenzmechanismen:
– Bean-managed Persistence (BMP): Datenbankzugriffe manuell
programmieren
– Container-managed Persistence (CMP): Datenbankzugriffe
werden vom EJB-Container bereit gestellt
Beispiele aus der Library Application:
Customer
Book
Loan
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 14
Enterprise Java Beans
Entity Bean - Persistenz
Container Managed Persistence – CMP:
– Datenbankzugriff wird automatisch generiert
– Mapping der persistenten Attribute und der Beziehungen einer Bean-Klasse
wird im Deploment Descriptor definiert
Bean Managed Persistence – BMP:
– Datenbankzugriff wird vom Entwickler innerhalb der Bean-Klasse
implementiert
– Methoden zum Anlegen, Laden, Speichern und Löschen der Bean-Attribute
in der Datenbank
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 15
import javax.ejb.*;
import java.rmi.RemoteException;
import java.util.*;
public abstract class KontoBean implements EntityBean
{
private EntityContext ctx;
public abstract double getSaldo();
public abstract void setSaldo(double saldo);
Enterprise Java Beans
EntityBeans:
Codebeispiel
public abstract String getKontonummer();
...
public double einzahlen( double betrag )
throws KontoException
{
setSaldo(getSaldo() + betrag);
return getSaldo();
}
…
public void ejbActivate()
throws RemoteException
{}
public void ejbPassivate()
throws RemoteException
{ }
…
}
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 16
Enterprise Java Beans
EJB QL: Query Language
Beispiele
SELECT OBJECT(p) FROM Player p
SELECT DISTINCT OBJECT(p)
FROM Player p
WHERE p.position = ?1
SELECT DISTINCT OBJECT(p1)
FROM Player p1, Player p2
WHERE p1.salary > p2.salary AND p2.name = ?1
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 17
Enterprise Java Beans
Client Zugriff
JNDI
lookup
Home
Naming
Service
register
find/create Bean
Home Interface
EJB
Home
EJB
Context
new
4
Client
EnterpriseBean
Remote Interface
Fachmethoden
remove
EJB
Object
ejbCreate
BeanInstanz
Fachmethoden
Applikationsserver (Container)
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 18
Enterprise Java Beans
Zugriffsarten von Clients
remote:
– Zugriff über Rechner- und JVM-Grenzen hinweg
– Remote-Interface notwendig: Geschäftsmethoden
– Home-Interface notwendig: Lebenszyklus (create, remove)
local:
– Zugriff innerhalb derselben JVM
– LocalObject-Interface notwendig: Geschäftsmethoden
– LocalHome-Interface: Lebenszyklus
web service:
– Zugriff über Stateless SessionBean
– Eebservice Endpoint Interface notwendig: Geschäftsmethoden
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 19
Enterprise Java Beans
Entwicklungszyklus
Bean - Provider
4
1
EJB-Home
Interface
Deployment
Descriptor
.jar
file
5
2
3
EJB-Object
Interface
Compile
.class
files
Bean
Klasse
Bean - Deployer
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 20
Agenda
Agenda
Übersicht
Enterprise Java Beans
Architektur-Überlegungen
Architektur-Überlegungen
Literatur
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006.
27.6.2006
Seite 21
Architektur-Überlegungen
Zuordnung von EJB-Konzepten zur Referenzarchitektur
des Anwendungskerns
cd Application Kernel Concepts
«interface»
«interface»
A_Component
«interface»
A_UseCase
+contains
1
+contains
A_UseCaseMethod
+contains
*
1
*
1
+contains
1
SessionBean
Keine
Entsprechung
in EJB
«interface»
*
A_EntityController
Home-Interface
EntityBean
+controls
*
1
EntityBean
*
«interface»
A_Entity
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 22
Architektur-Überlegungen
EJB-Technologie (T-Software) sollte von der fachlichen
Anwendung (A-Software) getrennt werden
A
T
AT
0
A-Software
T-Software
AT-Software
0-Software
SessionBeans
A-Fall
A-Verwalter
A-Entität
Persistenz-Schnittstelle
CMP
BMP Hibernate
verwendet
implementiert
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 23
Agenda
Agenda
Übersicht
Enterprise Java Beans
Architektur-Überlegungen
Literatur
Literatur
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006.
27.6.2006
Seite 24
Literatur
Literatur und Links
EJB Hauptseite bei Sun
http://java.sun.com/products/ejb/
Tutorials
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/
http://www.caucho.com/resin-3.0/ejb3/tutorial/index.xtp
BMP oder CMP ?
http://dev2dev.bea.com/technologies/ejb/articles/334.jsp
EJB Design Patterns
http://www.c2.com/cgi/wiki?EjbDesignPatterns
JavaOne 2004
http://java.sun.com/javaone/
zB TS-1951: J2EE 1.4 SDK Overview, TS-1861: EJB 3.0
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 25
Literatur
theserverside.com
Portal für Java Enterprise Anwendungen
http://theserverside.com/
Freies PDF Buch zum Download
http://www.theserverside.com/books/wiley/masteringEJB/
Hochschule Darmstadt – University of Applied Sciences. Fachbereich Informatik. Prof. Dr. Bernhard Humm. Sommersemester 2006., 27.6.2006, Seite 26
Herunterladen