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

Stéphane Frenot - Département Télécommunication - SID - II - EJB 157 Les Ejb Les EJB sont à CORBA ce qu ’ est le circuit précablé

Présentations similaires


Présentation au sujet: "Stéphane Frenot - Département Télécommunication - SID - II - EJB 157 Les Ejb Les EJB sont à CORBA ce qu ’ est le circuit précablé"— Transcription de la présentation:

1 Stéphane Frenot - Département Télécommunication - SID - II - EJB 157 Les Ejb Les EJB sont à CORBA ce qu ’ est le circuit précablé à la carte mère électronique

2 Stéphane Frenot - Département Télécommunication - SID - II - EJB 158 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 159 Les serveurs d'applications

4 Stéphane Frenot - Département Télécommunication - SID - II - EJB 160 Architectures à Objet Distribués Application 1 Application 2 MiddleWare Services Métiers Services d'infrastructure

5 Stéphane Frenot - Département Télécommunication - SID - II - EJB 161 Serveur de composants de base Application 1 Application 2 Services Métiers Services standard d'infrastructure jdbc jts version cycle vie

6 Stéphane Frenot - Département Télécommunication - SID - II - EJB 162 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 163 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 164 Serveur Web dynamique Application 1 Application 2 Serveur Web

9 Stéphane Frenot - Département Télécommunication - SID - II - EJB 165 Serveur Web dynamique Application 1 Application 2 Serveur Web CGI

10 Stéphane Frenot - Département Télécommunication - SID - II - EJB 166 Serveur Web dynamique Application 1 Application 2 Serveur Web Php LiveWire

11 Stéphane Frenot - Département Télécommunication - SID - II - EJB 167 Serveur Web dynamique (Servlets / JSP) Application 1 Application 2 Serveur Web Servlets

12 Stéphane Frenot - Département Télécommunication - SID - II - EJB 168 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 169 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 170 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 171 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 –Zope (Python) –Serveur CORBA (OrbixWeb)

16 Stéphane Frenot - Département Télécommunication - SID - II - EJB 172 Les serveurs d'EJB

17 Stéphane Frenot - Département Télécommunication - SID - II - EJB 173 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 174 Serveurs distribués Appli 1 Appli 2 Container jdbc 1 Services Container jdbc 2 Services

19 Stéphane Frenot - Département Télécommunication - SID - II - EJB 175 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 176 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 177 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 178 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 Stéphane Frenot - Département Télécommunication - SID - II - EJB 179 Stateful vs. Stateless Un bean stateful maintient un état conversationnel qui est récupéré entre deux invocations Un bean stateless n'a pas d'état entre les appels sur ses méthodes

24 Stéphane Frenot - Département Télécommunication - SID - II - EJB 180 Exemples de Beans Session Session Stateless –Un EJB qui calcule le cos(x) –Un décompacteur –Un EJB qui vérifie si une donnée est valide –Un EJB qui calcule le coût d'une communication téléphonique Session Statefull –Un EJB qui gère une réservation –Un EJB qui commande les pièces détachées d'un véhicule –Un EJB qui gère le flux d'information d'un centre d'appel

25 Stéphane Frenot - Département Télécommunication - SID - II - EJB 181 Stateful vs. Stateless EJB client serveur container OM skell client Les clients partagent le même contexte client serveur container OM skell client Un client possède son propre contexte sur un EJB stateful OM

26 Stéphane Frenot - Département Télécommunication - SID - II - EJB 182 Etat dun EJB Session Stateful Létat d'un EJB de type stateful est défini comme la fermeture transitive des objets visibles par les champs du bean Instance d'un chat Instance d'une souris int age=5 capture int age=7

27 Stéphane Frenot - Département Télécommunication - SID - II - EJB 183 EJB Stateful identiques ? Deux EJB stateful sont identiques s'ils partagent le même contexte client ! client serveur container OM skell client Les clients partagent la même référence distante

28 Stéphane Frenot - Département Télécommunication - SID - II - EJB 184 Comment obtenir la même référence distante ? client serveur container OM skell client 1 Ce client crée la nouvelle instance 2 Le client dépose le handle dans une base 3 Ce client récupère le handle 4 Le client utilise le handle pour créer la même référence distante

29 Stéphane Frenot - Département Télécommunication - SID - II - EJB 185 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

