1 Prof. Dr. Andreas Schmietendorf03.10.2005 Programmierung von Client/Server- Anwendungen J2EE bzw....

Preview:

Citation preview

Prof. Dr. Andreas Schmietendorf03.10.2005 1

Programmierung von Client/Server-Anwendungen

J2EE bzw. Java EE Back End Applikationen (EJB-Container)

Prof. Dr. Andreas Schmietendorf03.10.2005 2

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

Übersicht

Prof. Dr. Andreas Schmietendorf03.10.2005 3

Java Naming and Directory Interface - JNDI

Prof. Dr. Andreas Schmietendorf03.10.2005 4

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)

JNDI

Prof. Dr. Andreas Schmietendorf03.10.2005 5

JNDI

Anwendung

JNDI

Naming Manager

SPI

RMI CORBA LDAP

Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle,Addison-Wesley, Pearson Studium, München 2005

Prof. Dr. Andreas Schmietendorf03.10.2005 6

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

JNDI

Prof. Dr. Andreas Schmietendorf03.10.2005 7

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

JNDI

Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle,Addison-Wesley, Pearson Studium, München 2005

Prof. Dr. Andreas Schmietendorf03.10.2005 8

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)

JNDI

Prof. Dr. Andreas Schmietendorf03.10.2005 9

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)

JNDI

Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle,Addison-Wesley, Pearson Studium, München 2005

Prof. Dr. Andreas Schmietendorf03.10.2005 10

Konfiguration des InitialContext (hier Zugriff auf LDAP):try {

// Umgebung erzeugenHashtable env = new java.util.Hashtable();// Dienst spezifizierenenv.put(Context.INITIAL_CONTEXT_FACTORY,„com.sun.jndi.ldap.LdapCtxFactory“);// Provider URL spezifizierenenv.put(Context.PROVIDER_URL,„ldap://localhost:389“);Context initCtx = new InitialContext(env);

}catch(NamingException ne){ne.printStackTrace();

}

JNDI

Quelle: Stark, T.: J2EE – Einstieg für Anspruchsvolle,Addison-Wesley, Pearson Studium, München 2005

Prof. Dr. Andreas Schmietendorf03.10.2005 11

Enterprise Java Beans im Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 12

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.

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 13

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 14

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 15

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 16

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!

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 17

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)

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 18

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)

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 19

HTML

Java-Applications

Web-ServerWeb-ContainerJSP/Servlets

Datenbank

JDBC

HTTP, HTTPS (HTML/XML)

JNDI, RMI over IIOP

IIOP (CORBA-Mapping)

DCOM/CORBA ActiveX-Bridge

Clients

CORBA

MOM

COM/Windows

EJB

EJB-Container

EJBServer

JMS Message-orientiend Middleware

Low-Level-Services

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 20

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)

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 21

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 22

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 23

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 24

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 25

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 26

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 27

EJB-Überblick

Message DrivenBeanSession Bean Entity Bean

Enterprise Java Bean

zustandslos zustands-behaftet BMP CMP

Prof. Dr. Andreas Schmietendorf03.10.2005 28

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 29

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

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 30

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)

EJB-Überblick

Prof. Dr. Andreas Schmietendorf03.10.2005 31

Aufbau/Struktur von EJB-Komponenten

Prof. Dr. Andreas Schmietendorf03.10.2005 32

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)

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 33

Übersetzen inJava-Bytecodez.B. javac *.java

Interner Aufbaudes EJB innerhalb

einer *.jar-Datei

Erstellungdes Java-

Quellcodes

Remote-Interface*.Java

Home-Interface*.java

EJB-Implementierung

*.java

Remote-Interface*.class

Home-Interface*.class

EJB-Implementierung

*.class

DeploymentDescriptor

EJB-jar.XML

Manifest-Datei*.mf

Installation (Deployment)im EJB-Container *.ear

Anwendung imApplikation-Server

installieren

Unterstützung durch Wizards, wie z.B. Referenzimplementierung SUN J2EE(Erzeugen der EJB-JAR-Dateien, Spezifikation des Deployment Descriptors, Verifikation des EJB)

Konfiguration von:Ÿ SecurityŸ PersistenzŸ RessourcenzugriffŸ Transaktions-

sicherung

Session BeansSB

Entity-BeansEB

EJB-ContainerEJB-Container

Web-Container(JSP, Serlets,...)

Web-Container(JSP, Serlets,...)

Business Logic IV- und Buisiness-Komponente Laufzeitumgebung

Message-DrivenBean MDB

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 34

Beispiel eines Home-Interfaces:

package example1;

import java.rmi.*;

import javax.ejb.*;

public interface EuroCalcHome extends EJBHome {

public EuroCalcRemote create()

throws CreateException, RemoteException;

}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 35

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;}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 36

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;

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 37

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; }

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 38

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; }

}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 39

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.

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 40

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,...)

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 41

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>

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 42

EJB Object

EJB Container/Server

Enterprise Bean

Home Object

Clie

nt C

ode

(nat

ive

Java

-Cod

e) Home-Interface

Remote-Interface

1: Finden einerBean-Referenz

3: Rückgabe einer EJB-Object-Referenz 2: EJB-Object

Instanz erzeugen4: Aufruf einer Methode

des EJB-Object

7: Rückgabe

5: Delegation desMethodenaufrufs

6: Rückgabe

Interaktionsreihenfolge Client/Server I:

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 43

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

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 44

