La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les EJB Samir AZZOUZ Équipe ObjectWeb

Présentations similaires


Présentation au sujet: "Les EJB Samir AZZOUZ Équipe ObjectWeb"— Transcription de la présentation:

1 Les EJB Samir AZZOUZ samir.azzouz@planet.tn Équipe ObjectWeb
INRIA Rhône Alpes

2 Introduction Les applications monolithique
Pas de réutilisation des modèles de données Pas de réutilisation des modèles de traitements Les applications C/S (au sens large) Réutilisation des modèles de données Pas de réutilisation des modèles de traitement Les applications à base de middleware Réutilisation des modèles de données et de traitements Notion de composants serveurs Les Web Services

3 Les serveurs d'applications

4 Architectures à Objet Distribués
Services Métiers Application 1 MiddleWare Application 2 Services d'infrastructure Les Web Services

5 Serveur de composants de base
Services Métiers Application 1 Services standard d'infrastructure jts cycle vie Application 2 jdbc version Les Web Services

6 Serveur de composants intégré
Composants Métiers Application 1 Logique métier container infrastructure Gestion automatisée Service d'infrastructure de base Application 2 jdbc jts version cycle vie Les Web Services

7 Services du container d'EJB
Services internes Gestion de la charge du serveur (cycle de vie, accès client, passivation...) Service de nommage Gestion des accès aux objets métiers Services externes Gestion du mapping sur BD relationnelle Gestion des transactions Gestion des échanges de messages Les Web Services

8 Serveur Web dynamique Serveur Web Application 1 Application 2
Les Web Services

9 Serveur Web dynamique Serveur Web Application 1 CGI CGI Application 2
Les Web Services

10 Serveur Web dynamique Serveur Web Application 1 LiveWire Php
Les Web Services

11 Serveur Web dynamique (Servlets / JSP)
Application 1 Servlets Servlets Application 2 Les Web Services

12 Services du container de pages Web
Servlet / JSP Services internes Gestion de la charge du serveur cycle de vie Gestion des autorisations d'accès Services externes API Java Les Web Services

13 Un serveur d'application
Application Java Hébergeant : Des containers Pages Web Composants Métier (EJB) Des services Nommage Base de données/Mapping sur Base Moniteurs transactionnels Déploiement ... Des API sur les services JDBC/JTS/JMS... Les Web Services

14 The J2EE Architecture Applet container Applet Web container
EJB container Servlet JSP EJB J2SE http/ssl Java Mail Java Mail Application Client Container JMS JNDI JMS RMI/IIOP JDBC JNDI RMI/IIOP JDBC JTA JTA JAF JAF Application Client J2SE J2SE rmi/ssl JMS JNDI JDBC RMI/IIOP Databases J2SE Les Web Services

15 Les offres de serveur d'applications
Serveur d'application J2EE Weblogic BEA,WebSphere IBM, Iplanet Sun, Oracle WebObject (Jonhatan/Jonas) INRIA Jboss (Free) Autres serveurs d'applications Microsoft .net / DNA Zope (Python) Serveur CORBA (OrbixWeb) Les Web Services

16 Les serveurs d'EJB

17 Serveur de composants intégré
Composants Métiers Application 1 Logique métier container infrastructure Gestion automatisée Service d'infrastructure de base Application 2 jdbc jts version cycle vie Les Web Services

18 Serveurs distribués Container Container Appli 1 1 2 Services Services
jdbc jdbc Les Web Services

19 Enterprise JavaBeans Enterprise Java Beans : Objectif
Composants logiciels serveur Objectif Standardiser le développement et le déploiement de composants serveurs écrits en Java Le développement ne se fait que sur l'interface métier de l'objet Le développeur ne prend en compte que la logique métier de l'EJB. Le reste est prise en charge par le containeur. Les Web Services

20 Principe de conception des EJB
Le modèle des EJB est fondé sur trois concepts pour la conception de systèmes distribués Approche de serveurs sans-états Approche orientée session Approche objet persistant Les spécifications EJB parlent de Session Beans Stateless Session Bean Statefull Session Bean Entity Beans Container-Managed Persistence Bean-Managed Persistence Les Web Services

