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



Ähnliche Dokumente
J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

Enterprise Java Beans

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

Enterprise Java Beans (EJB)

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Anwendung eines Enterprise Java Beans

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

EJB jar.xml und Name Service (JNDI)

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

Client/Server-Programmierung WS2007/08. EJB/JSP: Schritt-für-Schritt Anleitung

Der lokale und verteilte Fall

Enterprise JavaBeans (mit JBoss)

Warum EJB Technologie (1)?

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Softwareentwicklung mit Enterprise JAVA Beans

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Objektorientierter Systementwurf mit Java

Etablierung serviceorientierter Architekturen mit Web Services

Beispiel: JavaBeans. Enterprise JavaBeans: Server-Komponenten

SE2-10-Entwurfsmuster-2 15

6. Java Java Beans und Enterprise Java Beans

ORACLE Business Components for Java (BC4J) Marco Grawunder

Java 2, Enterprise Edition Einführung und Überblick

JDO Java Data Objects

Enterprise JavaBeans Überblick

Enterprise Java Beans Einführung

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

Informationsintegration und Web-Portale. Tutorial: Enterprise Java Beans. Erik Buchmann

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

-Testen verteilter Anwendungen

Liste V Enterprise JavaBeans

Übungsaufgabe Transaktion als Middleware

7. Analyse-Phase: Datenmodellierung Software Engineering

EJBs Kurz und Gut. Eine kurze Einführung in die Java 2 Enterprise Beans

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet.

WebSphere Application Server Installation

Web-Services Implementierung mit Java

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Konfiguration und Deployment einer hochverfügbaren ADF Anwendung

Themen. Web Service - Clients. Kommunikation zw. Web Services

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken

Remote Method Invocation

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

Zwischenbericht Diplomarbeit

ebusiness-plattformen am Beispiel von J2EE

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Enterprise JavaBeans Überblick

Java Persistence API. Phillip Ghadir Oliver Tigges

J2EE mit Eclipse 3 und JBoss

Programmierung von Client/Server- Anwendungen

Mufid Sulaiman

Geschäftskomponenten mit EJB 3.1

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany,

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

Clustering von Application Servern am Beispiel von JBoss 3.2

Ndo 3. Aufbruch zu neuen Ufern Migration bestehender J2EE Anwendungen. Jens Schumann

Internetanbindung von Datenbanken

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Spring Dynamic Modules for OSGi Service Platforms

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

CORBA. Systemprogrammierung WS

Transkript:

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

Einordnung in die Referenzarchitektur für betriebliche Informationssysteme Übersicht cd Quasar Architecture «Abstract T Component» Client Management «A Component» Dialog Application Server stellen Dienste bereit für: Anwendungsrahmen «Abstract T Component» Application Kernel Facade Alternatives Persistence Transaction Alternatives «A Component» Application Component «Abstract T Component» Authorization Authorization Also: alle serverseitigen Dienste für Enterprise Applications «Abstract T Component» Transaction «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 J2EE JTS RMI JSP Stub JDBC JavaBeans J2SE Java Client-Server JMS EJB Servlet WORA Skeleton JTA N-Tier XML JNDI Thin Client 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 Java Beans 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 Enterprise Bean Session 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 find/create Bean Home Interface register EJB Home EJB Context Client new 4 EnterpriseBean Fachmethoden remove Remote Interface EJB Object ejbcreate Fachmethoden Bean- Instanz 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 1 EJB-Home Interface 4 Deployment Descriptor 5.jar file 2 EJB-Object Interface Compile.class files 3 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 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» A_Component +contains «interface» A_UseCase +contains «interface» A_UseCaseMethod 1 +contains * 1 * 1 +contains Keine Entsprechung in EJB 1 * «interface» A_EntityController SessionBean 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-Software T-Software AT-Software 0 0-Software A T AT SessionBeans A-Fall A-Verwalter A-Entität Persistenz-Schnittstelle verwendet implementiert CMP BMP Hibernate 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 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