Stephan Bury  Pascal Busch  Bita Gerami

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
E-Commerce Shop System
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Internetzugriff mit Strings und Streams
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Java 2 Enterprise Edition (J2EE)
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
XDoclet ETIS SS05.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Introducing the .NET Framework
Remote Methode Invocation (RMI)
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Systementwicklungsprojekt:
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
YouTube5 .0 Projektpräsentation
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Software Architektur II
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Java Server Pages Sergej Keterling
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Management- und Web Services- Architekturen
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
7.1.5 Java RMI – Remote Method Invocation
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Komponentenarchitekturen, Enterprise Java Beans (EJB)
Einführung in Web Services Web Services in der Praxis
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Entwurf Anwendungslogik SS2005.
Enterprise JavaBeans (EJB) und Application Server
Vortrag - Diplomarbeiten (HS I)
Datenbanken im Web 1.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
SOFTWARE POWERS THE INTERNET SM. Oracle9i Application Server Mathias Kaldenhoff Geschäftsstelle HH Leiter Systemberatung Oracle Deutschland GmbH
Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Stephan Bury  Pascal Busch  Bita Gerami Michael Kropiwoda  Oliver Losch September 2001

Gliederung 1. Einleitung 1.1 Definition 1.2 Einordnung 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

Gliederung 3. Komponenten 3.1 Server 3.2 Container 3.3 Beans 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

Gliederung 4. Interaktion der Komponenten im Beispiel 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

Enterprise für unternehmenskritische Anwen- dungen entwickelt Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im 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

„EJB ist eine Architektur für verteilte, transaktionsorientierte Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im 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

2-tier Modell 3/n-tier Modell Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Definition EJB Einordnung • Client/Server-Architektur • Middleware 2-tier Modell Applikation ist direkt mit Datenhaltung verbunden Businesslogik ist fest in Anwendung integriert Datenhaltung Business-Logik Anwendung 3/n-tier Modell Applikationserver entkoppelt Datenhaltung und Endanwendung Businesslogik fest in Anwendung integriert Applikation-Server Präsentation Datenhaltung Business-Logik DB

Einleitung EJB-Server EJB-Design Komponenten Zusammenspiel Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Definition EJB Einordnung • Client/Server-Architektur • Middleware DB EJB-Server Client DB EJB-Server Client DB andere Appl. Client DB DB

Physikalisches Netzwerk Transportorientierte Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Definition EJB Einordnung • Client/Server-Architektur • Middleware Physikalisches Netzwerk Anwendungs- interaktion Objekt- Transportorientierte Schichten MIDDLEWARE z.B. Java RMI, CORBA, COM+ CLIENT z.B. EJB‘s, CORBA Components SERVER

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Aufbau Anwendungs- architekturen EJB Server CONTAINER DB Session Bean Home Interface & Home Object CLIENT Remote Interface & Remote Object JDBC DB DD Naming Interface Entity Bean

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Aufbau Anwendungs- architekturen Client-Side Presentation Server-Side Presentation Server-Side Business-Logic Enterprise IS Browser Web- Server EJB- Container Pure HTML JSP Java Applet EJB EJB Desktop Java Applikation Java Servlet EJB Other devices J2EE Platform J2EE Platform J2EE Platform

Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Server stellt Basisdienste (z.B. Laufzeitumgebung, Netzwerkprotokoll) für Container bereit Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick EJB - Server Kommunikation mit Client EJB – Container JNDI EJB – Container Kommunikation mit OS Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Definiert durch EJB – Spezifikation Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client • Serverhersteller gehen zum J2EE-konformen Server über • Schnittstelle zwischen Server und Container nicht spezifiziert • Server und Container meist vom selben Hersteller Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server Container Beans Definiert durch EJB – Spezifikation Nicht spezifiziert Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

