Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

28.06.1999EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.

Ähnliche Präsentationen


Präsentation zum Thema: "28.06.1999EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise."—  Präsentation transkript:

1 EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise JavaBeans z Zusammenspiel mit anderen Architekturen

2 EJB, Norbert Schuler2 Was sind Enterprise JavaBeans? zIndustriell unterstützte serverseitige Komponentenarchitektur für die Java-Plattform yüber 40 Softwareentwickler haben Ihre Unterstützung für EJB Technolgie in Ihren Produkten zugesagt zEJB ist kein Produkt, sondern eine Spezifikation, die die Architektur der EJB-Komponenten und Schnittstellen zwischen EJB-Server und EJB-Komponenten definiert zdie Spezifikation wird von SUN entwickelt - dies soll aber in Kooperation mit dem Feedback der industriellen Partner und der Öffentlichkeit geschehen

3 EJB, Norbert Schuler3 Historie zErste Spezifikation 1.0 herausgegeben von SUN am 24. März 1998 zerste Produkte im frühen Sommer 1998 herausgebracht zerste größere Produkte (EJB-Server) jetzt verfügbar zEJB-Deployathon Event auf der JavaOne99 Konferenz (15-18 Juni) åanhand einer Beispielanwendung (Car Shipping) wird bei fertigen EJB- Server-Implementation demonstriert, ob und wie gut sie die EJB- Spezifikation (nur 1.0 erforderlich) erfüllen zEJB Spezifikation 1.1 Public Draft 2 am 24. Juni herausgegeben

4 EJB, Norbert Schuler4 Motivation zClient/Server Modelle: two-tier entwickelten sich zu three-tier (oder multi-tier) Modellen åKonzentration der fachlichen Anwendungslogik (business logic) in middle-tier mit unterliegenden Diensten für die Infrastruktur und client-seitigen Applikationen für die Benutzerschnittstelle zaus Zusammenschluß von drei Entwicklungskonzepten bildete SUN den EJB Standard yserverseitige Anwendungen in Java (wie mit Servlets eingeleitet) yKonnektoren zu bestehenden Enterprise Systemen (wie z.B. mit JDBC für Datenbanken) ymodulare, einfach zu verwendene Komponenten (wie bei JavaBeans) åSkalierbarkeit, einfache Entwicklung, Verwendung, Pflege und WORA (write once, run anywhere) für die Anwendungslogik

5 EJB, Norbert Schuler5 Architektur zEJB- Architektur : Standardarchitektur für Entwicklung von fachlicher Anwendungslogik in multi-tier Anwendungen als wiederverwendbare Komponenten zTeile der Architektur und deren Aufgaben yEJB Server xkapselt die vorhandenen Systeme und Resourcen, um fundamentale Dienste in einer standardisierten Schnittstelle für die Beans anzubieten yEJB home interface xermöglicht Zugriff auf Dienste zum Lebenszyklus eines Beans xnur für entity-beans: gibt Methoden zum Auffinden von Exemplaren an yEJB remote interface xdeklariert Methoden für fachlichen Zugriff auf das Beans

6 EJB, Norbert Schuler6 Architektur yEJB Komponenten (die eigentlichen Beans) xImplementation von Methoden korrespondierend zum home interface xImplementation von einfachen Callback-Interfaces zur Unterstützung der von Container zur Verfügung gestellten Dienste xImplementation fachliche Anwendungslogik nach remote interface xSession-Beans existieren nur für die Dauer einer Sitzung zwischen Client und Server eingesetzt für Berechnungen oder Zugriffe auf Datenbanken xEntity-Beans bilden Objektrepräsentationen von persistenten Daten jedes Exemplar mit Primärschlüssel gekennzeichnet können Ihre Persistenz selbst verwalten oder Container überlassen yDeployment Descriptor xenthält Einstellungen für Lebenszyklus, Transaktionsverhalten, Sicherheit und Persistenz des Beans

7 EJB, Norbert Schuler7 Architektur yEJB Container ximplementiert home und remote interfaces des Beans bei Installation des Beans im Server und veröffentlicht es unter Verwendung von JNDI xhängt sich über Interfaces des Beans zwischen alle Methodenaufrufe des Clients an ein Bean - dies geschieht transparent für den Client xverwaltet Lebenszyklus der Komponenten, Transaktionen und Sicherheit und bei Bedarf auch Persistenz nach Angaben im deployment descriptor xverdeckt für den Client die mögliche Trennung von Bean und Client in verschiedene Umgebungen auf verschiedenen Systemen im Netzwerk åder Container ist damit nicht unbedingt eine physikalische Einheit yEJB-Client xfindet Beans per JNDI xverwendet Beans über home und remote interfaces

8 EJB, Norbert Schuler8 Konstruktion zKonstruktion eines session beans yremote interface yhome interface ybean class ydeployment descriptor yclient zBean ist in jedem EJB-Container/-Server lauffähig, wobei nur der deployment descriptor und vielleicht der Client-Code angepasst werden müssen

