IV. La plate-forme J2EE
La plate-forme J2EE (Java 2 Entreprise Edition), est la
proposition de SUN pour le développement et la mise en °oeuvre
d'applications d'entreprise multi-niveaux. Elle s'appuie entièrement sur
le langage JAVA.
J2EE fournit :
· Un modèle de développement de composants
Web (Servlets, JSP) et de composants métier (EJB) sous la forme d'APIs
JAVA.
· Un ensemble de services (JDBC, JTA, JNDI, JMS, RMI /
IIOP, JavaMail, XML), utiles aux composants, sous la forme d'APIs JAVA.
· Un modèle de création de modules Web
(.war) de modules EJB (.jar) et de modules d'entreprises (.ear),
associés à des descripteurs de déploiement au format XML,
utiles pour le déploiement des applications d'entreprise.
· Des conteneurs Web et EJB pour la mise en oeuvre des
composants.
A. Les Framework utilisés
Pour réaliser notre application, nous avons
utilisé les Framework suivants :
· Spring,
· Struts,
· Hibernate.
1. Le Framework Spring
Le Framework Spring est un conteneur dit « léger
a», c'est-à-dire une infrastructure similaire à un serveur
d'application J2EE. Il prend donc en charge la création d'objets et la
mise en relation d'objets par l'intermédiaire d'un fichier de
configuration qui décrit les objets à fabriquer et les relations
de dépendances entre ces objets (IoC :Inversion of Control). Le
principal avantage par rapport aux serveurs d'application est qu'avec Spring,
les classes n'ont pas besoin d'implémenter une quelconque interface pour
être prises en charge par le Framework. C'est en se sens que Spring est
qualifié de conteneur « léger a».
L'idée du pattern IoC est très simple, elle consiste, lorsqu'un
objet A a besoin d'un objet B, à déléguer à un
objet C la mise en relation de A avec B.
2. Le Framework Struts
Apache Struts est un Framework libre pour développer
des applications web J2EE. Il utilise et étend l'API Servlet Java afin
d'encourager les développeurs à adopter l'architecture
Modèle-Vue-Contrôleur. Struts permet la structuration d'une
application Java sous forme d'un ensemble d'actions représentant des
événements déclenchés par les utilisateurs de
l'application. Ces actions sont décrites dans un fichier de
configuration de type XML décrivant les cheminements possibles entre les
différentes actions. En plus, Struts permet d'automatiser la gestion de
certains aspects comme par exemple la validation des données
entrées par les utilisateurs via l'interface de l'application. Ainsi, il
n'est plus besoin de venir coder le contrôle de chaque donnée
fournie par un utilisateur, il suffit de décrire les
vérifications à effectuer dans un fichier XML dédié
à cette tâche. La figure 7 illustre l'architecture du
Modèle Vue et Contrôleur.
Figure 7: Architecture du Modèle Vue
Contrôleur.
Le contrôleur est le coeur de l'application. Toutes les
demandes du client transitent par lui. C'est une servlet
générique fournie par STRUTS. Cette servlet
générique prend les informations dont elle a besoin dans un
fichier le plus souvent appelé struts-config.xml. Si la requête du
client contient des paramètres de formulaire, ceux-ci sont mis par le
contrôleur dans un objet javaBean héritant de la classe
ActionForm. Dans le fichier de configuration struts-config.xml, à chaque
URL devant être traitée par programme on associe certaines
informations :
· Le nom de la classe étendant Action chargée
de traiter la requête.
· Si l'URL demandée est paramétrée
(cas de l'envoi d'un formulaire au contrôleur), le nom du bean
chargé de mémoriser les informations du formulaire est
indiqué.
Muni de ces informations fournies par son fichier de
configuration, à la réception d'une demande d'URL par un client,
le contrôleur est capable de déterminer s'il y a un bean à
créer et lequel. Une fois instancié, le bean peut vérifier
si les données qu'il a stockées et qui proviennent du formulaire,
sont valides ou non. Pour cela, une méthode du bean appelée
validate est appelée automatiquement (si le développeur le
souhaite et la définie) par le contrôleur et renvoie
éventuellement une liste des erreurs. Dans ce cas là, le
contrôleur n'ira pas plus loin et passera la main à une vue
déterminée dans son fichier de configuration pour informer
l'utilisateur des erreurs qu'il a commis lors de la saisie de son formulaire.
Si les données du bean sont correctes, ou s'il n'y a pas de
vérification ou s'il n'y a pas de bean, le
contrôleur passe la main à l'objet de type
Action associé à l'URL. Il le fait en demandant
l'exécution de la méthode exécute de cet objet à
laquelle il transmet la référence du bean qu'il a
éventuellement construit. C'est ici que le développeur fait ce
qu'il a à faire : il devra éventuellement faire appel à
des classes métier ou à des classes d'accès aux
données. A la fin du traitement, l'objet Action rend au contrôleur
le nom de la vue qu'il doit envoyer en réponse au client. Le
contrôleur envoie cette réponse. L'échange avec le client
est terminé.
3. Le Framework Hibernate
Hibernate est un Framework open source gérant la
persistance des objets en base de données relationnelle. La manipulation
de SQL dans le langage de programmation JAVA est rendue possible par
l'utilisation du JDBC. Puisque, chaque requite est effectuée sur le
modèle logique de la base de données, cette approche
présente l'inconvénient de lier très fortement le code de
l'application au schéma de la base de données. En
conséquence, toute évolution apportée au modèle
logique doit ~tre répercutée sur le code de l'application.
L'outil Hibernate propose une solution à ce
problème. Celle-ci consiste à définir, dans des fichiers
de configurations, le lien entre le diagramme de classes de l'application qui
exploite une base de données et le modèle logique de cette base
de données. Il permet ensuite de manipuler les données de la base
de données sans faire la moindre référence au
schéma de la base de données en utilisant l'API fournie par cet
outil gr~ce au lien établi dans les fichiers de configuration.
a. Configuration d'Hibernate
Hibernate est conçu pour pouvoir être utilise
dans différents types d'architectures d'application. Pour cela, chaque
application doit indiquer à Hibernate comment celui-ci peut
accéder et manipuler la source de données dans un fichier de
configuration nommé hibernate.cfg.xml.
Les principaux éléments à paramétrer
sont les suivantes :
· Le SGDB utilisé. Chaque SGBD propose une
implémentation du langage SQL qui diffère souvent de la norme
SQL. Hibernate doit connaitre le type de SQL qu'il doit
générer.
· La Connexion à la base de données. Si la
connexion à la base de données se fait en utilisant JDBC, il faut
indiquer à Hibernate, le driver JDBC, l'url de connexion ainsi
qu'un nom d'utilisateur et un mot de passe permettant de se
connecter `a la base de données. Les connexions peuvent également
etre gérées par un serveur d' J I IIIcT IM
IiIIfauIIITTITTTrIàIHITTMINT IcomTnIINIIpTutIaIIIdTrIMITInTxITTs I
WITIIparIcTIsTNITuII(AIMINITIJNT).I
· xTsISTNIIITsItiTIM ITITTNIMIT
IaIITsIIIIdTIMrTIIunITnsTfTITIMMIIdTIMMTxIVIsIàIlaI basT
ITTIMIéTsITtIMI11131ITTIIMITI IMrIcTlI IITTMINTIMMITIunT I
IlTinTnrirIiuffTniairTIdTIcTsIsTrvicTmITais
IpTuiIaumiIutirTiIdTrIsTnicTsItiTisI TirIpTmmIts I
miIrérrmTi, IlTImi[ImiaxTIdTIHibTrnatTIrrTnsitT I: I
·
xaIlMIITIIIVITIImITx1TIdTITITITTsITxpITIIMtIlaIMTIdTIMINTsI; I
· xIMIIIIITIMMINcTI(IIIIIIM
ITTIITIlTImITx1TIdTIcNTIsTsITtIEIbIsTIITIdoMTsI; I
· Une configuration au niveau système de
l'accès. I
b. 8 lkilisalkioK11 141-F
iblialki
L'utilisation de Hibernate se fait principalement au travers de
la classe Session qu'il imilt. IUII1jTtIsTrrImT IlT1IfomrrmrirI111rm1T I:I
· Rendre persistant un objet d'une classe. C'est la
méthode save 111Io17ITIcTliT I fonctionnalité. Elle
prend en paramètre l'objet à rendre persistant. I
· Charger un objet d'une classe à partir de la
base de 1717T1 Ix1I111h11T I11adITstI utilisée à cette
fin. Elle prend en paramètre la classe de l'objet à charger ainsi
que la valeur de l'identifiant (clé primaire) de cet objet. I
· Modification d'un objet persistant. Il suffit pour cela
de modifier la valeur des Viopriétés d'un objet puis d'appeler la
méthode flush de l'objet session. I
· Suppression d'un objet persistant. L'appel de la
méthode delete avec en paramètre un objet persistant se charge
d'effectuer la suppression dans la base de données. I
· xTcxTrcxTiIdTrIobjTts
IHibTrnmTIiroposTIunIlmx,xTIdTIrTqmxiTIriTntéIob ItsInomé I HQL
dont la syntaxe est similaire au SQL et qui permet d'effectuer des requetes sur
le 111x1TI11j1t. I
La figure 8 illustre l'architecture de Hibernate. I
Figure 8: Architecture d'Hibernate.
|