Formation_J2EE-partieI.pdf
Transcript of Formation_J2EE-partieI.pdf
-
7/26/2019 Formation_J2EE-partieI.pdf
1/9
Formation J2EE
Partie I
(Prsentation de larchitecture)
Riadh BEN HALIMAEmail:
Ahmed JEMALEmail:
Plan
2
Evolution des langages et des modles dedveloppement
Introduction J2EE Fonctionnement et structure dune applicationJ2EE
Architecture multi-tiers Architecture en trois couches : MVC Composants J2EE Conteneurs Servlet et Java Server Page (JSP)
Evolution des langages et des
modles de dveloppement
3
Evolution des langages et des modles de
dveloppement
4
Annes 70
Structurelle/procdurale
Annes 90
Objet
On parle des dates de gnralisation, et non de lapparition
Composant
Annes 2000
C, Pascal, etc.Java, C++,Smalltalk, etc.
CCM, EJB, etc.
Service Web
Axis, SpringWSetc.
-OMG: CORBA-MS: DCOM-SUN: RMI
Objet distribu
- RPC
Maintenant
Temps
TCP, SoketIIOP, ORPC, J RMP, IDL
Procdure distance
-AOP, etc.
RMI-IIOP, JNDI SOAP, WSDL, UDDI
-
7/26/2019 Formation_J2EE-partieI.pdf
2/9
Introduction J2EE
5
Introduction J2EE (1/3):
Prsentation gnrale Java Enterprise Edition (J2EE) est un ensemble de
spcifications coordonnes et pratiques permettant :
le dveloppement le dploiement
la gestion
des applications multi-tiers rparties.
J2EE est fonde sur la plateformeJava 2 Standard Edition(J2SE), tout en lui ajoutant les fonctionnalits ncessairespour fournir une plateforme : complte stable
scurise
rapide6
Introduction J2EE (2/3):
Services
J2EE fournit un ensemble de services permettant auxcomposants de dialoguer entre eux. Parmi les servicesles plus importants : Servlets Java Server Pages (JSP)
Enterprise JavaBeans (EJB)
Java Transaction API (JTA)
Java Persistence API (JPA)
Java Authorization and Authentication Service (JAAS)
Java Message Service (JMS) Java Naming and Directory Interface (JNDI)
7
Introduction J2EE (3/3):
Bnfices
Fournit une approche oriente composantpourpermettre de raliser une application distribue Lapplication est un assemblage de composants
Fonde sur larchitecture multi-tiers Composants rutilisables
Sparation des proccupations
Composants indpendants des interfaces deprogrammations (APIs) et des constructeurs detechnologies
Grce la notion de conteneurqui offre aux composants unenvironnement dans lequel ils peuvent sexcuter
8
-
7/26/2019 Formation_J2EE-partieI.pdf
3/9
Fonctionnement et structure
dune application J2EE
9
Fonctionnement et structure dune application
J2EE (1/4): Traitement de la requte (1/2)
10
Fonctionnement et structure dune application
J2EE (2/4): Traitement de la requte (2/2)
11
1. Le client envoie une requte HTTP au serveur web2. Le serveur web qui implante la technologie Servlet ou JSP reoit
la requte et la convertit en objet de typeHTTPServletRequest. Cet objet est dlivr au composant
web de lapplication3. Le composant web peut ventuellement interagir avec un
composant EJB (Enterprise JavaBean) qui ralise la partie mtierdu comportement de lapplication
4. Le composant web ou bien le composant EJB peutventuellement interagir avec une base de donnes
5. Le composant web cre une rponse de typeHTTPServletResponse
6. Le serveur web convertit lobjet de typeHTTPServletResponse en une rponse HTTP quil renvoieau client
Fonctionnement et structure dune application
J2EE (3/4): Structure du module web (1/2)
12
La structure dun module web est particulire. Le rpertoireracine du module web constitue la racine de lapplication quiabrite les pages JSP, HTML, les diffrentes classes Java et lesressources de lapplication (images).
Le rpertoire racine contient un sous rpertoire appel WEB-INF qui contient les lments suivants : web.xml :fichier dcrivant comment lapplication doit tre
dploye. tag :rpertoire contenant des fichiers . t agdfinissant des balises
JSP personnalises. classes :rpertoire contenant les classes situes sur le serveur
(servlets, classes utilitaires, JavaBeans).
lib :rpertoire contenant les fichier JAR requis par les classes duserveur.
-
7/26/2019 Formation_J2EE-partieI.pdf
4/9
Fonctionnement et structure dune application
J2EE (4/4): Structure du module web (2/2)
13
Architecture multi-tiers
14
Architecture multi-tiers (1/2)
Lapplications est divise en composants, selon lafonctionnalit et la localit
Ces composants sont installs sur diffrentes machines,
appeles tiers Les tiers :
Le tier client : composants sexcutant sur le client
Le tier web : composants sexcutant sur le serveur
Le tier business : composants sexcutant sur le serveur
Le tier EIS (Enterprise Information System) : composantssexcutant sur un autre serveur (bases de donnes)
Il ny a pas ncessairement 4 tiers dans une application
15
Architecture multi-tiers (2/2)
16
Application ClientPages Web
Dynamiques
Pages JSPou Servlet
EnterpriseBeans
EnterpriseBeans
Base de
donnes
Base de
donnes
TierClient
TierWeb
TierBusiness
TierEIS
MachineClient
MachineServeurJ2EE
MachineServeur
BD
Application 1 Application 2
-
7/26/2019 Formation_J2EE-partieI.pdf
5/9
Architecture en trois
couches (MVC)
17
Architecture en trois couches (MVC) Model-View-Controller (MVC) : modle architectural de
dveloppement logiciel (Design pattern)
Permet disoler la logique mtier (contrleur) de laprsentation (Vue) et des donnes manipules (Modle)
Trs rpandue car il permet de simplifier la distributionde fonctionnalits au sein dune application rpartiecomplexe
Trs populaire dans le domaine des applications web
Favorise la rutilisation des modles, composants et code
Deux versions: MVC1 et MVC2
Plusieurs implmentations sont disponibles: Struts, Spring-MVC, etc.
18
MVC : Architecture et interactions
19
ModleEncapsule ltat de lapplicationRpond des requtes sur lesdonnesExpose les fonctionnalits de
lapplicationNotifie Vue des changements
VueRendu du modleEnvoie des requtes de mise jour Modle
Envoie les actions delutilisateur au ContrleurPermet au Contrleur deslectionner des vues
ContrleurDfinit le comportement delapplicationCorrespondance entre les
actions de lutilisateur et lesmises jours du modleSlection des vues : une parfonctionnalit
Requtesurltat
Notification
dechangemen
t
Changement
Dtat
Slection des vues
Actions de lutilisateur
MVC : Modle
Reprsente les donnes mtierset fournit un ensembledoprations et de rgles qui pilotent laccs et lamodification de ces donnes
Constitue souvent une approximation dune grandeur dumonde rel (salaire, poids, temprature)
Notifie la partie vue quand des changements sur lesdonnes surviennent et lui permet denvoyer desrequtes pour interroger ltat du modle.
Permet au contrleur daccder aux fonctionnalits delapplications encapsules par le modle
20
-
7/26/2019 Formation_J2EE-partieI.pdf
6/9
MVC : Vue
Ralise le rendu de la partie modle : reoit les donnes partir du modle et spcifie comment elles devraient tre
reprsentes. Met jour la reprsentation des donnes quand celles-ci sont
changes dans le modle. Deux mthodes de mise jour : Push :Vue senregistre auprs de modle et est notifi chaque
fois quil y a un changement
Pull : Vue est responsable dinterroger modle avec desrequtes pour connatre les valeurs les plus rcentes des donnes
Transfre les actions de lutilisateur vers la partie Contrleuret permet celui-ci de slectionner les vues adquates pourlutilisateur
21
MVC : Contrleur
Dfinit le comportement mtierde lapplication Aiguille les requtes de lutilisateur et slectionne les vues en
se basant sur les actions entre lutilisateur et les rsultats destraitements sur les donnes
Traduit les interactions de lutilisateur avec la partie Vue enactions devant tre effectues sur le modle : Dans une application Web, les entres sont des requtes HTTP (GET
ou Post) Dans une application Autonome (GUI Java) les entres sont, par
exemple, des choix de menus, des clicks sur des boutons Les actions effectues par le contrleur sur le modle peuvent
inclure : Activer un processus mtier Changer ltat du modle Mettre jour les donnes
22
Illustration du modle MVC
23
contrleur
modle
vues
Couche
prsentationCouche mtier Couche donnes
1
5
43
2
MVC1
24
L'inconvnient : une multiplication du nombre de servlets ncessaire l'application :
L'implmentation de plusieurs servlets ncessite beaucoup de code produire
d'autant que chaque servlet doit tre dclare dans le fichier web.xml.
-
7/26/2019 Formation_J2EE-partieI.pdf
7/9
MVC2
Une volution du modle 1: une unique servlet fait off ice de contrleur
Le contrleur est divis en deux parties:
Un point d'entre unique toute l'applicatio n qui or iente les requtes vers
Les traitements applicatifs invoquer dynamiquement
25
Composants J2EE
26
Composants J2EE:
Dfinition et motivations (1/2)
Les applications distribues J2EE sont constitues parlassemblages de plusieurs composants.
Un composant est une unit logicielle autonome (self-contained).
Un composant contient un ensemble de classes Java etdautres fichiers de support lui permettant de communiqueravec les autres composants.
Les composants sont crits en Java et compils dune maniresimilaire aux programmes Java classiques, avec troisdiffrences : Les composants J2EE sont assembls pour former lapplication J2EE Il existe une phase de vrification pour garantir que les composants
sont conformes la spcification J2EE
Les composants sont dploys dans un environnement deproduction
27
Composants J2EE:
Dfinition et motivations (2/2)
Il existe trois familles de composants : Les clients et les applets sont des composants qui sexcutent
sur les clients dune application J2EE
Les Servlets, les Java Server Pages (JSP) et les Java Server Faces(JSF) sont des composants web qui sexcutent sur le serveur
Les Enterprise JavaBeans (EJB) sont des composants mtierquisexcutent sur le serveur
Motivations : Favoriser la rutilisation de code
Permettre la sparation des proccupations
Permettre le dveloppement en quipe
28
-
7/26/2019 Formation_J2EE-partieI.pdf
8/9
-
7/26/2019 Formation_J2EE-partieI.pdf
9/9
Bibliographie
[1]Java 2 Platform Enterprise Edition Specification, v1.4http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf
[2]The Java EE 5 Tutorialhttp://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf
[3]Faq J2EEhttp://java.developpez.com/faq/javaee/
[4]MVC
http://java.sun.com/blueprints/patterns/MVC-detailed.html
[5]Java Persistence API, Linda DeMichiel et Michael Keith
33