Implementierung der Client-Anwendung 1:public class EuroCalcClient {

Object object = null;

EuroCalcHome home = null;

EuroCalcRemote remote = null;

public EuroCalcClient() {

}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 45

Implementierung der Client-Anwendung 2:public void getBean() {

try {InitialContext ctx = new InitialContext();//JNDI, nachsehen ob die Bean existiertobject = 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");

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 46

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();

}

}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 47

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(); } }

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 48

Implementierung der Client-Anwendung 5:

public static void main(String[] args) {

EuroCalcClient rechnerClient = new EuroCalcClient();

rechnerClient.getBean();

rechnerClient.umrechnung();

}

}

EJB-Struktur

Prof. Dr. Andreas Schmietendorf03.10.2005 49

Vorbereitung des Deployment-Prozess

Prof. Dr. Andreas Schmietendorf03.10.2005 50

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.

Vorbereitung des Deployment

Prof. Dr. Andreas Schmietendorf03.10.2005 51

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)

Vorbereitung des Deployment

Prof. Dr. Andreas Schmietendorf03.10.2005 52

J2EE-Referenzumgebung - Packager:

Enterprise Java Beans (jar-Files)

Web Application (war-Files)

Applikation Clients (jar-Files)

J2EE Applikationen (ear-Files)

Ressource Adapter (rar-Files)

Vorbereitung des Deployment

Prof. Dr. Andreas Schmietendorf03.10.2005 53

Vorbereitung des Deployment

Prof. Dr. Andreas Schmietendorf03.10.2005 54

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

Vorbereitung des Deployment

Prof. Dr. Andreas Schmietendorf03.10.2005 55

Vorbereitung des Deployment

Erzeugen eines JAR-Files innerhalb der Applikation:

Prof. Dr. Andreas Schmietendorf03.10.2005 56

Vorbereitung des Deployment

Konfiguration des EJB:

Prof. Dr. Andreas Schmietendorf03.10.2005 57

Vorbereitung des Deployment

Transaktionseigenschaften:

Prof. Dr. Andreas Schmietendorf03.10.2005 58

Vorbereitung des Deployment

Umgebungsvariablen:

Prof. Dr. Andreas Schmietendorf03.10.2005 59

Vorbereitung des Deployment

EJB-Referenzen:

Prof. Dr. Andreas Schmietendorf03.10.2005 60

Vorbereitung des Deployment

Datenbank-Referenzen:

Prof. Dr. Andreas Schmietendorf03.10.2005 61

Vorbereitung des Deployment

JMS-Referenzen:

Prof. Dr. Andreas Schmietendorf03.10.2005 62

Vorbereitung des Deployment

Security-Konfiguration:

Prof. Dr. Andreas Schmietendorf03.10.2005 63

Vorbereitung des Deployment

Der generierte Deployment Desciptor:

Prof. Dr. Andreas Schmietendorf03.10.2005 64

Der eigentliche Deployment-Prozess

Prof. Dr. Andreas Schmietendorf03.10.2005 65

Deployment/Installation

Deployment-Start:

Prof. Dr. Andreas Schmietendorf03.10.2005 66

Deployment/Installation

Festlegung JNDI-Namen und Referenzen:

Prof. Dr. Andreas Schmietendorf03.10.2005 67

Deployment/Installation

Bereitschaft zum Deployment-Vorgang:

Prof. Dr. Andreas Schmietendorf03.10.2005 68

Deployment/Installation

Festlegung JNDI-Namen und Referenzen:

Prof. Dr. Andreas Schmietendorf03.10.2005 69

Deployment/Installation

Prof. Dr. Andreas Schmietendorf03.10.2005 70

Installation derJ2EE-Referenzumgebung

Prof. Dr. Andreas Schmietendorf03.10.2005 71

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

Prof. Dr. Andreas Schmietendorf03.10.2005 72

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 73

Lizenzvereinbarung J2EE

Prof. Dr. Andreas Schmietendorf03.10.2005 74

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 75

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 76

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 77

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 78

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 79

J2EE Referenzumgebung installieren

Prof. Dr. Andreas Schmietendorf03.10.2005 80

Sun Java™ System Application Server Platform Edition 8

Prof. Dr. Andreas Schmietendorf03.10.2005 81

Informationen zum Application Server

Prof. Dr. Andreas Schmietendorf03.10.2005 82

Verwendbare Tools

Prof. Dr. Andreas Schmietendorf03.10.2005 83

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

Prof. Dr. Andreas Schmietendorf03.10.2005 84

Start des Application Server

Prof. Dr. Andreas Schmietendorf03.10.2005 85

Test des Application Servers

Prof. Dr. Andreas Schmietendorf03.10.2005 86

Das Deployment-Tool

Session Bean

Stateless Session Bean

Bean-Klasse

Name des EJB

Beschreibung

Ggf. verwendetes Icon

JMS-Nutzung

Prof. Dr. Andreas Schmietendorf03.10.2005 87

Das Deployment-Tool

Entity Bean

Bean-Klasse

Name der PK-Klassen

Remote Interface

Security-Einstellungen

Resource-Reference JDBC

TA-Einstellungen hier CMP

Prof. Dr. Andreas Schmietendorf03.10.2005 88

Das Deployment-Tool

Message Driven Bean

Bean-Klasse

Name des EJB

Keine Interface!

Beschreibung

Ggf. verwendetes Icon

JMS-Nutzung

Prof. Dr. Andreas Schmietendorf03.10.2005 89

Administration des Application Servers

Prof. Dr. Andreas Schmietendorf03.10.2005 90

Administration des Application Servers

Recommended