Enterprise JavaBeans (mit JBoss) Christian Hülsmeier 30.10.2004 Enterprise JavaBeans (mit JBoss) Überblick Rekapitulation des vorhandenen Wissen Entity-Beans Session-Beans Deployment-Deskriptor Sichten / Client-Anwendungen Applikationsserver (JBoss) Fallbeispiel Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 2 1 Enterprise JavaBeans (mit JBoss) Rekapitulation des vorhandenen Wissen Was ist Enterprise JavaBeans? verschiedene Beantypen (Entity- und Session-Beans) Bestandteile einer Enterprise JavaBean ein Client benutzt verschiedenen Interfaces, um Zugriff auf eine Bean zu erlangen Beans werden mit Hilfe eines Deployment-Deskriptor in einem Applikationsserver bereit gestellt Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 3 Enterprise JavaBeans (mit JBoss) Entity-Beans Geschäftsobjekt, dessen Daten sich in einem dauerhaften Speicher befinden, z.B. eine relationale Datenbank vergleichbar mit Entitäten im E-R-Modell oder einfacher: Tabelle in einer Datenbank zentrale Ressource ⇒ Bean-Instanz von mehreren Clients gleichzeitig genutzt Applikationsserver synchronisiert gleichzeitige Zugriffe auf die Bean-Instanzen wird eine Instanz nicht (mehr) benötigt, so wird sie „gepoolt“, d.h. die Instanz ist keinem EJB-Objekt zugeordnet Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 4 2 Enterprise JavaBeans (mit JBoss) Entity-Beans Es gibt zwei verschiedene Persistenzformen: Bean-Managed-Persistence (BMP) - Entwickler stellt Persistenz via SQL selber sicher Container-Managed-Persistence (CMP) - Applikationsserver übernimmt Persistenz ⇒ O-R-Mapping - Foreign-Key-Beziehungen zwischen Entity-Beans über Container-Managed-Relationsships (CMR) - O-R-Mapping und CMR im Deplyoment-Deskriptor - Suchanfragen mittels EJB QL (ähnelt SQL) Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 5 Enterprise JavaBeans (mit JBoss) Session-Beans Geschäftsobjekt, das die Logik eines Geschäftsprozesses realisiert Einsatz bei Zugriff aus konzeptübergreifende Daten serverseitige Erweiterung einer Anwendung Zusammenhang Session- und Entity-Beans wie „Drehbuch zu Schauspieler“ Unterscheidung von zustandslosen (stateless) und zustandsbehafteten (statefull) Session-Beans Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 6 3 Enterprise JavaBeans (mit JBoss) Session-Beans Stateless Session-Beans - keinen persistenten Zustand ⇒ leichtgewichtig - Lebensdauer bezogen auf Client: ein Methodenaufruf - Beispiel: Erzeugen von Berichten, Überprüfen von Kreditkarten - i.A.: generische, wiederverwendbare Dienste Statefull Session-Beans - persistenter Zustand ⇒ schwergewichtig - Lebensdauer bezogen auf Client: Dauer einer Sitzung - Beispiel: Einkaufswagen Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 7 Enterprise JavaBeans (mit JBoss) Deployment-Deskriptor ähnelt einer Eigenschaftsdatei Konfiguration des Verhalten der Komponente Inhalte: - Bean-Definition - CMP-Felder-Definitionen - CMR-Definitionen Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 8 4 Enterprise JavaBeans (mit JBoss) Sichten / Client-Anwendungen EJB als Client einer EJB - Zugriff über lokale Interfaces Web-Applikation als Client einer EJB - Zugriff über entfernte Interfaces, obwohl (evtl. im gleichen Server) Java-Anwendung als Client einer EJB - Zugriff über entfernte Interfaces ⇒ lokale Interfaces wurden eingeführt, da es keinen Sinn machte, dass EJBs auch über RMI auf andere EJB zugreifen Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 9 Enterprise JavaBeans (mit JBoss) Applikationsserver (JBoss) Geschäftsprozesse im Internetbeherrschbar machen Kombination aus Technologien wie: Webservern, ORBs, MOM, Datenbanken etc. Laufzeitumgebung für EJB-Container EJB-Container: Laufzeitumgebung für EJB-Komponenten Persistenz-Manager: ermöglicht CMP Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 10 5 Enterprise JavaBeans (mit JBoss) Applikationsserver (JBoss) JBoss ist ein Open-Source-Applikationsserver aktuelle Version(en): 3.2.3 (stable) und 4.0 (developer release) Kostenlos, aber Dokumentation und Support (weitestgehend) kostenplichtig bietet laut Herstellen vollen J2EE-Support aber(!!!): (noch) nicht J2EE-zertifiziert Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 11 Enterprise JavaBeans (mit JBoss) Fallbeispiel Beispiel: Seminarverwaltung Session-Beans Seminarverwaltung (Funktionen zum An-/Abmelden von Seminaren und Anlegen von Seminaren, Studenten und Dozenten) Entity-Beans Student, Seminar, Dozent, Lehrgebiet Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 12 6 Enterprise JavaBeans (mit JBoss) Diskussion Fragen? Nein? Dankeschön! Diskussion! Enterprise JavaBeans (mit JBoss) 30.10.2004 Folie 13 7