samia.bouzefrane@cnam.
fr - CEDRIC ( CNAM) -
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 [email protected] http://cedric.cnam.fr/~bouzefra
Les composants EJB
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
2 Les composants EJB
Architecture des Systmes dInformations
- accs aux donnes - traitement des donnes - prsentation des donnes Architecture en couches
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
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.
3 Les composants EJB
Architecture Client/Serveur ( deux niveaux)
Couches prsentation et mtier Client (IHM + logique Mtier)
Couche Donnes (Serveur de BDDs)
Client lourd
Les composants EJB
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
Architecture 3 niveaux/2
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
Les composants EJB
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.
7 Les composants EJB
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.
Les composants EJB
Plate-forme J2EE
Container Web
Serveur de Noms (JNDI) Web (moteur de Servlets, JSP)
Container EJB
MOM (JMS) Transaction (JTA, JTS) Scurit (JAAS) Mail (JavaMail) Bases de donnes (JDBC) Administration (JMX) Connecteurs (JCA)
RMI
Client lger
Serveur J2EE
Container Web : environnement dexcution pour les Servlets et JSP. Container EJB : environnement dexcution pour les EJBs
ORB (RMI)
HTTP
Bases de donnes (Oracle, )
Les composants EJB
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
10
Les composants EJB
Configurations possibles pour une application J2EE
Navigateurs HTML Application cliente Servlets
EJB Services Mail, JDBC, etc.
EJB Services Mail, JDBC, etc.
Client lger : navigateur Web
Client lourd
11
Les composants EJB
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
Les composants EJB
12
Fournisseurs de serveurs dapplications J2EE
Offre commerciale
IBM / 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
13
Plus dinformations
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/
14
Les composants EJB
Serveur dapplications
Serveur dapplications Application J2EE = - zro, un ou plusieurs composants EJB - zro, un ou plusieurs composants Web - relis par un schma dassemblage
Conteneur EJB
Conteneur Web
15
Les composants EJB
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
16
Les composants EJB
Composants Web/2
Exemple : Fichier.html <html> <head> <title> Exemple </title> </head> <body> <form method="POST" action="/servlet/CalcServlet" Addition de deux nombres : <br> <input type=text name=Val1> <br> <input type=text name=Val2> <br> <input type=submit value="Additionner" > </body> </html>
17
>
Les composants EJB
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.
18
Les composants EJB
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.
19 Les composants EJB
Fonctionnalits dun container EJB/3
Serveur dapplications
Concurrence Transaction
6 services fournis par le serveur dapplications au conteneur EJB : - transaction - persistance - scurit - cycle de vie - concurrence - connectivit
Persistance Scurit Cycle de vie Connectivit
Ces services sont intgrs ds le dpart la plate-forme.
Conteneur EJB
20
Les composants EJB
10
Composants EJB
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
21
Les composants EJB
Les EJ Beans/1
EJ Bean
Bean Message Bean Session Bean Entit BMP (persistance gre par le bean) Avec tat (cest le mme client qui ralise toutes les invocations) CMP Sans tat (persistance gre (plusieurs clients par le conteneur) diffrents peuvent tre associs au mme Bean successivement)
22
Les composants EJB
11
Les EJ Beans/2
Machine 1 Machine 2
EJ Bean
RemoteHome interface Remote interface
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)
23
Les composants EJB
Les EJ Beans/3
Machine 2
EJ Bean
RemoteHome interface Remote interface LocalHome interface Local interface
Client local
+ 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)
24 Les composants EJB
12
Les Beans Session/1
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 Bean Session sans tat (Stateless session bean) 2. 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
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
25
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
Les composants EJB
26
13
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
27
Les composants EJB
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; }
28
Les composants EJB
14
Interface Local dun Bean Session
Exemple.
import javax.ejb.EJBLocalObject;
public interface CalcLocal extends javax.ejb.EJBLocalObject { public double add(double val1, double val2) ; }
29
Les composants EJB
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
30
Les composants EJB
15
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; }
31
Les composants EJB
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 ; }
32
Les composants EJB
16
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 Method Summary (Mthodes de linterface SessionBean) void ejbActivate() The activate method is called when the instance is activated from its passive state. The passivate method is called before the instance enters the passive state. A container invokes this method before it ends the life of the session object. Sets the associated session context
void ejPassivate() void ejbRemove() void setSessionContext()
33
Les composants EJB
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
34
Les composants EJB
17
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 { };
35
Les composants EJB
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 etat public 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
Les composants EJB
36
18
Structure dun Bean Session
*Pour les Beans Session sans tat, linvocation de create() sur une interface Home ne dclenche pas ncessairement la mthode ejbCreate() sur le bean
Conteneur EJB
Interface SessionBean Bean
Interface SessionContext
ejbCreate()* objet Home distant Mthodes mtier objet EJB distant
Mthodes mtier ejbCreate()* objet Home local Objet EJB local
Client Interface mtier distante Interface mtier locale
Client
37 Les composants EJB
Client EJB
Dveloppement ct client : 1. Rechercher linterface Home du Bean par son nom via JNDI JNDI : API accs services nommage (LDAP, CORBA COSNaming, DNS, RMI registry, etc.) 2. Accder au Bean Linterface 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
38
Les composants EJB
19
Classe Java du Client EJB
import javax.rmi.*; import javax.naming.*; import javax.ejb.*; public class ClientCalc { CalcHome calcHome; // reference sur l'objet Home distant Calc myCalc; //ref sur l'objet EJB distant try {// 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);
39 }
catch(Exception e) {e.printStackTrace(); }
Les composants EJB
Couche Prsentation/1
Exemple : Fichier.html <html> <head> <title> Exemple </title> </head> <body> <form method="POST" action="/servlet/CalcServlet" Addition de deux nombres : <br> <input type=text name=Val1> <br> <input type=text name=Val2> <br> <input type=submit value="Additionner" > </body> </html>
40
>
Les composants EJB
20
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()
41
Les composants EJB
Couche Prsentation/3
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("<html><head> <title> Resultat </title> </head> <body>");
42 Les composants EJB
21
Couche Prsentation/4
CalcServlet.java (suite)
sortie.println("<p> Rsultat de lOpration " + val1 + "+" + val2 +"="+ "<b>"+res +"</b>"+ "<p>"); sortie.println("</body></html>"); } // fin de doPost } // fin de la servlet
43
Les composants EJB
Intraction entre le client et le Bean
Serveur de noms b. bind() Conteneur EJB
1.lookup() 3.create() Stub Calc Home 2.create() 5.add() Stub Calc EJB 6.add() Calc EJB 7.add() CalcBean 8.retour du rsultat 4.retour rfrence Calc EJB CalcHome a. cration
9.retour du rsultat
Client
44 Les composants EJB
22
Cycle de vie dun Bean Session sans tat
Nexiste pas A linitiative du client 1.create 2. newInstance 3. setSessionContext 4. ejbCreate 1.remove 2.ejbRemove Terminer un Bean, linitiative -de lutilisateur -du conteneur
Prt
Opration sur Home Opration sur instance Attention, Appel non rentrant
1. methode
45
Les composants EJB
Cycle de vie dun Bean Session avec tat
Nexiste pas A linitiative du client A linitiative du conteneur 1.create 2. newInstance 3. setSessionContext 4. ejbCreate ejbPassivate Passif ejbCreate quivalent au mcanisme de SWAP en mmoire virtuelle 1. methode Prt 1.remove 2.ejbRemove Terminer un Bean, linitiative -de lutilisateur -du conteneur
Opration sur Home Opration sur instance Attention, Appel non rentrant
46
Les composants EJB
23
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "<http://java.sun.com/dtd/ejb-jar_2_0.dtd>"> <ejb-jar> <enterprise-beans> <session> <display-name>Calc</display-name> <ejb-name>Calc</ejb-name> <home>rep.CalcHome</home> <remote>rep.Calc</remote> <ejb-class>rep.CalcBean </ejb-class> <session-type>Stateless </session-type> <transaction-type>Container</transaction-type> </session>
47 Les composants EJB
Spcifications des proprits du Bean
</enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>Calc</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>
48
Les composants EJB
24
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.
49
Les composants EJB
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 }
50
Les composants EJB
25
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.
51
Les composants EJB
26