Programmierung von Client/Server-Anwendungen

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Was gibt´s neues im Bereich Sicherheit
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DI Christian Donner cd (at) donners.com
Java Beans von Raoul Schneider.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Enterprise Java Beans (EJB) VL Anwendungssysteme Freitag, Gerald Weber.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Lightweight Directory Access Protocol
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Java 2 Enterprise Edition (J2EE)
Java 2 Enterprise Edition (J2EE)
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
XDoclet ETIS SS05.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Remote Methode Invocation (RMI)
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
PHP Pakete und Beispiele Webengineering Robert Lemke.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Software Architektur II
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Java-Komponenten Inhalt des Tutorials:
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
7.1.5 Java RMI – Remote Method Invocation
Komponentenarchitekturen, Enterprise Java Beans (EJB)
EPROG Tutorium #4 Philipp Effenberger
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Enterprise JavaBeans (EJB) und Application Server
Datenbanken im Web 1.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
WS2006/2007 Vorlesung: Datenbanken und Internet Copyright 2006 – DBIS/Dr. Karsten Tolle Klausur-Termin? 120 Minuten Bearbeitungszeit Mögliche Termine (unter.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Programmierung von Client/Server-Anwendungen J2EE bzw. Java EE Back End Applikationen (EJB-Container) 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Ü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

Java Naming and Directory Interface - JNDI 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf JNDI Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle, Addison-Wesley, Pearson Studium, München 2005 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Enterprise Java Beans im Überblick 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf EJB-Überblick 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf EJB-Überblick 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Aufbau/Struktur von EJB-Komponenten 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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) Nutzung der EJB-Funktionalität über dieses Interface Home-Interface (bzw. die lokale Ausprägung ab der EJB-Version 2.0) Realisierung das Erzeugen, Auffinden und Löschen des Beans Bean-Implementierung 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 Remote-Interface (sind Message Listener - vgl. zustandslose Session Beans) 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf EJB-Struktur 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf EJB-Struktur Interaktionsreihenfolge Client/Server I: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Vorbereitung des Deployment-Prozess 03.10.2005 Prof. Dr. Andreas Schmietendorf

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

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

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

Vorbereitung des Deployment 03.10.2005 Prof. Dr. Andreas Schmietendorf

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

Vorbereitung des Deployment Erzeugen eines JAR-Files innerhalb der Applikation: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Konfiguration des EJB: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Transaktionseigenschaften: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Umgebungsvariablen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment EJB-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Datenbank-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment JMS-Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Security-Konfiguration: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Vorbereitung des Deployment Der generierte Deployment Desciptor: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Der eigentliche Deployment-Prozess 03.10.2005 Prof. Dr. Andreas Schmietendorf

Deployment/Installation Deployment-Start: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Deployment/Installation Festlegung JNDI-Namen und Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Deployment/Installation Bereitschaft zum Deployment-Vorgang: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Deployment/Installation Festlegung JNDI-Namen und Referenzen: 03.10.2005 Prof. Dr. Andreas Schmietendorf

Deployment/Installation 03.10.2005 Prof. Dr. Andreas Schmietendorf

Installation der J2EE-Referenzumgebung 03.10.2005 Prof. Dr. Andreas Schmietendorf

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

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

Lizenzvereinbarung J2EE 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

J2EE Referenzumgebung installieren 03.10.2005 Prof. Dr. Andreas Schmietendorf

Sun Java™ System Application Server Platform Edition 8 03.10.2005 Prof. Dr. Andreas Schmietendorf

Informationen zum Application Server 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf Verwendbare Tools 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Start des Application Server 03.10.2005 Prof. Dr. Andreas Schmietendorf

Test des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Prof. Dr. Andreas Schmietendorf 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

Administration des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf

Administration des Application Servers 03.10.2005 Prof. Dr. Andreas Schmietendorf