Programmierung von Client/ServerAnwendungen J2EE bzw. Java EE Back End Applikationen (EJB-Container) 03.10.2005 Prof. Dr. Andreas Schmietendorf 1 Übersicht Java Naming and Directory Interface – JNDI Enterprise Java Beans im Überblick Struktur von EJB-Komponenten (Implementierungsbeispiel) Vorbereitung des Deployment-Prozesses Auslösen des Deployment-Prozesses Installation von SUN‘s Referenzumgebung Funktionenen des SUN-Applikation Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf 2 Java Naming and Directory Interface - JNDI 03.10.2005 Prof. Dr. Andreas Schmietendorf 3 JNDI Unterstützung der Kommunikation über Rechnergrenzen - Angebotene Services eines Rechners? - Wo sind entsprechende Objekte abgelegt? vgl. Suche im Rahmen eines Telefonbuches JNDI – Spezifikation eines verwendbaren Interfaces - Einhaltung der JNDI-Konventionen - Implementierung eines konkreten Dienstes Service Provider Interface (kurz SPI) 03.10.2005 Prof. Dr. Andreas Schmietendorf 4 JNDI Anwendung JNDI Naming Manager SPI RMI CORBA LDAP Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle, Addison-Wesley, Pearson Studium, München 2005 03.10.2005 Prof. Dr. Andreas Schmietendorf 5 JNDI Beispiele für SPI-Implementierungen: Lightweight Directory Access Protocol (LDAP-Standard) Domain Name Service (DNS) CORBA Naming Service (COS) RMI Registry Network Information System (NIS) Novel Directory Service (NDS) Windows Registry 03.10.2005 Prof. Dr. Andreas Schmietendorf 6 JNDI Naming Service – Aufbau von Namen: Atomic Name - Nicht weiter zerlegbar - Atomare Zeichenkette – z.B. sun Compound Name - Zusammengesetzter Name - java.sun.com oder /products/jndi/index.jsp Composite Name - Zusammengefasster Name - java.sun.com/products/jndi/index.jsp Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle, Addison-Wesley, Pearson Studium, München 2005 03.10.2005 Prof. Dr. Andreas Schmietendorf 7 JNDI Einstiegepunkt zum benötigten Service/Objekt: InitialContext vom Typ javax.naming.Context Basis-Operationen des JNDI-Kontextobjektes - bind (Ablegen eines Objektes im aktuellen Kontext) - unbind (Löschen eines Objektes aus dem Kontext) - rebind (Möglichkeit zum Überschreiben eines alten Objektes) - list (Auflisten aller gebundenen Objekte) - createSubcontext (Erzeugen eines Unterkontextes) - lookup (Liefert ein gebundes Objekt zurück) 03.10.2005 Prof. Dr. Andreas Schmietendorf 8 JNDI Konstanten des Interface javax.naming.Context : INITIAL_CONTEXT_FACTORY (Schnittstelle zum SPI) PROVIDER_URL (URL des Service) SECURITY_PROTOCOL (Typ des Protokolls – z.B. SSL) SECURITY_PRINCIPAL (Nutzername) SECURITY_CREDENTIALS (Passwort) Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle, Addison-Wesley, Pearson Studium, München 2005 03.10.2005 Prof. Dr. Andreas Schmietendorf 9 JNDI Konfiguration des InitialContext (hier Zugriff auf LDAP): try { // Umgebung erzeugen Hashtable env = new java.util.Hashtable(); // Dienst spezifizieren env.put(Context.INITIAL_CONTEXT_FACTORY, „com.sun.jndi.ldap.LdapCtxFactory“); // Provider URL spezifizieren env.put(Context.PROVIDER_URL, „ldap://localhost:389“); Context initCtx = new InitialContext(env); }catch(NamingException ne){ ne.printStackTrace(); } Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle, Addison-Wesley, Pearson Studium, München 2005 03.10.2005 Prof. Dr. Andreas Schmietendorf 10 Enterprise Java Beans im Überblick 03.10.2005 Prof. Dr. Andreas Schmietendorf 11 EJB-Überblick SUN‘s EJB Definition: Ein The Enterprise Java Beans architecture is a component architecture for the development and deployment of component-based distributed business applications. Applications written using the Enterprise Java Beans architecture are scalable, transactional, and multi-user secure. These applications may be written once, and then deployed on any server platform that supports the Enterprise Java Beans specification. 03.10.2005 Prof. Dr. Andreas Schmietendorf 12 EJB-Überblick Enterprise-JavaBeans(EJB)-Architektur I: Server-seitige Java-Komponenten (Focus: Anwendungslogik) SUN bietet Spezifikation für EJB‘s, Container und Server - Referenzimplementierung J2EE bzw. Java EE - Vielzahl angebotener Applikation-Server • JBoss (www.jboss.org) • BEA WebLogic (www.bea.com) • IBM WebSphere (www.ibm.com) Portable Anwendungen auf der Basis von EJB‘s - Hardwareunabhängig - Betriebssystemunabhängig - Unterstützung verschiedener Sprachen und CORBA 03.10.2005 Prof. Dr. Andreas Schmietendorf 13 EJB-Überblick Enterprise-JavaBeans(EJB)-Architektur II: Abstraktes Programmierinterface - Entlastung von “low-level“ Aufgaben wie z.B. • Transaktionsverwaltung • Multithreading • Ressourcenverwaltung - Unterstützung der Wiederverwendbarkeit Die Entwicklung sollte möglichst unabhängig von der Installation, Konfiguration, Auslieferung und dem Betrieb ablaufen können - ITIL Service Delivery - ITIL Service Support 03.10.2005 Prof. Dr. Andreas Schmietendorf 14 EJB-Überblick Container-Konzept I: Behälter bzw. Laufzeitumgebung für Softwarekomponenten Container definiert nach außen einen abgeschlossenen Bereich Überwachung des Lebenszyklus einer EJB - Erzeugen von EJB-Instanzen - Verwalten und Steuern der möglichen Zustände eines EJB - Entfernen von EJB-Instanzen Bestandteil eines konkreten Applikation Servers Unzureichenden Portabilität durch Verwendung Herstellerspezifischer API‘s 03.10.2005 Prof. Dr. Andreas Schmietendorf 15 EJB-Überblick Container-Konzept II (Aufgaben): Überwachen des Lebenszyklus von EJB‘s Instanzen Pooling (Verwaltung eines Pools von EJB‘s) Namens- und Verzeichnisdienst Transaktionsdienst (ACID-Prinzip) Nachrichtendienst (Message Service) Persistenz (CMP - Container Managed Persistence) Clustermechanismen - meist Herstellerspezifisch! 03.10.2005 Prof. Dr. Andreas Schmietendorf 16 EJB-Überblick Container-Konzept III (unterstütze API‘s – Spezifikation 2.1): J2SE Version 1.3 EJB Version 2.1 JMS API Version 1.x JNDI Api Version 1.2 JDBC API Version 2.0 JavaMail API ab Version 2.1 Java API for XML Processing (JAXP) 03.10.2005 Prof. Dr. Andreas Schmietendorf 17 EJB-Überblick EJB - Eigenschaften: Component Model (Session-, Entity- und Message-Driven Beans) Component Persistence - BMP - bean managed Persistence CMP - container managed Persistence Transaction-Management (Java-Transaction-API) Exceptions (Client und Server) Security Naming und Directory Service (JNDI) Protocoll-Support (RMI, IIOP,...) CORBA-Support (Mapping and Services) Attribute-based Programming (Deployment Descriptor File) Deployment (EJB JAR-Files) 03.10.2005 Prof. Dr. Andreas Schmietendorf 18 EJB-Überblick Clients HTML JavaApplications CORBA HTTP, HTTPS (HTML/XML) Web-Server Web-Container JSP/Servlets JNDI, RMI over IIOP IIOP (CORBAMapping) EJB EJB-Container MOM JMS Messageorientiend Middleware JDBC EJB Server Datenbank COM/Windows 03.10.2005 DCOM/CORBA ActiveX-Bridge Low-LevelServices Prof. Dr. Andreas Schmietendorf 19 EJB-Überblick Rollenverteilung mit EJB‘s: Das EJB-Modell unterstützt eine arbeitsteilige Fertigung, Verarbei-tung, Auslieferung und Administration beanbasierter Applikationen: EJB-Provider - Lieferant der Java-Kompoenten Application Assembler - Anwendungsentwickler (komplexere EJB‘s) EJB-Deployer - Installation und Konfiguration der Umgebung System-Administrator - Administration Server- und Netzinfrastruktur EJB-Server-Provider - Anbieter von Applikation-Server EJB-Container-Provider - Laufzeitumgebung für EJB‘s (derzeit fast immer im Zusammenhang mit dem Applikation-Server) 03.10.2005 Prof. Dr. Andreas Schmietendorf 20 EJB-Überblick EJB - Spezifikation 1.0: Bean-Typen: Session Beans, Entity Beans (optional) Aufruf von Funktionen: synchron Deployment-Deskriptor: serialisierte Klasse Kommunikationsprotokoll: Java-RMI Benötigtes JDK: Version 1.1 03.10.2005 Prof. Dr. Andreas Schmietendorf 21 EJB-Überblick EJB - Spezifikation 1.1: Bean-Typen: Session Beans, Entity Beans Aufruf von Funktionen: synchron Deployment-Deskriptor: XML-konforme Datei Kommunikationsprotokoll: Java-RMI over IIOP und CORBA/IIOP (optional) Benötigtes JDK: Version 1.2 03.10.2005 Prof. Dr. Andreas Schmietendorf 22 EJB-Überblick EJB - Spezifikation 2.0: Bean-Typen: SB, EB, Message-Driven Beans Aufruf von Funktionen: synchron und asynchron Deployment-Deskriptor: XML-konforme Datei lokale Ausprägungen des Home/Remote-Interface Kommunikationsprotokoll: Java-RMI/IIOP & CORBA/IIOP Datenbank-Mapping EJB QL (Persistenz-Managers) Relationen zwischen EJB‘s Benötigtes JDK: Version 1.3.x 03.10.2005 Prof. Dr. Andreas Schmietendorf 23 EJB-Überblick EJB - Spezifikation 2.1: erste Entwurfsversion war am 19. Juni 2002 verfügbar Primäre Erweiterung - Web Service Unterstützung - Web Services APIs (JAX-RPC and JAXM) - Stateless Session Beans und Message Driven Beans als Web Service Erweiterungen der EJB-QL MDB-Erweiterung um JMS (weite MOM-Unterstützung) Steuerung des Nachrichtenaustausch zwischen EJB‘s Time/Event-Service 03.10.2005 Prof. Dr. Andreas Schmietendorf 24 EJB-Überblick EJB - Spezifikation 3.0 – auffallende Änderungen: Verwendung von Java-Annotationen - Reduktion der benötigten Klassen und Interfaces - Vermeidung redundanter Konfigurationen - Beziehungen zur Umgebung bzw. JNDI festlegen Veränderung des Deployment-Vorganges - Deployment-Discriptoren sind optional - Vordefinierte Wertbelegungen für Konfigurationsparameter - Konfiguration ggf. vorhandener Ausnahmen Beibehaltung der 3 EJB-Typen - Home-Interface entfällt bei den Session Beans - EntityBeans sind einfache Java-Klassen (POJO) - JPA – Java Persistence Architecture 03.10.2005 Prof. Dr. Andreas Schmietendorf 25 EJB-Überblick Bestandteile einer EJB (Fokus EJB Version 2.1): Component Interface – nach außen sichtbare Funktionalität - Local Interface - Remote Interface (via RMI Mechanismus) Home Interface – Steuerung des Lebenszyklus - Local Home Interface - Remote Home Interface (via RMI Mechanismus) Bean-Klasse – fachliche Funktionalität (Interface-Implementierung) Bean-Kontext – Identität der EJB (vgl. Primärschlüssel) Deployment Descriptor 03.10.2005 Prof. Dr. Andreas Schmietendorf 26 EJB-Überblick E nt e rp ri s e J a v a B e a n S essi on Bea n z u s ta n d s l o s 03.10.2005 M e s s a g e D ri v e n Be an E n tity B e a n z u stan d sBM P b e h a f te t Prof. Dr. Andreas Schmietendorf CMP 27 EJB-Überblick EJB-Typen (Session-Beans): Stateless Session-Beans (javax.ejb.SessionBean) - genau dem Client zugeordnet von dem dieses instanziert wurde - nach „Herunterfahren“ des Server nicht mehr vorhanden - ist keine Referenz mehr vorhanden erfolgt eine Löschen Stateful Session-Beans - Verwaltung von Zuständen durch Handle-Mechanismus - Speicherung der Zustände möglich, z.B. bei TA-Sicherung notwendig 03.10.2005 Prof. Dr. Andreas Schmietendorf 28 EJB-Überblick EJB-Typen (Entity-Beans): Entity-Beans (javax.ejb.EntityBean) - Repräsentiert ein Geschäftsobjekt - Persistenzeigenschaften (zumeist Abbildung auf RDBMS) - Eindeutige Identifizierung über Primärschlüssel ist zwingend - Wiederherstellung der Bean zu einem späteren Zeitpunkt - Persistenzmechanismen des Containers - CMP - Persistenzmechanismen vom Bean verwaltet - BMP 03.10.2005 Prof. Dr. Andreas Schmietendorf 29 EJB-Überblick EJB-Typen (Message-Driven-Beans): Message Driven beans (javax.ejb.MessageDrivenBean) - asynchrone Nachrichtenbehandlung (messaging) - Interface javax.ejb.MessageDrivenBean wird ebenfalls implementiert - Lebenszyklusverwaltung (create, remove, context) - onMessage (Verarbeitung eingehender Nachrichten) Java Message Service (JMS) - API zur Kodierung der zu sendenden/empfangenden Nachrichten - Service Provider Interface (JMS-Treiber für spezifische MOM-Impl.) - zwei Kommunikationsmodelle (Pub/Sub und PTP) 03.10.2005 Prof. Dr. Andreas Schmietendorf 30 Aufbau/Struktur von EJB-Komponenten 03.10.2005 Prof. Dr. Andreas Schmietendorf 31 EJB-Struktur Interner Aufbau einer EJB-Komponente: Besteht aus mindestens 3 Java-Klassen und dem Deployment-Deskriptor Remote-Interface (bzw. die lokale Ausprägung ab der EJB-Version 2.0) - Home-Interface (bzw. die lokale Ausprägung ab der EJB-Version 2.0) - Realisierung das Erzeugen, Auffinden und Löschen des Beans Bean-Implementierung - Nutzung der EJB-Funktionalität über dieses Interface Implementiert die im Remote-Interface spezifizierten Methoden XML - Deployment-Deskriptor (kurz DD) - Informationen und Anpassungen zum betrachteten Bean Bem.: Message Driven Beans besitzen weder Home- noch RemoteInterface (sind Message Listener - vgl. zustandslose Session Beans) 03.10.2005 Prof. Dr. Andreas Schmietendorf 32 EJB-Struktur Erstellung des JavaQuellcodes RemoteInterface *.Java Übersetzen in Java-Bytecode z.B. javac *.java Interner Aufbau des EJB innerhalb einer *.jar-Datei RemoteInterface *.class Deployment Descriptor EJB-jar.XML Installation (Deployment) im EJB-Container *.ear Konfiguration von: Ÿ Security Ÿ Persistenz Ÿ Ressourcenzugriff Ÿ Transaktionssicherung Session Beans SB Home-Interface *.java EJB-Container EJB-Container Web-Container Web-Container (JSP, Serlets,...) (JSP, Serlets,...) Home-Interface *.class Manifest-Datei *.mf EJBImplementierung *.java Anwendung im Applikation-Server installieren EJBImplementierung *.class Business Logic Entity-Beans EB Message-Driven Bean MDB IV- und BuisinessKomponente Laufzeitumgebung Unterstützung durch Wizards, wie z.B. Referenzimplementierung SUN J2EE (Erzeugen der EJB-JAR-Dateien, Spezifikation des Deployment Descriptors, Verifikation des EJB) 03.10.2005 Prof. Dr. Andreas Schmietendorf 33 EJB-Struktur Beispiel eines Home-Interfaces: package example1; import java.rmi.*; import javax.ejb.*; public interface EuroCalcHome extends EJBHome { public EuroCalcRemote create() throws CreateException, RemoteException; } 03.10.2005 Prof. Dr. Andreas Schmietendorf 34 EJB-Struktur Beispiel eines Remote-Interfaces: package example1; import java.rmi.*; import java.lang.*; import javax.ejb.*; public interface EuroCalcRemote extends javax.ejb.EJBObject { // Umrechnung Euro-Betrag in DM public double euro_to_dm(double amount) throws RemoteException; // Umrechnung DM-Betrag in Euro public double dm_to_euro(double amount) throws RemoteException; } 03.10.2005 Prof. Dr. Andreas Schmietendorf 35 EJB-Struktur Beispiel der EJB-Implementierung I: import package example1; import java.rmi.*; import javax.ejb.*; import javax.naming.*; public class EuroCalc implements SessionBean { private SessionContext sessionContext; //Umrechnungskurs der DM zu einem Euro double changerate = 1.95583; 03.10.2005 Prof. Dr. Andreas Schmietendorf 36 EJB-Struktur Beispiel der EJB-Implementierung II: //Berechnung des Währungsbetrages in DM public double euro_to_dm(double amount) throws ArithmeticException { double dm = 0; dm = amount*changerate; System.out.println(dm); return dm; } //Berechnung des Währungsbetrages in Euro public double dm_to_euro(double amount) throws ArithmeticException { double euro = 0; euro = amount/changerate; System.out.println(euro); return euro; } 03.10.2005 Prof. Dr. Andreas Schmietendorf 37 EJB-Struktur Beispiel der EJB-Implementierung III: //Methoden zur Steuerung des Lebenzyklus des EJB public void ejbCreate(){} public void ejbRemove(){} public void ejbActivate(){} public void ejbPassivate(){} //Ermöglicht den Zugriff auf den Kontext des EJB public void setSessionContext (SessionContext context){ sessionContext = context; } } 03.10.2005 Prof. Dr. Andreas Schmietendorf 38 EJB-Struktur Aufgaben des Deployment-Deskriptor: Auf der Basis des Deployment-Deskriptor soll eine Anpassung entsprechender Attribute der EJB‘s ermöglicht und ein „Blackbox-Reuse unterstützt werden. Der Deployment-Deskriptor kann als Beipackzettel für ein EJB, oder einer aus mehreren EJB‘s zusammengesetzten Applikation betrachtet werden. 03.10.2005 Prof. Dr. Andreas Schmietendorf 39 EJB-Struktur Aufgaben des Deployment-Deskriptor kurz DD II: Im DD konfigurierbare Eigenschaften (Attribute): - Sicherheitsattribute - Transaktionsattribute - Umgebungsvariablen - Verknüpfungen mit anderen Komponenten - Verknüpfungen zu Datenquellen Struktur eines EJB-DD - Struktur-Sektion (Basis- und Umgebungsinformationen) - Assemblierungs-Sektion (Zugriffsrechte, Transaktionsattribute,...) 03.10.2005 Prof. Dr. Andreas Schmietendorf 40 EJB-Struktur Beispiel eines XML-Deployment-Descriptor: <?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'> <ejb-jar> <description>no description</description> <display-name>Ejb1</display-name> <enterprise-beans> <session> <display-name>Euro Calculator</display-name> <ejb-name>EuroCalc</ejb-name> <home>example1.EuroCalcHome</home> <remote>example1.EuroCalcRemote</remote> <ejb-class>example1.EuroCalc</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> </ejb-jar> 03.10.2005 Prof. Dr. Andreas Schmietendorf 41 EJB-Struktur Interaktionsreihenfolge Client/Server I: 1 : F in d e n e in e r Client C ode (native Java-Code) B e a n - R e fe r e n z E J B C o n t a in e r/ S e r ve r Ho m eI n t e r fa c e 3 : R ü c k g a b e e in e r E J B O b je c t-R e fe re n z H om e O bj e c t 2 : E J B -O b je c t In s ta n z e rz e u ge n 4 : A u fr u f e in e r M e th o d e 5 : D e le g a tio n d e s d e s E J B - O b je c t M e th o d e n a u fr u fs R em ote- En te r pr is e B e a n E J B O bj e c t I n t e r fa c e 6 : Rü c kg a b e 7 : R ü ck g a b e 03.10.2005 Prof. Dr. Andreas Schmietendorf 42 EJB-Struktur Interaktionsreihenfolge Client/Server II: Schritt 1 - Finden der Referenz zum Home Object der benötigten Bean Schritt 2 - EJB-Object Instanz erzeugen Schritt 3 - Rückgabe einer EJB-Object-Referenz Schritt 4 - Aufruf einer im EJB-Objekt deklarieren Methode Schritt 5 - Delegation des Methodenaufrufs Schritt 6/7 - Übergabe der Ergebnisse der Methodenausführung 03.10.2005 Prof. Dr. Andreas Schmietendorf 43 EJB-Struktur Implementierung der Client-Anwendung 1: public class EuroCalcClient { Object object = null; EuroCalcHome home = null; EuroCalcRemote remote = null; public EuroCalcClient() { } … 03.10.2005 Prof. Dr. Andreas Schmietendorf 44 EJB-Struktur Implementierung der Client-Anwendung 2: public void getBean() { try { InitialContext ctx = new InitialContext(); //JNDI, nachsehen ob die Bean existiert object = ctx.lookup("EuroCalc"); System.out.println("object = ctx.lookup, wurde ausgefuehrt! \n"); home = (EuroCalcHome)PortableRemoteObject.narrow (object, EuroCalcHome.class); System.out.println("Zuweisung nach home, erledigt! \n"); 03.10.2005 Prof. Dr. Andreas Schmietendorf 45 EJB-Struktur Implementierung der Client-Anwendung 3: remote = home.create(); System.out.println("Bean Reference: "+ remote +"\n"); } catch(Exception ex){ System.out.println("Fehler in getBean()! \n"); ex.printStackTrace(); } } 03.10.2005 Prof. Dr. Andreas Schmietendorf 46 EJB-Struktur Implementierung der Client-Anwendung 4: public void umrechnung(){ try{ remote.dm_to_euro(50000); System.out.println("50000 DM sind " + remote.dm_to_euro(50000)); remote.euro_to_dm(50000); System.out.println("50000 DM sind " + remote.euro_to_dm(50000)); }catch (Exception exc){ exc.printStackTrace(); } } 03.10.2005 Prof. Dr. Andreas Schmietendorf 47 EJB-Struktur Implementierung der Client-Anwendung 5: public static void main(String[] args) { EuroCalcClient rechnerClient = new EuroCalcClient(); rechnerClient.getBean(); rechnerClient.umrechnung(); } } 03.10.2005 Prof. Dr. Andreas Schmietendorf 48 Vorbereitung des Deployment-Prozess 03.10.2005 Prof. Dr. Andreas Schmietendorf 49 Vorbereitung des Deployment J2EE-Referenzumgebung - Übersicht I: Aufsetzen J2EE-komponentenbasierter Applikationen Erzeugen und Konfigurieren von EJB-Komponenten Erzeugen und Konfigurieren von Web-Komponenten Hinzufügen und Entfernen von JAR, WAR, EAR, RAR Auslösen der Installation (deployment) im Container Analyse der Komponenten auf J2EE-Konformität Installation entsprechender Client-Applikationen. 03.10.2005 Prof. Dr. Andreas Schmietendorf 50 Vorbereitung des Deployment J2EE-Referenzumgebung - Übersicht II: Administrations Tool (Kommandozeile – neu mit Web-GUI) Application Deployment Tool (Kommandozeile oder GUI) Key Tool (Kommandozeile) Realm Tool (Kommandozeile) Verifier (Kommandozeile oder GUI) Cleanup Script (Kommandozeile) Packager (Kommandozeile) 03.10.2005 Prof. Dr. Andreas Schmietendorf 51 Vorbereitung des Deployment J2EE-Referenzumgebung - Packager: Enterprise Java Beans (jar-Files) Web Application (war-Files) Applikation Clients (jar-Files) J2EE Applikationen (ear-Files) Ressource Adapter (rar-Files) 03.10.2005 Prof. Dr. Andreas Schmietendorf 52 Vorbereitung des Deployment 03.10.2005 Prof. Dr. Andreas Schmietendorf 53 Vorbereitung des Deployment EJB-Wizard - Funktionsumfang: Enterprise Festlegung des Namens der Java-Archive und darin enthaltener Klassen und Interfaces Definition des konkreten EJB-Typs (SB, EB, MDB) Festlegung potentieller Referenzen der EJB-Komponente Persistenz-, Security- und Transaktionseigenschaften Festlegung von Umgebungsvariablen des EJB’s 03.10.2005 Prof. Dr. Andreas Schmietendorf 54 Vorbereitung des Deployment Erzeugen eines JAR-Files innerhalb der Applikation: 03.10.2005 Prof. Dr. Andreas Schmietendorf 55 Vorbereitung des Deployment Konfiguration des EJB: 03.10.2005 Prof. Dr. Andreas Schmietendorf 56 Vorbereitung des Deployment Transaktionseigenschaften: 03.10.2005 Prof. Dr. Andreas Schmietendorf 57 Vorbereitung des Deployment Umgebungsvariablen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 58 Vorbereitung des Deployment EJB-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 59 Vorbereitung des Deployment Datenbank-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 60 Vorbereitung des Deployment JMS-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 61 Vorbereitung des Deployment Security-Konfiguration: 03.10.2005 Prof. Dr. Andreas Schmietendorf 62 Vorbereitung des Deployment Der generierte Deployment Desciptor: 03.10.2005 Prof. Dr. Andreas Schmietendorf 63 Der eigentliche Deployment-Prozess 03.10.2005 Prof. Dr. Andreas Schmietendorf 64 Deployment/Installation Deployment-Start: 03.10.2005 Prof. Dr. Andreas Schmietendorf 65 Deployment/Installation Festlegung JNDI-Namen und Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 66 Deployment/Installation Bereitschaft zum Deployment-Vorgang: 03.10.2005 Prof. Dr. Andreas Schmietendorf 67 Deployment/Installation Festlegung JNDI-Namen und Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf 68 Deployment/Installation 03.10.2005 Prof. Dr. Andreas Schmietendorf 69 Installation der J2EE-Referenzumgebung 03.10.2005 Prof. Dr. Andreas Schmietendorf 70 J2EE Referenzumgebung installieren Inhalte - SUN Application Server - PointBase-Datenbank - J2EE Bibliotheken Bestandteile - Web-Container - EJB-Container Anforderungen - 250 MByte HD Speicher - 500 MByte Arbeitsspeicher - Netzwerksintegration - Windows 2000/XP o. UNIX 03.10.2005 Prof. Dr. Andreas Schmietendorf 71 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 72 Lizenzvereinbarung J2EE 03.10.2005 Prof. Dr. Andreas Schmietendorf 73 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 74 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 75 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 76 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 77 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 78 J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf 79 Sun Java™ System Application Server Platform Edition 8 03.10.2005 Prof. Dr. Andreas Schmietendorf 80 Informationen zum Application Server 03.10.2005 Prof. Dr. Andreas Schmietendorf 81 Verwendbare Tools 03.10.2005 Prof. Dr. Andreas Schmietendorf 82 Verwendbare Tools Starten und Stoppen - Default Server (Standard) - Samples Server (Beispiele) - PointBase (Datenbank) Deploytool - Komponenten erzeugen - Komponenten installieren - Komponenten verifizieren Weitere Tools - Admin Console (2 mal) - Online Dokumentation - Deinstalltion J2EE 03.10.2005 Prof. Dr. Andreas Schmietendorf 83 Start des Application Server 03.10.2005 Prof. Dr. Andreas Schmietendorf 84 Test des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf 85 Das Deployment-Tool Session Bean Stateless Session Bean Bean-Klasse Name des EJB Beschreibung Ggf. verwendetes Icon JMS-Nutzung 03.10.2005 Prof. Dr. Andreas Schmietendorf 86 Das Deployment-Tool Entity Bean Bean-Klasse Name der PK-Klassen Remote Interface Security-Einstellungen Resource-Reference JDBC TA-Einstellungen hier CMP 03.10.2005 Prof. Dr. Andreas Schmietendorf 87 Das Deployment-Tool Message Driven Bean Bean-Klasse Name des EJB Keine Interface! Beschreibung Ggf. verwendetes Icon JMS-Nutzung 03.10.2005 Prof. Dr. Andreas Schmietendorf 88 Administration des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf 89 Administration des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf 90