30 Stéphane Frenot - Département Télécommunication - SID - II - EJB 186 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 ?

31 Stéphane Frenot - Département Télécommunication - SID - II - EJB 187 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

32 Stéphane Frenot - Département Télécommunication - SID - II - EJB 188 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

33 Stéphane Frenot - Département Télécommunication - SID - II - EJB 189 EJB Entité Exemples : –Un EJB qui représente les statistiques dun site –Un EJB qui représente l'évolution d'une cotation –Un EJB qui représente une séquence du génôme –...

34 Stéphane Frenot - Département Télécommunication - SID - II - EJB 190 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

35 Stéphane Frenot - Département Télécommunication - SID - II - EJB 191 Exercice Un EJB qui implante C-MesCources ? Un EJB qui gère un cours en vidéo ? Un EJB qui gère le passage du TOEIC ? Un EJB qui calcule de la vitesse de rotation des planètes ? Un EJB qui représente le compte bancaire d'une personne ? Un EJB qui gère un appel de support technique ? Un EJB qui calcule la valeur de remboursement d'un prêt ? Un EJB de gestion de chaîne Hi-Fi ? Un EJB qui liste les personnes connectées sur un réseau ? Un EJB qui contrôle la validité d'un cookie d'une page Web ? Un EJB qui représente un document Word ? Un EJB qui représente une enchère sur un site ?

36 Stéphane Frenot - Département Télécommunication - SID - II - EJB 192 Le fonctionnement global OM Client jndi

37 Stéphane Frenot - Département Télécommunication - SID - II - EJB 193 Deux principes clés : les interfaces Interface « home » –Interface de l'usine de fabrication des OM Est utilisée par les clients pour créer un EJB Est utilisée par un client pour 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 Interface « remote » –Représente l'OM distant (stub)

38 Stéphane Frenot - Département Télécommunication - SID - II - EJB 194 Les optimisations

39 Stéphane Frenot - Département Télécommunication - SID - II - EJB 195 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

40 Stéphane Frenot - Département Télécommunication - SID - II - EJB 196 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

41 Stéphane Frenot - Département Télécommunication - SID - II - EJB 197 Pooling / Passivation sur Weblogic EJB cache client Free Pool Les objets sont placs dans le pool libre quand les clients en ont fini Objets passivs Un EJB est passiv s ’ il a dpass idleTimeoutSeconds Ne peut pas excder maxBeansInFreePool Ne peut pas excder maxBeansInCache Un client reoit CacheFullException si le cache est plein et rien ne peut tre passiv

42 Stéphane Frenot - Département Télécommunication - SID - II - EJB 198 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

43 Stéphane Frenot - Département Télécommunication - SID - II - EJB 199 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

44 Stéphane Frenot - Département Télécommunication - SID - II - EJB 200 Cycle de développement Implantation de la base de données (opt.) Implantation des EJB (SL/SF/Entity) Implantation des JSP

45 Stéphane Frenot - Département Télécommunication - SID - II - EJB 201 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

46 Stéphane Frenot - Département Télécommunication - SID - II - EJB 202 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; }

47 Stéphane Frenot - Département Télécommunication - SID - II - EJB 203 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; }

48 Stéphane Frenot - Département Télécommunication - SID - II - EJB 204 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){...} }

49 Stéphane Frenot - Département Télécommunication - SID - II - EJB 205 Descripteur du Bean Fibonacci exemple.fibonacci.FibonacciHome exemple.fibonacci.Fibonacci exemple.fibonacci.FibonacciBean Stateless Container...

50 Stéphane Frenot - Département Télécommunication - SID - II - EJB 206 Descripteur du déploiement fibonacci fibonnaci

51 Stéphane Frenot - Département Télécommunication - SID - II - EJB 207 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

52 Stéphane Frenot - Département Télécommunication - SID - II - EJB 208 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){} }

53 Stéphane Frenot - Département Télécommunication - SID - II - EJB 209 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(); } %>

54 Stéphane Frenot - Département Télécommunication - SID - II - EJB 210 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


Télécharger ppt "Stéphane Frenot - Département Télécommunication - SID - II - EJB 157 Les Ejb Les EJB sont à CORBA ce qu ’ est le circuit précablé"

Présentations similaires


Annonces Google