Sie sind auf Seite 1von 61

POLYTECHNIQUE INTERNATIONALE

La plate-forme Java EE (J2EE)

Anne 2016-2017

1
Programmation par composants

Limites de la programmation usuelle


plus adapte la programmation de petits projets (programming in the small)
tout est la charge du programmeur:
la liaison entre les diffrentes couches de lapplication (prsentation, application, donnes),
construction des objets utilises sur les couches,
la structure de lapplication est peu visible et particulire chaque application (
pas de gnricit)
lvolution de lapplication est difficile: ajout de fonctionnalits, modification des
conditions dinstallation, changement de la BD
le dveloppement, la gnration des excutables et leur dploiement ne sont pas
standardiss

2
Programmation par composants

Programmation par composition (ou constructive)

Elle est motive par la rutilisation des logiciels dj existants et propose de crer
des applications rparties par assemblage de composants logiciels existants.

Cest le concept du programming in the large o lon dfinit des composants


gnriques qui sont ensuite rutilisables dans plusieurs applications.

3
Architectures de programmation

Architecture simple tiers (monolithique, un seul poste)


Architecture 2 tiers ou client-serveur
Architecture 3 tiers
Architectures n-tiers (multiplication du nombre de couches
fonctionnelles de plus en plus fines)
On impose pas que toutes les couches dune application
fonctionnent sur des machines diffrentes
Sparation logique fonctionnelle OU sparation physique des
couches ?

4
Architecture simple tiers

Les applications bureautiques sont conues pour fonctionner sur un ordinateur


unique. Toutes les services fournis par l'application - interface utilisateur,
persistance des donnes (sauvegarde dans des fichiers propritaires) et
logique de traitement de ces donnes - rsident sur la mme machine et
sont inclus dans l'application. Cette architecture monolithique est appele
simple tiers car toutes les fonctionnalits sont comprises dans une seule
couche logicielle.

5
Architecture client-serveur
Les applications plus complexes peuvent tirer parti d'une base de
donnes et accder aux informations qu'elle contient en envoyant des
commandes SQL un serveur pour lire et crire les donnes. Dans ce
cas, la base de donnes fonctionne dans un processus indpendant de
celui de l'application, et parfois sur une machine diffrente. Les
composants permettant l'accs aux donnes sont spars du reste de
l'application.

6
Architecture client-serveur
La raison de cette approche est de centraliser les donnes afin de
permettre plusieurs utilisateurs d'y accder simultanment. Les
donnes peuvent ainsi tre partages entre plusieurs utilisateurs de
l'application. Cette architecture est appele client-serveur, qui dans
notre approche peut tre reprsente en deux tiers.

7
Architecture client-serveur

Un des inconvnient de l'architecture deux-tiers est que la logique


charge de la manipulation des donnes et de l'application des rgles
mtiers affrentes est incluse dans l'application elle-mme. Cela pose
problme lorsque plusieurs applications doivent partager l'accs
une base de donnes. Il peut y avoir, par exemple, une rgle
exprimant qu'un client affichant un retard de paiement de plus de 45
jours verra son compte suspendu. Il n'est pas compliqu
d'implmenter cette rgle dans chaque application accdant aux
donnes client. Toutefois, si la rgle change et qu'un dlai d'un mois
est appliqu, il faudra mettre jour toutes les applications.

8
Architecture trois-tiers
Pour viter cette confusion, la solution consiste sparer
physiquement les rgles mtier en les plaant sur un serveur o
elles n'auront tre remise jour qu'une seule fois, et non autant
de fois qu'il y a d'applications qui y accde. Cette solution ajoute
un troisime tiers l'architecture client-serveur.

9
Architecture trois-tiers
Selon ce modle, toute la logique mtier est extraite de l'application
cliente. Celle-ci n'est plus responsable que de la prsentation de
l'interface l'utilisateur et de la communication avec le tiers mdian.
Elle n'est plus responsable de l'application des rgles. Son rle est
rduit la couche prsentation.

10
Architectures distribues

Les applications architectures distribues sont des


