Vous êtes sur la page 1sur 9

Plan

Formation J2EE
Partie I
(Prsentation de larchitecture)

Ahmed JEMAL
Email :
jmlhmd@gmail.com

Riadh BEN HALIMA


Email :
riadh.benhalima@enis.rnu.tn

Evolution des langages et des modles de


dveloppement
Introduction J2EE
Fonctionnement et structure dune application
J2EE
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
On parle des dates de gnralisation, et non de lapparition

Java, C++,
Smalltalk, etc.

C, Pascal, etc.

Evolution des langages et des


modles de dveloppement

Structurelle/
procdurale

Objet
Procdure distance

Annes 70

RMI-IIOP, JNDI

SOAP, WSDL, UDDI

CCM, EJB, etc.

Axis, SpringWS
etc.

Composant

Service Web
Temps

Objet distribu

Annes 90

Annes 2000

Maintenant

TCP, Soket
IIOP, ORPC, JRMP, IDL

- RPC

-AOP, etc.
-OMG: CORBA
-MS: DCOM
-SUN: RMI

Introduction J2EE (1/3):


Prsentation gnrale

Java Enterprise Edition (J2EE) est un ensemble de


spcifications coordonnes et pratiques permettant :

Introduction J2EE

des applications multi-tiers rparties.


J2EE est fonde sur la plateforme Java 2 Standard Edition
(J2SE), tout en lui ajoutant les fonctionnalits ncessaires
pour fournir une plateforme :

Introduction J2EE (2/3):


Services
J2EE fournit un ensemble de services permettant aux
composants de dialoguer entre eux. Parmi les services
les 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)

le dveloppement
le dploiement
la gestion

complte
stable
scurise
rapide

Introduction J2EE (3/3):


Bnfices
Fournit une approche oriente composant pour
permettre 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 de


programmations (APIs) et des constructeurs de
technologies

Grce la notion de conteneur qui offre aux composants un


environnement dans lequel ils peuvent sexcuter

Fonctionnement et structure dune application


J2EE (1/4): Traitement de la requte (1/2)

Fonctionnement et structure
dune application J2EE

10

Fonctionnement et structure dune application


J2EE (2/4): Traitement de la requte (2/2)
1.
2.

3.

4.
5.
6.

Le client envoie une requte HTTP au serveur web


Le serveur web qui implante la technologie Servlet ou JSP reoit
la requte et la convertit en objet de type
HTTPServletRequest. Cet objet est dlivr au composant
web de lapplication
Le composant web peut ventuellement interagir avec un
composant EJB (Enterprise JavaBean) qui ralise la partie mtier
du comportement de lapplication
Le composant web ou bien le composant EJB peut
ventuellement interagir avec une base de donnes
Le composant web cre une rponse de type
HTTPServletResponse
Le serveur web convertit lobjet de type
HTTPServletResponse en une rponse HTTP quil renvoie
au client
11

Fonctionnement et structure dune application


J2EE (3/4): Structure du module web (1/2)

La structure dun module web est particulire. Le rpertoire


racine du module web constitue la racine de lapplication qui
abrite les pages JSP, HTML, les diffrentes classes Java et les
ressources de lapplication (images).
Le rpertoire racine contient un sous rpertoire appel WEBINF qui contient les lments suivants :

12

web.xml : fichier dcrivant comment lapplication doit tre


dploye.
tag : rpertoire contenant des fichiers .tag dfinissant 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 du
serveur.

Fonctionnement et structure dune application


J2EE (4/4): Structure du module web (2/2)

Architecture multi-tiers

13

14

Architecture multi-tiers (1/2)

Lapplications est divise en composants, selon la


fonctionnalit et la localit
Ces composants sont installs sur diffrentes machines,
appeles tiers
Les tiers :

Architecture multi-tiers (2/2)


Application 1

Application Client

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) : composants
sexcutant sur un autre serveur (bases de donnes)

Enterprise
Beans

Application 2
Pages Web
Dynamiques

Tier
Client

Pages JSP
ou Servlet

Tier
Web

Enterprise
Beans

Tier
Business

Base de
donnes

Tier
EIS

Il ny a pas ncessairement 4 tiers dans une application


Base de
donnes

15

16

Machine
Client

Machine
Serveur
J2EE

Machine
Serveur
BD

Architecture en trois couches (MVC)

Architecture en trois
couches (MVC)

17

18

MVC : Modle

MVC : Architecture et interactions

Vue
Rendu du modle
Envoie des requtes de mise
jour Modle
Envoie les actions de
lutilisateur au Contrleur
Permet au Contrleur de
slectionner des vues

Encapsule ltat de lapplication


Rpond des requtes sur les
donnes
Expose les fonctionnalits de
lapplication
Notifie Vue des changements

Slection des vues

Actions de lutilisateur

Changement
Dtat

Notification
de changement

Requte sur ltat

Modle

19

Model-View-Controller (MVC) : modle architectural de


dveloppement logiciel (Design pattern)
Permet disoler la logique mtier (contrleur) de la
prsentation (Vue) et des donnes manipules (Modle)
Trs rpandue car il permet de simplifier la distribution
de fonctionnalits au sein dune application rpartie
complexe
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, SpringMVC, etc.

