SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
1
Les architectures N-tiers
Les architectures N-tiers
2
SOMMAIRE DU COURS XML ET
SOMMAIRE DU COURS XML ET
LES ARCHITECTURES N-TIER
LES ARCHITECTURES N-TIER
Introduction aux architectures N-tier
Introduction aux architectures N-tier
Serveurs d’applications
Serveurs d’applications
Déploiement d’applications J2EE
Déploiement d’applications J2EE
Tiers applicatif :
Tiers applicatif : servlets
servlets
Tiers présentation :
Tiers présentation : JSP
JSP
Tiers métier :
Tiers métier : accès aux bases de données
accès aux bases de données
Les APIs pour lire des documents XML
Les APIs pour lire des documents XML
Les APIs pour transformer des documents XML
Les APIs pour transformer des documents XML
Modèles de conception et frameworks
Modèles de conception et frameworks
Conclusion : transformation client ou serveur ?
Conclusion : transformation client ou serveur ?
3
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 1/9
1/9
L’architecture N-tier (anglais
L’architecture N-tier (anglais tier
tier : étage, niveau), ou encore
: étage, niveau), ou encore
appelée multi-tier, est une architecture client-serveur dans
appelée multi-tier, est une architecture client-serveur dans
laquelle une application est exécutée par plusieurs
laquelle une application est exécutée par plusieurs
composants logiciels distincts.
composants logiciels distincts.
Exemple d’architecture 3-tier :
Exemple d’architecture 3-tier :
Tier de présentation : interfaces utilisateurs sur un PC
Tier de présentation : interfaces utilisateurs sur un PC
poste de travail, qui s’adressent à des applications serveur
poste de travail, qui s’adressent à des applications serveur
Tier des règles de gestion : applications serveur qui
Tier des règles de gestion : applications serveur qui
contiennent la logique de gestion et accèdent aux données
contiennent la logique de gestion et accèdent aux données
stockées dans des bases de données
stockées dans des bases de données
Tier de base de données : serveurs de bases de données
Tier de base de données : serveurs de bases de données
Avantages des architectures N-tier :
Avantages des architectures N-tier :
Le lien entre les niveaux est défini et limité à des
Le lien entre les niveaux est défini et limité à des
interfaces
interfaces
Les interfaces assurent la modularité et l’indépendance
Les interfaces assurent la modularité et l’indépendance
technologique et topologique de chaque niveau
technologique et topologique de chaque niveau
4
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 2/9
2/9
Les différentes couches d’une architecture 4-tier :
Les différentes couches d’une architecture 4-tier :
5
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 3/9
3/9
Les différentes couches d’une architecture 4-tier :
Les différentes couches d’une architecture 4-tier :
La couche de présentation
La couche de présentation contient les différents
contient les différents
types de clients, léger (ASP, JSP) ou lourd (Applet)
types de clients, léger (ASP, JSP) ou lourd (Applet)
La couche applicative
La couche applicative contient les traitements
contient les traitements
représentant les règles métier (créer un compte de
représentant les règles métier (créer un compte de
facturation, calculer un amortissement ... )
facturation, calculer un amortissement ... )
La couche d'objets métier
La couche d'objets métier est représentée par les
est représentée par les
objets du domaine, c'est à dire l'ensemble des entités
objets du domaine, c'est à dire l'ensemble des entités
persistantes de l'application (Facture, Client ... )
persistantes de l'application (Facture, Client ... )
La couche d'accès aux données
La couche d'accès aux données contient les usines
contient les usines
d'objets métier, c'est à dire les classes chargées de créer
d'objets métier, c'est à dire les classes chargées de créer
des objets métier de manière totalement transparente,
des objets métier de manière totalement transparente,
indépendamment de leur mode de stockage (SGBDR,
indépendamment de leur mode de stockage (SGBDR,
Objet, Fichiers, ...)
Objet, Fichiers, ...)
6
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 4/9
4/9
La valeur ajoutée des architectures n-tier :
La valeur ajoutée des architectures n-tier :
Cette séparation par couches de responsabilités
sert à découpler au maximum une couche de l'autre
afin d'éviter l'impact d'évolutions futures de
l'application.
Par exemple : si l’on est amené à devoir changer de
base de données relationnelle, seule la couche
d'accès aux données sera impactée, la couche de
service et la couche de présentation ne seront pas
concernées car elles auront été découplées des
autres.
7
• Les différentes technologies côté client :
Les différentes technologies côté 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 propriétaire
• Active X est une technologie objet propriétaire
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 5/9
5/9
8
 Les différentes technologies côté serveur :
Les différentes technologies côté serveur :
– JSP (Java Server Pages de Sun)
Comme la plupart de ses concurrents, il permet d'intégrer des
scripts, ici sous forme de code Java, dans les pages html.
Lorsqu'une page JSP est appelée pour la première fois, elle est
compilée et transformée en servlet (programme côté serveur).
Ce servlet est exécuté et produit un contenu au format html.
– Java / J2EE (Java 2 Enterprise Edition, Sun)
Promu par la société Sun, l’avantage principal de java est d'être
indépendant du système d'exploitation (interprété par une
machine virtuelle). Java offre de plus la particularité de pouvoir
être exécuté côté client (applets) ou côté serveur (servlets). Il
nécessite une bonne connaissance technique et des
concepts objet.
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 6/9
6/9
9
 Les différentes technologies côté serveur :
