coursxml_51 - architecture n-tier
TRANSCRIPT
-
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.