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