Java EE et les EJB

Click here to load reader

download Java EE et les EJB

of 77

  • date post

    25-Feb-2016
  • Category

    Documents

  • view

    53
  • download

    2

Embed Size (px)

description

Java EE et les EJB. Maxime Lefrançois ( [email protected] ), modifié du cours de Michel Buffa et Richard Grin. Introduction à Java EE. Besoins des développeurs. A pplications accessibles depuis un navigateur Web distribuées portables rapides fiables transactionnelles - PowerPoint PPT Presentation

Transcript of Java EE et les EJB

PowerPoint Presentation

Java EE et les EJBMaxime Lefranois ([email protected]),modifi du cours de Michel Buffa et Richard Grin

Introduction Java EE2Besoins des dveloppeursApplicationsaccessibles depuis un navigateur Webdistribuesportables rapidesfiablestransactionnellessresfaciles maintenir

3A considrer lorsqu'on construit une application distribueProtocoles d'accs distants (CORBA, RMI, IIOP)Gestion de la charge,Gestion des pannes,Persistence, intgration au back-end,Gestion des transactions,Clustering,Redploiement chaud,Arrt de serveurs sans interrompre l'application,Gestion des traces, rglages (tuning and auditing),Programmation multithreadSecurit, performances, Gestion des ressources (Resource pooling),4Serveur d'applicationQui soccupe de tout a ? Les middleware !

Un serveur d'application fournit les services middleware les plus courants

Permettent de se focaliser sur l'application que l'on dveloppe, sans s'occuper du resteLe code est dploy sur le serveur d'applicationSparation des mtiers et des spcificits : d'un ct la logique mtier, de l'autre la logique middleware.5

Serveur d'applicationHTMLJavaApplication

Business LogicDistributedObjectsTransactionsContentManagement

ScalabilityReliabilitySecurityManageabilityEnterprise Deployment Services

Development Tools

PresentationJavaHTMLData

Data AccessEnterprise DataConnectorsData AccessObjects616/01/20136Larchitecture Java EE7Sorte d'architecture 3 niveauxo la couche prsentation est divise en 2 :Le client lger : un navigateur WebUn serveur Webavec JSF, servlets.Couche de prsentationApplication standaloneApplication webAppletsCouche mtier ; middleware-> Traitements (par des EJB, ou des JavaBeans)Couche de donnesSGBD ; Stocke les donnesSource: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

Les conteneurs dEJB et Web8Les diffrents types de conteneurs :Conteneur d'application cliente et d'applet :la machine virtuelle JavaConteneur Web :pour l'excution des servlet, JSF, etc.Conteneur d'EJB :composants mtier

Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.htmlJava EE : les APIsJava EE comprend de trs nombreuses APIServlets, JSP, JSTL, JSFJNDI,JDBC,EJB, JMSJavaMailJPAJTAJAAS (Java Authentification and Authorization Service)Java API for XML Parsing JAXPJAXBJava RMI, Java IDL9JDBC java database connectivity16/01/20139Java EE 6 Web profileJava EE 6 propose ce quon appelle un web profileUn sous-ensemble de java EE pour le dveloppement dapplication web simplesDans ce web profile on propose :Vue : JSP ou facelets/JSF2Contrleur web : Servlets ou web serviceComposant mtier : EJB type session + managed beans + classes java standard,Accs aux donnes dans une BD via JPA2/EJB type entityJava EE 6 Web profile

Java EE 6 Web profile: EJB Lite

EJB : les fondamentauxJSR-318 Enterprise JavaBeans Specification (626 pages)

13Enterprise JavaBeans (EJB)Le standard EJB est une architecture de composants pour des composants serveur crits en java.Adopt par l'industriePermet d'implmenter des "objets mtier" d'une manire propre et rutilisablePortable facilementRapid Application Development (RAD)EJB signifie deux choses :Une spcificationUn ensemble d'interfaces14Enterprise Java BeanLes EJBfacilitent la cration d'applications distribues pour les entreprises.Soccupent du traitement mtier de lapplicationPermettent aux dveloppeurs de se concentrer sur les traitements orients mtiers Sont rutilisables, assemblables15Rle du conteneurComposants dun serveur dapplicationLes appels aux mthodes par les clients de lEJB sont intercepts par le conteneur dEJBCycle de vie du beanInjection de dpendanceAccs au bean, communication distanceScurit daccsAccs concurrentsTransactions, 162 Types dEJBSession BeanModlise un traitementReprsent par une classe Java et une interface qui expose certaines mthodesMessage Driven Bean (MDB)Consomme des messages asynchrones envoys par des clientsPermettent linterconnexion avec des systmes diffrents (non Java EE) 17Session BeanModlise un traitement (business process)Correspond un verbe, une actionEx : gestion de compte bancaire, affichage de catalogue de produit, vrifieur de donnes bancaires, gestionnaire de prixLes actions impliquent des calculs, des accs une base de donnes, consulter un service externe (appel tlphonique, etc.)Souvent client d'autres Beans183 types de Session BeanBean sans tat (stateless)Pour traiter les requtes de plusieurs clients, sans garder un tat entre les diffrentes requtesExemple : obtenir la liste de tous les produitsBean avec tat (stateful)Pour tenir une conversation avec un seul client,en gardant un tat entre les requtesExemple : remplir le caddy dun client avant de lancer la commande (le caddy est rempli en cliquant sur les diffrentes pages des produits)193 types de Session BeanBean singletonGarantie de navoir quune seule instance du bean dans tout le serveur dapplicationSupporte les accs concurrents (configurable)Exemple : bean qui cache une liste de pays, utilis par les classes de lapplication pour viter dinterroger la BD20Message-Driven BeanSimilaire aux Session beans : reprsentent des verbes ou des actions,On les invoque en leur envoyant des messages, souvent dune autre applicationEx : message pour dclencher des transactions boursires, des autorisations d'achat par CBSouvent clients d'autres beans21Clients interagissant avec un serveur base d'EJBs

