Vous êtes sur la page 1sur 27

Les technologies XML

Cours 5 : XML et les architectures N-tier


Janvier 2009 - Version 1.0 -

SOMMAIRE DU COURS XML ET LES 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 XML Les APIs pour transformer des documents XML Modles de conception et frameworks Conclusion : transformation client ou serveur ?
2

INTRODUCTION AUX ARCHITECTURES N-TIER

1/9

Larchitecture N-tier (anglais tier : tage, niveau), ou encore appele multi-tier, est une architecture client-serveur dans laquelle une application est excute par plusieurs composants logiciels distincts. Exemple darchitecture 3-tier : Tier de prsentation : interfaces utilisateurs sur un PC poste de travail, qui sadressent des applications serveur Tier des rgles de gestion : applications serveur qui contiennent la logique de gestion et accdent aux donnes stockes dans des bases de donnes Tier de base de donnes : serveurs de bases de donnes

Avantages des architectures N-tier : Le lien entre les niveaux est dfini et limit des interfaces Les interfaces assurent la modularit et lindpendance technologique et topologique de chaque niveau
3

INTRODUCTION AUX ARCHITECTURES N-TIER

2/9

Les diffrentes couches dune architecture 4-tier :

INTRODUCTION AUX ARCHITECTURES N-TIER

3/9

Les diffrentes couches dune architecture 4-tier :


La couche de prsentation contient les diffrents types de clients, lger (ASP, JSP) ou lourd (Applet) La couche applicative contient les traitements reprsentant les rgles mtier (crer un compte de facturation, calculer un amortissement ... ) La couche d'objets mtier est reprsente par les objets du domaine, c'est dire l'ensemble des entits persistantes de l'application (Facture, Client ... ) La couche d'accs aux donnes contient les usines d'objets mtier, c'est dire les classes charges de crer des objets mtier de manire totalement transparente, indpendamment de leur mode de stockage (SGBDR, Objet, Fichiers, ...)
5

INTRODUCTION AUX ARCHITECTURES N-TIER

4/9

La valeur ajoute des architectures n-tier :


Cette sparation par couches de responsabilits sert dcoupler au maximum une couche de l'autre afin d'viter l'impact d'volutions futures de l'application. Par exemple : si lon est amen devoir changer de base de donnes relationnelle, seule la couche d'accs aux donnes sera impacte, la couche de service et la couche de prsentation ne seront pas concernes car elles auront t dcouples des autres.

INTRODUCTION AUX ARCHITECTURES N-TIER


Les diffrentes technologies ct client :

5/9

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 technologie objet propritaire
7

INTRODUCTION AUX ARCHITECTURES N-TIER


Les diffrentes technologies ct serveur :

6/9

JSP (Java Server Pages de Sun)


Comme la plupart de ses concurrents, il permet d'intgrer des scripts, ici sous forme de code Java, dans les pages html. Lorsqu'une page JSP est appele pour la premire fois, elle est compile 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, lavantage principal de java est d'tre indpendant du systme d'exploitation (interprt par une machine virtuelle). Java offre de plus la particularit de pouvoir tre excut ct client (applets) ou ct serveur (servlets). Il ncessite une bonne connaissance technique et des concepts objet. 8

INTRODUCTION AUX ARCHITECTURES N-TIER


Les diffrentes technologies ct serveur :

7/9

ASP (Active Server Pages de Microsoft)


Cette technologie est base sur des scripts ct serveur, crits en Vbscript ou Javascript. Ces scripts sont excuts par le serveur et leur rsultat est produit sous forme de pages html standard. Un des avantages d'ASP est sa facilit de mise en uvre. Largement rpandue, cette technologie prsente toutefois le dsavantage d'tre intimement lie l'environnement Windows Server et au serveur IIS.

C# / .Net (Microsoft)
Cette technologie ressemble en de nombreux points la technologie Java / J2EE. Elle prsente cependant encore de nombreuses faiblesses en terme de portabilit serveur, multi-plateformes, scalabilit ...
9

INTRODUCTION AUX ARCHITECTURES N-TIER


Les diffrentes technologies ct serveur :

8/9

PHP (Hypertext PreProcessor)


PHP connat un succs toujours croissant sur le Web et se positionne comme un rival important pour ASP et JSP.

L'environnement Linux est sa plateforme de prdilection. Combin avec le serveur Web Apache et la base de donnes MySQL, PHP offre une solution particulirement robuste, stable et efficace, offrant en outre l'avantage d'tre gratuite, tous ces logiciels venant du monde des logiciels libres (Open Source).

10

INTRODUCTION AUX ARCHITECTURES N-TIER


Les diffrents rseaux :

9/9

Internet : Rseau de porte mondiale interconnectant des ordinateurs et des rseaux personnels et professionnels.

Intranet : Rseau de porte locale interconnectant des ordinateurs et des rseaux rservs une entreprise.
Extranet : Rseau interconnectant plusieurs ordinateurs et rseaux de plusieurs entreprises.

11

SERVEURS DAPPLICATION
1/4

Principales fonctionnalits dun serveur Web :

Rceptionner la requte Re-router les requtes dynamiques Rechercher les pages statiques Encapsuler les pages dans la rponse mettre la rponse
12

SERVEURS DAPPLICATION
2/4

Principales fonctionnalits dun serveur dapplication :

Rceptionner la requte Construire la rponse dynamique Renvoyer la rponse au serveur Web


13

SERVEURS DAPPLICATION
3/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
14

SERVEURS DAPPLICATION
4/4

Larchitecture mise en uvre dans le cadre des TD :


Systme dexploitation Linux et Windows Serveur dapplication Tomcat Programmation J2EE

15

RAPPEL SUR J2EE


J2EE sappuie sur des concepts objet :