applications dont les fonctions sont rparties entre
plusieurs systmes. On les appelle aussi architectures
multi-tiers (ou multi-couches)

Chaque systme contient une partie de lapplication, les


parties manquantes sont excutes sur les autres systmes
participants lapplication et les informations sont
changes par le rseau

11
Architectures distribues

Une application est compose de 3 couches


fondamentales:
Couche de prsentation
interface utilisateur...
Prsenter les donnes lutilisateur
Couche Applicative / Logique mtier :
validation et traitement des donnes
modlisation des processus mtiers (rgles mtier)
Couche daccs de donnes / Persistance

12
Architecture 3 tiers sur le web

Trs dveloppe de nos jours


Avec gnralement un fonctionnement au dessus du Web
Couche prsentation
Navigateur web sur machine cliente
Client lger
Affichage de contenu HTML
Couche applicative / mtier
Serveur d'applications
Serveur HTTP excutant des composants / lments logiciels qui gnrent dynamiquement du
contenu HTML
Via des requtes des BDD distantes
Couche persistance
Serveur(s) de BDD de donnes

13
Architecture multi-tiers (n tiers)
Gnralement, une application d'entreprise est compose de trois couches
fondamentales :
La premire a pour rle d'afficher les donnes pour l'utilisateur et de collecter les
informations qu'il saisit. Cette interface est souvent appele couche de prsentation
car sa fonction consiste prsenter les donnes l'utilisateur et lui permettre de
fournir des informations au systme. La couche prsentation est la partie de
l'application responsable de la cration et du contrle de l'interface prsente
l'utilisateur et de la validation de ses actions.
Sous cette couche de prsentation, on trouve la logique mtier qui permet l'application
de fonctionner et de traiter les donnes. Dans une application de paye, par exemple,
la logique mtier multiplie les heures travailles par le salaire horaire pour dterminer
combien chaque employ doit toucher. La logique mtier est mise en uvre partir
des rgles mtier. Cette partie de l'application constitue l'essentiel du tiers mdian.
Toutes les applications d'entreprise ont besoin d'crire et de lire des donnes. Cette
fonctionnalit est assure par la couche d'accs de donnes, galement appele
couche de persistance, qui assure la lecture, l'criture partir des diffrentes sources.
14
Architecture multi-tiers (n tiers)

Rajoute des tages / couches en plus


La couche applicative n'est pas monolithique
Peut s'appuyer et interagir avec d'autres services
Composition horizontale
Service mtier utilise d'autres services mtiers
Composition verticale
Les services mtiers peuvent aussi s'appuyer sur des services techniques :
Scurit, Transaction, etc

Chaque service correspond une couche, d'o le terme de N-tiers

15
Architecture multi-tiers (n tiers)

Intrts d'avoir plusieurs services / couches (3 ou plus)


Rutilisation de services existants
Dcouplage des aspects mtiers et technique et des services entre eux : meilleure modularit
Facilite volution : nouvelle version de service
Facilite passage l'chelle : volution de certains services
On recherche en gnral un couplage faible entre les services
Permet de faire voluer les services un par un sans modification du reste de l'application

Inconvnients
En gnral, les divers services s'appuient sur des technologies trs varies : ncessite de
grer l'htrognit et l'interoprabilit
Utilisation de framework / outils supplmentaires
Les services tant plus dcoups et distribus, pose plus de problmes lis la distribution

16
Introduction J2EE
1998 : La plateforme J2EE (Java 2 Entreprise Edition) est ne de
besoins grandissant des entreprises pour dvelopper des
applications complexes distribues et ouvertes sur l Internet, le
mobile, etc.
Dfinie par Sun MicroSystems, base sur Java
Site officiel (anciennement java.sun.com )
http://www.oracle.com/technetwork/java/index.html
J2EE est le terme utilis dans les versions avant 2005 (JDK 1.4 ou
antrieur)
J2SE (Java 2 Standard Edition) fournit le langage et la plateforme java sur
lesquels est bti J2EE
J2ME (Java 2 Micro Edition) pour les terminaux mobiles