Les différentes technologies côté serveur :
– ASP (Active Server Pages de Microsoft)
Cette technologie est basée sur des scripts côté serveur, écrits
en Vbscript ou Javascript. Ces scripts sont exécutés par le
serveur et leur résultat est produit sous forme de pages html
standard. Un des avantages d'ASP est sa facilité de mise en
œuvre. Largement répandue, cette technologie présente
toutefois le désavantage d'être intimement liée à
l'environnement Windows Server et au serveur IIS.
– C# / .Net (Microsoft)
Cette technologie ressemble en de nombreux points à la
technologie Java / J2EE. Elle présente cependant encore de
nombreuses faiblesses en terme de portabilité serveur,
multi-plateformes, scalabilité ...
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 7/9
7/9
10
 Les différentes technologies côté serveur :
Les différentes technologies côté serveur :
– PHP (Hypertext PreProcessor)
PHP connaît un succès toujours croissant sur le Web et
se positionne comme un rival important pour ASP et
JSP.
L'environnement Linux est sa plateforme de
prédilection. Combiné avec le serveur Web Apache et
la base de données MySQL, PHP offre une solution
particulièrement robuste, stable et efficace,
offrant en outre l'avantage d'être gratuite, tous
ces logiciels venant du monde des logiciels libres (Open
Source).
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 8/9
8/9
11
INTRODUCTION AUX
INTRODUCTION AUX
ARCHITECTURES N-TIER
ARCHITECTURES N-TIER 9/9
9/9
 Les différents réseaux :
Les différents réseaux :
• Internet : Réseau de portée mondiale
interconnectant des ordinateurs et des réseaux
personnels et professionnels.
• Intranet : Réseau de portée locale
interconnectant des ordinateurs et des réseaux
réservés à une entreprise.
• Extranet : Réseau interconnectant plusieurs
ordinateurs et réseaux de plusieurs entreprises.
12
SERVEURS D’APPLICATION
SERVEURS D’APPLICATION
1/4
1/4
 Principal
Principales fonctionnalités d’un serveur Web :
es fonctionnalités d’un serveur Web :
– Réceptionner la requête
Réceptionner la requête
– Re-router les requêtes dynamiques
Re-router les requêtes dynamiques
– Rechercher les pages statiques
Rechercher les pages statiques
– Encapsuler les pages dans la réponse
Encapsuler les pages dans la réponse
– Émettre la réponse
Émettre la réponse
13
SERVEURS D’APPLICATION
SERVEURS D’APPLICATION
2/4
2/4
 Principales fonctionnalités d’un serveur
Principales fonctionnalités d’un serveur
d’application :
d’application :
– Réceptionner la requête
Réceptionner la requête
– Construire la réponse dynamique
Construire la réponse dynamique
– Renvoyer la réponse au serveur Web
Renvoyer la réponse au serveur Web
14
SERVEURS D’APPLICATION
SERVEURS D’APPLICATION
3/4
3/4
Les fonctionnalités d’un serveur d’application :
Les fonctionnalités d’un serveur d’application :
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 répartition de charges
La sécurité
La gestion de contexte
15
SERVEURS D’APPLICATION
SERVEURS D’APPLICATION
4/4
4/4
L’architecture mise en œuvre dans le cadre
L’architecture mise en œuvre dans le cadre
des TD :
des TD :
Système d’exploitation Linux et Windows
Système d’exploitation Linux et Windows
Serveur d’application Tomcat
Serveur d’application Tomcat
Programmation J2EE
Programmation J2EE
16
RAPPEL SUR J2EE
RAPPEL SUR J2EE 1/6
1/6
J2EE s’appuie sur des concepts objet :
J2EE s’appuie sur des concepts objet :
Classe
Classe : type d’objet
: type d’objet caractérisé par sa structure de données
caractérisé par sa structure de données
(attributs) et son comportement (méthodes).
(attributs) et son comportement (méthodes).
Objet
Objet : instance de classe.
: instance de classe.
Héritage
Héritage :
: Mécanisme permettant à une classe d’objets de
Mécanisme permettant à une classe d’objets de
bénéficier de la structure de données et du comportement d’une
bénéficier de la structure de données et du comportement d’une
classe mère, tout en lui permettant de les affiner et ce, afin de
classe mère, tout en lui permettant de les affiner et ce, afin de
prendre en compte les spécificités de la classe fille, sans avoir
prendre en compte les spécificités de la classe fille, sans avoir
cependant à redéfinir ce que les deux classes ont de commun.
cependant à redéfinir ce que les deux classes ont de commun.
Abstraction
Abstraction :
: Mécanisme permettant la dissociation entre la
Mécanisme permettant la dissociation entre la
déclaration d’une classe et son implémentation
déclaration d’une classe et son implémentation.
.
Polymorphisme
Polymorphisme :
: Mécanisme permettant d’associer à un
Mécanisme permettant d’associer à un
comportement, une implémentation différente en fonction de
comportement, une implémentation différente en fonction de
l’objet auquel on se réfère
l’objet auquel on se réfère.
.
Encapsulation
Encapsulation :
: Mécanisme permettant de dissimuler les détails
Mécanisme permettant de dissimuler les détails
du fonctionnement interne d’une classe aux autres classes.
du fonctionnement interne d’une classe aux autres classes.
17
RAPPEL SUR J2EE
RAPPEL SUR J2EE 2/6
2/6
J2EE s’appuie sur le langage Java :
J2EE s’appuie sur le langage Java :
Java est un
Java est un langage orienté objet
langage orienté objet dont la syntaxe est dérivé du
dont la syntaxe est dérivé du
C et dont la conception résulte de l’expérience de divers langages
C et dont la conception résulte de l’expérience de divers langages
(Smalltalk, Ada, C++ …)
(Smalltalk, Ada, C++ …)
Java est un langage
Java est un langage semi-compilé.
semi-compilé. Le code obtenu après
Le code obtenu après
compilation s’appelle du byte-code et ce code est interprétable par
compilation s’appelle du byte-code et ce code est interprétable par
une JVM (Java Virtual Machine)
une JVM (Java Virtual Machine).
.
Cependant, Java peut également être complètement
Cependant, Java peut également être complètement compilé
compilé
(transformé en langage machine) si nécessaire.
(transformé en langage machine) si nécessaire.
Java est
Java est portable
portable sur toutes les plate-formes puisqu’il existe des
sur toutes les plate-formes puisqu’il existe des
machines virtuelles pour chacune. (Les navigateurs intègrent des
machines virtuelles pour chacune. (Les navigateurs intègrent des
machines virtuelles java).
machines virtuelles java).
Java est un langage conçu, à l’origine, pour être utilisé via un
Java est un langage conçu, à l’origine, pour être utilisé via un
réseau.
réseau.
18
RAPPEL SUR J2EE
RAPPEL SUR J2EE 3/6
3/6
J2EE s’appuie sur le langage Java (suite) :
J2EE s’appuie sur le langage Java (suite) :
Java est un langage intégrant différent mécanisme de
Java est un langage intégrant différent mécanisme de sécurité
sécurité (il permet
(il permet
de définir des stratégies de sécurité permettant par exemple d’interdire
de définir des stratégies de sécurité permettant par exemple d’interdire
l’accès aux ressources locales de la machine).
l’accès aux ressources locales de la machine).
Java intègre un
Java intègre un ramasse-miette automatique
ramasse-miette automatique facilitant de ce fait le
facilitant de ce fait le
codage et diminuant les risques de mauvaise gestion de la mémoire.
codage et diminuant les risques de mauvaise gestion de la mémoire.
Java est un langage
Java est un langage multi-thread
multi-thread (il permet la gestion en parallèle de
(il permet la gestion en parallèle de
plusieurs processus).
plusieurs processus).
Les produits de développement :
Les produits de développement :
 IBM RAD
