You are on page 1of 27

Architecture J2EE

Que veut dire J2EE ?


J2EE signifie Java 2 Entreprise Edition et 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.

Que veut dire J2EE ?

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 (bien
entendu si le besoin s'en fait sentir).

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 oeuvre facilement ses
serveurs d'applications. Chacun de ces objets est adapte la
situation en correspondant parfaitement au canevas de
l'ensemble du processus. Ainsi, les dveloppeurs n'ont pas partir
d'une feuille blanche et surtout J2EE permet d'avoir une dmarche
standardise.

Qu'est-ce que 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. C'est la raison d'tre des applications distribues.
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.

Architecture multitiers
Un des thmes rcurrent du dveloppement d'applications J2EE est la
dcomposition de celles-ci en plusieurs niveaux, ou tiers. Gnralement,
une application d'entreprise est compose de trois couches fondamentales
(d'o le terme dcomposition en trois tiers) :
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 oeuvre 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.

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
monolitique est appele simple tiers car toutes les
fonctionnalits sont comprises dans une seule couche
logicielle.

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.

Architecture clientserveur
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 communment appele client-serveur, qui
dans notre approche peut tre reprsente en deux tiers.

Architecture clientserveur
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 stipulant qu'un client affichant un retard de
paiement de plus de 90 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 de 60
jours est appliqu, il faudra mettre jour toutes les
applications, ce qui peut tre contraignant.

Architecture trois-tiers
Pour viter cette pagaille, 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.

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.

Architecture trois-tiers
Un des avantages essentiel de cette architecture est qu'elle
rend possible la cration d'applications dans lesquelles les
classes dfinies au niveau de la logique mtier sont
directement tires du domaine de l'application. Le code
de cette couche peut utiliser des classes modlisant les
objets du monde rel (par exemple des clients) au lieu de
manipuler des requtes SQL complexes.
En plaant les dtails de l'implmentation dans les couches
appropries
et
en
concervant
des
applications
fonctionnant avec des classes modlisant les objets du
monde rel, les applications sont plus faciles maintenir
et faire voluer.

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

Concepts et spcificits de J2EE


Ct client

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

Les conteneurs
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.

Les conteneurs

Les conteneurs
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.

Les servlets Java


Nous avons dj trait les servlets dans deux cours prcdents.
Rappelons de quoi il s'agit :
Vous avez sans doute l'habitude d'accder des pages HTML
statiques l'aide d'un navigateur envoyant une requte un
serveur Web, celui-ci renvoyant alors une page stocke sur son
disque dur. Dans cette configuration, le serveur joue le rle
d'un bibliothcaire virtuel qui renvoie le document demand.
Ce modle ne permet pas d'accder des pages dynamiques,
dont le contenu serait cr la demande. Supposons par
exemple que le client souhaite obtenir une liste des documents
HTML correspondant certains critres. Dans ce cas, il est
ncessaire de crer une page HTML diffrente en fonction des
critres spcifis par le client.

Les servlets Java


Une servlet Java est un composant implmentant l'interface
javax.servlet.Servlet. Son invocation est la consquence de la
requte du client, dirig vers cette servlet. Bien que cela ne soit
pas obligatoire, gnralement les servlets sont associes
l'environnement Web et aux requtes HTTP. Le serveur Web reoit
une demande adresse une servlet sous la forme d'une requte
HTTP. Il transmet la requte la servlet concerne, puis renvoie la
rponse fournie par celle du client . La servlet reoit galement les
paramtres de la requte envoye par le client. Elle peut alors
effectuer toutes les oprations ncessaires pour construire la
rponse avant de renvoyer celle-ci sous forme de code HTML.
Le conteneur de servlets permet une gestion facile des sessions qui
autorise l'criture d'applications Web complexes. Les servlets
peuvent galement utiliser les composants JavaBeans (qui n'ont
rien en commun avec les Entreprise JavaBeans, en dehors de leur
nom). Les JavaBeans sont tout simplement des classes connexe
la servlet et qui permettent d'augmenter de manire significative

Exemple de servlet

Les JavaServer Pages


Les JavaServer Pages, ou JSP, servent, comme les servlets, crer du contenu
Web de manire dynamique. Ces deux types de composants reprsentent
eux seuls un trs fort pourcentage du contenu des applications Web.
Crer des servlets consiste construire des composants Java capables de
produire du code HTML. Dans de nombreux cas, cela fonctionne sans
problme. Toutefois, il n'est pas facile, pour les personnes charges de
concevoir l'aspect visuel des pages Web, de manipuler du code Java, auquel
elles n'ont probablement pas t formes. C'est la raison d'tre des JavaServer
Pages. Les JSP sont des documents de type texte, contenant du code HTML
ainsi que des scriptlets (et/ou des expressions), c'est--dire des morceaux de
code Java.
Les dveloppeur des pages JSP peuvent mlanger du contenu statique et du
contenu dynamique. Ces pages tant bases sur du code HTML ou XML, elles
peuvent tre cres et manipules par du personnel non technique. Un
dveloppeur Java peut tre en charge de la cration des scriptlets (et/ou des
expressions) qui s'interfaceront avec les sources de donnes ou effectueront
des calculs permettant la gnration de code dynamique.

Les JavaServer Pages

Les JavaServer Pages


Les pages JSP s'excutent, en fait, sous la
forme de servlets. Elle sont donc compiles
comme les servlets et sont donc plus
rapides dans leur traitement. Elles disposent
du mme support pour la gestion des
sessions. Elles peuvent galement charger
des JavaBeans et appeler leurs mthodes,
accder des sources de donnes se
trouvant sur des serveurs distants, ou
effectuer des calculs complexes.

You might also like