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 INRIA Rhône Alpes.

Présentations similaires


Présentation au sujet: "Les EJB Samir AZZOUZ Équipe ObjectWeb INRIA Rhône Alpes."— Transcription de la présentation:

1 Les EJB Samir AZZOUZ Équipe ObjectWeb INRIA Rhône Alpes

2 Les Web Services2 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

3 Les serveurs d'applications

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

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

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

7 Les Web Services7 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

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

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

10 Les Web Services10 Serveur Web dynamique Application 1 Application 2 Serveur Web Php LiveWire

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

12 Les Web Services12 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

13 Les Web Services13 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...

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

15 Les Web Services15 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)

16 Les serveurs d'EJB

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

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

19 Les Web Services19 Enterprise JavaBeans Enterprise Java Beans : –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.

20 Les Web Services20 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

21 Les Web Services21 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

22 Les Web Services22 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

23 Les Web Services23 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

24 Les Web Services24 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) Client id=98282 nom=frenot adresse=34 ville=villeurbanne Stockage Mappage ?

25 Les Web Services25 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 serveur container OM skell client OM

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

27 Les Web Services27 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

28 Les Web Services28 Le fonctionnement global OM Clientjndi12345

29 Les optimisations

30 Les Web Services30 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 EJB pool client

31 Les Web Services31 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

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

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

34 Les Web Services34 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

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

36 Les Web Services36 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

37 Les Web Services37 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; }

38 Les Web Services38 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; }

39 Les Web Services39 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){...} }

40 Les Web Services40 Descripteur du Bean Fibonacci exemple.fibonacci.FibonacciHome exemple.fibonacci.Fibonacci exemple.fibonacci.FibonacciBean Stateless Container...

41 Les Web Services41 Descripteur du déploiement fibonacci fibonnaci

42 Les Web Services42 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

43 Les Web Services43 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){} }

44 Les Web Services44 Développement d'un client JSP <%try { ctx = getInitialContext(); homeFib = (FibonnacciHome) ctx.lookup("fibonnaci"); uneSuite=homeFib.create(); out.println("fib(7)="+uneSuite.getFibonacciNumber(7)); }catch(Exception e){e.printStackTrace(); } %>

45 Les Web Services45 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

46 Fin Partie x


Télécharger ppt "Les EJB Samir AZZOUZ Équipe ObjectWeb INRIA Rhône Alpes."

Présentations similaires


Annonces Google