Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Stephan Bury  Pascal Busch  Bita Gerami

Ähnliche Präsentationen


Präsentation zum Thema: "Stephan Bury  Pascal Busch  Bita Gerami"—  Präsentation transkript:

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

2 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 Client/Server-Architektur Middleware 2. EJB-Design 2.1 Aufbau 2.2 Anwendungsarchitekturen

3 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 Session Beans Entity Beans 3.4 Deployment Descriptor 3.5 JNDI 3.6 Client

4 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

5 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

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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

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

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

16 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

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

18 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

19 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

20 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

21 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

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

23 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

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

25 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

26 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

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

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

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

30 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

31 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

32 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

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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

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


Herunterladen ppt "Stephan Bury  Pascal Busch  Bita Gerami"

Ähnliche Präsentationen


Google-Anzeigen