du java ee 5 - s5ad9be3930661896.jimcontent.com · il montre comment s’imbriquent les...

349
EJB 3.0 • JPA • JSP • JSF • Web Services • JMS • GlassFish • Ant les Cahiers du Programmeur Antonio Goncalves

Upload: trinhlien

Post on 09-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • Programmez intelligent

    Cod

    e d

    iteur

    : G

    12038

    ISBN

    13

    : 978-2

    -212-1

    2038-7

    36

    97

    82

    21

    21

    20

    38

    7

    EJB 3.0 JPA JSP JSF Web Services JMS GlassFish Ant

    avec les Cahiersdu Programmeur

    les Cahiersdu Programmeur

    Antonio Goncalves

    A.

    Gon

    calv

    esJava

    EE

    5Ce cahier dtaille la conception dun site de commerce lectronique avecUML et Java EE 5. Inspire du Java Petstore, ltude de cas se construitau fil des chapitres en appliquant les spcifications Java EE 5 : EJB 3.0,JPA 1.0, Servlet 2.5, JSP 2.1, JSF 1.2, Web Services 1.2, JAXB 2.0,JAX-WS 2.0, JavaMail 1.4, JMS 1.1. Lapplication est dploye dans leserveur GlassFish et utilise la base de donnes Derby.

    Cet ouvrage sadresse aux architectes et dveloppeurs confirms qui veulentdcouvrir les nouveauts de Java EE 5 ou migrer leurs applications J2EE 1.4existantes. Il montre comment simbriquent les diffrentes API de Java EE 5dans une application internet-intranet.

    Java EE 5EJB 3.0 JPA JSP JSF Web Services (JAXB, JAX-WS) JavaMail JMS GlassFish Ant Derby

    Architecte senior, AntonioGoncalves intervient dansdes grands comptes commeconsultant et formateur ind-pendant. Ancien consultantWeblogic chez BEA Systems, il sest spcialis depuis 1998dans larchitecture logicielle etles technologies Java. Membrede lOSS Get Together Paris, il prconise ses clients les ou-tils Open Source. Antonio Gon-calves enseigne galement laplate-forme Java Enterprise Edi-tion au Conservatoire Nationaldes Arts et Mtiers et estrdacteur technique des sitesDevX et developpez.com.

    SommaireEtude de cas Une entreprise de vente en ligne Expression des besoins Les acteurs dusystme et les cas dutilisation Larchitecture de lapplication Java SE 5 Java EE 5 (JPA,JMS, EJB, Servlet, JSP, JSF, JavaMail, Web Services) XML UML Le blueprint JavaPetstore Dcoupage en couches de lapplication Installation et configuration des outils JDK Ant GlassFish Lutilitaire asadmin La console dadministration de GlassFish La base de donnes Derby La persistance des donnes Java Persistence API Annotations JPA Mapping Les objets persistants de lapplication Les relations entreobjets Jointures Pojos et entity beans Schma de la base de donnes Traitementsmtiers Stateless session bean Pattern Facade Entity Manager Oprations CRUD Contexte de persistance Le langage de requte JPQL Dmarcation de transactions Gestion des exceptions Linterface swing JNDI Les design patterns Service Locator etBusiness Delegate Application Client Container Compiler, packager, dployer et excuter lapplication Linterface web Servlet, JSP et JSTL JSF Les balises JSF Le langagedexpression Managed beans Linjection Navigation entre pages Le pattern MVC Conserver ltat dans lapplication web Stateful session bean Le panier lectronique Les changes b2b SOAP, UDDI, WSDL, JAX-WS et JAXB Messages XML Les servicesweb Annotations JAX-WS Gnration et utilisation des artefacts Les traitements asynchrones JMS Les files dattente Message-driven bean JavaMail.

    @ Tlchargez le code source de ltude de cas ! www.editions-eyrolles.com

    Con

    cept

    ion

    couv

    ertu

    re:

    Nor

    dcom

    po

    12038_JavaEE5 7/05/07 16:01 Page 1

  • les Cahiersdu Programmeur

    Java EE 5

    PDT_MoliereJ2EE 26/04/07 18:29 Page 1

  • D. MERCER, adapt par S. BURRIEL. Crer son site e-commerce avec osCommerce.

    N11932, 2007, 460 pages.PGP/GPG - Confidentialit des mails et fichiers.

    M. LUCAS, ad. par D. GARANCE , contrib. J.-M. THOMAS.N12001-X, 2006, 248 p.

    Russir son site web avec XHTML et CSS.M. NEBRA. N11948, 2007, 306 p.

    La 3D libre avec Blender. O. SARAJA. N11959,2006, 370 p. avec CD et cahier couleur.

    Dbuter sous Linux avec Mandriva. S. BLONDEEL,D. CARTRON, J. RISI. N11689, 2006, 530 p. avec CD-Rom.Premiers pas en CSS et HTML Guide pour les

    dbutants. F. DRAILLARD N12011, 2006, 232 p.Mozilla Thunderbird. Le mail sr et sans spam.

    D. GARANCE, A.-L. et D. QUATRAVAUX. N11609, 2005,320 p., avec CD-Rom.

    Firefox. Un navigateur web sr et rapide. T. TRUBACZ,prface de T. NITOT. N11604, 2005, 250 p.

    Ubuntu efficace. L. DRICOT et al. N12003,2e dition 2007, 360 p. avec CD-Rom.

    Gimp 2 efficace. C. GEMY. N11666, 2005, 360 p. avec CD-Rom.

    OpenOffice.org 2 efficace. S. GAUTIER, C. HARDY,F. LABBE, M. PINQUIER. N11638, 2006,

    420 p. avec CD-Rom.Russir un projet de site Web, 4e dition.

    N. CHU. N11974, 2006, 230 p.Home cinma et musique sur un PC Linux.

    V. FABRE. N11402, 2004, 200 p.SPIP 1.9. Crer son site avec des outils libres. Perline,

    A.-L. Quatravaux et al N12002, 2e dition 2007, 376 p.

    OpenOffice.org 2 Calc. S. GAUTIER, avec la contributionde J.-M. THOMAS. N11667, 2006, 220 p.

    OpenOffice.org 2 Writer. S. GAUTIER, avecla contribution de G. VEYSSIERE. N11668, 2005, 248 p.

    Collection Accs Libre Pour que linformatique soit un outil, pas un ennemi !

    Wikipdia. Comprendre et participer. S. BLONDEEL. N11941, 2006, 168 p.

    Peer-to-peer. Comprendre et utiliser. F. LE FESSANT. N11731, 2006, 168 p.

    Les podcasts. couter, sabonner et crer. F. DUMESNIL. N11724, 2006, 168 p.

    Crer son blog en 5 minutes. C. BECHET. N11730, 2006, 132 p.

    Collection Connectez-moi ! Partage et publication Quel mode demploi pour ces nouveaux usages de lInternet ?

    Collection Cahiers du programmeur !

    Chez le mme diteurP. ROQUES, F. VALLE. UML 2 en action. De lanalyse des besoins la conception.

    N12104, 4e dition 2007, 382 p.P. ROQUES. UML 2 par la pratique. N12014, 5e dition 2006, 385 p.

    G. PONON. Best practices PHP 5. Les meilleures pratiques de dveloppement en PHP. N11676, 2005, 480 p.

    H. BERSINI, I. WELLESZ. Lorient objet. N11538, 2e dition 2004, 600 p.T. LIMONCELLI, adapt par S. BLONDEEL. Adminsys. Grer son temps. N11957, 2006, 274 p.

    P. LEGAND. Scuriser enfin son PC. Windows XP et Windows Vista. N12005, 2007, 500 p.L. Bloch, C. Wolfhugel. Scurit informatique. Principes fondamentaux pour ladministrateur systme.

    N12021, 2007, 350 p.B. Marcelly, L. Godard. Programmation OpenOffice. org 2 Macros OOoBASIC et API. N11763, 2006, 700 p.

    J. DUBOIS, J.-P. RETAILLE, T. TEMPLIER. Spring par la pratique. Java/J2EE, Spring, Hibernate, Struts, Ajax. N11710, 2006, 518 p.

    T. ZIADE. Programmation Python. N11677, 2006, 530 p.J BATTELLE, trad. D. RUEFF, S. BLONDEEL La rvolution Google. N11903, 2006, 280 p.

    Swing. E. PUYBARET. N12019, 2007, 500 p.Java 1.4 et 5.0. E. PUYBARET. N11916,

    3e dition 2006, 400 p.J2EE. J. MOLIERE. N11574, 2e dition 2005.

    Java/XML. R. FLEURY. N11316, 2004.XUL. J. PROTZENKO, B. PICAUD. N11675, 2005, 320 p.PHP/MySQL et JavaScript. P. CHALEAT, D. CHARNAY,

    J.-R. ROUET. N11678, 2005, 212 p.

  • les Cahiersdu Programmeur

    Java EE 5

    Antonio Goncalves

    PDT_MoliereJ2EE 26/04/07 18:29 Page 3

  • DITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05

    www.editions-eyrolles.com

    Le code de la proprit intellectuelle du 1er juillet 1992 interdit en effet expressment la photocopie usage collectif sans autorisation des ayants droit. Or, cette pratique sest gnralise notamment dans les tablissements denseignement, provoquant une baisse brutale des achats de livres, au point que la possibilit mme pour les auteurs de crer des uvres nouvelles et de les faire diter correctement est aujourdhui menace.En application de la loi du 11 mars 1957, il est interdit de reproduire intgralement ou partiellement le prsent ouvrage, sur quelque support que ce soit, sans autorisation de lditeur ou du Centre Franais dExploitation du Droit de Copie, 20,

    rue des Grands-Augustins, 75006 Paris. Groupe Eyrolles, 2007, ISBN : 978-2-212-12038-7

    Avec la contribution de Jrome Molire.

    www.editions-eyrolles.com

  • Dpt lgal : mai 2007N dditeur : 7651Imprim en France

  • lose.

  • Groupe Eyrolles, 2007

    Peut-tre nos activits, aux uns et aux autres, nous laisseront-elles unjour le temps de regarder avec assez de recul laventure incroyable decette technologie quest Java ? En seulement dix ans, Java sest impos lo on ne devinait que la domination dun seul modle conomique.Aujourdhui, la majorit des grands projets, tout comme la plupart desgrands acteurs de linformatique, sappuient sur cette technologie. Pourtre plus prcis, il faudrait dire : saccroche sa dynamique . Quilaurait pari ?

    Depuis le milieu des annes 1990 et lmergence du navigateur Internetsur nos bureaux virtuels, Java est pass de ce petit bonhomme jongleur ani-mant inutilement les pages web cet impressionnant ensemble dAPI per-mettant la refonte complte de nos systmes informatiques dentreprise.

    Dans ce tourbillon technologique, nous sommes tous invits trouvernotre chemin. Dabord, les entreprises dont le mtier est de sadapter auxnouvelles contraintes et aux nouveaux modles conomiques (logiciel libre,par exemple). Mais aussi, les personnes de la galaxie informatique qui ondemande de tout savoir, sans toujours comprendre que la matrise de tantde concepts pose un vrai problme de comptences et de formations.

    Le Conservatoire National des Arts et Mtiers est lun des interlocuteursde ces personnes dsireuses de voir leurs comptences voluer de faoncohrente avec les offres de solutions technologiques et demplois. Cestdans le cadre de cette honorable et toujours jeune institution du Cnamque jai eu la chance de connatre Antonio Goncalves. Cest ensemble quenous nous sommes poss la question de notre contribution ce rapportdifficile entre lvolution de la technologie et lvolution des comptencesdes professionnels qui viennent nous entendre sur ces sujets.

    Prface

    B http://www.cnam.fr

    http://www.cnam.fr

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 2007VIII

    Autant vous dire que le boulot nest pas de tout repos ! Depuis quelquesannes, cest au plus tous les deux ans que nous devons nous remettre encause et changer non seulement de solutions mais de discours. Nos audi-teurs, qui sont des professionnels, sont dailleurs les premiers nousinterpeller pour nous signaler que telle ou telle nouvelle solutionsimpose au march et donc aux acteurs que nous sommes. Il arrive alorsque ce soit des anciens auditeurs, devenus des architectes Java EEavertis, qui, passionns par leur mtier comme par la transmission deleur savoir, viennent renforcer nos quipes pdagogiques et contribuerainsi la pertinence de notre offre. Cest le cas dAntonio, qui est lafois architecte de grands projets Java EE et enseignant au Cnam, pour laplus grande satisfaction de ses collgues et surtout de ses auditeurs.

    Cest en grande partie dans ce contexte que sinscrit le livre que vous avezentre les mains. Lide en est ne de plusieurs annes de contributions laformation Java EE au Cnam. Lorientation pragmatique de louvrage estissue de la bonne connaissance de la demande de nos auditeurs.

    Le pari de ce livre est de vous donner le moyen de pntrer chacune deces nouvelles technologies, par la pratique, et dans le cadre structurantdun projet connu de tous pour tre le projet de rfrence en la matire.

    Jespre que ce livre aura laudience quil mrite auprs de tous ceux quine se contentent pas de simples gnralits. En tout cas, je suis sr quilaura auprs de nos tudiants Paris et dans son rseau national, limpactpdagogique dont nous avons besoin pour relever ce dfi.

    Professeur Louis Dewez

    Dpartement STIC, Cnam

    B http://jfod.cnam.fr

    http://jfod.cnam.fr

  • Groupe Eyrolles, 2007

    Java Enterprise Edition est apparue la fin des annes 1990 et a apportau langage Java une plate-forme logicielle robuste pour les applicationsdentreprise. Remise en cause chaque nouvelle version, mal compriseou mal utilise, concurrence par les frameworks Open Source, elle a sutirer profit de ces critiques pour samliorer et trouver un quilibre danssa version Java EE 5.

    Cet ouvrage propose de dcouvrir les nouveauts de cette nouvelle ver-sion, tout en examinant comment les assembler pour dvelopper un sitede commerce lectronique.

    Objectifs de cet ouvrageServlet, JMS, EJB, JSP, JPA, MDB, JSF, la liste des spcifications quiconstituent Java EE 5 et qui doivent tre connues par ses adeptes estlongue. Lobjectif de ce livre est ambitieux puisquil se propose de vousguider dans le dveloppement dun site de commerce lectronique enutilisant la plupart de ces spcifications.

    Java EE 5 est constitu de plus dune vingtaine de spcifications, cha-cune faisant lobjet dune description prcise dans un document relative-ment volumineux (par exemple, 330 pages pour les servlets 2.5 ouencore 646 pour les EJB 3.0). Vous trouverez donc, dans la littratureinformatique et sur Internet, une multitude de mini applications du type Hello World ainsi que des tutoriels couvrant chacune de ces spcifi-cations de manire isole. Ce nest pas le but de cet ouvrage. Son objectifest de vous guider dans le dveloppement dun site complet de com-merce lectronique, tout en rpondant la question Comment faire

    Avant-propos

    JAVA JEE 5

    La version finale de la spcification Java EE 5 datede juillet 2006.Retrouvez en annexe A la liste exhaustive des sp-cifications qui constituent Java EE 5.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 2007X

    pour assembler ces spcifications ? . La structure de lapplication suit lesrgles de lart en matire darchitecture : dcoupage en couches, couplagelche et design patterns.

    Afin de vous raccrocher des concepts et pratiques connus de la commu-naut Java, cet ouvrage sinspire du Java Pet Store de Sun et vous servira deguide dans le dveloppement dun site web proche de cette application. Deplus, ce livre couvre une large partie des spcifications Java EE 5, utilise laversion 5 du JDK, les design patterns, ainsi que le serveur GlassFish pourexcuter lapplication. Il est abondamment illustr de diagrammes UML,dextraits de code et de captures dcrans. Enfin, les pages de ce livre sontaccompagnes de notes, de remarques et de rfrences pour vous per-mettre dapprofondir vos connaissances. Le dveloppement de cette appli-cation est fait de manire incrmentale afin dapprhender au fur et mesure chacune des spcifications.

    qui sadresse cet ouvrage ?Le but de ce livre nest pas de dtailler la syntaxe du langage Java ouencore lensemble des mthodes des classes constituant lAPI EJB. Si teltait le cas, vous ne pourriez lemporter avec vous, moins de possderune brouette, en raison de son volume, et donc de son poids.

    Cet ouvrage sadresse avant tout des lecteurs ayant un niveau avanc enJava/UML et quelques connaissances en dveloppement web.

    Il est galement ddi aux architectes souhaitant comprendre commentimbriquer les diffrentes API de Java EE 5 pour raliser une applicationInternet-intranet.

    Les dbutants et les tudiants y trouveront aussi leur compte en utilisantles multiples rfrences que contient ce livre. Ces dernires leur permet-tront dapprofondir un sujet en particulier si besoin.

    Structure du livreLe chapitre 1 prsente ltude de cas dune application de commercelectronique inspire du Blueprint Java Pet Store de Sun. La socitfictive YAPS veut informatiser son activit de vente danimaux domesti-ques. Pour ce faire, elle a besoin dun site pour les internautes, dunclient riche pour ses employs et de dialoguer avec ses partenairesexternes (banque et transporteur).

    UML, cas dutilisation.

    Java Pet Store

    Faisant partie du programme des BluePrints deSun Microsystems, lapplication Java Pet Store estun site de commerce lectronique utilisant les sp-cifications Java EE.B http://java.sun.com/reference/blueprints/

    GlassFish

    GlassFish est un serveur dapplications que Sun adonn la communaut Open Source.

    Sources

    Le code source de lapplication dveloppe dans celivre est disponible en ligne sur le site : B http://www.antoniogoncalves.orgVous y trouverez aussi dautres ressources tellesquun forum pour dposer vos remarques ouchanger de linformation.

    http://java.sun.com/reference/blueprints/http://www.antoniogoncalves.org

  • Avan

    t-pr

    opos

    Groupe Eyrolles, 2007 XI

    Le chapitre 2 se concentre sur larchitecture technique et logicielle delapplication YAPS Pet Store. Ce chapitre prsente brivement les outilset API utiliss pour le dveloppement.

    Java 5, HTML, XML, Java EE 5, Blueprint, design pattern, UML.

    Linstallation et la configuration des outils se fait au chapitre 3.

    JDK, Ant, GlassFish, Derby, TopLink.

    Le chapitre 4 entre dans le vif du sujet en dveloppant les objets persis-tants de lapplication.

    JPA, entity bean.

    Le chapitre 5 rajoute une couche de traitements mtiers venant mani-puler les objets persistants.

    EJB Stateless, entity manager, JPQL.

    Le chapitre 6 nous explique comment compiler et dployer lapplicationpour que celle-ci soit utilise par une IHM Swing.

    Ant, JNDI, Swing, GlassFish, TopLink, Derby.

    Le chapitre 7 cre une premire version de lapplication web qui permetde visualiser le catalogue des articles de la socit et de grer laccs desclients.

    JSP, JSTL, JSF, Unified Expression Language.

    Le chapitre 8 rajoute un panier lectronique au site pour pouvoir acheterdes animaux domestiques en ligne.

    EJB Stateful.

    Le chapitre 9 sintresse aux changes B2B entre la socit YAPS et sespartenaires externes (banque et transporteur).

    Web Service, WSDL, Soap, JAXB.

    Les traitements asynchrones, comme limpression dun bon de com-mande ou lenvoi de-mails, sont dvelopps au chapitre 10.

    JMS, message-driven bean, JavaMail.

    RemerciementsCette pope naurait pas t possible sans laide et les conseils de Jean-Louis Dewez. Je tiens le remercier pour son coute et les multiples dis-cussions constructives que nous avons eues.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 2007XII

    Le graphisme de lapplication web est loeuvre de David Dewalle, qui aaussi dvelopp la partie Swing. Un grand merci Alexis Midon pourmavoir aid dans les dveloppements ct serveur.

    Je remercie galement mon quipe de relecteurs Zouheir Cadi, AlexisMidon et Matthieu Riou, pour mavoir permis damliorer la qualit dece livre grce leur expertise et leurs critiques.

    Je tiens remercier la socit de service Adex M2i de mavoir permisdenrichir mes comptences dans les domaines technologiques Java EE. Jevoudrais plus particulirement saluer Alain Stern et Christian Darneau.

    Merci lquipe des ditions Eyrolles, Muriel pour sa patience et sesencouragements, Hind, Eliza, Sophie et Gal pour le sprint final derelecture et de mise en pages.

    Merci la communaut Java et plus particulirement la communautGlassFish qui ma t dun trs grand secours. Je tiens aussi remercierles diteurs JetBrains (Intellij Idea) et Visual Paradigm Internationalpour mavoir offert des licences de leurs excellents logiciels.

    Un grand merci tous ceux qui mont paul durant cette pope (mafemme Denise et mes proches).

  • Table des matires

    Groupe Eyrolles, 2005 XIII

    1. PRSENTATION DE LTUDE DE CAS ................................. 1Expression des besoins 2Diagramme de cas dutilisation 3Les acteurs du systme 3Les cas dutilisation 4

    Grer les clients 5Maquettes 6

    Grer le catalogue 7Maquettes 8

    Visualiser les articles du catalogue 8Diagramme dactivits 9Maquettes 9

    Rechercher un article 11Maquettes 12

    Se crer un compte 12Maquettes 13

    Se connecter et se dconnecter 14Maquettes 15

    Consulter et modifier son compte 16Maquettes 17

    Acheter des articles 17Maquettes 18

    Crer un bon de commande 22Visualiser et supprimer les commandes 22

    Maquettes 23En rsum 23

    2. ARCHITECTURE DE LAPPLICATION ................................. 25Prsentation des langages utiliss 26

    Java SE 5 26Autoboxing 26Annotations 27Gnriques 28Les types numrs 28Swing 28JNDI 1.5 29JDBC 3.0 29

    XML et XSD 30HTML et XHTML 30

    La plate-forme Java EE 5 31JPA 1.0 32JMS 1.1 32EJB 3.0 33

    EJB Stateless 33EJB Stateful 34Message-driven bean 34Entity bean 35Le conteneur dEJB 35

    Servlet 2.5 et JSP 2.1 36Langage dexpression 37JSTL 1.2 37JSF 1.2 38Le conteneur de servlet 38JavaMail 1.4 38JAXB 2.0 38Services web 39

    Blueprints 39Java Pet Store 39

    Les design patterns 41UML 2 41Architecture de lapplication 42

    Larchitecture en trois couches 42Architecture applicative 42

    Couche de prsentation 43Couche de navigation 43Couche de traitement mtier 43Couche de mapping objet/relationnel 44Couche de persistance 44Couche dinteroprabilit 44

    Architecture technique 44En rsum 45

    3. OUTILS ET INSTALLATION..............................................47Outils utiliss pour le dveloppement de lapplication 48

    JDK 48Ant 48GlassFish 48Derby 49

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 2005XIV

    Environnement de dveloppement 49Outil de modlisation UML 49

    Installation des outils 50JDK 1.5 50Ant 1.7 52GlassFish V2 52

    Configuration du serveur GlassFish 55Cration dun domaine 55Configuration de la base de donnes 56

    Cration dun pool de connexions 57Cration de la base de donnes 58Cration dune source de donnes 58

    Cration des ressources JMS 59Cration de loggers 60Rcapitulatif des lments de configuration 62

    Environnement de dveloppement 62Les rpertoires 62

    En rsum 63

    4. OBJETS PERSISTANTS................................................... 65La persistance des donnes 66

    La srialisation 66JDBC 66Mapping objet-relationnel 67

    Java Persistence API 67Entity bean 68

    Exemple dentity bean 68Annotations lmentaires du mapping 69

    Table 69Cl primaire 71Colonne 72

    Annotations avances 74Date et heure 74Donnes non persistes 74Englober deux objets dans une seule table 75

    Relations 76Jointures 76Relation unidirectionnelle 1:1 77Relation unidirectionnelle 0:1 79Relation bidirectionnelle 1:n 80Relation unidirectionnelle 1:n 83Chargement dune association 84Ordonner une association multiple 85Cascade 86

    Le cycle de vie dun entity bean 86Les annotations de callback 87

    Les entity beans de YAPS Pet Store 88

    Le catalogue 89Catgorie 90Produit 91Article 92

    Le client 93Client 93Adresse 95

    Le bon de commande 96Bon de commande 96Ligne de commande 98Carte de crdit 99

    Paquetages des entity beans 99Schma de la base de donnes 100En rsum 100

    5. TRAITEMENTS MTIER ................................................103Stateless session bean 104

    Exemple de stateless bean 105Comment dvelopper un stateless bean 106

    Les interfaces 106Interface distante 107Interface locale 108

    La classe de lEJB 109Entity manager 110

    Contexte de persistance 111Manipuler les entity beans 112

    Persister un entity bean 113Rechercher un entity bean par son identifiant 114Rattacher un entity bean 114Mettre jour un entity bean 115Supprimer un entity bean 116

    Langage de requtes 116JPQL 117Effectuer des requtes en JPQL 117

    Dmarcation de transactions 119Transactions 120Gestion des transactions par le conteneur 120

    Gestion des exceptions 122Exceptions dapplication 122Exception systme 124

    Le cycle de vie dun stateless bean 125Les annotations de callback 125

    Les stateless beans de YAPS Pet Store 126La gestion des clients 127

    CustomerLocal 127CustomerRemote 128CustomerBean 128

  • Tabl

    e de

    s m

    ati

    res

    Groupe Eyrolles, 2005 XV

    La gestion du catalogue 130CatalogBean 131

    La gestion des bons de commande 131Paquetages des stateless beans 133

    Architecture 133En rsum 134

    6. EXCUTION DE LAPPLICATION .................................... 137Swing 138

    Exemple dappel un EJB dans Swing 138JNDI 139

    Comment dvelopper lapplication Swing 141Service Locator 141Business Delegate 143Appel dun EJB Stateless dans cette architecture 144

    Lapplication graphique YAPS Pet Store 146La gestion des clients 147La gestion du catalogue 148La gestion des bons de commande 148Paquetages du client Swing 150

    Architecture 150Excuter lapplication 150

    Compiler 151Packager 151

    Interface graphique 152Application serveur 152

    Dployer 152Excuter 155

    En rsum 156

    7. INTERFACE WEB ........................................................ 159Le duo Servlet-JSP 160

    Les servlets 160Les JSP 162Le design pattern MVC 163Le langage dexpression 166JSTL 166

    JSF 168Les balises JSF 169

    Les balises HTML 170Les balises Core 172Exemple de page JSP utilisant les balises JSF 173

    Le langage dexpression unifi 175Traitements et navigation 176

    La FacesServlet 177Le managed bean 178

    Linjection 179La glue entre le managed bean et la page 180

    La navigation entre pages 180Navigation statique 181Navigation dynamique 182

    Comment dvelopper une application web avec JSF 182Lapplication web YAPS Pet Store 186

    Dcorateurs 186La visualisation du catalogue 188

    Le managed bean CatalogController 188Les pages web 190

    La navigation 190La page daffichage des produits 192La page daffichage des articles 193La page de dtail de larticle 194

    La gestion du compte par les clients 195Le managed bean AccountController 195Les pages web 196

    La navigation 197Len-tte 199La page de login 199Le formulaire de saisie 201Laffichage du compte client 202La mise jour du compte client 204

    Gestion des erreurs 205Paquetages et rpertoires de linterface web 207

    Architecture 208Excuter lapplication 208

    Packager 209Dployer lapplication et accder au site 209

    En rsum 210

    8. GESTION DU PANIER LECTRONIQUE.............................213Stateful session bean 214

    Exemple de stateful bean 215Comment dvelopper un stateful bean 216

    Les interfaces 216La classe de lEJB 216

    Le cycle de vie dun stateful bean 217Les annotations de callback 218

    La gestion du Caddie de YAPS Pet Store 219Le stateful bean 219

    ShoppingCartLocal 219ShoppingCartBean 220CartItem 221Paquetages du stateful bean 221

    Le managed bean 222Les pages web 224

    La navigation 224

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 2005XVI

    La page de contenu du Caddie 226La page de saisie des donnes de livraison et de paiement 227La page rcapitulative 230

    Architecture 231Excuter lapplication 231En rsum 232

    9. CHANGES B2B........................................................ 235Les standards autour des services web 236

    Soap 236UDDI 237WSDL 237JAX-WS 2.0 238JAXB 2.0 239

    Services web 240Exemple de service web 241

    Annotations JAX-WS 241Le service 241La mthode 242Les paramtres de la mthode 243

    Comment dvelopper un service web 245Dvelopper la classe du service web 245Gnrer les artefacts serveurs 245Gnrer les artefacts clients 247Appeler un service web 247La vision globale 248

    Les services web utiliss par YAPS Pet Store 249La validation des cartes de crdit 250Avertir le transporteur 251Appel des services web 252Paquetages des diffrents services web 255

    Architecture 255Excuter lapplication 255

    Compiler 256Packager 256Dployer 257Tester les services web avec GlassFish 257Excuter 258

    En rsum 259

    10. TRAITEMENTS ASYNCHRONES ................................... 261JMS 262Les messages 263

    Len-tte du message 263

    Les proprits 264Le corps du message 264

    Les objets administrs 265La fabrique de connexions 265Destinations 266

    Le mode Point Point 267Le mode publication/abonnement 267

    Envoyer les messages 268Recevoir un message 269

    La slection de messages 271Message-driven bean 272

    Exemple de message-driven bean 272Le cycle de vie dun MDB 274

    Les annotations de callback 275JavaMail 275

    La classe Session 276La classe Message 276La classe InternetAddress 277La classe Transport 277

    Les traitements asynchrones de YAPS Pet Store 278Lenvoi du message 279Les message-driven beans 280

    Envoi de-mails 280Impression du bon de commande 282

    Listener JMS de lapplication Swing 283Paquetages des MDB 286

    Architecture 286Excuter lapplication 287En rsum 287

    A. SPCIFICATIONS JAVA EE 5 .......................................289

    B. TCHES ANT ............................................................291Build.xml 291Admin.xml 303

    C. SIGLES ET ACRONYMES ..............................................311

    D. EJB 2 .....................................................................315Un exemple dentity bean 315Un exemple de stateless bean 320En rsum 323

    INDEX ......................................................................325

  • Groupe Eyrolles, 2007

    chapitre 1

  • Groupe Eyrolles, 2007

    Prsentation de ltude de cas

    Ce chapitre prsente de manire globale ltude de cas que nous allons dvelopper tout au long de cet ouvrage : un site de commerce lectronique, spcialis dans la vente danimaux domestiques. Afin de dcrire les besoins de la socit YAPS, nous utiliserons des diagrammes de cas dutilisation et dactivit UML ainsi que des maquettes dcrans.

    SOMMAIRE

    B Prsentation de la socit YAPS

    B Application YAPS Pet Store

    B Acheter des animaux en ligne

    B Site de commerce lectronique

    B Expression des besoins

    B Cas dutilisation et acteurs du systme

    MOTS-CLS

    B UMLB Cas dutilisationB Acteurs du systmeB Diagramme dactivitB Maquettes dcrans B Java Pet Store

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 20072

    Cet ouvrage repose sur lanalyse du systme dinformation et plus particu-lirement du systme informatique de lentreprise fictive YAPS. Cettesocit amricaine vend des animaux de compagnie. Elle continuedexercer son mtier telle quelle le faisait ses dbuts, cest--dire quellerpertorie ses clients et ses articles sur des fiches de papier bristol, reoit lescommandes par fax, les chques par courrier puis envoie le bon de com-mande au client. Une fois le chque encaiss par la banque BarkBank, elleutilise la socit de transport PetEx pour acheminer les animaux vers leursnouveaux propritaires. YAPS est depuis toujours implante dans le sud dela Californie o sont domicilis ses principaux clients.

    Rcemment elle a ouvert son march dautres tats amricains, ainsiqu ltranger. YAPS narrive plus grer manuellement cette expansionet souhaite crer un systme informatique pour lui permettre de faireface sa rcente croissance. Elle attend de celui-ci quil lui permette devendre ses animaux en ligne, de grer son catalogue darticles et sa basede donnes de clients. De plus, ses partenaires (la banque BarkBank et lasocit de transport PetEx) souhaitent avoir la possibilit dchanger desdonnes aux formats lectroniques via Internet.

    Ce systme informatique est baptis YAPS Pet Store . Il doitrpondre certains besoins en termes de performance et de robustessecomme la haute disponibilit puisque le site doit tre accessible 24h/247j/7, et supporter un nombre lev dinternautes. En effet, bien que pr-sent dans le monde entier, la majeure partie des clients de YAPS setrouve aux tats-Unis. Il faut donc prvoir une hausse des accs au sys-tme durant la journe.

    Expression des besoinsPour exprimer les besoins de la socit YAPS, nous allons utiliser le for-malisme UML des cas dutilisation. Ces derniers ont t dvelopps parIvar Jacobson bien avant lapparition dUML (Unified Modeling Lan-guage). Ils ont t intgrs ce langage de modlisation pour reprsenterles fonctionnalits du systme du point de vue utilisateur. Ils permettentde modliser des processus mtier en les dcoupant en scnarii. Les casdutilisation sont normalement reprsents par un schma, puis enrichispar un document dcrivant plus prcisment chaque cas ainsi que dunemaquette de linterface graphique et/ou dun diagramme dactivits.

    Le diagramme de cas dutilisation se compose : dacteurs : ce sont les entits externes (personne humaine ou robot)

    qui utilisent le systme ; de cas dutilisation : ce sont les fonctionnalits proposes par le systme.

    TLCHARGER YAPS Pet Store

    Retrouvez le site YAPS Pet Store ladressesuivante :B http://www.antoniogoncalves.org

    UML Les crateurs du langage

    James Rumbaugh, Grady Booch et Ivar Jacobs sontles crateurs du langage UML.

    http://www.antoniogoncalves.org

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 3

    Diagramme de cas dutilisationLe diagramme de cas dutilisation ci-aprs dcrit les besoins de la socitYAPS de faon synthtique et peut tre lu comme ceci : Un employpeut grer les articles du catalogue, grer les clients, visualiser et sup-primer les commandes. Un internaute peut se crer un compte, visualiseret rechercher un article dans le catalogue... .

    Les acteurs du systmeLes acteurs humains qui utilisent le systme sont les suivants : Employ : les employs de la socit YAPS soccupent de mettre

    jour le catalogue des articles ainsi que la liste des clients. Ils peuventaussi consulter les commandes passes en ligne par les clients.

    Internaute : il sagit dune personne anonyme qui visite le site pourconsulter le catalogue danimaux domestiques. Si linternaute veutacheter un animal, il doit dabord crer un compte. Il devient alors unclient de la socit YAPS.

    Client : un client peut visualiser le catalogue, modifier ses coordon-nes et acheter des articles en ligne.

    UML Le systme tudier

    Dans un diagramme de cas dutilisation, le rec-tangle autour duquel gravite les acteurs symbolisele systme tudi. Les acteurs sont reprsents parune icne (appele stick man), alors que les casdutilisation sont reprsents par une forme ovale.

    UML La relation

    Notez la prsence de la relation .Cela signifie que le cas dutilisation incorpore demanire facultative un autre cas dutilisation. Dansnotre exemple, on cre un bon de commande silachat darticles a t effectu.

    Figure 11Diagramme de cas dutilisation

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 20074

    Il faut aussi mentionner les systmes informatiques externes, utiliss parla socit YAPS : BarkBank : YAPS dlgue la validation des cartes bancaires la

    banque BarBank. PetEx : la livraison des animaux est assure par la socit de transport

    PetEx. Celle-ci se rend lentrept de YAPS, charge les animauxdans ses camions, puis les achemine chez les clients.

    Les cas dutilisationChaque cas dutilisation reprsent dans le diagramme prcdent doittre complt dun texte explicatif. Bien que le formalisme de ce texte nesoit pas spcifi dans UML, il possde frquemment les rubriquessuivantes : Nom : le plus souvent le nom contient un verbe linfinitif puisquun

    cas dutilisation dcrit une interaction entre un acteur et le systme. Rsum : une brve description du cas dutilisation. Acteurs : cette rubrique dcrit la liste des acteurs interagissant avec le

    cas dutilisation. Pr-conditions (optionnel) : ce sont les conditions ncessaires pour

    dclencher le cas dutilisation. Description : cette rubrique contient un texte explicitant le cas duti-

    lisation. Post-conditions (optionnel) : ce sont les conditions remplies aprs

    lexcution du cas dutilisation (tat du systme aprs ralisation ducas dutilisation).

    Exceptions (optionnel) : un cas dutilisation dcrit le comportementdu systme lorsquil ny a pas dexception. Si une exception est leve,elle doit tre dcrite dans cette rubrique.

    Lorsque le cas dutilisation est li un acteur humain ( Grer lesclients , Visualiser le catalogue ...), cela signifie que cet acteur abesoin dinteragir avec le systme. Il faut donc lui associer une interfacegraphique. Linternaute et le client utilisent leur navigateur web pouraccder au systme informatique (client lger), alors que les employs uti-lisent une application graphique dploye sur leurs postes (client riche).

    Dans le cas o lacteur serait un systme (BarkBank ou PetEx) il ny apas dinterfaces graphiques. Les systmes communiquent entre eux enchangeant des donnes dans un format pivot.

    T Client lger, riche et lourd

    N avec les technologies du Web, le client lgerdsigne un poste utilisateur dont la fonction selimite interprter laffichage de pages web. Leclient riche se limite afficher les donnes mais enutilisant des API Java telles que Swing et ncessiteun dploiement (Java Web Start). Issu des architec-tures client-serveur, le client lourd dsigne unposte utilisateur (en Swing, par exemple) effec-tuant en plus de laffichage, une part de traite-ments mtier.

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 5

    Grer les clientsRsum

    Permet un employ de crer/modifier/supprimer/rechercher/visualiserun client.

    Acteurs

    Employ.

    Description

    YAPS veut pouvoir crer ses clients dans le systme partir des donnesexistantes. Elle souhaite galement pouvoir les modifier, les supprimer etles rechercher. Les lments caractrisant un client sont les suivants : identifiant unique du client ; login et mot de passe utiliss par le client pour se connecter

    lapplication ; prnom et nom de famille ; numro de tlphone o lon peut joindre le client et son adresse

    mail ; adresse postale : deux zones permettent de saisir ladresse du client.

    La premire est obligatoire , la deuxime optionnelle ; pays de rsidence , ville , tat et code postal ; date de naissance : YAPS veut pouvoir envoyer des cartes de vux

    la date danniversaire du client ; ge du client.

    Une fois les donnes saisies, lemploy souhaite pouvoir les exploiter.Ainsi, partir dun identifiant, le systme doit donner la possibilitdafficher les coordonnes du client et proposer lemploy de les mettre

    RETOUR DEXPRIENCE Qui rdige les cas dutilisation ?

    Les cas dutilisation relatent les besoins des utilisateurs. Il est donc normalque ce soit eux qui les rdigent. Malheureusement, ce nest pas toujoursle cas. En effet, mme si les utilisateurs connaissent bien leur mtier, ilsont bien souvent tendance crire trs voire trop peu, persuads que lesanalystes comprendront. Ainsi, la phrase anodine Une fois les achatseffectus, on obtient un bon de commande peut susciter plusieurs inter-rogations, et notamment Quest ce quun bon de commande ? , Y a-t-il des contraintes lgales pour certains produits ? , Que fait-on dubon de commande ? ... Il est alors frquent de rdiger les cas dutilisa-tion de manire bidirectionnelle, sur la base dinterviews et dentretiensde recueil du besoin. Ainsi, un analyste posera des questions par crit ou loral un utilisateur. Ce dernier y rpondra, permettant ainsi lanalystede dresser les diffrents cas dutilisation.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 20076

    jour ou de les supprimer. Dans le cas de la suppression, le systme doitattendre une confirmation de lemploy avant de supprimer dfinitive-ment le client du systme.

    Le systme doit aussi pouvoir afficher la totalit des clients prsents dansle systme.

    Exceptions Valeur unique. Si cette donne existe dj dans le systme, une excep-

    tion doit tre leve. Donne obligatoire. Si cette donne est manquante, une exception

    doit tre leve.

    MaquettesLes employs de la socit YAPS utilisent une application riche pour dia-loguer avec le systme. Pour la gestion des clients, ils utilisent un cran quileur affiche la liste de tous les clients (menu List customers). Ils peuventensuite consulter les informations en cliquant sur le bouton View ou sup-primer le client en cliquant sur Delete. Un autre menu (Manage customer)permet de manipuler les informations dun client, cest--dire la cration,mise jour, suppression et recherche partir de son identifiant.

    UML Les exceptions dans les cas dutilisation

    Un cas dutilisation dcrit le comportement normalde lapplication. Si des exceptions apparaissent,elles peuvent tre rfrences dans la description laide de numros , ... Dans notre cas, ilfaut lire ces exceptions de la manire suivante : le client un identifiant unique, si cettevaleur nest pas unique, une exception est leve ; si cette valeur nest pas renseigne alorsquelle est obligatoire, une exception est leve .

    RETOUR DEXPRIENCE Les maquettes

    Les maquettes dcrans facilitent la comprhen-sion des cas dutilisation. Souvent non informati-ciens, les utilisateurs se reprent facilement grce ce moyen visuel et peuvent entriner les choixmis par lanalyste.

    Figure 12Application riche de gestion des clients

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 7

    Grer le catalogueRsum

    Permet un employ de crer/modifier/supprimer/rechercher/visualiserle catalogue des articles.

    Acteurs

    Employ.

    Description

    Le catalogue darticles de la socit YAPS est divis en catgories. Bienquelle envisage dtendre sa gamme, YAPS ne vend actuellement quecinq catgories danimaux : poissons, chiens, chats, reptiles et oiseaux.Une catgorie est dfinie par les donnes suivantes : identifiant unique de la catgorie ; nom (exemple : Poisson, Chien, Chat) ; description (exemple : un chien est un animal affectueux qui parta-

    gera avec vous des moments de bonheur) .

    Chacune de ces catgories est divise en produits. Par exemple pour leschiens, on peut avoir les produits suivants : bulldog, caniche, dalmatien,labrador, lvrier. Chaque produit est dfini comme suit : identifiant unique du produit ; nom (exemple : Bulldog, Caniche, Dalmatien) ; description (exemple : un caniche est un petit chien affectueux qui ne

    prendra pas trop de place et saura vous rconforter par sa tendresse) .

    Enfin, chaque produit est, son tour, divis en articles. Ce sont ces arti-cles qui sont proposs et vendus aux clients. Par exemple, le produitCaniche regroupe les articles suivants : caniche femelle adulte, canichemle adulte, caniche femelle 3 mois, caniche mle 3 mois. Chaquearticle est dfini comme suit : identifiant unique de larticle ; nom (exemple : Caniche 3 mois femelle) ; prix unitaire de larticle ; image : elle reprsente larticle en question.

    Exceptions

    Valeur unique. Si cette donne existe dj dans le systme, une excep-tion doit tre leve.

    Donne obligatoire. Si cette donne est manquante, une exceptiondoit tre leve.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 20078

    MaquettesLapplication client riche de lemploy permet de grer tous les lmentsdu catalogue, cest--dire les catgories, les produits et les articles. Ci-aprs, les crans permettant dafficher la totalit du catalogue ainsi quede manipuler individuellement chacun des lments le composant.

    Visualiser les articles du catalogueRsum

    Permet de visualiser le contenu du catalogue danimaux domestiques.

    Acteurs

    Internaute, client.

    Description

    Les internautes et les clients peuvent visualiser la totalit du cataloguedes animaux domestiques. Lorganisation de laffichage doit tre intui-

    Figure 13 Application riche de gestion du catalogue

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 9

    tive, cest--dire que le systme doit afficher la liste des catgories, partir desquelles le client choisit un produit puis un article.

    Pour chaque article, une image reprsentant lanimal devra tre affiche.

    tout moment, il doit tre possible dafficher les produits dune cat-gorie diffrente.

    Diagramme dactivitsLe diagramme dactivits ci-aprs nous donne la reprsentation gra-phique des actions effectues pour visualiser le contenu du catalogue. Ildoit tre lu de la manire suivante : Le systme affiche les catgories ducatalogue. Lorsque linternaute en slectionne une, le systme affiche lesproduits de la catgorie... Notez qu tout moment on peut revenir laction - Afficher les produits de la catgorie .

    MaquettesLes internautes et les clients visualisent le contenu du catalogue partirde leur navigateur. Sur la colonne de gauche sont affiches les cinq cat-gories danimaux domestiques vendus par la socit YAPS. En cliquantsur la catgorie Dogs (chiens), linternaute est redirig vers une page quiaffiche les produits de cette catgorie. Pour chaque produit, on afficheson nom et sa description (figure 15).

    En cliquant sur le produit Bulldog, linternaute est redirig vers la liste desarticles. Dans lexemple ci-aprs, ce produit possde deux articles : unmle et une femelle. Pour chaque article, on affiche son nom et son prix(figure 16).

    UML Diagramme dactivits

    UML permet de reprsenter graphiquement lecomportement dune mthode ou le droulementdun cas dutilisation, laide de diagrammesdactivits. Ce type de diagramme est utilis pourreprsenter des aspects dynamiques dun systme un niveau assez gnral. Il est compos dunnud initial (reprsent par un point noir), dacti-vits lies entre elles par des vnements, puis setermine par un nud final (un rond noir entour).

    Figure 14Diagramme dactivits de la visualisation des articles du catalogue

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200710

    Enfin, pour connatre le dtail dun article, il suffit de cliquer sur sonnom pour arriver sur la page de description. Le nom et le prix de larticlesont affichs ainsi que limage reprsentant lanimal.

    Figure 15Affichage de tous les produits

    de la catgorie Dogs

    Figure 16Affichage de tous les articles

    du produit Bulldog

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 11

    Rechercher un articleRsum

    Permet de rechercher un article par son nom ou le nom de son produit.

    Acteurs

    Internaute, client

    Description

    En plus de visualiser le catalogue de manire linaire (voir cas dutilisa-tion Visualiser les articles du catalogue ), les internautes et les clientspeuvent rechercher les animaux domestiques contenus dans le systme partir dune chane de caractres.

    Par exemple, si la chane de caractres saisie est iche le systmeretournera les articles suivants :

    Figure 17Affichage du dtail dun article

    Nom de larticle Nom du produit

    Caniche nain mle adulte Caniche

    Femelle 3 mois Caniche

    Plus petit quun caniche Chihuahua

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200712

    La recherche ne tient pas compte des minuscules ou majuscules. Siaucun article ne correspond aux critres demands, une information estaffiche linternaute pour lui indiquer que sa recherche na pas abouti etquil doit modifier le critre de recherche.

    MaquettesPour rechercher les articles, linternaute utilise la zone de saisie situedans len-tte de toutes les pages du site. Cette zone est suivie dunbouton Search. Lorsque linternaute clique sur ce bouton aprs avoir saisiun texte, le systme retourne la liste des articles qui rpondent au critre.Par exemple, ci-aprs, la liste des articles rpondant au critre adult.

    Se crer un compteRsum

    Permet un internaute de se crer un compte dans le systme et dedevenir ainsi un client.

    Acteurs

    Internaute.

    Figure 18Liste des articles rpondant

    au critre de recherche

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 13

    Description

    Ce cas dutilisation diffre du cas Grer les clients dans le sens olinternaute ne peut renseigner que ses propres donnes. Pour se crer uncompte, linternaute doit saisir un login , un mot de passe et ressaisirune seconde fois son mot de passe . Le systme lui demande alors desaisir ses coordonnes et informations personnelles (identiques cellesdu cas dutilisation Grer les clients ).

    Exceptions

    Le login doit tre unique dans le systme. Si ce nest pas le cas,linternaute doit en tre averti et doit en choisir un autre.

    Si les deux mots de passe ne sont pas identiques, une exception doittre leve.

    Post-conditions

    Linternaute est connu du systme, il devient client de la socit YAPS.

    MaquettesPour se crer un compte, linternaute clique sur le menu Sign on, puissaisit un login unique suivi de deux fois son mot de passe. Aprs vrifica-tion de la validit des mots de passe et de leur concordance, le systmelui demande de complter ses informations.

    UML Post-conditions des cas dutilisation

    Les post-conditions reprsentent ltat (les rsul-tats) du cas dutilisation la fin de son excution.Si le cas dutilisation Se crer un compte sedroule normalement, le rsultat obtenu est quelinternaute devient un client de la socit YAPS.

    Figure 19Le client saisit son login et deux fois son mot de passe.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200714

    Se connecter et se dconnecterRsum

    Permet un client de se connecter et de se dconnecter du systme.

    Acteurs

    Client.

    Pr-conditions

    Le client sest auparavant cr un compte (cas dutilisation Se crer uncompte ).

    Description

    Le client saisit son login et son mot de passe . Il est reconnu par lesystme, qui affiche alors son nom et prnom. Lorsque le client sedconnecte, il redevient internaute jusqu sa prochaine connexion.

    Exceptions

    Si le login nest pas connu du systme, une exception doit tre leve.

    Si le mot de passe nest pas le bon, une exception doit tre leve.

    Figure 110Saisie des informations du client

    UML Pr-conditions des cas dutilisation

    Pour excuter un cas dutilisation, les pr-condi-tions doivent tre remplies. Dans lexemple du casdutilisation Se connecter et se dconnecter , leclient doit auparavant stre cr un compte pourpouvoir se connecter lapplication.

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 15

    MaquettesEn cliquant sur le lien Sign on, linternaute est redirig vers une page luidemandant de sauthentifier. Aprs avoir saisi son identifiant et son motde passe, il est dirig vers la page daccueil.

    Figure 111Saisie du login et du mot de passe

    Figure 112La page daccueil affiche le nom et prnom du client.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200716

    Cette fois, la page daccueil affiche le nom et prnom du client ainsi quetrois liens lui permettant de se dconnecter Sign Off, de consulter sesinformations Account et de visualiser le contenu de son panier lectro-nique (Caddie) Cart.

    Consulter et modifier son compteRsum

    Permet un client de consulter et de mettre jour ses informations per-sonnelles dans le systme.

    Acteurs

    Client.

    Pr-conditions

    Le client doit tre connect au systme (cas dutilisation Se connecteret se dconnecter ).

    Description

    Ce cas dutilisation diffre du cas Grer les clients dans le sens o leclient ne peut consulter et modifier que ses donnes personnelles.Celles-ci sont identiques celles du cas dutilisation Grer les clients .

    Figure 113Les coordonnes du client

    saffichent en lecture seule.

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 17

    MaquettesUne fois connect, le client peut consulter ses informations en cliquantsur le lien Account. Cette page de consultation affiche, en lecture seule,les informations du client. Il peut ensuite les modifier en cliquant sur lelien Edit your account information (figures 113 et 114).

    Acheter des articlesRsum

    Permet un client dacheter des articles.

    Acteurs

    Client, BarBank.

    Pr-conditions

    Le client doit tre connect au systme (cas dutilisation Se connecteret se dconnecter ).

    Description

    Un client visualise le catalogue (voir cas dutilisation Visualiser les arti-cles du catalogue ) ou recherche un animal domestique (voir cas dutili-sation Rechercher un article ). Lorsquil est intress par un article, il

    Figure 114Le client peut mettre jour ses coordonnes.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200718

    lui suffit de cliquer sur un lien pour ajouter cet article dans son panierlectronique. Cette opration peut tre excute plusieurs fois sur desarticles diffrents. Le client a ensuite la possibilit de modifier la quan-tit dsire pour chaque article ou supprimer un ou plusieurs de ces arti-cles du panier. Lorsque la quantit dun article est infrieure ou gale zro, larticle est automatiquement supprim du panier.

    Pendant toute la dure de sa session, le client peut visualiser le contenude son panier quand bon lui semble. Lorsque le Caddie est vide, un mes-sage avertit le client. Sinon, le systme affiche la liste des articles avec lenom, la description du produit, la quantit dsire, le prix unitaire et lesous-total (prix unitaire quantit). Le montant total du panier est ga-lement renseign. Ce Caddie est illimit en taille, un client peut doncacheter autant darticles quil le souhaite.

    Lorsque le client est satisfait, il valide son panier lectronique. Il doitalors saisir les informations de sa carte bancaire ainsi que ladresse delivraison. Par dfaut, ladresse de livraison est la mme que celle du clientmais elle peut tre modifie. Les donnes de la carte bancaire sont lessuivantes : Numro de carte bancaire. Type de carte bancaire (Visa, Master Card et American Express). Date dexpiration de la carte bancaire. Le format de cette date est

    MM/AA, cest--dire deux chiffres pour le mois et deux pourlanne, spars par le caractre /.

    Une fois toutes ces donnes valides , un bon de commande est cr.Le panier lectronique est alors automatiquement vid.

    Exceptions

    Les donnes de la carte bancaire sont valides par BarkBank. Si labanque rejette la carte bancaire, le client en est averti et peut ressaisir sesdonnes.

    Post-condition

    Excuter le cas dutilisation Crer un bon de commande .

    MaquettesLorsque linternaute sauthentifie, le menu Cart apparat en haut de lapage. Ce lien permet dafficher le contenu du panier lectronique. Si cedernier est vide, la page affiche un message avertissant le client(figure 115).

    Pour remplir le panier, il suffit de se rendre sur la page de description desarticles et de cliquer sur le lien Add to cart. Cette action ajoute dans leCaddie larticle slectionn avec une quantit gale un (figure 116).

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 19

    Figure 115Le panier lectronique est vide.

    Figure 116Le client ajoute des articles en cliquant sur Add to cart.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200720

    Aprs avoir effectu diffrents achats, le client clique sur le lien Cart pourconsulter le contenu de son panier lectronique. Cette page affiche lenom des articles achets ainsi que leur quantit et leur prix. Le clientpeut tout moment modifier la quantit de chaque article en cliquantsur Update ou supprimer un article en cliquant sur Remove. En bas dutableau saffiche le montant total du panier lectronique.

    Une fois les achats termins, le client clique sur le lien Check out. Cetteaction lamne sur une page lui demandant de saisir ladresse de livraisonet les coordonnes de sa carte bancaire (figure 118).

    Le client valide la page en cliquant sur Submit. Il est alors redirig versune page qui lui confirme la cration de sa commande et lui en donne lenumro ainsi que son rcapitulatif (figure 119).

    Figure 117Contenu du panier lectronique

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 21

    Figure 118Saisie de ladresse de livraison et du mode de paiement

    Figure 119Confirmation de la cration du bon de commande

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200722

    Crer un bon de commandeRsumUne fois le panier lectronique valid par le client, un bon de commandeest cr.

    ActeursPetEx.

    Pr-conditionsLe client achte des articles et valide son panier lectronique (voir casdutilisation Acheter des articles ).

    DescriptionLorsque le panier lectronique du client est valid, le systme cre auto-matiquement un bon de commande. Ce dernier contient toutes lesinformations ncessaires pour tre trait : un numro de bon de commande ; la date de cration de ce bon de commande ; les rfrences du client qui a achet les articles ; les lignes de commande : une ligne de commande rfrence larticle

    achet et sa quantit. Il y a autant de lignes de commande que darti-cles contenus dans le panier lectronique ;

    les informations de la carte bancaire ; ladresse de livraison des animaux.

    Cette cration du bon de commande entrane plusieurs traitements :1 Le bon commande est imprim puis stock dans les archives de la

    socit YAPS. 2 Toutes les informations ncessaires lacheminement des animaux

    sont envoyes au transporteur PetEx de manire lectronique auformat XML. PetEx livre ensuite les animaux aux nouveaux heureuxpropritaires.

    3 Un e-mail est envoy au client pour linformer du bon droulementde sa transaction. Cet e-mail contient le numro du bon de com-mande ainsi quun rcapitulatif de son contenu.

    4 Pour des raisons lgales, les employs doivent tre avertis des bons decommande contenant des reptiles (une alerte saffiche dans linterfacegraphique de lemploy).

    Visualiser et supprimer les commandesRsumPermet un employ de visualiser et de supprimer les commandes pr-sentes dans le systme.

  • 1

    Prs

    enta

    tion

    de l

    tud

    e de

    cas

    Groupe Eyrolles, 2007 23

    Acteurs

    Employ.

    Description

    Lemploy peut visualiser la liste des commandes prsentes dans le sys-tme. Pour chacune de ces commandes, il peut en consulter les informa-tions et les supprimer.

    Pour des raisons lgales, les employs de YAPS veulent tre avertis en tempsrel des achats de reptiles. Selon les pays, il faut en effet avertir les autorits.Ainsi, ds quune commande contenant des reptiles est passe, les employsen sont avertis par une alerte qui saffiche dans linterface graphique.

    Maquettes

    En rsumDans ce chapitre, nous avons prsent ltude de cas de lapplicationYAPS Pet Store ainsi que les acteurs qui lutilisent. Le diagramme de casdutilisation nous a permis de formaliser les besoins de manire synth-tique, puis dexpliciter chaque cas dutilisation de manire textuelle. Lesdiagrammes dactivits et les maquettes dcrans sont venus claircir ladynamique de certains cas dutilisation. Cette application sera conue etralise au cours des prochains chapitres.

    Figure 120Application client riche de la gestion des bons de commande

  • Groupe Eyrolles, 2007

    chapitre 2

  • Groupe Eyrolles, 2007

    Architecture de lapplication

    Dans le prcdent chapitre, nous avons dcrit le comportement souhait de la future application de commerce lectronique pour la socit YAPS. Vous allez maintenant dcouvrir les technologies utilises pour dvelopper cette application, cest--dire le langage Java et la nouvelle plate-forme Java EE 5. Grce lutilisation de diagrammes UML de composants et de dploiement, nous allons modliser et dcrire larchitecture logicielle de lapplication YAPS Pet Store. Celle-ci sinspire du Blueprint Java Pet Store de Sun et de ses design patterns. Elle est architecture en couches (prsentation, traitements et accs aux donnes) et utilise la plate-forme Java EE 5 qui sappuie sur les nouveauts du langage Java 5 (annotations, gnriques...).

    SOMMAIRE

    B Technologies utilises

    B Nouveauts du langage Java 5

    B La plate-forme Java EE 5

    B Les Blueprints et le Pet Store de Sun

    B Architecture en couches

    MOTS-CLS

    B JSEB JEEB EJBB JPAB JMS et MDBB JSP, JSTLB JSFB XMLB Web ServiceB Design patternB UML

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200726

    Prsentation des langages utiliss

    Java SE 5Avant de parler de Java Enterprise Edition 5 ( JEE), il est ncessaire deprsenter brivement le langage sur lequel sappuie cette plate-forme :Java 5.0. La version 5 du JSE, ou Java Standard Edition, est une rvisionmajeure du langage Java cr en 1995 par lquipe de James Gosling.Cette version apporte de nombreuses nouveauts telles que lautoboxing,les annotations, les gnriques, une nouvelle boucle ditration, les typesnumrs, les mthodes arguments variables, les imports statiques etbien dautres encore. De nouveaux outils ainsi que de nouvelles API ontvu le jour ou ont t considrablement enrichis comme lAPI de concur-rence, lAPI de thread, la supervision de la JVM, etc.

    La figure 2-1 vous montre les composants qui constituent Java SE 5.Cet ouvrage na pas la prtention de vous expliquer toutes les nouveautsdu langage. Toutefois, il est important de sattarder sur celles qui serontutilises tout au long de notre tude de cas. La suite de cette partie tend prsenter succinctement les lments caractristiques de Java SE 5auxquels nous allons nous confronter.

    AutoboxingLe langage Java sappuie sur des types primitifs pour dcrire les types debase (byte, short, int, long, double, float, boolean et char). Toutefois,comme tout nest quobjet en Java, il est ncessaire de constamment

    T API

    Une API, ou Application Programming Inter-face, dfinit la manire dont un composant infor-matique peut tre invoqu par un autre. Il sagitgnralement dune liste de mthodes que lonpeut appeler.

    LIRE Java 5

    Il existe beaucoup de livres sur le langage Javaainsi que de nombreuses rfrences et articles enligne, notamment :R Emmanuel Puybaret, Java 1.4 et 5.0,

    Eyrolles, 2006R Claude Delannoy, Programmer en Java,

    Eyrolles, 2006B http://java.sun.com/docs/books/jls/

    JAVA 5 Les technologies

    Vous retrouverez sur le site de Sun la liste desoutils, API et librairies que contient Java 5 :B http://java.sun.com/javase/technologies/

    index.jsp

    Figure 21Larchitecture de Java SE 5

    http://java.sun.com/docs/books/jlshttp://java.sun.com/javase/technologies

  • 2

    Arch

    itect

    ure

    de l

    appl

    icat

    ion

    Groupe Eyrolles, 2007 27

    encapsuler ces types primitifs dans des classes de rfrence (Integer pourint, Double pour double, etc.).

    Ce type de transformation (appel boxing) peut rapidement savrerpnible. Dautant que le processus inverse (appel unboxing) est nces-saire pour retrouver son type primitif initial. Avec Java 5, cette conver-sion explicite devient obsolte puisque lautoboxing convertit de maniretransparente les types de base en rfrences et rciproquement. Bien sr,vous pouvez continuer utiliser uniquement les types primitifs si vous lesouhaitez.

    Exemple dautoboxing

    AnnotationsUne annotation permet de marquer (on dit alors annoter) certains l-ments du langage Java afin de leur ajouter une proprit particulire. Cesannotations peuvent ensuite tre utilises la compilation ou lexcu-tion pour automatiser certaines tches. Une annotation peut tre utilisesur plusieurs types dlments (paquetage, classe, interface, numration,annotation, constructeur, mthode, paramtre, attribut de classe ouvariable locale).

    Exemple dutilisation dannotations

    Comme vous le verrez tout au long de cet ouvrage,Java Enterprise Edition 5 utilise trs frquemment les annotations.Nous aurons loccasion de nous y attarder plus longuement par la suite.

    // Boxing explicite entre un Integer et un intInteger objet = new Integer(5);int primitif = objet.intValue();

    // AutoboxingInteger objet = 5;int primitif = objet;

    @CeciEstUneAnnotationSurUneClassepublic class MaClasse {

    @UneAnnotationSurUnAttribut private Date unAttribut;

    @SurUneMethode private void maMethode() { return; }}

    JAVA 5 JConsole

    La JConsole est un utilitaire de surveillance fourniavec Java SE 5. Lie aux technologies JMX etMBean, la JConsole permet de surveiller et super-viser les applications Java (occupation mmoire,threads en cours, classes charges...) tout commeprendre en charge certaines oprations (appeller legarbage collector, changer le niveau des logs...).

    INFORMATION Acronymes

    La plate-forme Java est extrmement riche. Elle adonc tendance utiliser abondamment et abuserdacronymes en tout genre (souvent commenantpar la lettre J ). Vous trouverez en annexe unlexique dacronymes et de sigles.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200728

    GnriquesPour les personnes familires avec les templates C++, les gnriques sontsimples comprendre, mme si leur fonctionnement nest pas du toutsimilaire. Ils permettent de ne pas spcifier le type la compilation(paramtre ou retour de mthode, par exemple), tout en assurant que letype reste cohrent dans ses diffrentes utilisations. Il est par exemplepossible de spcifier quune collection (un objet Vector, Hashtable ouArray, par exemple) ne peut tre remplie que par un type de classedonn. Il nest donc plus ncessaire deffectuer le contrle du type aumoment de lexcution.

    Exemple dun vecteur gnrique

    Comme on peut le constater dans le fragment de code ci-dessus, le par-cours des lments du vecteur prsente une meilleure lisibilit ainsiquune plus grande robustesse.

    Les types numrsJava 5.0 introduit le nouveau mot-cl enum, utilisable comme le mot-clclass. Sa particularit est quil reprsente un type numr, cest--direun type qui naccepte quun ensemble fini dlments. Il peut donc treutilis pour dfinir un ensemble de constantes.

    Exemple dune numration

    SwingLa plupart des applications destines aux utilisateurs comportent deslments graphiques de telle sorte quelles soient plus conviviales et

    // Sans gnriqueVector nombres = new Vector();for (int i = 0; i < nombres.size(); i++) { Integer nombre = (Integer) nombres.elementAt(i);}

    // Avec gnriqueVector nombres = new Vector();for (int i = 0; i < nombres.size(); i++) { Integer nombre = nombres.elementAt(i);}

    public enum Saisons { PRINTEMPS, ETE, AUTOMNE, HIVER};

    APPROFONDIR Annotations et gnriques

    Si vous voulez en savoir plus sur les annotations etles gnriques, consultez le tutoriel de Sun. Vous ytrouverez de linformation mise jour ainsi quedes exemples de code.B http://java.sun.com/docs/books/tutorial

    APPROFONDIR Les types numrs

    Les types numrs offrent dautres possibilits :itration, utilisation dans un switch, EnumSet,EnumMap, etc. Pour en savoir davantage, con-sultez le site de Sun ladresse :B http://java.sun.com/j2se/1.5.0/docs/guide/

    language/enums.html

    RAPPEL Primtre de ce livre

    Ce livre na pas la prtention de vous enseigner lesnouveauts du langage Java mais uniquement devous prsenter celles qui vont tre utilises lors dela ralisation de lapplication YAPS Pet Store. Sivous ntes pas encore laise avec les annota-tions, les gnriques ou les types numrs,reportez-vous aux rfrences donnes dans cetouvrage pour approfondir vos connaissances.

    http://java.sun.com/docs/books/tutorialhttp://java.sun.com/j2se/1.5.0/docs/guide

  • 2

    Arch

    itect

    ure

    de l

    appl

    icat

    ion

    Groupe Eyrolles, 2007 29

    ergonomiques. La plate-forme Java dispose des API AWT et Swingpermettant de construire des interfaces homme-machine (IHM) sophis-tiques en client lourd.

    Swing sera utilis dans cet ouvrage pour dvelopper une partie de linter-face utilisateur. Toutefois, cette bibliothque trs riche, et parfois com-plexe, ne sera pas enseigne dans ce livre.

    JNDI 1.5Ce composant, appel communment service de nommage, est un servicefondamental dans nimporte quel systme informatique. Il permetdassocier des noms des objets et de retrouver ces objets grce leursnoms. Java Naming and Directory Interface (JNDI) fournit les fonction-nalits de nommage et dannuaire aux applications crites en Java.

    Omniprsent dans la version J2EE 1.4, JNDI se fait plus discret et estintgr directement dans le JSE 5. Il continue tre une pice matressemais de manire plus transparente.

    JDBC 3.0JDBC (Java Data Base Connectivity) est une API permettant laccs des bases de donnes relationnelles partir du langage Java. Elle secharge de trois tapes indispensables laccs aux donnes : la cration dune connexion la base ; lenvoi dinstructions SQL ; lexploitation des rsultats provenant de la base.

    Pour accder la base de donnes, JDBC sappuie sur des drivers (pilotes)spcifiques un fournisseur de SGBDR ou sur des pilotes gnriques.

    LIRE Swing

    Pour de plus amples informations, reportez-vousaux rfrences suivantes :R Emmanuel Puybaret, Swing, Eyrolles, 2006R Kathy Walrath, The JFC Swing Tutorial,

    Addison-Wesley, 2004

    Figure 22Application cliente dveloppe en Swing

    Dans le chapitre 6, nous utiliserons JNDI pouraccder aux composants distants partir delinterface Swing.

    APPROFONDIR JNDI

    Java Naming and Directory Interface est rarementutilis tout seul. Il est gnralement employ avecles EJB. Il ny a donc que peu de livres sattardantuniquement sur cette API.R Rosanna Lee, The Jndi Api: Tutorial and

    Reference: Building Directory-EnabledJava Applications, Addison-Wesley, 2000

    B http://java.sun.com/products/jndi/

    PERSISTANCE Les pilotes JDBC

    Les pilotes JDBC sont classs en quatre catgorie : Les pilotes de type 1 (pont JDBC/ODBC) per-

    mettent de convertir les appels JDBC en appelODBC (Open Database Connectivity),

    Les pilotes de type 2 sont crits en code natif etdpendent de la plate-forme.

    Les pilotes de type 3 utilisent un autre piloteJDBC intermdiaire pour accder la base dedonnes.

    Les pilotes de type 4 sont crits entirement enJava. Ils sont donc portables.

    http://java.sun.com/products/jndi

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200730

    XML et XSDSGML (Standard Generalized Markup Language, ou langage normalisde balisage gnralis), adopt comme standard en 1986, a t la pre-mire tentative pour crer des documents lectroniques. Lide princi-pale tait de sparer le contenu dun document de sa forme. SGML a tune innovation, mais il tait si complexe que sa manipulation sesttrouve restreinte aux spcialistes.

    XML (eXtensible Markup Language, ou langage extensible de balisage),issu de SGML, a t mis au point par le World Wide Web Consortium(W3C) en 1996. Contrairement HTML, qui prsente un jeu limit debalises orientes prsentation (titre, paragraphe, image, lien hyper-texte), XML est un mtalangage, qui va permettre dinventer volontde nouvelles balises pour dcrire des donnes et non leur reprsentation.

    XML permet donc de dfinir des fichiers dont la structure est personna-lise par la cration de balises. De fait, ce langage simpose comme unstandard dans les changes inter-systmes dinformation. XML devientun format pivot, encore qualifi de format dchanges. De plus, un cer-tain nombre dAPI offre des mcanismes pour crer, extraire et vrifier lavalidit dun document XML. Cette validation nest possible que si lonconnat la structure du document. Cette structure est dfinie par unXML Schema Definition (XSD), technologie drive dXML. Unschma XML (XSD) est lui-mme un fichier XML.

    Exemple de document XML

    HTML et XHTML partir de 1992, Internet popularise le langage HTML (HypertextMarkup Language, ou langage de balisage hypertexte, conu vers 1990)pour la prsentation de documents lectroniques hypertextes. Issu deSGML, HTML dfinit un certain nombre de balises lies uniquement la prsentation. Depuis quelques annes, le HTML tend tre remplacpar le XHTML qui lui apporte la rigueur de la notation XML.

    donnes envoyes entre metteur et rcepteur

    T Les balises

    Une balise est une portion de texte encadr par lescaractres < et >.

    APPROFONDIR XML et XSD

    R Antoine Lonjon, Jean-Jacques Thomasson,Libero Maesano, Modlisation XML,Eyrolles, 2006

    R Mitch Amiano, Conrad DCruz, Michael D.Thomas , Kay Ethier, XML, Wrox, 2006

    B http://www.w3.org/XML/B http://www.w3.org/XML/Schema

    APPROFONDIR HTML/XHTML

    R Jean Engels, XHTML et CSS, Eyrolles, 2006B http://www.w3.org/MarkUp/B http://www.w3.org/TR/xhtml1/

    http://www.w3.org/XML/http://www.w3.org/XML/Schemahttp://www.w3.org/MarkUp/http://www.w3.org/TR/xhtml1/

  • 2

    Arch

    itect

    ure

    de l

    appl

    icat

    ion

    Groupe Eyrolles, 2007 31

    Exemple de page HTML

    La plate-forme Java EE 5Java EE, ou JEE ou encore Java Enterprise Edition, est un ensemble despcifications destines aux applications dentreprise. JEE peut tre vucomme une extension du langage Java afin de faciliter la crationdapplications rparties, robustes, performantes et haute disponibilit.

    Comme beaucoup, je pense que Java EE est aujourdhui la meilleureplate-forme de dveloppement pour les entreprises. Elle combine lesavantages du langage Java avec lexprience acquise dans le dveloppe-ment au cours des dix dernires annes. Elle bnficie en outre du dyna-misme des communauts Open Source ainsi que du JCP de Sun.

    Page HTML affichant Hello World Hello World

    RAPPEL Java EE 5 dans cet ouvrage

    La nouvelle plate-forme Java EE 5 comporte plusde vingt spcifications (voir annexe A). Il estimpossible en un seul ouvrage de couvrir toute lesparticularits de ces spcifications. Le dveloppe-ment de notre tude de cas nous permettra duti-liser les plus importantes et surtout de voircomment elles sutilisent ou interagissent les unespar rapport aux autres. Pour approfondir vos con-naissances, nhsitez pas consulter les nom-breuses rfrences contenues dans ce livre.

    Figure 23 Larchitecture de Java EE 5

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200732

    Bien que prdit un bel avenir, les promesses de cette plate-forme ne sontpas toujours honores. Les systmes dlivrs sont souvent trop lents etcompliqus, et le temps de dveloppement est, quant lui, frquemmentdisproportionn par rapport la complexit des demandes utilisateurs.

    Heureusement, au deuxime trimestre 2006, JEE 5 est venu simplifier laprcdente version (J2EE 1.4). Sappuyant sur la nouvelle mouture dulangage Java et sinspirant de frameworks Open Source, certains compo-sants de la version 5 de JEE ont t totalement rcrits dans le but desimplifier la plate-forme.

    La figure 2-3 dcrit les diffrents conteneurs spcifis dans Java EE 5ainsi que les spcifications qui peuvent y tre employes. Les paragra-phes suivants nous donnent un bref descriptif des spcifications utilisespour le dveloppement de lapplication YAPS Pet Store. Certaines ontvu le jour avec la version 5 de JEE, dautres ont t compltement rema-nies pour simplifier le travail des dveloppeurs.

    JPA 1.0Depuis les dbuts de J2EE, le modle de persistance ne cesse dvolueret de sengluer de version en version. Les entity beans 1.0 ont t com-pltement rarchitecturs pour laisser place aux entity beans 2.1. Bienque cette volution ait apport beaucoup damliorations, ce modle decomposants persistants continuait faire des dtracteurs parmi la com-munaut. Ce mcontentement a donn naissance une nouvelle spcifi-cation (JDO, Java Data Object) ainsi qu diffrents outils de mappingobjet/relationnel payants ou libres (TopLink, Hibernate...).

    Java EE 5, et son lot de nouveauts, nous apporte un nouveau modle depersistance : JPA (Java Persistence API). Fortement inspirs par des outilsOpen Source tels quHibernate ou par JDO, le mapping objet/rela-tionnel et le langage de requte sont totalement diffrents de lanctreentity bean 2.1. JPA, ou JSR-220, rconcilie ainsi les utilisateurs de laplate-forme JEE avec les composants persistants.

    Java Persistent API sappuie sur JDBC pour communiquer avec la basede donnes. En revanche, grce labstraction apporte par JPA, nousnaurons nul besoin dutiliser directement JDBC dans le code Java.

    JMS 1.1Une des manires davoir des traitements asynchrones en JEE, consisteen lutilisation dun MOM (Message Oriented Middleware), cest--direun systme bas sur lchange de messages. En utilisant JMS (Java Mes-saging Service), un client produit un message et le publie dans une file

    T JCP

    Java Community Process, processus utilis parSun et de nombreux partenaires pour coordonnerlvolution du langage Java et des technologiesassocies.

    PRCISION Conteneur client

    Le conteneur client, ou Application Client Con-tainer (ACC), apporte aux applications Java SE(par exemple, Swing) des services de scurit, denommage, dinjection...

    PRCISION J2EE, JEE, J2SE, JSE

    Java et sa plate-forme entreprise ont pendantlongtemps t appels J2SE et J2EE respective-ment. Depuis la version 5, le chiffre 2 a disparupour faciliter la comprhension de la version uti-lise. Ce livre utilisera donc les nouveaux sigles JSE(Java SE) et JEE (Java EE). Le terme J2EE sera uti-lis pour dsigner lancienne spcification.

    JPA, Java Persistence API, est prsent auchapitre 4. Cette API est utilise pour dvelopperles objets mtier de lapplication YAPS Pet Store.

    T JSR

    JSR, ou Java Specification Requests, est un sys-tme normalis ayant pour but de faire voluer laplate-forme Java en donnant la possibilit lacommunaut de crer de nouvelles spcifications.

  • 2

    Arch

    itect

    ure

    de l

    appl

    icat

    ion

    Groupe Eyrolles, 2007 33

    dattente. Ainsi, la communication des vnements ou des donnes sefait de faon asynchrone : ni le client ni lEJB ne dpendent de larponse directe de lautre et nont donc pas leurs traitements figs durantlattente dune rponse.

    EJB 3.0Les Entreprise Java Beans, ou EJB, sont des composants serveurs qui res-pectent les spcifications dun modle dit par Sun. Ces spcificationsdfinissent une architecture, un environnement dexcution (un conte-neur) et un ensemble dAPI. Le respect de ces spcifications permetdutiliser les EJB indpendamment du conteneur dans lequel ils sexcu-tent. Ce dernier fournit un ensemble de fonctionnalits comme la ges-tion du cycle de vie de lEJB, la scurit, laccs concurrent et lestransactions. Le but des EJB est de faciliter la cration dapplicationsdistribues pour les entreprises.

    Pice matresse de larchitecture JEE, les EJB 3 apportent des modifica-tions notables dans le mode de dveloppement et intgrent de nom-breuses nouveauts, notamment en ce qui concerne la persistance. Lepassage des EJB 2.1 en 3.0 apporte une simplification radicale en sup-primant les descripteurs de dploiement, les appels JNDI, etc., et laisseplace aux annotations.

    Il existe deux grandes familles dEJB : entit et session. Les EJB sessionssont diffrencis entre EJB sans tat, avec tat ou sexcutant en modeasynchrone.

    EJB StatelessLes EJB sans tat, ou stateless session beans, ne fonctionnent que de faonphmre. Une fois quun client a demand et reu une fonctionnalit ducomposant, linteraction avec ce composant prend fin, ne laissant aucunetrace de ce qui sest pass. Ils nont aucune connaissance du client oudun semblant de contexte concernant la requte : ils sont donc parfaitspour une utilisation unique. Ils nont pas dtat, cest--dire quon nepeut pas manipuler leurs attributs en tant sr de leur valeur.

    Lutilisation standard dun EJB sans tat rside dans le fait quune appli-cation cliente le contacte en lui transmettant des paramtres. LEJBaccde alors une base de donnes, effectue plusieurs traitements,appelle dautres EJB, puis retransmet un rsultat au client. Lorsque lacommunication sachve, le bean ne conserve aucun souvenir de linte-raction. Avec ce comportement, plusieurs clients distincts peuventaccder simultanment un mme stateless session bean.

    LIRE JMS

    R Richard Monson-Haefel, David Chappell,Java Message Service, OReilly, 2000

    R Eric Bruno, Java Messaging, Charles RiverMedia, 2005

    T Serveur dapplications

    Un serveur dapplications hberge les applicationsdestines tre utilises dans un rseau distribu.Il est dot de services transactionnels entre com-posants, dquilibrage de charge ou encore detolrance aux pannes.

    LIRE EJB

    R Ed Roman, Rima Patel Sriganesh, GeraldBrose, Mastering Enterprise JavaBeans,2005, Wiley

    Le chapitre 5 prsente les stateless session beans.Nous les utiliserons pour dvelopper les compo-sants mtiers.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200734

    Exemple dEJB Stateless

    EJB StatefulPar opposition au composant sans tat, les stateful session beans associentles requtes un client spcifique, unissant client et EJB dans une rela-tion un-un. Ce type de composant fournit ainsi un ensemble de traite-ments via des mthodes, mais il a aussi la possibilit de conserver desdonnes entre les diffrents appels de mthodes dun mme client. Uneinstance particulire est donc ddie chaque client, qui sollicite ses ser-vices et ce, tout au long du dialogue.

    Les donnes conserves par le bean sont stockes dans les variablesdinstances. Les donnes sont donc conserves en mmoire. Gnrale-ment, les mthodes proposes par le composant permettent de consulteret de mettre jour ces donnes.

    Exemple dEJB Stateful

    Message-driven beanLes prcdents types dEnterprise Java Beans offrent des services demanire synchrone. Le client met une requte, puis attend que lEJB luienvoie un rsultat.

    Pour les message-driven beans (MDB), le comportement est complte-ment diffrent. Les clients nappellent pas directement des mthodesmais, utilisent JMS pour produire un message et le publier dans une filedattente. lautre bout, le MDB est lcoute de cette file dattente etse rveille larrive dun message. Il extrait ce dernier de la filedattente, en rcupre le contenu puis excute un traitement. Le client

    @Statelesspublic class MonBean { // Le code mtier public void maMethode() { return; }}

    @Statefulpublic class MonBean { // Attribut conservant sa valeur private String monAttribut; // Le code mtier public void maMethode() { return; }}

    EJB Avec ou sans tat ?

    Un EJB Stateless est utile pour calculer cos(x), con-vertir des euros en dollars, supprimer tous les bonsde commande passs il y a 5 ans ou obtenir lecours dune action. Un EJB Stateful sert stocker des articles achetsen ligne dans un panier lectronique ou com-mander plusieurs billets de train.

    Le chapitre 8 prsente les stateful session beansqui seront utiliss pour dvelopper le panier lec-tronique de lapplication YAPS Pet Store.

    LAPI JMS et les message-driven beans sont dcritsau chapitre 10. Les traitements asynchrones delapplication utilisent ces deux technologies.

  • 2

    Arch

    itect

    ure

    de l

    appl

    icat

    ion

    Groupe Eyrolles, 2007 35

    na donc pas besoin de figer son excution durant le traitement duMDB. Le traitement est asynchrone.

    Exemple de MDB

    Entity beanLes stateful session beans sont dtruits lorsque la session du client se ter-mine. Ils ne peuvent donc pas tre utiliss pour stocker de faon perma-nente les informations de lapplication. Les EJB entits peuvent rpondre ce besoin puisquils sont persistants. En effet, leur tat est sauvegardsur un support de stockage externe, comme une base de donnes. Lesentity beans reprsentent des donnes, ou des objets mtier plus exacte-ment, qui perdurent aprs la fin dune session. Ils existent souvent sous laforme denregistrements uniques dans une base de donnes.

    Depuis Java EE 5 et larrive de JPA, on a plutt tendance parlerdentit (entity) que de bean entit (entity bean). En effet, si les entitybeans 2.1 ont un modle de dveloppement assez lourd et compliqu, lesentities sont, eux, de simples classes Java (Pojo) et peuvent mme treutiliss en dehors de Java Enterprise Edition, cest--dire dans uneapplication Java standard. Cependant, la spcification JEE utilise encorele terme entity bean. Il faut juste se faire lide quun entity bean estdevenu une simple classe Java (lightweight) et non un composant lourd(heavyweight) et complexe dvelopper.

    Exemple dentit dadresse

    Le conteneur dEJBSouvent aussi appel tort serveur dapplications, le conteneur dEJB a laresponsabilit de crer de nouvelles instances dEJB et de grer leur cycle

    @MessageDrivenpublic class MonMDB implements MessageListener {

    public void onMessage (Message msg) { // Traiter le message }}

    @Entity@Table(name = "t_adresse")public class Adresse {

    @Id @GeneratedValue private Long identifiant; private String rue;}

    T Pojo

    Pojo est un acronyme qui signifie Plain Old JavaObject. Ce terme est principalement utilis pourfaire rfrence la simplicit dutilisation dunobjet Java en comparaison avec la lourdeur dutili-sation dun composant EJB.

    ANNOTATIONS Java EE

    Vous avez peut-tre remarqu, dans les extraits decode prcdents, lutilisation des annotations Javapour le monde JEE : @Entity,@MessageDriven, @Stateless,@Stateful. Comme nous le verrons dans leschapitres suivants, il en existe bien plus encore.

  • Les

    Cahi

    ers

    du P

    rogr

    amm

    eur J

    ava

    EE 5

    Groupe Eyrolles, 200736

    de vie. Il est lintermdiaire entre lEJB et le serveur dapplications. Ilfournit des services tels que le transactionnel, la scurit, la concurrence,la distribution, le service de nommage des EJB ( JNDI) et lexcution.

    Les EJB interagissent avec le conteneur de plusieurs manires et peuventexcuter des traitements dclenchs automatiquement par ce dernier. Demme que si un EJB lve une exception, celle-ci est tout dabord inter-cepte par le conteneur qui dcidera deffectuer telle ou telle action.

    Servlet 2.5 et JSP 2.1Les servlets sont des programmes Java fonctionnant ct serveur aumme titre que les CGI et les langages de script tels que ASP ou PHP.Les servlets permettent donc de recevoir des requtes HTTP, de lestraiter et de fournir une rponse dynamique au client. Elles sexcutentdans un conteneur utilis pour tablir le lien entre la servlet et le serveurweb. Les servlets tant des programmes Java, elles peuvent utiliser toutesles API Java afin de communiquer avec des applications externes, seconnecter des bases de donnes, accder aux entres-sorties (fichiers,par exemple)

    Java Server Page, ou JSP, est une technologie base sur Java qui permetaux dveloppeurs de gnrer dynamiquement du code HTML, XML outout autre type de page web. Une page JSP (reprable par lextension.jsp) aura un contenu pouvant tre diffrent selon certains paramtres(des informations stockes dans une base de donnes, les prfrences delutilisateur...) tandis quune page web statique (dont lextension est.htm ou .html) affichera continuellement la mme information.

    Exemple de page JSP affichant la date du jour

    Une JSP est un autre moyen dcrire une servlet. Lorsquun utilisateurappelle une page JSP, le serveur web cre un code source Java partir duscript JSP (cest--dire quil constitue une servlet partir du script JSP),le compile, puis lexcute.

    JSP Affichant la date
    La date est

    T HTTP

    HTTP, ou Hypertext Transfer Protocol, est unprotocole de transfert de pages HTML sur le Web.Sa fonction premire est dtablir la connexionavec un serveur, qui contient la page que lon veutvoir afficher, et de rapatrier cette page sur le postede linternaute.

    LI