Contrleur
Dfinit le comportement de
lapplication
Correspondance entre les
actions de lutilisateur et les
mises jours du modle
Slection des vues : une par
fonctionnalit

Reprsente les donnes mtiers et fournit un ensemble


doprations et de rgles qui pilotent laccs et la
modification de ces donnes
Constitue souvent une approximation dune grandeur du
monde rel (salaire, poids, temprature)
Notifie la partie vue quand des changements sur les
donnes surviennent et lui permet denvoyer des
requtes pour interroger ltat du modle.
Permet au contrleur daccder aux fonctionnalits de
lapplications encapsules par le modle

20

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 :

MVC : Contrleur

Push : Vue senregistre auprs de modle et est notifi chaque


fois quil y a un changement
Pull : Vue est responsable dinterroger modle avec des
requtes pour connatre les valeurs les plus rcentes des donnes

Transfre les actions de lutilisateur vers la partie Contrleur


et permet celui-ci de slectionner les vues adquates pour
lutilisateur
21

Dfinit le comportement mtier de lapplication


Aiguille les requtes de lutilisateur et slectionne les vues en
se basant sur les actions entre lutilisateur et les rsultats des
traitements sur les donnes
Traduit les interactions de lutilisateur avec la partie Vue en
actions 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


Couche
prsentation

Couche donnes

contrleur

4
5

Couche mtier

MVC1

modle

vues

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.
23

24

MVC2

Composants J2EE

Une volution du modle 1: une unique servlet fait office de contrleur

Le contrleur est divis en deux parties:

Un point d'entre unique toute l'application qui oriente les requtes vers

Les traitements applicatifs invoquer dynamiquement

25

26

Composants J2EE:
Dfinition et motivations (1/2)

Les applications distribues J2EE sont constitues par


lassemblages de plusieurs composants.
Un composant est une unit logicielle autonome (selfcontained).
Un composant contient un ensemble de classes Java et
dautres fichiers de support lui permettant de communiquer
avec les autres composants.
Les composants sont crits en Java et compils dune manire
similaire aux programmes Java classiques, avec trois
diffrences :

27

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 de
production

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 mtier qui
sexcutent sur le serveur

Motivations :

28

Favoriser la rutilisation de code


Permettre la sparation des proccupations
Permettre le dveloppement en quipe

Composants J2EE :
Clients (1/2)

Un client J2EE peut tre un client web (avec applet ou pas) ou une
application cliente autonome
Clients web

Composants J2EE :
Clients (2/2)

Applications clientes autonomes

Form de deux parties : (1) un ensemble de pages web dynamiques


(HTML, XML) gnres par des composants web sexcutant sur le
tier-web et (2) un navigateur qui effectue le rendu (affichage et
organisation) de ces pages
Souvent appel client lger car il neffectue pas les oprations
complexes (interrogation de bases de donnes) lui mme. Ces
oprations sont souvent dlgues la partie mtier du serveur (EJB)
pour plus de performance et de scurit

Applets

Une page reue de la part du tier-web peut contenir un applet.


Un applet est une application Java de petite taille qui sexcute dans une
machine virtuelle attache au navigateur web
Un applet peut se connecter lui mme aux bases de donnes (client
lourd) ou dlguer les connexions la partie serveur (client lger)

29

Une application cliente est une application classique qui


sexcute sur le client
Fournit une alternative plus riche que les interfaces web
(gnralement des interfaces graphiques). Mais les
applications en mode ligne de commande existent aussi
Accde directement aux composants EJB qui sexcutent sur le
tier-mtier Mais peut aussi tablir des connexions HTTP
avec dautres composants web (servlets)
crite gnralement en Java Mais peut ltre dans dautres
langage de programmation pour permettre la plateforme
J2EE dinteragir avec des composants non-Java

30

Composants J2EE :
Composants Web

Composants J2EE :
Enterprise JavaBeans

Les composants web sont soient des servlets ou des JSP


Les servlets sont des classes Java qui sexcutent sur le tierweb de lapplication. Il traitent des requtes envoyes par le
client et mettent des rponses.
Les JSP sont des documents texte qui sexcutent sur le tierweb. Il sont similaires aux servlets avec deux diffrences :

Sont compils avant de traiter les requtes


Favorisent une approche plus naturelle pour la cration dun contenu
web statique/dynamique

Les classes situes sur le serveur et qui peuvent tre utilises


par les servlets et les JSP peuvent tre emballes avec les
composants web mais elles ne font pas partie de ces
composants
31

Les EJB sont des composants mtier, effectuant le


comportement de lapplication (banque, vente, finance)
Les EJB sexcutent sur le serveur et jouent un rle
intermdiaire entre les clients et le tier EIS (Enterprise
Information System)
Un EJB reoit des donnes de la part du client, les traite
(si ncessaire), les envoie au tier EIS pour les stocker. Il
permet aussi de retrouver des donnes de la part du tier
EIS, de les traiter (si ncessaire) et de les renvoyer vers
les clients.

32

Bibliographie

[1] Java 2 Platform Enterprise Edition Specification, v1.4


http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf

[2] The Java EE 5 Tutorial

http://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf

[3] Faq J2EE


http://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