Download - Cours Ejb Partie1
-
1Les composants EJB
[email protected] - CEDRIC ( CNAM) -
1
Les EJBs (Enterprise Java Beans)
Samia Bouzefrane
Matre de Confrences
Laboratoire CEDRIC
Conservatoire National des Arts et Mtiers
292 rue Saint Martin
75141 Paris Cdex 03
http://cedric.cnam.fr/~bouzefra
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
2
Bibliographie
EJB 2.0 : Mise en uvre, Christophe Calandreau, Alain Faur
Nader Soukouti, Ed. Dunod, 2002, ISBN : 2 10 004 729 9.
Lenvironnement J2EE : principes, fonctions, utilisation
P. Dchamboux, cole dt sur les Intergiciels et sur la Construction dApplications Rparties, ICAR2003, http://sardes.inrialpes.fr/ecole/2003/
Enterprise java Bean
Lionel Seinturier, Universit Pierre & Marie Curie, octobre 2003
http://www-src.lip6.fr/homepages/Lionel.Seinturier/middleware/ejb.pdf
Programmation Java ct Serveur : Servlets, JSP et EJB,
Andrew Patzer, Ed. Eyrolles, 2000, ISBN : 2 212 09109 5.
Tutorial J2EE de Sun : http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
-
2Les composants EJB
[email protected] - CEDRIC ( CNAM) -
3
Architecture des Systmes dInformations
- accs aux donnes
- traitement des donnes
- prsentation des donnes
Couche
Prsentation
(IHM,
Applet Java,
Page HTML)
Couche
Mtier
(composants
qui rglent
les problmes
mtiers)
Couche
Donnes
enregistre ltat
des objets (ex.
comptes bancaires)
dans
une BDD
Architecture en couches
Cette architecture sert isoler la logique mtier de linterface graphique
et interdire un accs direct aux donnes.
Avantage : modifier une couche sans toucher aux autres.
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
4
Architecture Client/Serveur ( deux niveaux)
Couches prsentation
et mtier
Client
(IHM + logique
Mtier)
Couche
Donnes
(Serveur de BDDs)
Client lourd
-
3Les composants EJB
[email protected] - CEDRIC ( CNAM) -
5
Architecture 3 niveaux/1
Les 3 couches sont physiquement spares : on peut mme dcomposer
une couche en sous-couches (processus) => architecture n niveaux
Couche
Prsentation
(IHM,
Applet Java,
Page HTML)
Couche
Mtier
(composants
qui rglent
les problmes
mtiers)
Couche
Donnes
(enregistre ltat
des objets dans
une BDD)
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
6
prsentation traitement donne
client Serveur dapplications:
hberge des applications
base de composants EJB
(classes java conformes au
modle EJB) et des composants
Web (servlets, JSP)
SGBD : fournit
un support de
stockage pour
les donnes de
lapplication
Architecture 3 niveaux/2
-
4Les composants EJB
[email protected] - CEDRIC ( CNAM) -
7
Middlewares et Architectures distribues
Manipuler des objets => il est indispensable dutiliser une infrastructure technique
Pour faire communiquer ces objets :
Linfrastructure doit :
- fournir des services de nommage
- fournir des services de scurit.
CORBA,RMI
Inconvnients dutiliser des middlewares :
- portabilit ct serveur quasi-nulle
- le dveloppeur gre le cycle de vie des objets
- le dveloppeur doit optimiser laccs et lutilisation des ressources
(exemples: connexion aux BDDs et manipulation de threads)
Ces tches seront automatises : elles sont plutt dclares au lieu
dtre programmes.
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
8
Architecture J2EE (Java 2 Enterprise Edition)
Larchitecture J2EE de Sun a t propose pour palier ces inconvnients.
Larchitecture J2EE dfinit :
- un middleware bas sur RMI/IIOP
- des objets Java distribus : EJB (Enterprise Java Beans)
Larchitecture J2EE fournit des services techniques pour permettre
au dveloppeur de se concentrer sur la logique mtier.
-
5Les composants EJB
[email protected] - CEDRIC ( CNAM) -
9
Plate-forme J2EE
Serveur de Noms
(JNDI)
Web (moteur de
Servlets, JSP)
ORB
(RMI)
MOM
(JMS)
Transaction
(JTA, JT
S)
Scurit
(JAAS)
Mail
(Java M
ail )
Base s de donnes
(JDBC)
Administra tion
(JMX)
Connecteur s
(JCA)
Bases de donnes
(Oracle, )
HTTP
RMI
Client lger
Serveur J2EE
Container
Web
Container
EJB
Container Web : environnement dexcution
pour les Servlets et JSP.
Container EJB : environnement dexcution
pour les EJBs
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
10
Fonctions couvertes par J2EE
La communication entre objets distribus avec Java RMI et RMI/IIOP
La cration dobjets distribus transactionnels avec EJB
La cration et la recherche de rfrences dobjets distants avec JNDI
(Java Naming and Directory Interface)
Laccs aux Bases de donnes avec JDBC (Java DataDase Connectivity)
La gestion des transactions avec JTA (Java Transaction API) et JTS (Java
Transaction Service)
La communication asynchrone par messages avec JMS (Java Message Service)
La ralisation dinterfaces graphiques Web avec les pages JSP (JavaServer Pages)
et les Servlets
Lintgration des objets CORBA avec JavaIDL
lenvoi de courriers lectroniques avec JavaMail
La description du comportement des composants Java en XML
-
6Les composants EJB
[email protected] - CEDRIC ( CNAM) -
11
Configurations possibles pour une application J2EE
Navigateurs
HTML
Servlets
Application cliente
EJB
Services Mail,
JDBC, etc.
EJB
Services Mail,
JDBC, etc.
Client lger : navigateur Web Client lourd
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
12
Les acteurs dune application J2EE
Diffrents niveaux de responsabilit :
Le fournisseur des EJBs : des composants mtier rutilisables (par achat ou
dveloppement interne)
Lassembleur dapplications : lacteur qui construit une application partir
dEJBs existants
Le dployeur : lacteur qui rcupre lapplication et qui la dploie sur
un serveur dapplications
Ladministrateur : lacteur qui contrle et supervise le fonctionnement du serveur
dapplication
Le fournisseur de serveurs : lditeur qui commercialise un serveur dapplication
-
7Les composants EJB
[email protected] - CEDRIC ( CNAM) -
13
Fournisseurs de serveurs dapplications J2EE
Offre commercialeIBM / WebSphere (n 1)
BEA / WebLogic
Sun One
Oracle 9i Application Server
Et aussi Borland Entreprise Server, Macromedia / Jrun, SAP Web
Application Server, Iona / Orbix E2A
Offre open source JBoss (n 1)
JOnAS
EJB : OpenEJB, EJBean
Voir la liste des serveurs sur : http://java.sun.com/j2ee/licensees.html
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
14
http://java.sun.com/
http://www.theserverside.com/
http://developer.java.sun.com/developer/technicalArticles/J2EE/
http://developer.java.sun.com/developer/onlineTraining/J2EE/
http://www.triveratech.com/
http://jonas.objectweb.org/
Plus dinformations
-
8Les composants EJB
[email protected] - CEDRIC ( CNAM) -
15
Conteneur EJB
Conteneur Web
Serveur dapplications
Application J2EE =
- zro, un ou plusieurs composants EJB
- zro, un ou plusieurs composants Web
- relis par un schma dassemblage
Serveur dapplications
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
16
Composants Web/1
Web Bean est un ensemble de :
- JSP et/ou
- Servlets et/ou
- pages HTML
Packags dans un fichier archive .war
Ce sont des composants qui :
- implantent une logique de prsentation simple pour des clients Web
- servent de passerelle daccs pour des composants EJB
- peuvent implanter une logique de petits traitements
-
9Les composants EJB
[email protected] - CEDRIC ( CNAM) -
17
Composants Web/2
Exemple :
Fichier.html
Exemple
Addition de deux nombres :
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
18
Fonctionnalits dun container EJB/1
la connectivit entre les clients et les EJB : le connecteur gre
les communications entre les clients et les EJB. Aprs le
dploiement dun EJB dans un serveur dapplications, le client peut
invoquer les mthodes de cet EJB comme si elles taient situes
dans la mme machine virtuelle, les communications sont gres
par le middleware sous-jacent.
la gestion de la persistance : les composants peuvent choisir de
dlguer leur persistance au conteneur.
la gestion des transactions : les composants transactionnels
peuvent dlguer la gestion de leurs transactions au conteneur.
-
10
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
19
Fonctionnalits dun container EJB/2
la gestion de la scurit : le conteneur assure lapplication des
politiques de scurit dclares mais non codes par le
dveloppeur.
la gestion de la concurrence : les composants peuvent tre
invoqus par un seul client ou bien par plusieurs clients
simultanment.
la gestion du cycle de vie des composants : le conteneur assure la
cration et la destruction des instances des composants.
la cration de rserves de connexions : lobtention dune
connexion sur une base de donnes est coteuse en termes de
ressources, le nombre de connexions tant limit par le nombre de
licences, le conteneur peut grer une rserve de connexions.
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
20
Serveur dapplications
Conteneur EJB
Transaction
Persistance
Scurit
Cycle de vie
6 services fournis par le serveur dapplications
au conteneur EJB :
- transaction
- persistance
- scurit
- cycle de vie
- concurrence
- connectivit
Ces services sont intgrs ds le dpart
la plate-forme.
Connectivit
Concurrence
Fonctionnalits dun container EJB/3
-
11
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
21
Composants applicatifs de J2EE (code mtier)
Potentiellement rpartis et transactionnels
se focalisent sur la logique applicative
sont portables dun serveur dapplication un autre
Trois profils
Session : instances ddies un contexte dinteraction dun client particulier
Entit : instances partages reprsentant les donnes de lentreprise
Orient message : instances neutres ragissant larrive de messages
asynchrones
Grs par le container EJB
Composants EJB
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
22
EJ Bean
Bean Session
Avec tat
(cest le mme client qui
ralise toutes les invocations)
Sans tat
(plusieurs clients
diffrents peuvent
tre associs au mme
Bean successivement)
CMP
(persistance gre
par le conteneur)
BMP (persistance gre
par le bean)
Bean Message
Bean Entit
Les EJ Beans/1
-
12
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
23
Les EJ Beans/2
EJ Bean
RemoteHome
interface
Remote
interface
Machine 2Machine 1
Client
distant
Chaque EJ Bean fournit deux interfaces daccs distant Remote : les services mtiers (mthodes) fournis par le bean RemoteHome : interface de gestion du composant (cration, recherche, destruction dinstances)
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
24
Les EJ Beans/3
EJ Bean
RemoteHome
interface
Remote
interface
Machine 2
+ ventuellement deux interfaces daccs local (meilleure performance pour les clients hbergs
dans le mme conteneur). Local : les services mtiers (mthodes) fournis par le bean LocalHome : interface de gestion du composant (cration, recherche, destruction dinstances)
Client
local
LocalHome
interface
Local
interface
-
13
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
25
Les Beans Session/1- Session dont la dure de vie est lie celle de son client, cest une prolongation du processus
client dans un serveur dapplication
- Meurt lorsque le client nen a plus besoin (do lide de session)
- Bean dure de vie plutt courte
- Un Bean Session est cr par son client, utilis et supprim ensuite par son client
1. Bean Session sans tat (Stateless session bean)
- Cest un bean lger
- Ne prserve pas dtat dun appel un autre
- Deux instances quelconques dun tel bean sont quivalentes
- Bean sans variable dinstance
- Exemple: demande de virement entre deux comptes, services de calcul, services de
recherche dinformations dans une BDD
2. Bean Session avec tat (stateful session bean)
- Cest un bean lourd, effectue des oprations pour le compte du client
- Gre un tat en mmoire ( objet avec tat) pour maintenir ltat du client
- Exemple: un panier sur un site de commerce lectronique avec 2 attributs, nom du client et
les articles slectionns
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
26
Les Beans Session/2
Quand utiliser un Bean Session ?
- Pas de besoin spcifique de partage de donnes entre les clients
1. Bean Session sans tat (Stateless session bean)
- Pour des tches gnriques
- Pour consulter en lecture seule des donnes persistantes
- Efficaces et faciles implmenter
- Les donnes sont passes comme paramtres de la mthode
2. Bean Session avec tat (stateful session bean)
- Ltat du Bean reprsente ltat de linteraction entre le client et le Bean
- Le Bean doit conserver de linformation entre deux invocations du client
- Ddi un client pendant toute sa dure de vie
- Le mme Bean est utilis pour servir tous les appels du mme client
-
14
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
27
Les Interfaces mtier Beans Session
Dfinissent les interfaces que le Bean peut rendre au client. Elles sont locales ou
distantes.
1. Interface mtier distante (Remote)
- Accessible par des composants locaux ou distants au Bean
- Hrite de linterface javax.ejb.EJBObject- Les mthodes de linterface lvent lexception RemoteException
2. Interface mtier locale (Local)
- Accessible uniquement par les composants situs sur la mme machine
que le Bean
- Hrite de linterface javax.ejb.EJBLocalObject- Pas dexception RemoteException
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
28
Interface Remote dun Bean Session
Exemple.
import javax.ejb.EJBObject;import java.rmi.RemoteException;
public interface Calc extends javax.ejb.EJBObject {public double add (double val1, double val2) throws RemoteException;
}
-
15
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
29
Interface Local dun Bean Session
Exemple.
import javax.ejb.EJBLocalObject;
public interface CalcLocal extends javax.ejb.EJBLocalObject {public double add(double val1, double val2) ;
}
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
30
Les Interfaces de gestion du cycle de vie
Locales ou distantes, grent la cration, la recherche et la suppression des EJ Beans.
1. Interface Home distante (RemoteHome)
- Gre le cycle de vie du Bean
- Hrite de linterface javax.ejb.EJBHome- Les mthodes de linterface lvent les exceptions RemoteException
et CreateException
2. Interface Home locale (LocalHome)
- Gre le cycle de vie du Bean
- Hrite de linterface javax.ejb.EJBLocalHome- Pas dexception RemoteException
3. Mthodes possibles : create (cration dinstances de bean, retourne linterface Remote ou Local selon que linterface est locale ou distante)
Plusieurs mthodes create peuvent tre dfinies avec plusieurs signatures
-
16
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
31
Interface Home dun Bean Session
Exemple.
import javax.ejb.EJBHome;import javax.ejb.CreateException;import ja.rmi.RemoteException;
public interface CalcHome extends javax.ejb.EJBHome {public Calc create() throws CreateException, RemoteException;
}
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
32
Interface HomeLocal dun Bean Session
Exemple.
import javax.ejb.EJBLocalHome;import javax.ejb.CreateException;
public interface CalcLocalHome extends javax.ejb.EJBLocalHome {public CalcLocal create() throws CreateException;
}
-
17
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
33
Implmentation du Bean Session
Classe Java :
- qui dfinit les mthodes spcifies dans les interfaces Remote et RemoteHome
- qui implmente linterface javax.ejb.SessionBean- la classe dimplmentation de javax.ejb.SessionBean ne dclare pas limplmentation des interfaces
Sets the associated session contextvoid setSessionContext()
A container invokes this method before it
ends the life of the session object.
void ejbRemove()
The passivate method is called before the
instance enters the passive state.
void ejPassivate()
The activate method is called when the
instance is activated from its passive
state.
void ejbActivate()
Method Summary (Mthodes de linterface SessionBean)
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
34
Dveloppement
Fournir des mthodes pour les interfaces Remote et RemoteHome
- mme mthodes que dans linterface Remote
- une mthode ejbCreate pour chaque create de linterface RemoteHome- mme profil que create
- retourne void
-
18
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
35
Exemple de classe dimplmentation/1
import javax.ejb.SessionBean;import javax.ejb.SessionContext;import javax.ejb.CreateException;public class CalcBean implements SessionBean {
SessionContext sessionContext;
//constructeur
public CalcBean() {}
// mthodes de linterface Home
public void ejbCreate() throws CreateException { };
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
36
Exemple de classe dimplmentation/2
// mthodes de linterface SessionBean
public void ejbRemove() { }//public void ejbActivate() { } non utilisee par un Bean sans etat//public void ejbPassivate() { } non utilisee par un Bean sans etatpublic void setSessionContext (SessionContext sessionContext sessionContext) {this.sessionContext = sessionContext;}
// mthode de linterface Remote
public double add(double val1, double val2) { return val1+val2; }
} // fin de CalcBean
-
19
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
37
Structure dun Bean Session
Bean
Conteneur EJB
Interface SessionBean Interface SessionContext
objet
Home
distant objet
EJB
distant
objet
Home
local
Objet
EJB
local
Client
Client
Interface mtier distante Interface mtier locale
ejbCreate()*
ejbCreate()*
Mthodes mtier
Mthodes
mtier
*Pour les Beans Session sans tat, linvocation de create() sur une interfaceHome ne dclenche pas ncessairement la mthode ejbCreate() sur le bean
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
38
Client EJB
Dveloppement ct client :
1. Rechercher linterface Home du Bean par son nom via JNDIJNDI : API accs services nommage
(LDAP, CORBA COSNaming, DNS, RMI registry, etc.)
2. Accder au BeanLinterface Home permet daccder aux instances existantes du Bean ou den crer de nouvelles=> on rcupre une rfrence sur une interface Remote
3. Invocation du Bean
-
20
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
39
Classe Java du Client EJBimport javax.rmi.*;import javax.naming.*; import javax.ejb.*;public class ClientCalc {
CalcHome calcHome; // reference sur l'objet Home distantCalc myCalc; //ref sur l'objet EJB distanttry {// obtention du contexte initial : ref du service de nommage
Context ctx = new InitialContext();//recherche de l'interface Home distante
Object ref= ctx.lookup("Calc");calcHome = (CalcHome)PortableRemoteObject.narrow(ref,CalcHome.class);// ref: souche dacces a linterface Home de Calc
// creation d'un EJB Calc
myCalc = calcHome.create(); double somme = 0;//invocation de la methode metier add()
somme = myCalc.add(Integer.parseInt(args[0]),Integer.parseInt(args[1]));System.out.println(somme);} catch(Exception e) {e.printStackTrace(); } }
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
40
Couche Prsentation/1
Exemple :
Fichier.html
Exemple
Addition de deux nombres :
-
21
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
41
Couche Prsentation/2
CalcServlet.java
public class CalcServlet extends HttpServlet {private static final String CONTENT_TYPE="text/html";private calcHome CalcHome;
// a linitialisation de la servlet, on recupere la reference de linterface Home de Calc
public void init() throws ServletException {try {Context ctx=new InitialContext();Object ref=ctx.lookup("Calc");calcHome = (CalcHome)PortableRemoteObject.narrow(ref, CalcHome.class);
} catch (Exception e) {e.printStackTrace();}} // fin de init()
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
42
CalcServlet.java (suite)
public void doPost(HttpServletRequest requete, HttpServletResponse reponse) throws ServletException, IOException {
reponse.setContentType(CONTENT_TYPE);PrintWriter sortie=reponse.getWriter();Double d1=new Double(requete.getParameter("Val1"));Double d2=new Double(requete.getParameter("Val2"));
double val1= d1.doubleValue();double val2=d2.doubleValue();// creation d'un EJB Calc
myCalc = calcHome.create();//invocation des methodes metier add() double res=myCalc.add(val1, val2);
sortie.println(" Resultat ");
Couche Prsentation/3
-
22
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
43
CalcServlet.java (suite)
sortie.println(" Rsultat de lOpration " + val1 + "+" + val2 +"="+ ""+res +""+ ""); sortie.println("");
} // fin de doPost} // fin de la servlet
Couche Prsentation/4
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
44
Intraction entre le client et le Bean
CalcBean
Conteneur EJB
CalcHome
Calc EJB
Serveur de noms
a. cration
b. bind()
Client
Stub Calc
Home
Stub Calc
EJB
5.add()
2.create()
1.lookup()
3.create()
4.retour rfrence Calc EJB
6.add() 7.add()
8.retour du rsultat9.retour du rsultat
-
23
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
45
Cycle de vie dun Bean Session sans tat
Nexiste pas
Prt
1.create
2. newInstance
3. setSessionContext
4. ejbCreate
Attention,
Appel non rentrant
1. methode
1.remove
2.ejbRemove
Terminer un Bean,
linitiative
-de lutilisateur
-du conteneur
Opration sur Home
Opration sur instance
A linitiative du client
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
46
Cycle de vie dun Bean Session avec tat
Nexiste pas
Prt
1.create
2. newInstance
3. setSessionContext
4. ejbCreate
Attention,
Appel non rentrant
1. methode
1.remove
2.ejbRemove
Terminer un Bean,
linitiative
-de lutilisateur
-du conteneur
Opration sur Home
Opration sur instancePassif
ejbPassivate
ejbCreate
A linitiative
du conteneur
quivalent au mcanisme de SWAP
en mmoire virtuelle
A linitiative du client
-
24
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
47
Spcifications des proprits du Bean
Un Bean est dfini grce ses proprits :
-Pour un Bean Session, il faut indiquer sil est avec ou sans tat.
-Pour un Bean Entit, il faut indiquer si la persistance est gre par le conteneur ou par le programmeur.
-Pour les deux types de Beans, il faut indiquer si la gestion des transactions sera gre par le conteneur
ou par le programmeur.
Les proprits du Bean sont fournies dans un fichier XML appel descripteur de dploiement
CalcCalcrep.CalcHomerep.Calcrep.CalcBean Stateless Container
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
48
Spcifications des proprits du Bean
Calc*
Required
-
25
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
49
Dploiement du Bean/1
Une fois que le Bean est dfini, il faut le dployer dans un serveur dapplication. Il faut alors
assembler tous les lments du Bean dans un fichier JAR qui va contenir :
- Les interfaces du Bean
- La classe du Bean et les classes auxiliaires
- Le descripteur de dploiement.
Les serveurs dapplication offrent des interfaces graphiques, appeles consoles dadministration qui
permettent de rditer le descripteur de dploiement. Une fois lobjet dploy, ce dernier enregistre
la rfrence lobjet EJBHome dans un serveur de noms accessibles via JNDI.
Calc.jar = { Calc.class, CalcLocal.class, CalcHome.class,CalcHomeLocal.class, CalcBean.class, ejb-jar.xml }
A partir du fichier JAR, le serveur est capable dextraire son contenu et de rendre le Bean utilisable
par les clients, cd, gnrer des composants ncessaires la communication (Stub et Skeleton) entre
le Bean et ses clients (on parle de code dploy), on peut trouver :
-lobjet EJB qui implmente linterface mtier
-Lobjet EJBHome qui implmente linterface Home.
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
50
Dploiement du Bean/2
Packaging des applications
Une application EJB = 1 archive .ear = { 1 descripteur XML de lapplication,
1 archive .war par composant Web,
1 archive .jar par composant EJB }
Une archive .war = { 1 descripteur XML du composant Web,
JSP ou servlet.class }
Une archive .jar = { 1 descripteur XML du Bean,
les fichiers .class du Bean }
-
26
Les composants EJB
[email protected] - CEDRIC ( CNAM) -
51
Restrictions des EJBs et Gestion des ressources
Restrictions des EJBs
-les EJBs ne doivent pas manipuler des threads
-les EJBs ne doivent pas effectuer des oprations dentre/sortie
-les EJBs ne doivent pas manipuler les sockets serveur
-les EJBs ne doivent pas charger des librairies crites en code natif (C, C++)
Gestion des ressources
Les serveurs EJB grent une charge importante tout en gardant un bon niveau de performance.
Les EJBs mettent en uvre deux techniques pour grer un grand nombre de Beans (donc de
clients):les pools dinstance et le partage de ressources entre les Beans
Un pool dinstances des EJBs est une rserve dinstances cres lavance: technique utilise
par les Beans Session sans tat, les Beans Message et Entit.