Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick
Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung einer Plattform für unternehmensweite Software auf Basis von Java. Im Rahmen des "Java Community Process" wurden eine Vielzahl von Erweiterungen definiert: die Enterprise Java APIs (Application Programming Interfaces). 1999 wurde diese Plattform standardisiert und ist seither unter dem Namen Java 2 Platform, Enterprise Edition (J2EE) bekannt. Mitte 2006 neue Version und Umbenennung in Java Enterprise Edition (Java EE) EJB1-2
Woraus besteht Java EE? APIs um server-side Java application components zu entwickeln, die innerhalb eines Java EE Applikationsserver laufen: business logic components API: Enterprise JavaBeans (EJB) web-gui components API: Java Servet and Java Pages (JSP) APIs die von Applikationsservern implementiert werden müssen: JDBC, JMS, JNDI, Security, Transactions, legacy integration, APIs Die deployment specification legt fest, wie Applikationen auf jeder Java EE compatible platform "deployed" werden können. EJB1-3
Was bringt Java EE? Java EE minimiert den Aufwand zur Erstellung von Applikationen durch Trennung: business and presentation logic wird vom Applikationsentwickler implementiert ist portabel zwischen verschiedenen Applikationsservern Einstellungen zu Security, Persistenz und Transaktionsmanagement erfolgen zum Deploy-Zeitpunkt und zur Laufzeit, ohne Änderungen am Java Quellcode komponentenbasierte Applikationen: Wiederverwendbar! standard system services werden von der Plattform bzw. dem bereitgestellt dazu kommen: Clustering und Load Balancing EJB1-4
3-Ebenen Applikationsmodell mit J2EE Java EE Komponenten Client Schicht Middleware EIS Schicht (Enterprise Information Systems) Web Browser Applet HTTP, HTTPS, XML Java EE Plattform Web (JSP/Servlet) Web Web Container JSP/Servlets Darstellungslogik (seitig) Altanwendung Java Client SOAP Client COM Client RMI/IIOP SOAP DCOM/CORBA-IIOP EJB EJB Container EJBs Datenbank CORBA Client IIOP Geschäftslogik (seitig) EJB1-5
Die mittlere Ebene Hauptvorteil des Middleware Ansatzes ist die Trennung: Darstellungslogik Geschäftslogik Daten Java EE Applikationen seitige Applikationslogik seitige Darstellungslogik Die Integration von Altsystemen ("legacy systems") wird auch berücksichtigt. EJB1-6
Die Architektur Web Browser Anwendung HTML Seiten Java Pages HTTP TCP IP Der Web verarbeitet HTTP Aufrufe von Web-Browsern Web JSP & Servlet Engine JSP Processor Java Servlet Session Bean Die JSP/Servlet Engine verwaltet: Web Applikationen Servlets/JSP Seiten Der EJB Container verwaltet: seitige Geschäftslogik Enterprise JavaBeans Entity Bean JNDI Context J2EE Komponenten EJB1-7
Der Java EE App Machine 1 Client Client Client App App Dispatcher R R R R R R App Machine 2 App R R R R R R App Bietet die Java EE-Dienste gemäß Standard an. Verwaltet Resourcen: Thread- and process management Clustering and Scalability Memory-Management Access to and pooling of system resources (network sockets...) Database Persistent Data EJB1-8
J2EE 1.2 / 1.3 / 1.4 Enterprise JavaBeans (EJB) 1.1 / 2.0 / 2.1 Java Pages (JSP) 1.1 / 1.2 / 2.0 Java Servlet 2.2 / 2.3 / 2.4 Java Transaction API (JTA) 1.0 RMI/IIOP 1.0.1 Java IDL Java Database Connectivity (JDBC) 2.0 / 3.0 Java Message Service (JMS) 1.0.2 Java Naming and Directory Interface (JNDI) 1.2 JavaMail 1.1 / 1.2 with JavaBeans Activation Framework (JAF) J2EE Connector Architecture (JCA) 1.0 / 1.5 Java Authentication and Authorisation Service (JAAS) 1.0 Java API for XML Parsing (JAXP) 1.1 supports XSLT, SAX and DOM EJB1-9
Java EE 5 Web Services Technologies Web Application Technologies Java Servlet 2.5 Java Faces 1.2 Java Pages (JSP) 2.1 Enterprise Application Technologies Enterprise JavaBeans (EJB) 3.0 Java EE Connector Architecture (JCA) 1.5 Java Persistence API Java Transaction API (JTA) Management and Security Technologies EJB1-10
Enterprise JavaBeans (EJB) Die Enterprise JavaBeans (EJB) Spezifikation definiert: verteilte, serverseitige Komponenten zur serverseitigen Implementierung der Anwendungslogik Der EJB Container ist die Laufzeitumgebung der Enterprise Beans: Er kontrolliert den "Life-Cycle" der Enterprise Bean Instanzen: Erzeugung / Löschung Aktivierung / Passivierung (swapping ins File-System) Verteilung über Prozesse und Der Anwender braucht kein Wissen darüber, auf welchem sich seine Bohnen befinden. Er bietet Dienste über standardisierte Schnittstellen: Transaktionsverwaltung, Persistenz und Security- Management können vom EJB Container oder der Bohne selbst kontrolliert werden. EJB1-11
EJB Architektur Rollen Verteilung der Verantworlichkeiten im Entwicklungsprozess Spezifikation mehrerer unterschiedlicher Rollen. Jede Rolle kann durch einen anderen Experten im jeweiligen Gebiet ausgefüllt werden EJB1-12
J2EE Provider IBM: Websphere BEA: Weblogic Oracle: Oracle Application SAP: SAP J2EE Engine Sun: iplanet Macromedia: JRun jboss JonAS... EJB1-13