17
Introduction J2EE

Depuis la sortie de la version 5 (en 2005, JDK 1.5), Le terme J2EE a t


remplac par Java EE
Actuellement (en 2013) Java EE 7
Autres ditons :
Java SE 7 (Standard Edition)
Java ME 3.0 (Micro Edition)
Java FX 1.3 plateforme pour la cration dapplication RIA (Rich
Internet Application) bas sur le langage Java FX Script

18
Java EE Evolution

19
Que veut dire J2EE ?

J2EE reprsente essentiellement des applications d'entreprise.


Cela inclut le stockage scuris des informations, ainsi que leur
manipulation et leur traitement : factures clients, calculs
d'amortissement, rservation de vols, etc.
Ces applications peuvent avoir des interfaces utilisateurs
multiples, par exemple une interface Web pour les clients,
accessible sur Internet et une interface graphique
fonctionnant sur les ordinateurs de l'entreprise sur le rseau
priv de celle-ci.

20
Que veut dire J2EE ?

21
Que veut dire J2EE ?

Elles doivent grer les communications entre systmes distants,


s'occuper automatiquement des diffrents protocoles de
communication, synchroniser les sources avec ventuellement
des technologies diffrentes, et s'assurer que le systme
respecte en permanences les rgles de l'activit de
l'entreprise, appels rgles "mtier". Pour finir, ces
applications s'occupe galement automatiquement de la base
de donnes sans que le dveloppeur est intervenir.

22
Quest ce que le Java EE (ou J2EE)

La Plateforme JEE dsigne les technologies Java utilises pour le


dveloppement d'applications dentreprise distribues
(Rpartie, multi-couches, n-tiers)
JEE est une plate-forme fortement oriente serveur. Elle est
compose de deux parties essentielles :
1. un ensemble de spcifications pour une infrastructure dans laquelle
s'excutent les composants crits en Java : un tel environnement se
nomme serveur d'application.
2. un ensemble d'API qui peuvent tre obtenu et utilis sparment.

23
Quest ce que le Java EE (ou J2EE)
Pour de nombreux dveloppeurs, J2EE est souvent synonyme de Entreprise
JavaBeans. En fait, J2EE est beaucoup plus que cela. En simplifiant, nous
pouvons dire que J2EE est une collection de composants, de conteneurs et
de services permettant de crer et de dployer des applications distribues
au sein d'une architecture standardise.
J2EE est logiquement destin aux gros systmes d'entreprise. Les logiciels
employs ce niveau ne fonctionne pas sur un simple PC mais require
une puissance beaucoup plus importante. Pour cette raison, les
applications doivent tre constitues de plusieurs composants pouvant tre
dploys sur des plate-formes multiples afin de disposer de la puissance de
calcul ncessaire.
J2EE fournit un ensemble de composants standardiss facilitant le
dploiement des applications, des interfaces dfinissant la faon dont les
modules logiciels peuvent tre interconnects, et les services standards,
avec leur protocole associ, grce auxquels ces modules peuvent
communiquer.
24
Pourquoi choisir Java EE ?

Il existe actuellement beaucoup dautres plates-formes de dveloppement qui


