© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34
© 2012 TravelTainment Agenda Motivation Java Enterprise Edition Enterprise JavaBeans SessionBeans Lifecycle Callbacks Business Interfaces Beispiel Verwendung der EJBs MessageDrivenBeans Fazit Folie 2 von 34
© 2012 TravelTainment Motivation Folie 3 von 34
© 2012 TravelTainment Motivation Folie 4 von 34
© 2012 TravelTainment Enterprise Edition Folie 5 von 34
© 2012 TravelTainment Enterprise Edition Erste Version 1999 als J2EE veröffentlicht Erweiterung der Standard Edition Sammlung von Standardimplementierungen Entwickler sollen sich ganz auf die eigentliche Problemstellung konzentrieren Austauschbarkeit und Wiederverwendbarkeit Folie 6 von 34
© 2012 TravelTainment Enterprise Edition keine einfache Bibliothek Spezifikation Funktionalität Schnittstelle Aktuelle Version Java EE 6 (2009) Folie 7 von 34
© 2012 TravelTainment Enterprise Edition Implementierung durch Application Server Laufzeitumgebung Container Web-Container EJB-Container (Business-Container) Hersteller Oracle Glassfish (Referenzimplementierung) JBoss Application Server IBM WebSphere Standalone-Module (z.B. Java Persistence API) Folie 8 von 34
© 2012 TravelTainment Enterprise Edition Folie 9 von 34
© 2012 TravelTainment Enterprise JavaBeans Folie 10 von 34
© 2012 TravelTainment Enterprise JavaBeans Abkürzung „EJB“ Werden im EJB-Container ausgeführt Einfache Java-Klassen Plain Old Java Objects (POJOs) Standardkonstruktor ist Pflicht „Convention over Configuration“ Konfiguration bei Abweichung Annotationen Deployment-Deskriptoren Folie 11 von 34
© 2012 TravelTainment SessionBeans Folie 12 von 34
© 2012 TravelTainment Stateless SessionBeans Keinen Zustand bzw. Identität Alle Beans identisch Pool aus EJBs im Application Server konfigurierbar Lastverteilung und Skalierung Beispielanwendung: Suchmechanismus Folie 13 von 34
© 2012 TravelTainment Stateful SessionBeans Identität assoziiert mit Client Client bekommt „sein“ Bean Kein Pool Hoher Ressourcenverbrauch Ein- und Auslagerung Serializable-Interface Beispielanwendung: Warenkorb Folie 14 von 34
© 2012 TravelTainment Singleton SessionBean Design Pattern nur ein Objekt pro Anwendung Nur ein EJB pro Anwendung Alle Clients kommunizieren mit diesem Objekt Flaschenhals Existiert die komplette Anwendung über Beispielanwendung: Cache Folie 15 von 34
© 2012 TravelTainment Lifecycle Callbacks Folie 16 von 34
© 2012 TravelTainment Beliebiger Zugriffsmodifizierer Rückgabetyp: void Keine Parameter Folie 17 von 34
© 2012 TravelTainment Business Interfaces Folie 18 von 34
© 2012 TravelTainment Business Interfaces Java-Interface mit den Geschäftsmethoden Zugriff aus anderer JVM Parameter und Rückgabewerte werden serialisiert Zugriff nur aus gleicher JVM Referenzübergabe Zugriff nur aus gleicher JVM No-Interface View Folie 19 von 34
© 2012 TravelTainment Beispiel Folie 20 von 34
© 2012 TravelTainment Beispiel Folie 21 von 34
© 2012 TravelTainment Beispiel Folie 22 von 34
© 2012 TravelTainment Verwendung der EJBs Folie 23 von 34
© 2012 TravelTainment Verwendung der EJBs Java Naming and Directory Interface (JNDI) Für lokalen und entfernten Zugriff Dependency Injection (DI) Nur lokaler Zugriff Folie 24 von 34
© 2012 TravelTainment Java Naming and Directory Interface Dienst im Application Server Eine Art DNS-Server für Objekte DNS-ServerClient Folie 25 von 34
© 2012 TravelTainment Java Naming and Directory Interface Dienst im Application Server Eine Art DNS-Server für Objekte JNDIKomponente Objekt mit dem Namen xyz? Objektreferenz Folie 26 von 34
© 2012 TravelTainment Dependency Injection Instanzvariable Setter Container injiziert passende Referenz „Inversion of Control“ Hollywood-Prinzip: „Don‘t call us, we‘ll call you!“ Folie 27 von 34
© 2012 TravelTainment MessageDrivenBeans Folie 28 von 34
© 2012 TravelTainment MessageDrivenBeans Asynchrone Nachrichtenverarbeitung Java Message Service (JMS) Kommunikationsarten Point-To-Point (Queue) Public-Subscribe (Topic) MessageListener-Interface onMessage-Methode Folie 29 von 34
© 2012 TravelTainment Fazit Folie 30 von 34
© 2012 TravelTainment Fazit Enterprise Edition und Application Server erleichtern die Entwicklung deutlich EJBs einfach zu verwenden Minimum an Konfiguration Komplexe Anwendungen lassen sich schnell entwickeln Folie 31 von 34
© 2012 TravelTainment Fazit Ressourcenverbrauch im Auge behalten Standardimplementierungen meist langsamer als native Implementierung Ungeeignet für hochperformante Systeme Folie 32 von 34
© 2012 TravelTainment Fragen? Folie 33 von 34
© 2012 TravelTainment Vielen Dank! Folie 34 von 34