• stellt Laufzeitumgebung für EB`s dar Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

 Load-balancing (Swapping von Session Beans) Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Containerservices Container Bean Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Containerservices Transaktionsmanagement Container Load - Balancing Persistenz-management Bean Lifecycle-management jar - File Deployment Sicherheits-management Pool-management Generierung der Bean-Klassen

 Server-seitige Komponenten  implementieren die Anwendungslogik Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Bestandteile Einleitung EJB-Design Komponenten Zusammenspiel Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Bestandteile Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Remote-Interface Home-Interface Bean-Klasse import java.rmi.RemoteExeption; import javax.ejb.*; public class XYBean implements EntityBean { …} Primarykey-Klasse XML Deployment Descriptor Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

stateless statefull Session Beans Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Session Beans  implementieren die Anwendungslogik  stehen einem Client exklusiv zur Verfügung nicht persistent Transaktionsmanagement  bean-managed transactions  container-managed transactions Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick stateless statefull Session Beans Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

nicht existent Lebenszyklus – stateless Session Beans pooled ready Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Lebenszyklus – stateless Session Beans Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick nicht existent System Exception ejbCreate() ejbRemove() pooled ready <method>(…) Client Container Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Lebenszyklus – statefull Session Beans Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Lebenszyklus – statefull Session Beans Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick nicht existent Löschen nach Timeout passiviert System Exception ejbRemove() ejbActivate() ejbPassivate() ejbCreate() ready <method>(…) BEGIN COMMIT od. ROLLBACK ready in TA <method>(…) Client Container Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

 repräsentieren Daten Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Lebenszyklus – Entity Beans Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client Lebenszyklus – Entity Beans Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick nicht existent pooled ready sync ready async ready update Client Container Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

 teilt dem Container mit, wie die EB zur Laufzeit zu behandeln ist Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • 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

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Server Container Beans • Session Beans • Entity Beans Deployment Descriptor JNDI Client <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> Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • Session Beans • Entity Beans Bean-Klasse Remote-Interface Home-Interface Deployment- PrimaryKey-Klasse Descriptor Container- Klasse Tools Interface XML-Dokument Home-Objekt Remote-Objekt Home-Interface Remote-Interface

• Applikation Programming Interface Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • 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

. . . Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • Session Beans • Entity Beans Application JNDI API Naming Manager JNDI SPI CORBA RMI . . . JNDI - Implementierungsmöglichkeiten

 findet Beans durch JNDI Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • 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

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Server JNDI Container Deployment Descriptor Client Beans • Session Beans • Entity Beans lookup(EJB-Name) JNDI Client Client Stub Home EJBHome create(), find(), remove() Home Object Anwendung Client Stub Remote alle Methoden der EJB Remote Object

Beispiel für das Zusammenspiel der Komponenten Client Ü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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf EJB Server Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick CONTAINER DB Session Bean Home Interface & Home Object CLIENT Remote Interface & EJB Object JDBC DB DD Naming Interface Entity Bean Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

 implementiert Home Interface KursHome Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf Bean KursBean  eigentliche Bean  implementiert Home Interface KursHome  implementiert Remote Interface Kurs  bei JNDI bekannt als Kurs Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Home Interface KursHome Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf Home Interface KursHome Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick public interface KursHome extends EJBHome { . . . // Methode zum Erzeugen eines Kurses Kurs create() throws CreateException, RemoteException; } Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Remote Interface Kurs Einleitung EJB-Design Komponenten Zusammenspiel Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf Remote Interface Kurs Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick // erbt von EJBObject public interface Kurs extends EJBObject { // Deklaration der Methoden public String getName() throws RemoteException; } Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

EB KursBean Einleitung EJB-Design Komponenten Zusammenspiel Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf EB KursBean Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im 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"; } Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf 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(); } Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten Übersicht ServerKomponenten Übersicht Code ClientKomponente Übersicht Code Ablauf JNDI Home Object Remote lookup(Kurs) Home Stub Home Stub Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Client Server Container HI create() Remote Stub KursBean Remote Stub RI getName() Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Enterprise JavaBeans unterstützen  Wiederverwendbarkeit  Modularität Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Anwendungs- gebiete Vergleich mit alternativen Ansätzen • CORBA Vor- und Nachteile 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

Java-Sicherheitsmodell Anwendungs- gebiete Vergleich mit alternativen Ansätzen • CORBA Vor- und Nachteile Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick EJB CORBA Sprachunter-stützung Java bzw. via CORBA sprachunabhängig Plattform-unterstützung alle Plattformen mit Java-VM plattformunabhängig Kommunikation synchron Sicherheit Java-Sicherheitsmodell sehr umfangreich Eignung für komplexe Systeme uneingeschränkt Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

Welchen Nutzen bietet der Einsatz von EJB? Unternehmen 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch

 S. Denniger/I. Peters, Enterprise JavaBeans, 2000, München 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 Einleitung EJB-Design Komponenten Zusammenspiel der Komponenten im Beispiel Einsatzbereich Ausblick Stephan Bury  Pascal Busch  Bita Gerami  Michael Kropiwoda  Oliver Losch