9 EJB, Norbert Schuler9 Konstruktion: remote interface zgibt die anwendungsfachliche Schnittstelle des Beans zum Client an zImplementation des Interface geschieht durch den Container bei der Installation des Beans im Server, damit sich der Container bei allen Client-Methodenaufrufen einklinken kann zder Entwickler muß entsprechende Methoden auch am Bean implementieren package ejb.demo; import java.rmi.RemoteException; import java.rmi.Remote; import javax.ejb.*; public interface Demo extends EJBObject, Remote { public String demoSelect() throws RemoteException; }

10 EJB, Norbert Schuler10 Konstruktion: home interface zanhand des home interface kann der Container ein neues Bean auf Geheiß des Clients erzeugen zImplementation des Interface geschieht ebenfalls durch den Container bei der Installation des Beans im Server, so daß sich der Container bei allen Client-Methodenaufrufen einklinken kann package ejb.demo; import javax.ejb.*; import java.rmi.Remote; import java.rmi.RemoteException; import java.util.*; public interface DemoHome extends EJBHome { public Demo create() throws CreateException, RemoteException; }

11 EJB, Norbert Schuler11 Konstruktion: bean class package ejb.demo; import javax.ejb.*; import java.io.Serializable; import java.util.*; import java.rmi.*; public class DemoBean implements SessionBean { zImplementation der durch die EJB-Spezifikation vorgegebenen Schnittstellen für ein Bean // Implement the methods in the SessionBean interface public void ejbActivate() {... } public void ejbRemove() {... } public void ejbPassivate() {... } // Sets the session SessionContext public void setSessionContext(SessionContext ctx) {... }

12 EJB, Norbert Schuler12 Konstruktion: bean class zwenn die Methode create() im home interface aufgerufen wird, erzeugt der Cointainer ein Bean und ruft daran die folgende Methode auf public void ejbCreate () {... } zdie eigentliche Implementation der Anwendungslogik (business logic) wie auch schon im remote interface angegeben public String demoSelect() throws RemoteException { return("hello world"); }

13 EJB, Norbert Schuler13 Konstruktion: deployment descriptor zZur Erinnerung der Begriffsbildung: ydeployment: Installation eines Enterprise JavaBeans in einen Enterprise JavaBeans Container, dabei werden u.a. die Klassen zur Implemention des home und remote interfaces erzeugt ydeployment descriptor: enthält Einstellungen für Lebenszyklus, Transaktionsverhalten, Sicherheit und Persistenz des Beans, nach denen der Container das Bean verwaltet zEs gibt keinen vorgeschriebenen Weg, den deployment descriptor zu erzeugen, dies geschieht nach der jeweiligen Implemention des EJB Servers/Containers åAnpassungen notwendig bei Wechsel des EJB-Servers

14 EJB, Norbert Schuler14 Konstruktion: client package ejb.demo; import javax.ejb.*; import javax.naming.*; import java.rmi.*; import java.util.Properties; public class DemoClient { public static void main() { try { zErzeugung eines Kontext für JNDI Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.T3InitialContextFactory"); p.put(Context.PROVIDER_URL, "t3://localhost:7001"); Context ctx = new InitialContext(p); zhier ist der Client-Code abhängig vom verwendeten EJB-Server und muß bei einem Wechsel angepaßt werden

15 EJB, Norbert Schuler15 Konstruktion: client zLookup des home interface per JNDI DemoHome dhome = (DemoHome) ctx.lookup("demo.DemoHome"); zErzeugung eines Exemplars des JavaBeans durch den Container anhand der create()-Methode des home interface Demo demo = dhome.create(); zAufruf der Anwendungslogik im JavaBeans durch den Container anhand der Schnittstelle im remote interface System.out.println("The result is " + demo.demoSelect()); } catch (Exception e) { System.out.println(" => Error <="); e.printStackTrace(); } }

16 EJB, Norbert Schuler16 Zusammenspiel mit anderen Architekturen zEJB und Corba yEJB soll Corba jetzt und in Zukunft unterstützen yBeans remote und home interfaces basieren auf RMI und können daher mit CORBA Objekten über RMI/IIOP (RMI Adaption von SUN/IBM, die das IIOP Protokoll erfüllt) zusammenarbeiten yFür die EJB API hat SUN eine standardisierte Abbildung auf CORBA IDL geschaffen yJTA (für Transaktionsverwaltung) kann leicht als Schicht über OMG OTS gelegt werden zTransaktionen können vom Container, aber auch vom Client oder Beans selbst verwaltet werden, die dann JTA verwenden können zPersistenz kann vom Container oder Beans selbst verwaltet werden, welches dann JDBC/JSQL verwenden kann


Herunterladen ppt "28.06.1999EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise."

Ähnliche Präsentationen


Google-Anzeigen