CoursXML_51 - Architecture N-tier

Embed Size (px)

Citation preview

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    1/27

    1

    Les technologies XMLCours 5 : XML et les architectures

    N-tier

    Janvier 2009

    - Version 1.0 -

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    2/27

    2

    SOMMAIRE DU COURS XML ETLES ARCHITECTURES N-TIER

    Introduction aux architectures N-tier

    Serveurs dapplications

    Dploiement dapplications J2EE

    Tiers applicatif :servlets

    Tiers prsentation :JSP

    Tiers mtier :accs aux bases de donnes

    Les APIs pour lire des documents XMLLes APIs pour transformer des documents XML

    Modles de conception et frameworks

    Conclusion : transformation client ou serveur ?

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    3/27

    3

    INTRODUCTION AUXARCHITECTURES N-TIER 1/9

    Larchitecture N-tier (anglais tier: tage, niveau), ou encoreappele multi-tier, est une architecture client-serveur danslaquelle une application est excute par plusieurscomposants logiciels distincts.

    Exemple darchitecture 3-tier :

    Tier de prsentation : interfaces utilisateurs sur un PCposte de travail, qui sadressent des applications serveurTier des rgles de gestion : applications serveur quicontiennent la logique de gestion et accdent aux donnesstockes dans des bases de donnes

    Tier de base de donnes : serveurs de bases de donnesAvantages des architectures N-tier :

    Le lien entre les niveaux est dfini et limit desinterfacesLes interfaces assurent la modularit et lindpendance

    technologique et topologique de chaque niveau

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    4/27

    4

    INTRODUCTION AUXARCHITECTURES N-TIER 2/9

    Les diffrentes couches dune architecture 4-tier :

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    5/27

    5

    INTRODUCTION AUXARCHITECTURES N-TIER 3/9

    Les diffrentes couches dune architecture 4-tier :

    La couche de prsentation contient les diffrentstypes de clients, lger (ASP, JSP) ou lourd (Applet)

    La couche applicative contient les traitements

    reprsentant les rgles mtier (crer un compte defacturation, calculer un amortissement ... )

    La couche d'objets mtier est reprsente par lesobjets du domaine, c'est dire l'ensemble des entitspersistantes de l'application (Facture, Client ... )

    La couche d'accs aux donnes contient les usinesd'objets mtier, c'est dire les classes charges de crerdes objets mtier de manire totalement transparente,indpendamment de leur mode de stockage (SGBDR,Objet, Fichiers, ...)

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    6/27

    6

    INTRODUCTION AUXARCHITECTURES N-TIER 4/9

    La valeur ajoute des architectures n-tier :

    Cette sparation par couches de responsabilitssert dcoupler au maximum une couche de l'autreafin d'viter l'impact d'volutions futures del'application.

    Par exemple : si lonest amen devoir changer debase de donnes relationnelle, seule la couched'accs aux donnes sera impacte, la couche de

    service et la couche de prsentation ne seront pasconcernes car elles auront t dcouples desautres.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    7/277

    Les diffrentes technologies ct client :

    HTML, XML, XSL sont des langages de marquage/balisage.

    HTML, CSS, XML, XSL sont des standards du W3C

    JavaScript et Java sont des langages standards

    VBScript est un langage propritaire

    Active X est une technologieobjetpropritaire

    INTRODUCTION AUXARCHITECTURES N-TIER 5/9

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    8/278

    Les diffrentes technologies ct serveur :

    JSP (Java Server Pages de Sun)Comme la plupart de ses concurrents, il permet d'intgrer desscripts, ici sous forme de code Java, dans les pages html.Lorsqu'une page JSP est appele pour la premire fois, elle estcompile et transforme en servlet (programme ct serveur).Ce servlet est excut et produit un contenu au format html.

    Java / J2EE (Java 2 Enterprise Edition, Sun)

    Promu par la socit Sun, lavantageprincipal de java est d'treindpendant du systme d'exploitation (interprt par unemachine virtuelle). Java offre de plus la particularit de pouvoirtre excut ct client (applets) ou ct serveur (servlets). Ilncessite une bonne connaissance technique et des

    concepts objet.

    INTRODUCTION AUXARCHITECTURES N-TIER 6/9

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    9/279

    Les diffrentes technologies ct serveur :

    ASP (Active Server Pages de Microsoft)Cette technologie est base sur des scripts ct serveur, critsen Vbscript ou Javascript. Ces scripts sont excuts par leserveur et leur rsultat est produit sous forme de pages htmlstandard. Un des avantages d'ASP est sa facilit de mise enuvre. Largement rpandue, cette technologie prsentetoutefois le dsavantage d'tre intimement lie l'environnementWindows Server et au serveur IIS.

    C# / .Net (Microsoft)Cette technologie ressemble en de nombreux points latechnologie Java / J2EE. Elle prsente cependant encore denombreuses faiblesses en terme de portabilit serveur,

    multi-plateformes, scalabilit...

    INTRODUCTION AUXARCHITECTURES N-TIER 7/9

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    10/2710

    Les diffrentes technologies ct serveur :

    PHP (Hypertext PreProcessor)

    PHP connat un succs toujours croissant sur le Web et

    se positionne comme un rival important pour ASP etJSP.

    L'environnement Linux est sa plateforme deprdilection. Combin avec le serveur Web Apache et labase de donnes MySQL, PHP offre une solution

    particulirement robuste, stable et efficace,offrant en outre l'avantage d'tre gratuite, tousces logiciels venant du monde des logiciels libres (OpenSource).

    INTRODUCTION AUXARCHITECTURES N-TIER 8/9

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    11/2711

    INTRODUCTION AUXARCHITECTURES N-TIER 9/9

    Les diffrents rseaux :

    Internet : Rseau de porte mondialeinterconnectant des ordinateurs et des rseaux

    personnels et professionnels.Intranet : Rseau de porte locale

    interconnectant des ordinateurs et des rseauxrservs une entreprise.

    Extranet : Rseau interconnectant plusieursordinateurs et rseaux de plusieurs entreprises.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    12/2712

    SERVEURS DAPPLICATION1/4

    Principales fonctionnalits dun serveur Web :

    Rceptionner la requte

    Re-router les requtes dynamiquesRechercher les pages statiquesEncapsuler les pages dans la rponse

    mettre la rponse

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    13/2713

    SERVEURS DAPPLICATION2/4

    Principales fonctionnalits dun serveurdapplication :

    Rceptionner la requteConstruire la rponse dynamique

    Renvoyer la rponse au serveur Web

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    14/2714

    SERVEURS DAPPLICATION3/4

    Les fonctionnalits dun serveur dapplication :

    La production de contenu dynamique

    Le support des plates-formes

    L'ouverture vers l'existant

    Le pooling de connexions

    Le respect des standards

    L'administration

    La reprise sur incident

    La rpartition de charges

    La scurit

    La gestion de contexte

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    15/2715

    SERVEURS DAPPLICATION4/4

    Larchitecture mise en uvre dans le cadredes TD :

    Systme dexploitation Linux et Windows

    Serveur dapplication Tomcat

    Programmation J2EE

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    16/2716

    RAPPEL SUR J2EE 1/6

    J2EE sappuie sur des concepts objet :Classe : type dobjet caractris par sa structure de donnes(attributs) et son comportement (mthodes).

    Objet : instance de classe.

    Hritage : Mcanisme permettant une classe dobjets debnficier de la structure de donnes et du comportement duneclasse "mre", tout en lui permettant de les affiner et ce, afin deprendre en compte les spcificits de la classe "fille", sans avoircependant redfinir ce que les deux classes ont de commun.

    Abstraction : Mcanisme permettant la dissociation entre la

    dclaration duneclasse et son implmentation.Polymorphisme : Mcanisme permettant dassocier uncomportement, une implmentation diffrente en fonction delobjetauquel on se rfre.

    Encapsulation : Mcanisme permettant de dissimuler les dtailsdu fonctionnement interne duneclasse aux autres classes.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    17/2717

    RAPPEL SUR J2EE 2/6

    J2EE sappuie sur le langage Java :

    Java est un langage orient objetdont la syntaxe est driv duC et dont la conception rsulte de lexpriencede divers langages(Smalltalk, Ada, C++ )

    Java est un langage semi-compil. Le code obtenu aprscompilation sappelledu byte-code et ce code est interprtable parune JVM (Java Virtual Machine).

    Cependant, Java peut galement tre compltement compil(transform en langage machine) si ncessaire.

    Java est portablesur toutes les plate-formes puisquilexiste desmachines virtuelles pour chacune. (Les navigateurs intgrent desmachines virtuelles java).

    Java est un langage conu, lorigine, pour tre utilis via unrseau.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    18/27

    18

    RAPPEL SUR J2EE 3/6

    J2EE sappuie sur le langage Java (suite) :

    Java est un langage intgrant diffrent mcanisme de scurit (il permetde dfinir des stratgies de scurit permettant par exemple dinterdirelaccsaux ressources locales de la machine).

    Java intgre un ramasse-miette automatique facilitant de ce fait le

    codage et diminuant les risques de mauvaise gestion de la mmoire.Java est un langage multi-thread (il permet la gestion en parallle de

    plusieurs processus).

    Les produits de dveloppement :

    IBM RAD Borland JbuilderOracle JDevelopperNetBeans (Sun) Eclipse BEA Workshop

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    19/27

    19

    RAPPEL SUR J2EE 4/6

    J2EE est une architecture de composants :

    Objectif des composants :avoir des briques debases rutilisables.

    Dfinition duncomposant :module logiciel,

    exporte diffrents attributs, proprits et

    mthodes,

    est prvu pour tre configur,

    est prvu pour tre install,

    fournit un mcanisme lui permettant desauto-dcrire.

    Composant = objet + configurateur + installateur.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    20/27

    20

    RAPPEL SUR J2EE 5/6

    Les composants de la plate-forme J2EE :

    Version

    1.5

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    21/27

    21

    RAPPEL SUR J2EE 6/6

    En rsum :

    Java 2 Enterprise Editionest la dfinition dunensemble destandards, relatifs des services techniques dvelopps enJava dont lobjectif est de fournir une architecture logiciellepermettant le dploiement dapplications transactionnelles

    critiques.Cestaujourdhuiun standard du march car il offre :

    une simplification de larchitecture, du dveloppement et dela maintenance

    un support du transactionnel et de la scalibilit

    une intgration homogne avec les SI existants

    une indpendance sur le choix des serveurs, des outils etdes composants nouveau JEE

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    22/27

    22

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE1/6

    Le dveloppement dapplications Web repose sur troiscomposants J2EE principaux :

    Les servlets : ce sont des programmes Javaexcuts sur un serveur (par sa JVM). Ils

    permettent dtendre le comportement du serveurdynamiquement.

    Les JSP : ce sont des pages HTML incluant ducode JAVA (stock lintrieurde balises).

    Les EJB : ce sont des entits de traitementsexcutant dans un environnement adapt(conteneur) et possdant des mcanismes deconfiguration et dinstallation.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    23/27

    23

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE2/6

    Mcanisme dune application Web J2EE :

    3 - La servletcontrle la validit dela requte HTTP.

    4 - Elleinstancie lesbeans de donnespour accder auxdonnes.6 - Elleinvoque la

    JSP pour gnrer lapage HTML quicontient le rsultatde la requte.

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    24/27

    24

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE3/6

    Architecture dune application J2EE :

    Les modules et les applications correspondentphysiquement des fichiers d'archives : archive EJB JAR(.jar) pour un module EJB, archive WAR pour un module

    web, archive EAR pour une application.

    3 couches :

    Les composants.

    Les modulesregroupant lescomposants

    Les applications

    regroupant lesmodules

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    25/27

    25

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE4/6

    Module Web (.war). Selon la spcification J2EE, uneapplication Web doit avoir la structure suivante:

    un rpertoire racine public contenant les pages HTML, les pagesJSP, les images...

    un repertoire WEB-INF situ dans le rpertoire racine del'application web.

    un fichier web.xml situ la racine de WEB-INF : c'est ledescripteur de dploiement de l'application web.

    un rpertoire WEB-INF/classescontenant les classes compilesde l'application (servlets, classes auxiliaires...).

    un rpertoire WEB-INF/lib contenant les fichiers JAR del'application (drivers JDBC, frameworks empaquets...).

    Le tout peut tre empaquet dans une archive sous la forme d'unfichier WAR (ralis avec l'utilitaire jar du JDK).

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    26/27

    26

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE5/6

    Module EJB (.jar).Selon la spcification J2EE 1.2,un fichier JAR doit avoir la structure suivante :

    un rpertoire META-INF/ contenant un descripteur dedploiement XML du module EJB, nomm ejb-jar.xml

    les fichiers .class correspondant aux interfaces locale(home interface) et distante (remote interface), laclasse d'implmentation, et aux classes auxiliaires(classes d'exception par exemple) des EJBs, situesdans leur package.

    Le tout peut tre empaquet dans une archive sous laforme d'un fichier JAR.

    Nouvelle version JEE 1.5

  • 5/20/2018 CoursXML_51 - Architecture N-tier

    27/27

    27

    ASSEMBLAGE ET DEPLOIEMENTDAPPLICATIONS J2EE6/6

    Application dentreprise (.ear). Selon lesspcifications J2EE, une application d'entreprise doitavoir la structure suivante :un rpertoire META-INF/ contenant le descripteur de

    dploiement XML de l'application J2EE nommapplication.xml. Cestdans ce descripteur que londfinit lesmodules web et EJB qui constituent l'applicationd'entreprise. On y prcise par exemple sur quelle racine duserveur web (plac en frontal devant le serveurd'application) doit rsider l'application web.

    les fichiers archives .JAR et .WAR correspondant auxmodules EJB et aux modules Web de l'applicationd'entreprise.

    Le tout peut tre empaquet dans une archive sous la formed'un fichier EAR.