IBM RAD
 Borland Jbuilder
Borland Jbuilder
 Oracle JDevelopper
Oracle JDevelopper
 NetBeans (Sun)
NetBeans (Sun)
 Eclipse
Eclipse
 BEA Workshop
BEA Workshop
19
RAPPEL SUR J2EE
RAPPEL SUR J2EE 4/6
4/6
J2EE est une architecture de composants :
J2EE est une architecture de composants :
Objectif des composants :
Objectif des composants :
 avoir des briques de bases réutilisables.
Définition d’un composant :
Définition d’un composant :
 module logiciel,
module logiciel,
 exporte différents attributs, propriétés et
exporte différents attributs, propriétés et
méthodes,
méthodes,
 est prévu pour être configuré,
est prévu pour être configuré,
 est prévu pour être installé,
est prévu pour être installé,
 fournit un mécanisme lui permettant de
fournit un mécanisme lui permettant de
s’auto
s’auto-décrire.
-décrire.
Composant = objet + configurateur + installateur.
Composant = objet + configurateur + installateur.
20
RAPPEL SUR J2EE
RAPPEL SUR J2EE 5/6
5/6
Les composants de la plate-forme J2EE :
Les composants de la plate-forme J2EE :
Version
1.5
21
RAPPEL SUR J2EE
RAPPEL SUR J2EE 6/6
6/6
En résumé :
En résumé :
Java 2 Enterprise Edition
Java 2 Enterprise Edition est la définition d’un ensemble de
est la définition d’un ensemble de
standards, relatifs à des services techniques développés en
standards, relatifs à des services techniques développés en
Java dont l’objectif est de fournir une architecture logicielle
Java dont l’objectif est de fournir une architecture logicielle
permettant le déploiement d’applications transactionnelles
permettant le déploiement d’applications transactionnelles
critiques.
critiques.
C’est aujourd’hui un standard du marché car il offre :
C’est aujourd’hui un standard du marché car il offre :
une simplification de l’architecture, du développement et de
la maintenance
un support du transactionnel et de la scalibilité
une intégration homogène avec les SI existants
une indépendance sur le choix des serveurs, des outils et
des composants – nouveau JEE
22
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 1/6
1/6
Le développement d’applications Web repose sur trois
Le développement d’applications Web repose sur trois
composants J2EE principaux :
composants J2EE principaux :
Les servlets
Les servlets : ce sont des programmes Java
: ce sont des programmes Java
exécutés sur un serveur (par sa JVM). Ils
exécutés sur un serveur (par sa JVM). Ils
permettent d’étendre le comportement du serveur
permettent d’étendre le comportement du serveur
dynamiquement.
dynamiquement.
Les JSP
Les JSP : ce sont des pages HTML incluant du
: ce sont des pages HTML incluant du
code JAVA (stocké à l’intérieur de balises).
code JAVA (stocké à l’intérieur de balises).
Les EJB
Les EJB : ce sont des
: ce sont des entités de traitement
entités de traitement
s’exécutant dans un environnement adapté
s’exécutant dans un environnement adapté
(conteneur)
(conteneur) et possédant des mécanismes de
et possédant des mécanismes de
configuration et d’installation.
configuration et d’installation.
23
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 2/6
2/6
Mécanisme d’une application Web J2EE :
Mécanisme d’une application Web J2EE :
3 - La servlet
3 - La servlet
contrôle la validité de
contrôle la validité de
la requête HTTP.
la requête HTTP.
4 - Elle
4 - Elle instancie les
instancie les
beans de données
beans de données
pour accéder aux
pour accéder aux
données.
données.
6 - Elle
6 - Elle invoque la
invoque la
JSP pour générer la
JSP pour générer la
page HTML qui
page HTML qui
contient le résultat
contient le résultat
de la requête
de la requête.
.
24
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 3/6
3/6
Architecture d’une application J2EE :
Architecture d’une application J2EE :
Les modules et les applications correspondent
Les modules et les applications correspondent
physiquement à des fichiers d'archives : archive EJB JAR
physiquement à des fichiers d'archives : archive EJB JAR
(.jar) pour un module EJB, archive WAR pour un module
(.jar) pour un module EJB, archive WAR pour un module
web, archive EAR pour une application.
web, archive EAR pour une application.
• 3 couches :
3 couches :
 Les composants.
 Les modules