sont bases sur dautres langages (C#,PHP5, .NET...). Les principaux avantages
dutiliser Java EE (et donc Java) sont la portabilit, lindpendance, la
scurit et la multitude de librairies proposes.
Le dveloppement dapplications dentreprise ncessite la mise en uvre dune
infrastructure importante. Beaucoup de fonctionnalits sont utilises et
dveloppes, le but tant de produire des applications sres, robustes et faciles
maintenir. Certains services sont dailleurs rcurrents comme : laccs aux
bases de donnes, lenvoi de mails, les transactions, la gestion de fichiers, la
gestion dimages, le tlchargement, le chargement ou upload, la supervision du
systme...
Cest pour cela que larchitecture Java EE est intressante car tous les lments
fondamentaux sont dj en place. Pas besoin de concevoir une architecture , des
librairies et des outils spcialement adapts. Cela ncessiterait un temps et un
investissement considrables.

25
Pourquoi choisir Java EE ?

Enfin, la plateforme Java EE est base sur des spcifications, ce qui signifie que
les projets sont portables sur nimporte quel serveur dapplications conforme
(Tomcat, JBoss, WebSphere...) ces spcifications. Cette implmentation est
gratuite et permet de bnficier de la totalit de lAPI sans investissement. La
plateforme Java EE est la plus riche des platesformes Java et offre un
environnement standard de dveloppement et dexcution dapplications
dentreprise multi-tiers.

Le fait que Java EE soit standardis a contribu son adoption par de trs
nombreux diteurs de logiciels/outils informatique. Ces diteurs associs Sun
Microsystems font partie du JCP (Java Community Process). Le Java
Community Process regroupe les entreprises suivantes : Sun, IBM, Oracle,
Borland, Nokia, Sony, la fondation Apache, ObjectWeb... Lobjectif du JCP est
de dfinir les spcifications des technologies bases sur Java. Chaque demande
de modification est appele une JSR (Java Specification Request).

26
Java EE 7 - JSRs

JAX-RS
JSP 2.2 JSF 2.2 2.0
EL 3.0 Concurrency Utilities Updated
(JSR 236)
Portable
Major
Extensions Release

Servlet 3.1 New


Batch Applications
(JSR 352)

Common Interceptors
CDI 1.1
Annotations 1.1 1.1
Java API for JSON
(JSR 353)
Managed Beans 1.0 EJB 3.2

Connector Java API for WebSocket


JPA 2.1 JTA 1.2 JMS 2.0 (JSR 356)
1.6

27
Java EE - Architecture

Browser WEB Container

http Servlets
JSPs
html

Applets rmi DB
rmi
EJBs

rmi
public
EIS
static void
main() { EJB Container

Java Application Java EE Application Server


28
Architecture en Java EE

JEE permet une grande flexibilit dans le choix de l'architecture de


l'application en combinant les diffrents composants.
L'architecture d'une application se dcoupe idalement en au
moins trois tiers :
La partie cliente : permet le dialogue avec l'utilisateur. Elle peut
tre compose :
d'une application stand-alone
d'une application web
d'applets
La partie mtier : encapsule les traitements (dans des EJB ou des
JavaBeans)
La partie donnes : stocke les donnes

29
Architecture en Java EE
Larchitecture JEE est une architecture dapplication distribue base de
composants. Ces composants sont mis en uvre par lintermdiaire des
conteneurs

Tiers Interface Tiers Tiers Mtier Tiers


Services Web Donnes

Navigateur Serveur
Serveur Web dapplication
Conteneur
Applet Conteneur Conteneur
Internet Web EJB
Serveur de
Composant Client bases de
Composant Web Composant
Applet/ Mtier
donnes
Servlet/JSP
Html/wml Bean

Exemple Composants dune application Web J2EE


30
Architecture en Java EE

31
Concepts et spcificits de J2EE
Ct client

Un client J2EE peut tre une application console (texte


seulement) crite en Java, ou une application dote d'une
interface graphique dveloppe en Swing. Ce type de client
est appel client lourd, en raison de la quantit importante de
code qu'il met en uvre.
Un client J2EE peut galement tre conu pour tre utilis
partir du Web. Ce type de client fonctionne l'intrieur d'un
navigateur Web. La plus grande partie du travail est reporte
sur le serveur et le client ne comporte que trs peu de code.
Pour cette raison, on parle de client lger. Un client lger peut
tre une simple interface HTML, une page contenant des
scripts JavaScript, ou encore une applet Java si une interface
un peu plus riche est ncessaire.
32
Concepts et spcificits de J2EE
Ct client

33
Clients JEE

La plateforme JEE prvoit que plusieurs types de clients puissent accder


une mme application et interagir avec les mmes composants ct serveur:
JEE peut supporter de nombreux types de clients: Web, WAP, stations
de travails, tlphones portables,

34
Clients JEE

Client web (lger)


Client web RIA (Rich Internet Application) : Applets, Java Web Start,
AJAX, Google Web Toolkit, Flex, JavaFX (autres version JavaFx pour
mobile et pour TV)
Client lourd : des applications clientes s'excutent dans leur propre
conteneur client. Les applications clientes ont des interfaces utilisateurs
qui peuvent directement interagir avec le tier EJB en utilisant RMI-IIOP
(Remote Methode Invocation over Internet Inter-Orb Protocol) ou
encore application C++ utilisant CORBA.
Clients sans fil (J2ME pour les dispositifs sans fil). WAP (Wireless
Application Protocol) , wml (Wireless Markup Language)

35
Concepts et spcificits de J2EE
Ct serveur

Les composants dploys sur le serveur peuvent tre classs


en deux groupes. Les composants Web sont raliss
l'aide de servlets ou de JavaServer Pages (JSP). Les
composants mtiers, dans le contexte J2EE, sont des
Entreprise JavaBeans (EJB).

36
Serveurs d'applications

Tout comme les bibliothques d'interfaces graphiques comme


Swing fournissent les services ncessaires au dveloppement
d'application graphiques, les serveurs d'applications mettent
disposition les fonctionnalits permettant de raliser des
applications d'entreprise : communication entre ordinateurs, mis
en place de protocole adapts, gestion des connexions avec une
base de donnes, prsentation de pages Web, gestion des
transactions, etc.
J2EE propose justement un ensemble de bibliothques avec des
objets de trs haut niveau pour mettre en uvre facilement ses
serveurs d'applications.

37
Serveur dapplication
Les serveurs d'applications peuvent fournir :
Un conteneur web uniquement (exemple : Tomcat) ou
Un conteneur d'EJB uniquement (exemple : JBoss, Jonas, ...) ou
Les deux conteneurs (exemple : Websphere, Weblogic, ...).

Les services proposs par la plate-forme JEE


Une plate-forme d'excution JEE complte, implmente dans un serveur
d'application, propose les services suivants :
service de nommage (naming service)
service de dploiement (deployment service)
service de gestion des transactions (transaction service)
service de scurit (security service)
Ces services sont utiliss directement ou indirectement par les conteneurs mais aussi
par les composants qui s'excutent dans les conteneurs grce leurs API respectives.

38
Les serveurs d'application
Le serveur d'application va fournir les services
systmes gnriques :
La scurit
La reprise sur panne
Les services transactionnel entre composants
La gestion des utilisateurs Les serveurs Web Java EE
L'accs aux sources de donnes
Les serveurs Web Java EE permettent d'excuter
Des serveurs d'application Java EE les servlets, JSP, etc.
Ils sont souvent inclus dans les serveurs
d'application. Exemple de serveur Web Java EE :
Des serveurs commerciaux (payants) : Apache Tomcat
BEA WebLogic
IBM WebSphere
Sun Java System App. Server
Oracle Application Server 10g
SAP Netweaver, ...
Des serveurs Open Source (gratuits) :
JBoss
Object Web (OW2) JOnAS
Apache Geronimo 2.0, GlassFish, etc. 39
Les APIs de Java EE

Une API (Application Programming Interface ) est une interface de


programmation. Cest un ensemble de fonctions, procdures ou classes
mises disposition des programmes informatiques par une bibliothque
logicielle, un systme dexploitation ou un service.
Les composants : permet un dcoupage de l'application et donc une
sparation des rles lors du dveloppement :
Les composants web : Servlet et JSP(Java Server Pages).
Les composants mtier : EJB (Enterprise Java Beans).
Les services :
Les services d'infrastructures : JDBC, JNDI, JTA, JCA, JMX
Les services de communication : RMI-IIOP, JavaMail, JAAS

40
Composants
Un composant est un module logiciel autonome, configurable et installable sur plusieurs
plates-formes.
Un composant:
exporte des attributs, proprits et mthodes,
peut tre configurable
Les composants sont les briques de bases configurables dune application par composition.

Les composants J2EE


Un composant est une unit logicielle de niveau applicatif.
JEE supporte les types de composants suivants :
applets,
application clientes,
JavaBeans
composants Enterprise JavaBeans (EJB),
composants Web,
composants adaptateurs de ressource
etc 41
Construction dapplication par assemblage de composants

La cration dune application par assemblage de composants se distingue


de lingnierie de dveloppement classique car elle permet de:
rduire les besoins en comptences techniques
focaliser lexpertise sur les problmes du domaine (logique mtier)
Rduire les cots de dveloppement et de maintenance

42
Les composants J2EE
JPA
La persistance des objets en Java a longtemps donn lieu des manipulations fastidieuses.
Aujourd'hui, la Java Persistence API apporte une solution performante et simple utiliser.
S'appuyant sur JDBC (Java DataBase Connectivity), JPA propose une abstraction suffisante pour
que le dveloppeur n'ait, dans la majorit des cas, pas se proccuper du fonctionnement de
JDBC.
Servlets
Les Servlets forment l'un des composants JEE les plus utiliss. Elles permettent de grer des
requtes HTTP et de fournir au client une rponse HTTP et forment ainsi la base de la
programmation Web JEE.
Les Servlets sexcutent toujours dans un moteur de Servlet ou conteneur de Servlet permettant
dtablir le lien entre la Servlet et le serveur Web. Dans ce tutoriel, nous utiliserons Apache Tomcat.
Pages JSP
Les JSP (Java Server Pages) sont des pages HTML qui permettent l'affichage de contenu web
dynamique par l'intgration de fragments de code Java et de directives JSP.

43
Les composants J2EE

JSF
Java Server Faces est un framework Java bas sur la notion de composants o l'tat d'un
composant est enregistr lors du rendu de la page, pour tre ensuite restaur au retour de la
requte. Il utilise JSP par dfaut, mais peut tre utilis avec d'autres technologies, comme
par exemple Facelets ou XUL.
EJB 3.0
Les EJB (Enterprise Java Beans) forment l'une des spcifications majeures de JEE et
utilisent le principe des annotations Java. Ils se dclinent en :
entits (Entity Bean)
sessions (Session Bean)
messages (Message Bean)

44
C'est quoi un Conteneur ?
Un conteneur est un composant logiciel systme qui contrle dautres
composants, dits mtier Tomcat est un exemple de conteneur
Les servlets nont pas de mthode main(), ils sont contrls par le conteneur
Tomcat
Les requtes ne sont pas adresses aux servlets mais au conteneur dans
lequel ils sont dploys
Les conteneurs assurent la gestion du cycle de vie des composants qui
s'excutent en eux. Les conteneurs fournissent des services qui peuvent tre
utiliss par les applications lors de leur excution.
La notion de conteneur se retrouve dans de nombreuses technologies :
Servlet, Applet, MIDlet, Xlet, (*-let ), EJB,
Il existe plusieurs conteneurs dfinit par JEE:
Conteneur web : pour excuter les Servlets et les JSP Conteneur d'EJB :
pour excuter les EJB
Conteneur client : pour excuter des applications stand-alone sur les postes
qui utilisent des composants JEE 45
C'est quoi un Conteneur ?

Les conteneurs sont les lments fondamentaux de l'architecture


J2EE. Les conteneurs fournis par J2EE sont de mme type. Ils
fournissent une interface parfaitement dfinie ainsi qu'un
ensemble de services permettant aux dveloppeurs
d'applications de se concentrer sur la logique mtier mettre
en uvre pour rsoudre le problme qu'ils ont traiter, sans
qu'ils aient se proccuper de toute l'infrastructure interne.
Les conteneurs s'occupent de toutes les tches fastidieuses lies
au dmarrage des services sur le serveur, l'activation de la
logique applicative, la gestion des protocoles de
communication intrinsque ainsi qu' la libration des
ressources utilises.

46
Les conteneurs J2EE
J2EE et la plate-forme Java disposent de conteneurs pour les composants
Web et les composants mtiers. Ces conteneurs possdent des interfaces
leur permettant de communiquer avec les composants qu'ils hbergent.
Les principaux conteneurs J2EE sont notamment ceux ddies aux EJB, aux
JSP, aux servlets et aux clients J2EE.

47
Les conteneurs JEE

Elments fondamentaux de larchitecture JEE


Les conteneurs JEE fournissent une interface parfaitement dfinie ainsi
quun ensemble de services permettant aux dveloppeurs de se
concentrer sur la logique mtier.
Les conteneurs et serveurs implmentent les services et mcanismes de
bas niveau utiliss par les applications:
La communication entre les clients et les serveurs
Le contrle de la scurit
La gestion des transactions
Lidentification et la localisation des ressources

48
Conteneurs JEE

Les conteneurs et serveurs implmentent les mcanismes de bas niveau


utiliss par les applications:
transactions,
persistance,
gestion de la mmoire,
scurit
Les spcifications J2EE sintressent aux activits dune application lies:
au dveloppement,
au dploiement,
lexcution

49
JEE 4 types de Conteneur

Couche client
Conteneur
d'applet
Couche Web Couche mtier
Applet
Conteneur Web Conteneur d'EJB

JSP Servlet EJB


Java SE

Java Java
Conteneur

JDBC

JDBC
JAXP

JAXP
JAVA

JAVA
JMS

JMS
JCX

JCX
JTA

JTA
Mail Mail
du client de
l'application JAF JAF

Client de
Java SE Java SE
l'applicatio
n

Couche SI
JDBC
JAXP
JAVA
JMS

Base de
donnes
Java SE

50
Exemple Rpartition en couches : Cas du 3 Tiers
Considrons une architecture courante, celle trois niveaux:

Couche Couche daccs aux


utilisateur Couche Mtier donnes (DAO) Donnes
Interface

1 2 3

La couche [1], (User Interface) : dialogue avec l'utilisateur, via une interface. Elle
a pour rle de fournir des donnes provenant de l'utilisateur la couche [2] ou
bien de prsenter l'utilisateur des donnes fournies par la couche [2].
La couche [2], appele ici [Mtier] est la couche qui applique les rgles dites
mtier, c.a.d. la logique spcifique de l'application, sans se proccuper de savoir
d'o viennent les donnes qu'on lui donne, ni o vont les rsultats qu'elle produit.
La couche [3], appele ici [dao] (Data Access Object) est la couche qui fournit
la couche [2] des donnes pr-enregistres et qui enregistre certains des
rsultats fournis par la couche [2].

51
Exemple : Couche accs aux donnes
Il existe diffrentes possibilits pour implmenter la couche accs aux donnes.
Le dveloppeur peut diviser en tiers dots de fonctionnalits spcifiques

Couche daccs
Couche Couche
Couche Mtier aux donnes Base de
Interface (DAO) JDBC donnes

utilisateur 1 2 3

La couche [JDBC] est la couche standard utilise en Java pour accder des
bases de donnes. Elle isole la couche [dao] du SGBD qui gre la base de
donnes. On peut thoriquement changer de SGBD sans changer le code de
la couche [dao].

52
Suite Exemple : Couche accs aux donnes
Pour isoler la couche [dao] des aspects propritaires des SGBD. Une solution est celle du Framework
Hibernate ou (JPA, TopLink dans JEE)

Couche daccs Objets image Couche Couche


aux donnes de la BD BD
(DAO)
Hibernate JDBC

La couche [Hibernate] vient se placer entre la couche [dao] crite par le dveloppeur et la couche [Jdbc]

Hibernate est un ORM (Object Relational Mapping), un outil qui fait le pont entre le modle relationnel des
bases de donnes et celui des objets manipuls par Java

Le dveloppeur ne voit plus la couche [Jdbc] ni les tables de la BD. Il ne voit que l'image objet de BD,
fournie par la couche [Hibernate]. Le pont entre les tables de la BD et les objets manipuls par la couche
[dao] est fait principalement de deux faons :
par des fichiers de configuration de type XML
par des annotations Java dans le code, technique disponible depuis le JDK 1.5

53
Composants web
Un composant web est une entit logicielle qui fournit une rponse une requte.
Les composants web gnrent habituellement l'interface utilisateur d'une application web.
La plate-forme JEE dfinit deux types de composants web :
les servlets ;
les JavaServer Pages (JSP).
JSF (Java Server Face)

Conteneur Web
Servlets
Code java excut sur le serveur
Equivalent du CGI
Gnration de contenu Web dynamique
JSP: Java Server Pages
Mlange de HTML/XML et de code java
Librairies d extension ( taglibs )
Prcompilation en servlet
54
Principes de fonctionnement MVC

I. Le modle MVC2
1.Dcoupage:
Il dcoupe l'application en 3 couches distincts:
La caractristique de l'approche MVC2 est la sparation de code Controller partir de
contenu.
o Couche "Modle" (le M de MVC) : traitement
=> le traitement, le stockage et la mise jour des donnes de l'application.
o Couche "Vue" (le V de MVC) : prsentation
=> l'interaction avec l'utilisateur et la prsentation des donnes (mise en forme, affichage).
o Couche "Contrle" (le C de MVC) : donnes
=> le contrle des actions de l'utilisateur et des donnes (stockage).

55
Principes de fonctionnement MVC

2.Cycle de vie d'une requte

1. Le client envoie une requte l'application qui est prise en charge par la Servet d'entre qui analyse la
requte et roriente celle-ci vers un contrleur
2. Le contrleur demande au modle appropri d'effectuer les traitements.
3. Le contrleur notifie la vue que la requte est traite.
4. Le modle informe la vue de son changement dtat.
5. La vue demande son tat au modle, que ce soit suite une information du modle ou du contrleur.
6. La vue prsente les donnes lutilisateur
56
Implmentation

Architecture 3-tiers 57
Framework

Il existe des frameworks pour lier ces couches entre-elles. Par


exemple Spring
Le grand intrt de Spring est qu'il permet de lier les couches
par configuration et non dans le code
Avec Java EE , une autre solution existe : implmenter les
couches [metier] et [dao] avec des Ejb3 (Enterprise Java Bean 3)

58
Rsum

Lorsquune socit dveloppe une application Java et doit ajouter des fonctionnalits
professionnelles comme la gestion des transactions, la scurit, la concurrence ou la
messagerie, Java EE est attractif. Il est standard, les composants sont dploys dans
diffrents conteneurs qui offrent de nombreux services et fonctionnent avec plusieurs
protocoles. Java EE 7 suit les traces de sa version prcdente en ajoutant la simplicit
dutilisation de la couche web. Cette version est plus lgre, plus simple dutilisation
(plus besoin dinterfaces sur les EJB ou dannotations sur la couche web), plus riche
(elle ajoute de nouvelles spcifications et fonctionnalits) et, enfin, plus portable (elle
inclut un conteneur EJB standardise et autorise les noms JNDI).

59
Rsum

Le serveur web dune application J2EE rend disponible les applications sur le World
Wide Web.
Le conteneur web fournit des services de haut niveau aux composants web en matire de
transactions, accs aux donnes, gestion des tats, scurit et distribution.
Lutilisation de bibliothques de balises personnalises amliore la qualit du code
source et facilite la maintenance des applications.
Le patron de conception Modle-Vue-Contrleur est recommand pour la plupart des
applications web interactives car il permet de crer des applications rutilisables, et
dajouter de nouveaux types de clients, processus et vues facilement.

60
Rsum

Le serveur web dune application est une couche de service neutre, habituellement
conu sur le modle MVC, qui simplifie la cration dapplications web interactives.
Le modle de conception le plus simple a un seul contrleur qui reoit les requtes des
navigateurs, les distribue dans lapplication et affiche les rsultats.
Il est possible dutiliser plusieurs contrleurs web pour grer nativement des clients
web utilisant des protocoles diffrents.
Un mcanisme de modles (templates) permet damliorer la mise en page des crans
de lapplication.
Le mcanisme de modle permet dutiliser un fichier modle pour assembler des vues
individuelles en une vue compose sur lapplication.

61

Das könnte Ihnen auch gefallen