Enterprise JavaBeans + Referenten Albrecht Karlusch Konradin Maier Elisabeth Vinek Alexis Robin Rondeau Peter Beran Leitung Mag. Rainer Schmidt + [email protected] [email protected] [email protected] [email protected] [email protected] EJB – Was ist denn das? EJB ist eine Architektur bzw. ein Framework für komponentenbasierte verteilte Anwendungen. Die EBeans sind hierbei die Komponenten verteilter, transaktionsorientierter Anwendungen, die dem WORA Paradigma folgen Die EBeans werden im Programm durch Objekte repräsentiert EJB – Was ist denn das? Die EJB-Spezifikation ist in gewisser Weise die Konvergenz von zwei Technologien: TP-Monitore und verteilter Komponentenservices (Java RMI, CORBA, DCOM) EJB Server bieten eine TP-Monitor ähnliche Umgebung für verteilte Komponenten. Die EBeans finden wir… entspricht TP Monitor J2EE-Server EJB-Container Client RMI RDBS Client EJB Client EJB EJB O O DBMS Client Services Präsentationsschicht Mittelschicht Ressourcenschicht EJBs – allgemeiner Aufbau Arten von JavaBeans Session Bean Stateless Stateful Entity Bean Bean managed Container managed Message Driven Bean EJB - Vorteile Komponentenarchitektur unterschiedliche Programmiersprachen Trennung von Interface und Implementation erhöhte Wiederverwendbarkeit vorgefertigte Komponenten Komponenten hoher Qualität EJB - Vorteile 2 Verschiedene Clients möglich EJB ist auch verteilt Zugriff auf alle EJBs im Netzwerk möglich Multiuser- fähig Protokoll unabhängig IIOP, JRMP, HTTP... EJB - Vorteile 3 Applikationsserver übernimmt Infrastrukturaufgaben Skalierbarkeit durch Cluster Ressourcen- Pooling Persistenz Sicherheit Zustandsmanagement,... EJB - Vorteile 4 Verbesserter SWE- Prozess durch Wiederverwendbarkeit deskriptive Realisierung von Infrastrukturaufgaben n- Tier Architekturen möglich Thin- Clients Rollen in einer EJB-Umgebung EJB-Container Geschäftsmethode, Lebenszyklus-Methode (verwaltet Transaktionen, Ressourcen-Pooling, Persistenz) EJB-Client EJB-Objekte (führen Geschäftsmethoden aus) Antwort Das EJB-Objekt Drei Java-Interfaces/Klassen: Ein Bean (Client)-Interface (entfernte und/oder lokale Version) Ein Home-Interface (entfernte und/oder lokale Version) Eine Bean-Implementierung: implementiert alle Methoden der Interfaces + Methoden für den Container Der EJB-Client Benutzt entfernte EJB-Objekte, damit diese auf Daten zugreifen, Aufgaben ausführen usw. Schritte, die der Client durchführt: Er holt einen JNDI-Kontext vom J2EE/EJBServer. Er sucht mit diesem Kontext das HomeInterface der zu verwendenden Bean. Mit Hilfe des Home-Interfaces erzeugt (oder findet) er eine Referenz auf eine EJB. Er ruft Methoden dieser Bean auf. Der EJB-Container Das „Herz“ der EJB-Umgebung Aufgaben: Registrierung der Home-Interfaces in einem JNDI Namensraum Verwaltung der Lebenszyklen der Beans Transaktionsverarbeitungen Sicherheit Ressourcen-Pooling Datenpersistenz Erzeugung von Klassen, die die einzelnen Komponenten zusammenhalten EJBs auf einen Blick Home-Interface Erzeugen/Finden/Löschen Erzeugen/Finden/Löschen Home-Stub ClientInterfaceStubs Client EJBContainer Home-Imple mentierung Geschäftsmethoden/Löschen Mitteilungen Bean-Imple mentierung Client-Interface Löschen Container-generie rte Sub-Klasse (optional) Client-Stub Geschäftsmethoden Client Server Deployment Vorweg: Package javax.ejb Application Server (z.B. JBoss), EJB-Container integriert EJB-Komponenten in JAR-Dateien verpackt. EJB-Komponenten mit Deployment-Deskriptoren beschrieben. „Inbetriebnahme“: Deployment-Informationen in Form einer XML-Datei. Generieren der vom Container zur Verfügung gestellten Klassen. Verpacken der EJBs in einer ejb-jar Datei. Zielgruppen erfahrene Java- bzw. EnterpriseEntwickler Softwareentwickler IT-Systemanalytiker IT-Fach und -Führungskräfte IT-Entscheidungsträger „Open Source“ - Unternehmen Hersteller SUN Microsystems (http://java.sun.com/products/ejb/) JCP (Java Community Process) Versionen EJB 2.1 (Final Release) EJB 3.0 (Early Draft Review) Application Server Anbieter Sun Java System Application Server 8 2004Q4 JBoss Inc JBoss Application Server 4.0.0 Object Web Consortium Enhydra Server 5.1-16 Dev2Dev BEA WebLogic Server 8.1 Schlussworte Herzlichen Dank für Eure Aufmerksamkeit !!