Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am 20.12.2000.

Ähnliche Präsentationen


Präsentation zum Thema: "Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am 20.12.2000."—  Präsentation transkript:

1 Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am 20.12.2000

2 20.12.2000©2000, Elmar Seestädt2 Java 2 Enterprise Edition – Überblick 1/2 JDBC (Java Database Connectivity) RMI (Remote Method Invocation) JNDI (Java Naming and Directory Interface) Java IDL / CORBA (Interface Description Language / Common Object Request Broker Architecture)

3 20.12.2000©2000, Elmar Seestädt3 J2EE-Überblick 2/2 JMS (Java Message Service) JTA (Java Transaction API) Java Servlets / JSP (Java ServerPages) EJB (Enterprise JavaBeans)

4 20.12.2000©2000, Elmar Seestädt4 Was sind Enterprise JavaBeans Verteiltes Komponenten Modell JavaBeans als RMI-Remote Objekte Können die Vorteile des Frameworks nutzen Transaktionen Persistenz Sicherheit Resourcen-Pools Andere Java-APIs Brauchen eine Laufzeitumgebung (EJB- Container)

5 20.12.2000©2000, Elmar Seestädt5 EJB-Container Dient als Laufzeitumgebung für EJB Sun liefert nur eine Referenzimplementation BEA Weblogic Server, EnHydra Open Source Projekt Hersteller ist verpflichtet alle Zusagen für EJBs einzuhalten -> Kompatibilitätslogo Hersteller darf sog. Value-added-features einbauen -> Kompatibilitätsprobleme Einige Details sind nicht standardisiert: z.B. Laden des Datenbanktreibers -> Herstellerspezifisch

6 20.12.2000©2000, Elmar Seestädt6 Beantypen Persistenz Business Methoden Finder Methoden PrimaryKey Container Managed Persistence (CMP) Bean Managed Persistence (BMP) Überdauern nur eine Benutzersitzung Applikations Logik Statefull Session Beans Stateless Session Beans Entity BeansSession Beans

7 20.12.2000©2000, Elmar Seestädt7 Session Beans Haben über Methodenaufrufe hinweg einen Zustand Sind für eine Sitzung spezifisch Z.B. Abwicklung eines Workflows Z.B. Shopping Cart Speichern keinen Zustand Vergleichbar mit statischen Methoden einer Klasse Eine Bean kann von verschiedenen Benutzern gleichzeitig genutzt werden Z.B. Druckdienste anbieten StatefullStateless

8 20.12.2000©2000, Elmar Seestädt8 Home Interface Factory zum erzeugen von Instanzen Namenskonvention: DeinBeanNameHome.java Extends EJBHome public EJBMetaData getEJBMetaData() throws java.rmi.RemoteException; public void remove(...) throws java.rmi.RemoteException, RemoveException; Methoden zum Erzeugen von Beans public void create(...) throws java.rmi.RemoteException, evtl. andere Exceptions

9 20.12.2000©2000, Elmar Seestädt9 Remote Interface Interface für die Remote ausführbaren Methoden Namenskonvention: DeinBeanName.java Extends EJBObject public EJBHome getEJBHome() throws java.rmi.RemoteException; public Handle getHandle() throws java.rmi.RemoteException; public Object getPrimaryKey() throws java.rmi.RemoteException; public boolean isIdentical(EJBObject obj) throws java.rmi.RemoteException; public void remove() throws java.rmi.RemoteException, RemoveException; Enthält weiter die Business und Bean Methoden

10 20.12.2000©2000, Elmar Seestädt10 Bean Implementation Implementation der aus den Interfaces vorgegebenen Methoden Implementiert die Home/Remote Interfaces nicht direkt, sondern ist nur lose verpflichtet die vereinbarten Methoden zu implementieren Namenskonvention: DeinBeanNameBean.java Implementiert das SessionBean Interface public void ejbActivate() throws java.rmi.RemoteException; public void ejbPassivate() throws java.rmi.RemoteException; public void ejbRemove() throws java.rmi.RemoteException; public void setSessionContext(SessionContext ctxt) throws java.rmi.RemoteException; Enthält zu jeder create(...) eine korrespondierende ejbCreate(...) Methode

11 20.12.2000©2000, Elmar Seestädt11 CMP-Entity Bean Der EJB-Container übernimmt das Datenbankmapping Auf einfache Datenrelationen beschränkt Man braucht kein SQL selbst schreiben, sondern gibt nur die Datenfeld/Tabellenspalte Relation an Man hat evtl. Probleme bei der Skalierung der Applikation Für die Finder Methoden wird ein herstellerabhängiges kurzes Skript geschrieben

12 20.12.2000©2000, Elmar Seestädt12 Home Interface Gleiche Konventionen wie bei Session Beans Es gibt sog. Finder Methoden: Mindestens vorhanden: public DeinBeanName findByPrimaryKey(PKType pk) throws java.rmi.RemoteException, FinderException; Liefern entweder DeinBeanName oder Enumeration/Iterator Konvention: public... findByIrgendwas(...) throws java.rmi.RemoteException, FinderException;

13 20.12.2000©2000, Elmar Seestädt13 Bean Implementation Implements EntityBean public void ejbLoad() throws java.rmi.RemoteException; public void ejbStore() throws java.rmi.RemoteException; public void ejbActivate() throws java.rmi.RemoteException; public void ejbPassivate() throws java.rmi.RemoteException; public void ejbRemove() throws java.rmi.RemoteException; public void setSessionContext(SessionContext ctxt) throws java.rmi.RemoteException; public void unsetSessionContext() throws java.rmi.RemoteException; Die Methoden aus dem EntityBean Interface werden nur leer implementiert Man braucht nur die Business Methoden implementieren

14 20.12.2000©2000, Elmar Seestädt14 BMP-Entity Bean Man muß nun selbst das Finden, Laden, Speichern, Erzeugen und Zerstören der Beans kodieren Man kann auch komplexe Datenzusammenhänge modellieren Die entsprechenden SQL Befehle sind alle selbst zu schreiben Bei der Skalierung auftretende Probleme kann man nun durch schlaueren Code umgehen

15 20.12.2000©2000, Elmar Seestädt15 Bean Implementation Es wird wieder das EntityBean Interface implementiert Die vorgegebenen Methoden werden nicht leer, sondern mit Inhalt implementiert Zu den ejbCreate(...) Methoden gibt es korrespondierende ejbPostCreate(...) Methoden

16 20.12.2000©2000, Elmar Seestädt16 Implementationstrick Um Implementationsfehler zu umgehen kann man das Remote Interface implementieren. Damit man die EJBObject Methoden nicht implementieren muss gibt es folgenden Trick: EJBObjectDeinBeanNameRemote DeinBeanName erbt DeinBeanNameBean implementiert

17 20.12.2000©2000, Elmar Seestädt17 Literatur Java Enterprise in a Nutshell – David Flanagan Core Servlets and Java ServerPages – Marty Hall Designing Enterprise Applications with J2EE – Nicholas Kassem Enterprise JavaBeans – Richard Monson-Haefel


Herunterladen ppt "Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am 20.12.2000."

Ähnliche Präsentationen


Google-Anzeigen