regroupant les
composants
 Les applications
regroupant les
modules
25
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 4/6
4/6
Module Web (.war).
Module Web (.war). Selon la spécification J2EE, une
Selon la spécification J2EE, une
application Web doit avoir la structure suivante:
application Web doit avoir la structure suivante:
un répertoire racine public contenant les pages HTML, les pages
un répertoire racine public contenant les pages HTML, les pages
JSP, les images...
JSP, les images...
un repertoire
un repertoire WEB-INF
WEB-INF situé dans le répertoire racine de
situé dans le répertoire racine de
l'application web.
l'application web.
un fichier
un fichier web.xml
web.xml situé à la racine de
situé à la racine de WEB-INF
WEB-INF : c'est le
: c'est le
descripteur de déploiement de l'application web.
descripteur de déploiement de l'application web.
un répertoire
un répertoire WEB-INF/classes
WEB-INF/classes contenant les classes compilées
contenant les classes compilées
de l'application (servlets, classes auxiliaires...).
de l'application (servlets, classes auxiliaires...).
un répertoire
un répertoire WEB-INF/lib
WEB-INF/lib contenant les fichiers JAR de
contenant les fichiers JAR de
l'application (drivers JDBC, frameworks empaquetés...).
l'application (drivers JDBC, frameworks empaquetés...).
Le tout peut être empaqueté dans une archive sous la forme d'un
Le tout peut être empaqueté dans une archive sous la forme d'un
fichier WAR (réalisé avec l'utilitaire jar du JDK).
fichier WAR (réalisé avec l'utilitaire jar du JDK).
26
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 5/6
5/6
Module EJB (.jar).
Module EJB (.jar). Selon la spécification J2EE 1.2,
Selon la spécification J2EE 1.2,
un fichier JAR doit avoir la structure suivante :
un fichier JAR doit avoir la structure suivante :
un répertoire
un répertoire META-INF/
META-INF/ contenant un descripteur de
contenant un descripteur de
déploiement XML du module EJB, nommé ejb-jar.xml
déploiement XML du module EJB, nommé ejb-jar.xml
les fichiers .class correspondant aux interfaces locale
les fichiers .class correspondant aux interfaces locale
(home interface) et distante (remote interface), à la
(home interface) et distante (remote interface), à la
classe d'implémentation, et aux classes auxiliaires
classe d'implémentation, et aux classes auxiliaires
(classes d'exception par exemple) des EJBs, situées
(classes d'exception par exemple) des EJBs, situées
dans leur package.
dans leur package.
Le tout peut être empaqueté dans une archive sous la
Le tout peut être empaqueté dans une archive sous la
forme d'un fichier JAR.
forme d'un fichier JAR.
Nouvelle version JEE 1.5
Nouvelle version JEE 1.5
27
ASSEMBLAGE ET DEPLOIEMENT
ASSEMBLAGE ET DEPLOIEMENT
D’APPLICATIONS J2EE
D’APPLICATIONS J2EE 6/6
6/6
Application d’entreprise (.ear).
Application d’entreprise (.ear). Selon les
Selon les
spécifications J2EE, une application d'entreprise doit
spécifications J2EE, une application d'entreprise doit
avoir la structure suivante :
avoir la structure suivante :
un répertoire
un répertoire META-INF/
META-INF/ contenant le descripteur de
contenant le descripteur de
déploiement XML de l'application J2EE nommé
déploiement XML de l'application J2EE nommé
application.xml. C’est dans ce descripteur que l’on définit les
application.xml. C’est dans ce descripteur que l’on définit les
modules web et EJB qui constituent l'application
modules web et EJB qui constituent l'application
d'entreprise. On y précise par exemple sur quelle racine du
d'entreprise. On y précise par exemple sur quelle racine du
serveur web (placé en frontal devant le serveur
serveur web (placé en frontal devant le serveur
d'application) doit résider l'application web.
d'application) doit résider l'application web.
les fichiers archives .JAR et .WAR correspondant aux
les fichiers archives .JAR et .WAR correspondant aux
modules EJB et aux modules Web de l'application
modules EJB et aux modules Web de l'application
d'entreprise.
d'entreprise.
Le tout peut être empaqueté dans une archive sous la forme
Le tout peut être empaqueté dans une archive sous la forme
d'un fichier EAR.
d'un fichier EAR.

Contenu connexe

Similaire à architectureNTiers.pdf

Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013rbschange
 
J2eeintro
J2eeintroJ2eeintro
J2eeintromedbmb
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeMicrosoft
 
Data Quality et SOA
Data Quality et SOAData Quality et SOA
Data Quality et SOAUniserv
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfFootballLovers9
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Quelles évolutions fonderont l’avenir des serveurs d’application ?
Quelles évolutions fonderont l’avenir des serveurs d’application ?Quelles évolutions fonderont l’avenir des serveurs d’application ?
Quelles évolutions fonderont l’avenir des serveurs d’application ?Marc Bojoly
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'artTugdual Grall
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteAZUG FR
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...CERTyou Formation
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 

Similaire à architectureNTiers.pdf (20)

Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
 
De A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicativeDe A à Z : Choisir une architecture pour sa solution applicative
De A à Z : Choisir une architecture pour sa solution applicative
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Data Quality et SOA
Data Quality et SOAData Quality et SOA
Data Quality et SOA
 
resume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdfresume-theorique-m107-2203-6246f60d6b994.pdf
resume-theorique-m107-2203-6246f60d6b994.pdf
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Quelles évolutions fonderont l’avenir des serveurs d’application ?
Quelles évolutions fonderont l’avenir des serveurs d’application ?Quelles évolutions fonderont l’avenir des serveurs d’application ?
Quelles évolutions fonderont l’avenir des serveurs d’application ?
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'art
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 

architectureNTiers.pdf

  • 1. 1 Les architectures N-tiers Les architectures N-tiers
  • 2. 2 SOMMAIRE DU COURS XML ET SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Introduction aux architectures N-tier Serveurs d’applications Serveurs d’applications Déploiement d’applications J2EE Déploiement d’applications J2EE Tiers applicatif : Tiers applicatif : servlets servlets Tiers présentation : Tiers présentation : JSP JSP Tiers métier : Tiers métier : accès aux bases de données accès aux bases de données Les APIs pour lire des documents XML Les APIs pour lire des documents XML Les APIs pour transformer des documents XML Les APIs pour transformer des documents XML Modèles de conception et frameworks Modèles de conception et frameworks Conclusion : transformation client ou serveur ? Conclusion : transformation client ou serveur ?
  • 3. 3 INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 1/9 1/9 L’architecture N-tier (anglais L’architecture N-tier (anglais tier tier : étage, niveau), ou encore : étage, niveau), ou encore appelée multi-tier, est une architecture client-serveur dans appelée multi-tier, est une architecture client-serveur dans laquelle une application est exécutée par plusieurs laquelle une application est exécutée par plusieurs composants logiciels distincts. composants logiciels distincts. Exemple d’architecture 3-tier : Exemple d’architecture 3-tier : Tier de présentation : interfaces utilisateurs sur un PC Tier de présentation : interfaces utilisateurs sur un PC poste de travail, qui s’adressent à des applications serveur poste de travail, qui s’adressent à des applications serveur Tier des règles de gestion : applications serveur qui Tier des règles de gestion : applications serveur qui contiennent la logique de gestion et accèdent aux données contiennent la logique de gestion et accèdent aux données stockées dans des bases de données stockées dans des bases de données Tier de base de données : serveurs de bases de données Tier de base de données : serveurs de bases de données Avantages des architectures N-tier : Avantages des architectures N-tier : Le lien entre les niveaux est défini et limité à des Le lien entre les niveaux est défini et limité à des interfaces interfaces Les interfaces assurent la modularité et l’indépendance Les interfaces assurent la modularité et l’indépendance technologique et topologique de chaque niveau technologique et topologique de chaque niveau
  • 4. 4 INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 2/9 2/9 Les différentes couches d’une architecture 4-tier : Les différentes couches d’une architecture 4-tier :
  • 5. 5 INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 3/9 3/9 Les différentes couches d’une architecture 4-tier : Les différentes couches d’une architecture 4-tier : La couche de présentation La couche de présentation contient les différents contient les différents types de clients, léger (ASP, JSP) ou lourd (Applet) types de clients, léger (ASP, JSP) ou lourd (Applet) La couche applicative La couche applicative contient les traitements contient les traitements représentant les règles métier (créer un compte de représentant les règles métier (créer un compte de facturation, calculer un amortissement ... ) facturation, calculer un amortissement ... ) La couche d'objets métier La couche d'objets métier est représentée par les est représentée par les objets du domaine, c'est à dire l'ensemble des entités objets du domaine, c'est à dire l'ensemble des entités persistantes de l'application (Facture, Client ... ) persistantes de l'application (Facture, Client ... ) La couche d'accès aux données La couche d'accès aux données contient les usines contient les usines d'objets métier, c'est à dire les classes chargées de créer d'objets métier, c'est à dire les classes chargées de créer des objets métier de manière totalement transparente, des objets métier de manière totalement transparente, indépendamment de leur mode de stockage (SGBDR, indépendamment de leur mode de stockage (SGBDR, Objet, Fichiers, ...) Objet, Fichiers, ...)
  • 6. 6 INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 4/9 4/9 La valeur ajoutée des architectures n-tier : La valeur ajoutée des architectures n-tier : Cette séparation par couches de responsabilités sert à découpler au maximum une couche de l'autre afin d'éviter l'impact d'évolutions futures de l'application. Par exemple : si l’on est amené à devoir changer de base de données relationnelle, seule la couche d'accès aux données sera impactée, la couche de service et la couche de présentation ne seront pas concernées car elles auront été découplées des autres.
  • 7. 7 • Les différentes technologies côté client : Les différentes technologies côté 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 propriétaire • Active X est une technologie objet propriétaire INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 5/9 5/9
  • 8. 8 Les différentes technologies côté serveur : Les différentes technologies côté serveur : – JSP (Java Server Pages de Sun) Comme la plupart de ses concurrents, il permet d'intégrer des scripts, ici sous forme de code Java, dans les pages html. Lorsqu'une page JSP est appelée pour la première fois, elle est compilée et transformée en servlet (programme côté serveur). Ce servlet est exécuté et produit un contenu au format html. – Java / J2EE (Java 2 Enterprise Edition, Sun) Promu par la société Sun, l’avantage principal de java est d'être indépendant du système d'exploitation (interprété par une machine virtuelle). Java offre de plus la particularité de pouvoir être exécuté côté client (applets) ou côté serveur (servlets). Il nécessite une bonne connaissance technique et des concepts objet. INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 6/9 6/9
  • 9. 9 Les différentes technologies côté serveur : Les différentes technologies côté serveur : – ASP (Active Server Pages de Microsoft) Cette technologie est basée sur des scripts côté serveur, écrits en Vbscript ou Javascript. Ces scripts sont exécutés par le serveur et leur résultat est produit sous forme de pages html standard. Un des avantages d'ASP est sa facilité de mise en œuvre. Largement répandue, cette technologie présente toutefois le désavantage d'être intimement liée à l'environnement Windows Server et au serveur IIS. – C# / .Net (Microsoft) Cette technologie ressemble en de nombreux points à la technologie Java / J2EE. Elle présente cependant encore de nombreuses faiblesses en terme de portabilité serveur, multi-plateformes, scalabilité ... INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 7/9 7/9
  • 10. 10 Les différentes technologies côté serveur : Les différentes technologies côté serveur : – PHP (Hypertext PreProcessor) PHP connaît un succès toujours croissant sur le Web et se positionne comme un rival important pour ASP et JSP. L'environnement Linux est sa plateforme de prédilection. Combiné avec le serveur Web Apache et la base de données MySQL, PHP offre une solution particulièrement robuste, stable et efficace, offrant en outre l'avantage d'être gratuite, tous ces logiciels venant du monde des logiciels libres (Open Source). INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 8/9 8/9
  • 11. 11 INTRODUCTION AUX INTRODUCTION AUX ARCHITECTURES N-TIER ARCHITECTURES N-TIER 9/9 9/9 Les différents réseaux : Les différents réseaux : • Internet : Réseau de portée mondiale interconnectant des ordinateurs et des réseaux personnels et professionnels. • Intranet : Réseau de portée locale interconnectant des ordinateurs et des réseaux réservés à une entreprise. • Extranet : Réseau interconnectant plusieurs ordinateurs et réseaux de plusieurs entreprises.
  • 12. 12 SERVEURS D’APPLICATION SERVEURS D’APPLICATION 1/4 1/4 Principal Principales fonctionnalités d’un serveur Web : es fonctionnalités d’un serveur Web : – Réceptionner la requête Réceptionner la requête – Re-router les requêtes dynamiques Re-router les requêtes dynamiques – Rechercher les pages statiques Rechercher les pages statiques – Encapsuler les pages dans la réponse Encapsuler les pages dans la réponse – Émettre la réponse Émettre la réponse
  • 13. 13 SERVEURS D’APPLICATION SERVEURS D’APPLICATION 2/4 2/4 Principales fonctionnalités d’un serveur Principales fonctionnalités d’un serveur d’application : d’application : – Réceptionner la requête Réceptionner la requête – Construire la réponse dynamique Construire la réponse dynamique – Renvoyer la réponse au serveur Web Renvoyer la réponse au serveur Web
  • 14. 14 SERVEURS D’APPLICATION SERVEURS D’APPLICATION 3/4 3/4 Les fonctionnalités d’un serveur d’application : Les fonctionnalités d’un serveur d’application : 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 répartition de charges La sécurité La gestion de contexte
  • 15. 15 SERVEURS D’APPLICATION SERVEURS D’APPLICATION 4/4 4/4 L’architecture mise en œuvre dans le cadre L’architecture mise en œuvre dans le cadre des TD : des TD : Système d’exploitation Linux et Windows Système d’exploitation Linux et Windows Serveur d’application Tomcat Serveur d’application Tomcat Programmation J2EE Programmation J2EE
  • 16. 16 RAPPEL SUR J2EE RAPPEL SUR J2EE 1/6 1/6 J2EE s’appuie sur des concepts objet : J2EE s’appuie sur des concepts objet : Classe Classe : type d’objet : type d’objet caractérisé par sa structure de données caractérisé par sa structure de données (attributs) et son comportement (méthodes). (attributs) et son comportement (méthodes). Objet Objet : instance de classe. : instance de classe. Héritage Héritage : : Mécanisme permettant à une classe d’objets de Mécanisme permettant à une classe d’objets de bénéficier de la structure de données et du comportement d’une bénéficier de la structure de données et du comportement d’une classe mère, tout en lui permettant de les affiner et ce, afin de classe mère, tout en lui permettant de les affiner et ce, afin de prendre en compte les spécificités de la classe fille, sans avoir prendre en compte les spécificités de la classe fille, sans avoir cependant à redéfinir ce que les deux classes ont de commun. cependant à redéfinir ce que les deux classes ont de commun. Abstraction Abstraction : : Mécanisme permettant la dissociation entre la Mécanisme permettant la dissociation entre la déclaration d’une classe et son implémentation déclaration d’une classe et son implémentation. . Polymorphisme Polymorphisme : : Mécanisme permettant d’associer à un Mécanisme permettant d’associer à un comportement, une implémentation différente en fonction de comportement, une implémentation différente en fonction de l’objet auquel on se réfère l’objet auquel on se réfère. . Encapsulation Encapsulation : : Mécanisme permettant de dissimuler les détails Mécanisme permettant de dissimuler les détails du fonctionnement interne d’une classe aux autres classes. du fonctionnement interne d’une classe aux autres classes.
  • 17. 17 RAPPEL SUR J2EE RAPPEL SUR J2EE 2/6 2/6 J2EE s’appuie sur le langage Java : J2EE s’appuie sur le langage Java : Java est un Java est un langage orienté objet langage orienté objet dont la syntaxe est dérivé du dont la syntaxe est dérivé du C et dont la conception résulte de l’expérience de divers langages C et dont la conception résulte de l’expérience de divers langages (Smalltalk, Ada, C++ …) (Smalltalk, Ada, C++ …) Java est un langage Java est un langage semi-compilé. semi-compilé. Le code obtenu après Le code obtenu après compilation s’appelle du byte-code et ce code est interprétable par compilation s’appelle du byte-code et ce code est interprétable par une JVM (Java Virtual Machine) une JVM (Java Virtual Machine). . Cependant, Java peut également être complètement Cependant, Java peut également être complètement compilé compilé (transformé en langage machine) si nécessaire. (transformé en langage machine) si nécessaire. Java est Java est portable portable sur toutes les plate-formes puisqu’il existe des sur toutes les plate-formes puisqu’il existe des machines virtuelles pour chacune. (Les navigateurs intègrent des machines virtuelles pour chacune. (Les navigateurs intègrent des machines virtuelles java). machines virtuelles java). Java est un langage conçu, à l’origine, pour être utilisé via un Java est un langage conçu, à l’origine, pour être utilisé via un réseau. réseau.
  • 18. 18 RAPPEL SUR J2EE RAPPEL SUR J2EE 3/6 3/6 J2EE s’appuie sur le langage Java (suite) : J2EE s’appuie sur le langage Java (suite) : Java est un langage intégrant différent mécanisme de Java est un langage intégrant différent mécanisme de sécurité sécurité (il permet (il permet de définir des stratégies de sécurité permettant par exemple d’interdire de définir des stratégies de sécurité permettant par exemple d’interdire l’accès aux ressources locales de la machine). l’accès aux ressources locales de la machine). Java intègre un Java intègre un ramasse-miette automatique ramasse-miette automatique facilitant de ce fait le facilitant de ce fait le codage et diminuant les risques de mauvaise gestion de la mémoire. codage et diminuant les risques de mauvaise gestion de la mémoire. Java est un langage Java est un langage multi-thread multi-thread (il permet la gestion en parallèle de (il permet la gestion en parallèle de plusieurs processus). plusieurs processus). Les produits de développement : Les produits de développement : IBM RAD IBM RAD Borland Jbuilder Borland Jbuilder Oracle JDevelopper Oracle JDevelopper NetBeans (Sun) NetBeans (Sun) Eclipse Eclipse BEA Workshop BEA Workshop
  • 19. 19 RAPPEL SUR J2EE RAPPEL SUR J2EE 4/6 4/6 J2EE est une architecture de composants : J2EE est une architecture de composants : Objectif des composants : Objectif des composants : avoir des briques de bases réutilisables. Définition d’un composant : Définition d’un composant : module logiciel, module logiciel, exporte différents attributs, propriétés et exporte différents attributs, propriétés et méthodes, méthodes, est prévu pour être configuré, est prévu pour être configuré, est prévu pour être installé, est prévu pour être installé, fournit un mécanisme lui permettant de fournit un mécanisme lui permettant de s’auto s’auto-décrire. -décrire. Composant = objet + configurateur + installateur. Composant = objet + configurateur + installateur.
  • 20. 20 RAPPEL SUR J2EE RAPPEL SUR J2EE 5/6 5/6 Les composants de la plate-forme J2EE : Les composants de la plate-forme J2EE : Version 1.5
  • 21. 21 RAPPEL SUR J2EE RAPPEL SUR J2EE 6/6 6/6 En résumé : En résumé : Java 2 Enterprise Edition Java 2 Enterprise Edition est la définition d’un ensemble de est la définition d’un ensemble de standards, relatifs à des services techniques développés en standards, relatifs à des services techniques développés en Java dont l’objectif est de fournir une architecture logicielle Java dont l’objectif est de fournir une architecture logicielle permettant le déploiement d’applications transactionnelles permettant le déploiement d’applications transactionnelles critiques. critiques. C’est aujourd’hui un standard du marché car il offre : C’est aujourd’hui un standard du marché car il offre : une simplification de l’architecture, du développement et de la maintenance un support du transactionnel et de la scalibilité une intégration homogène avec les SI existants une indépendance sur le choix des serveurs, des outils et des composants – nouveau JEE
  • 22. 22 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 1/6 1/6 Le développement d’applications Web repose sur trois Le développement d’applications Web repose sur trois composants J2EE principaux : composants J2EE principaux : Les servlets Les servlets : ce sont des programmes Java : ce sont des programmes Java exécutés sur un serveur (par sa JVM). Ils exécutés sur un serveur (par sa JVM). Ils permettent d’étendre le comportement du serveur permettent d’étendre le comportement du serveur dynamiquement. dynamiquement. Les JSP Les JSP : ce sont des pages HTML incluant du : ce sont des pages HTML incluant du code JAVA (stocké à l’intérieur de balises). code JAVA (stocké à l’intérieur de balises). Les EJB Les EJB : ce sont des : ce sont des entités de traitement entités de traitement s’exécutant dans un environnement adapté s’exécutant dans un environnement adapté (conteneur) (conteneur) et possédant des mécanismes de et possédant des mécanismes de configuration et d’installation. configuration et d’installation.
  • 23. 23 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 2/6 2/6 Mécanisme d’une application Web J2EE : Mécanisme d’une application Web J2EE : 3 - La servlet 3 - La servlet contrôle la validité de contrôle la validité de la requête HTTP. la requête HTTP. 4 - Elle 4 - Elle instancie les instancie les beans de données beans de données pour accéder aux pour accéder aux données. données. 6 - Elle 6 - Elle invoque la invoque la JSP pour générer la JSP pour générer la page HTML qui page HTML qui contient le résultat contient le résultat de la requête de la requête. .
  • 24. 24 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 3/6 3/6 Architecture d’une application J2EE : Architecture d’une application J2EE : Les modules et les applications correspondent Les modules et les applications correspondent physiquement à des fichiers d'archives : archive EJB JAR physiquement à des fichiers d'archives : archive EJB JAR (.jar) pour un module EJB, archive WAR pour un module (.jar) pour un module EJB, archive WAR pour un module web, archive EAR pour une application. web, archive EAR pour une application. • 3 couches : 3 couches : Les composants. Les modules regroupant les composants Les applications regroupant les modules
  • 25. 25 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 4/6 4/6 Module Web (.war). Module Web (.war). Selon la spécification J2EE, une Selon la spécification J2EE, une application Web doit avoir la structure suivante: application Web doit avoir la structure suivante: un répertoire racine public contenant les pages HTML, les pages un répertoire racine public contenant les pages HTML, les pages JSP, les images... JSP, les images... un repertoire un repertoire WEB-INF WEB-INF situé dans le répertoire racine de situé dans le répertoire racine de l'application web. l'application web. un fichier un fichier web.xml web.xml situé à la racine de situé à la racine de WEB-INF WEB-INF : c'est le : c'est le descripteur de déploiement de l'application web. descripteur de déploiement de l'application web. un répertoire un répertoire WEB-INF/classes WEB-INF/classes contenant les classes compilées contenant les classes compilées de l'application (servlets, classes auxiliaires...). de l'application (servlets, classes auxiliaires...). un répertoire un répertoire WEB-INF/lib WEB-INF/lib contenant les fichiers JAR de contenant les fichiers JAR de l'application (drivers JDBC, frameworks empaquetés...). l'application (drivers JDBC, frameworks empaquetés...). Le tout peut être empaqueté dans une archive sous la forme d'un Le tout peut être empaqueté dans une archive sous la forme d'un fichier WAR (réalisé avec l'utilitaire jar du JDK). fichier WAR (réalisé avec l'utilitaire jar du JDK).
  • 26. 26 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 5/6 5/6 Module EJB (.jar). Module EJB (.jar). Selon la spécification J2EE 1.2, Selon la spécification J2EE 1.2, un fichier JAR doit avoir la structure suivante : un fichier JAR doit avoir la structure suivante : un répertoire un répertoire META-INF/ META-INF/ contenant un descripteur de contenant un descripteur de déploiement XML du module EJB, nommé ejb-jar.xml déploiement XML du module EJB, nommé ejb-jar.xml les fichiers .class correspondant aux interfaces locale les fichiers .class correspondant aux interfaces locale (home interface) et distante (remote interface), à la (home interface) et distante (remote interface), à la classe d'implémentation, et aux classes auxiliaires classe d'implémentation, et aux classes auxiliaires (classes d'exception par exemple) des EJBs, situées (classes d'exception par exemple) des EJBs, situées dans leur package. dans leur package. Le tout peut être empaqueté dans une archive sous la Le tout peut être empaqueté dans une archive sous la forme d'un fichier JAR. forme d'un fichier JAR. Nouvelle version JEE 1.5 Nouvelle version JEE 1.5
  • 27. 27 ASSEMBLAGE ET DEPLOIEMENT ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE D’APPLICATIONS J2EE 6/6 6/6 Application d’entreprise (.ear). Application d’entreprise (.ear). Selon les Selon les spécifications J2EE, une application d'entreprise doit spécifications J2EE, une application d'entreprise doit avoir la structure suivante : avoir la structure suivante : un répertoire un répertoire META-INF/ META-INF/ contenant le descripteur de contenant le descripteur de déploiement XML de l'application J2EE nommé déploiement XML de l'application J2EE nommé application.xml. C’est dans ce descripteur que l’on définit les application.xml. C’est dans ce descripteur que l’on définit les modules web et EJB qui constituent l'application modules web et EJB qui constituent l'application d'entreprise. On y précise par exemple sur quelle racine du d'entreprise. On y précise par exemple sur quelle racine du serveur web (placé en frontal devant le serveur serveur web (placé en frontal devant le serveur d'application) doit résider l'application web. d'application) doit résider l'application web. les fichiers archives .JAR et .WAR correspondant aux les fichiers archives .JAR et .WAR correspondant aux modules EJB et aux modules Web de l'application modules EJB et aux modules Web de l'application d'entreprise. d'entreprise. Le tout peut être empaqueté dans une archive sous la forme Le tout peut être empaqueté dans une archive sous la forme d'un fichier EAR. d'un fichier EAR.