1/6

Classe : type dobjet caractris par sa structure de donnes (attributs) et son comportement (mthodes). Objet : instance de classe. Hritage : Mcanisme permettant une classe dobjets de bnficier de la structure de donnes et du comportement dune classe "mre", tout en lui permettant de les affiner et ce, afin de prendre en compte les spcificits de la classe "fille", sans avoir cependant redfinir ce que les deux classes ont de commun. Abstraction : Mcanisme permettant la dissociation entre la dclaration dune classe et son implmentation.

Polymorphisme : Mcanisme permettant dassocier un comportement, une implmentation diffrente en fonction de lobjet auquel on se rfre.
Encapsulation : Mcanisme permettant de dissimuler les dtails du fonctionnement interne dune classe aux autres classes.
16

RAPPEL SUR J2EE


J2EE sappuie sur le langage Java :

2/6

Java est un langage orient objet dont la syntaxe est driv du C et dont la conception rsulte de lexprience de divers langages (Smalltalk, Ada, C++ )
Java est un langage semi-compil. Le code obtenu aprs compilation sappelle du byte-code et ce code est interprtable par une JVM (Java Virtual Machine). Cependant, Java peut galement tre compltement compil (transform en langage machine) si ncessaire. Java est portable sur toutes les plate-formes puisquil existe des machines virtuelles pour chacune. (Les navigateurs intgrent des machines virtuelles java). Java est un langage conu, lorigine, pour tre utilis via un rseau.
17

RAPPEL SUR J2EE


J2EE sappuie sur le langage Java (suite) :

3/6

Java est un langage intgrant diffrent mcanisme de scurit (il permet de dfinir des stratgies de scurit permettant par exemple dinterdire laccs aux 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 Jbuilder Oracle JDevelopper NetBeans (Sun) Eclipse BEA Workshop

18

RAPPEL SUR J2EE


J2EE est une architecture de composants :

4/6

Objectif des composants :


avoir des briques de bases rutilisables.

Dfinition dun composant :


module logiciel, exporte diffrents attributs, proprits et mthodes, est prvu pour tre configur, est prvu pour tre install, fournit un mcanisme lui permettant de sauto-dcrire.

Composant = objet + configurateur + installateur.

19

RAPPEL SUR J2EE

5/6

Les composants de la plate-forme J2EE :

Version 1.5

20

RAPPEL SUR J2EE


En rsum :

6/6

Java 2 Enterprise Edition est la dfinition dun ensemble de standards, relatifs des services techniques dvelopps en Java dont lobjectif est de fournir une architecture logicielle permettant le dploiement dapplications transactionnelles critiques. Cest aujourdhui un standard du march car il offre :
une simplification de larchitecture, du dveloppement et de la 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 et des composants nouveau JEE

21

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 1/6


Le dveloppement dapplications Web repose sur trois composants J2EE principaux :

Les servlets : ce sont des programmes Java excuts sur un serveur (par sa JVM). Ils permettent dtendre le comportement du serveur dynamiquement. Les JSP : ce sont des pages HTML incluant du code JAVA (stock lintrieur de balises). Les EJB : sexcutant (conteneur) configuration ce sont des entits de traitement dans un environnement adapt et possdant des mcanismes de et dinstallation.

22

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 2/6


Mcanisme dune application Web J2EE :

3 - La servlet contrle la validit de la requte HTTP. 4 - Elle instancie les beans de donnes pour accder aux donnes. 6 - Elle invoque la JSP pour gnrer la page HTML qui contient le rsultat de la requte.
23

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 3/6


Architecture dune application J2EE : 3 couches :
Les composants. Les modules regroupant les composants

Les applications regroupant les modules

Les modules et les applications correspondent physiquement des fichiers d'archives : archive EJB JAR (.jar) pour un module EJB, archive WAR pour un module web, archive EAR pour une application.
24

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 4/6


Module Web (.war). Selon la spcification J2EE, une application Web doit avoir la structure suivante:
un rpertoire racine public contenant les pages HTML, les pages JSP, les images... un repertoire WEB-INF situ dans le rpertoire racine de l'application web. un fichier web.xml situ la racine de WEB-INF : c'est le descripteur de dploiement de l'application web. un rpertoire WEB-INF/classes contenant les classes compiles de l'application (servlets, classes auxiliaires...). un rpertoire WEB-INF/lib contenant les fichiers JAR de l'application (drivers JDBC, frameworks empaquets...). Le tout peut tre empaquet dans une archive sous la forme d'un fichier WAR (ralis avec l'utilitaire jar du JDK).
25

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 5/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 de dploiement XML du module EJB, nomm ejb-jar.xml les fichiers .class correspondant aux interfaces locale (home interface) et distante (remote interface), la classe d'implmentation, et aux classes auxiliaires (classes d'exception par exemple) des EJBs, situes dans leur package.

Le tout peut tre empaquet dans une archive sous la forme d'un fichier JAR.
Nouvelle version JEE 1.5
26

ASSEMBLAGE ET DEPLOIEMENT DAPPLICATIONS J2EE 6/6


Application
Selon les spcifications J2EE, une application d'entreprise doit avoir la structure suivante :
un rpertoire META-INF/ contenant le descripteur de dploiement XML de l'application J2EE nomm application.xml. Cest dans ce descripteur que lon dfinit les modules web et EJB qui constituent l'application d'entreprise. On y prcise par exemple sur quelle racine du serveur web (plac en frontal devant le serveur d'application) doit rsider l'application web. les fichiers archives .JAR et .WAR correspondant aux modules EJB et aux modules Web de l'application d'entreprise. Le tout peut tre empaquet dans une archive sous la forme d'un fichier EAR.
27

dentreprise

(.ear).