22Objets distribus

23Application distribueUne application Java EE peut tre distribue sur plusieurs machines du rseauLes containers grent les appels distants pour le dveloppeur (utilisent RMI-IIOP)24Les objets distribus RMI-IIOP25InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~RemoteInterfaceRemoteInterfaceLes objets distribus et le middlewareLorsqu'une application devient importante, des besoins rcurrents apparaissent : scurit, transactions,etcC'est l qu'intervient le middleware!Deux approchesMiddleware explicite,Middleware implicite2627Les objets distribus Middleware expliciteInternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceRemoteInterfaceLes objets distribus Middleware explicite28InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceRemoteInterfaceExemple : transfert d'un compte bancaire vers un autre : transfert(Compte c1, Compte c2, long montant)Appeler l'API de scurit qui fait une vrification de scurit,Appeler l'API de transaction pour dmarrer une transaction,Appeler l'API de SGBD pour lire des lignes dans des tables d'une BD,Faire le calcul : enlever de l'argent d'un compte pour le mettre dans l'autreAppeler l'API de SGBD pour mettre jour les lignes dans les tables,Appeler l'API de transaction pour terminer la transaction.Les objets distribus Middleware explicite29InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceRemoteInterfaceExemple : transfert d'un compte bancaire vers un autre : transfert(Compte c1, Compte c2, long montant)Appeler l'API de scurit qui fait une vrification de scurit,Appeler l'API de transaction pour dmarrer une transaction,Appeler l'API de SGBD pour lire des lignes dans des tables d'une BD,Faire le calcul : enlever de l'argent d'un compte pour le mettre dans l'autreAppeler l'API de SGBD pour mettre jour les lignes dans les tables,Appeler l'API de transaction pour terminer la transaction.Difficile crireDifficile maintenirCode dpendant des API du vendeur de middlewareLes objets distribus Middleware implicite30InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceIntercepteur de requteRemoteInterfaceRemoteInterfaceLes objets distribus Middleware implicite31InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieServeur= Objet distribu~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceIntercepteur de requteRemoteInterfaceRemoteInterfaceLes besoins sont dcrits dans un fichier descripteurLintercepteur de requtesait quoi faireLes EJB : des objets distribus RMI-IIOP au cur des EJBs32InternetRMI/IIOPMachine clientIIOP RuntimeJVMstubClientMachine serveurIIOP RuntimeJVMtieEJB~~Service TransactionService ScuritDriverBase de donnesAPI transactionAPIscuritAPI Base de donnesRemoteInterfaceRemoteInterfaceConteneur dEJBintercepteurEJBmiddleware implicite mais API pour descendre au bas niveau, ExpliciteLa plupart du temps le dveloppeur demeure au niveau implicite,Mais il peut utiliser des APIs de Java EE pour contrler manuellement les transactions, la scurit, etc. (travail plus complexe)Un peu dimplmentation avec EJB 2.x

33EJB ObjectEJB 3.0 simplifie la tche du dveloppeur en cachant des dtails dimplmentationLtude de EJB 2.x permet de comprendre comment fonctionnent les EJBPour chaque EJB crit par le dveloppeur, le serveur dapplication cre un objet (EJB Object) qui contient le code qui va permettre au serveur dintercepter les appels de mthode de lEJB

34Rle de lEJB ObjectLes clients n'invoquent jamais directement les mthodes de la classe du BeanLes appels de mthodes sont en fait envoys lEJB ObjectUne fois les traitements effectus pour les transactions, scurit,.. le container appelle les mthodes de la classe du bean35Constitution d'un EJB : EJB ObjectQue se passe-