21 Le Bean "stateless Session"
Leurs comportements Fournissent un service pour un seul utilisateur Ne maintiennent pas d'état par rapport au client Ne survivent pas à un crash du serveur d'EJB Sont plutôt destinés à vivre sur une courte période Deux instances d'un même bean « sans état » sont identiques Les Web Services

22 Les Bean "statefull Session"
Leurs comportements Interagissent d'une manière conversationnelle Maintiennent un état sur le client connecté Ne survivent pas à un crash du serveur d'EJB Vivent rapidement Une instance est hébergée par un seul thread Une instance peut être partagée par plusieurs clients Les Web Services

23 Les EJB Entité (Entity EJB)
Leurs comportement Ils représentent les données persistantes Ils survivent à un crash Plusieurs clients peuvent utiliser des EJB qui "pointent" sur les mêmes données L'instance EJB contient une copie des données du système de stockage Les Web Services

24 Gestion de la persistance
Les attributs d'un objet doivent être déposés sur un support persistant Exemples de supports de persistance : Sérialisation Accès à une base sur le JDBC (mappage) Stockage Client id=98282 nom=frenot adresse=34 ville=villeurbanne Mappage ? Les Web Services

25 Partage d'EJB entity Quand plusieurs clients partagent un EJB entity ils reçoivent leurs propres instance d'EJB partagent les données sous-jacentes n'ont pas à gérer la synchronisation sur les données client client serveur container client OM skell OM client OM Les Web Services

26 Type de persistance Il y a deux mode de gestion de la persistance
Container-Managed Persistence (CMP) Bean-Managed Persistence (BMP) 1 container OM CMP OM BMP Les Web Services

27 Rôle du développeur d'EJB
Définition des interface distantes L'interface « Remote  » contient les opérations « métier » d'un EJB Définition de l'usine de fabrication des EJB L'interface « Home » d'un EJB Est utilisée par les clients pour créer et/ou retirer un EJB Fournit des méta informations sur l'EJB Est partagée par tous les clients de l'EJB Voit son stub d'invocation placé dans le service de nommage au déploiement Définition du corps de l'EJB Implantation concrète des services métier Les Web Services

28 Le fonctionnement global
jndi OM 5 3 4 1 Client 2 Les Web Services

29 Les optimisations

30 Pooling d'objets Un serveur d'application peut créer un pool d'objets « nus » qui peuvent être utilisés quand des requêtes sont faites client client EJB pool Les Web Services

31 La passivation La passivation est le fait de placer un EJB sur un support secondaire La passivation : A lieu quand un EJB dépasse son idle-timeout Permet à un serveur d'application de réclamer des ressources Placer une instance sérialisée de l'EJB dans son support de stockage Les Web Services

32 Pooling / Passivation sur Weblogic
Ne peut pas exc₫der maxBeansInCache Objets passiv₫s client client EJB cache Un client re₤oit CacheFullException si le cache est plein et rien ne peut ₨tre passiv₫ Un EJB est passiv₫ s ’il a d₫pass₫ idleTimeoutSeconds Les objets sont plac₫s dans le pool libre quand les clients en ont fini Ne peut pas exc₫der maxBeansInFreePool Free Pool Les Web Services

33 Distribution, Equilibrage de charge, Tolérance de pannes
Application et logique métier Logique d'application Logique métier Accès données IHM DBMS Ses Ett Ses Ses Ses Ett EJB Container Nommage, Sécurité, Cycle de vie, Accès concurrents, Transaction, Persistance Serveur d ’application Distribution, Equilibrage de charge, Tolérance de pannes Les Web Services

34 Les rôles dans le monde EJB
Fournisseur de serveur d'application Fournit le serveur intégré avec des services de base Fournisseur de container Fournit les containeurs d'EJB Fournisseur d'EJB Expert dans un domaine vertical; crée les composants EJB Développeur d'application Assemble les applications à partir de composants EJB préfabriqués Spécialiste du déploiement Déploie les applications Maîtrise les principes d'architecture Les Web Services

35 Cycle de développement
Implantation de la base de données (opt.) Implantation des EJB (SL/SF/Entity) Implantation des JSP Les Web Services

36 Cycle de développement d'un EJB session
1) Définir les interfaces métier Interface Remote 2) Définir les méthodes de gestion du cycle de vie Interface Home 3) Définir les caractéristiques intrinsèques du bean dans un fichier de description 4) Définir les caractéristiques de déployement 5) Déployer le bean 6) Réaliser le(s) clients qui utilisent le service Les Web Services

37 Interface Métier Interface Remote de l'EJB fibonacci
package exemple.fibonacci; public interface Fibonacci extends javax.ejb.EJBObject { public int getFibonacciNumber(int n) throws java.rmi.RemoteException; } Les Web Services

38 Interface Home Interface Home de l'EJB fibonacci
package exemple.fibonacci; import javax.ejb; import java.rmi; public interface FibonacciHome extends EJBHome { public Fibonacci create() throws CreateException, RemoteException; } Les Web Services

39 Développement du Bean package exemple.fibonacci; import java.rmi.*;
import javax.ejb.*; public class FibonacciBean implements SessionBean { public void ejbPassivate(){} public void ejbActivate(){} public void ejbRemove(){} public void setSessionContext(SessionContext ctx){} public void ejbCreate() { System.out.println("Cet EJB Fibonacci est créé"; } public int getFibonacciNumber(int n){...} Les Web Services

40 Descripteur du Bean <?xml version="1.0"?>
<!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> <ejb-name>Fibonacci</ejb-name> <home>exemple.fibonacci.FibonacciHome</home> <remote>exemple.fibonacci.Fibonacci</remote> <ejb-class> exemple.fibonacci.FibonacciBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> ... </enterprise-beans> </ejb-jar> Les Web Services

41 Descripteur du déploiement
<?xml version="1.0"?> <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd" > <weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>fibonacci</ejb-name> <stateless-session-descriptor> <pool><max-beans-in-free-pool>100</max-beans-in-free-pool></pool> </stateless-session-descriptor> <transaction-descriptor> <trans-timeout-seconds>300</trans-timeout-seconds> </transaction-descriptor> <jndi-name>fibonnaci</jndi-name> </weblogic-enterprise-bean> </weblogic-ejb-jar> Les Web Services

42 Déploiement du bean Eventuellement (pré-compilation) Jar + cp
Au déploiement Inscription de l'Usine (interface Home) sur le containeur Dépôt du stub de manipulation de l'Usine sur le service de nommage Les Web Services

43 Développement d'un client
public class Client{ public static void main(String [] argv){ try{ FibonacciHome home=(RobotHome)context.lookup("fibonaci"); Fibonacci jacques=home.create(); }catch(NamingException e){ }catch(CreationException e){ }catch(RemoteException e){} } Les Web Services

44 Développement d'un client JSP
<html><head><title> <%= pagetitle %> </title></head> <h2><font color=#DB1260><%= pagetitle %></font></h2> page import="edt.matiere.*"%> <%!String pagetitle = "JSP emploi du temps : Les FaceAFaces";%> <%try { ctx = getInitialContext(); homeFib = (FibonnacciHome) ctx.lookup("fibonnaci"); uneSuite=homeFib.create(); out.println("fib(7)="+uneSuite.getFibonacciNumber(7)); }catch(Exception e){e.printStackTrace(); } %> </body></html> Les Web Services

45 Points forts Notion de container
Robustesse, standardisation, évolution Interface de développement standardisées Pas / Peu de phase de prise en main Automatisation de nombreuses tâches Gestion de la persistance, transactions… Intégration à l'API java Marché explosant Les Web Services

46 Fin Partie x


Télécharger ppt "Les EJB Samir AZZOUZ Équipe ObjectWeb"

Présentations similaires


Annonces Google