Vous êtes sur la page 1sur 48

Institut de la Francophonie

pour l`Informatique

Centre de Recherche
Informatique de Montral











Application Web avec framework Struts
&
Infrastructure CGRID






tudiante:
NGUYEN Thi Tuyet
Responsables:
Robert BOLDUC
Carl SIMARD
MEMOIRE DE FIN D'ETUDES
Montral, fvrier 2005
1
Remerciements
Je tiens a remercier particulierement Monsieur Louis Fortier, directeur de l`equipe
Developpement Et Technologie Internet (DETI) du CRIM, de m`avoir accueilli au sein
de son equipe.
Je tiens a remercier Monsieur Charles Durand, directeur de l`Institut de la Francophonie
pour l`InIormatique (IFI), d`avoir prepare mon stage.
Je tiens a remercier sincerement Monsieur Ho Tuong Vinh, directeur des etudes de
l`IFI, de me presenter au CRIM de Iaire du stage.
Je remercie aussi vivement Monsieur Robert Bolduc, responsable du projet C3GRID, de
m`avoir reu et me donner des travaux.
Je tiens a exprimer mes sentiments a Monsieur Carl Simard, l`agent de recherche de
l`equipe DETI, de me collaborer dans le travail et de me donner des conseils dans la vie
pendant toute la duree de mon stage.
EnIin, je voudrais envoyer un grand merci a toutes les personnes du DETI et de l`IFI,
notamment des amis de Montreal qui m`ont apportes l`amitie et l`aIIectation.


2
Rsum
Ce memoire de Iin d`etudes presente notre travail sur le projet CrimReservation et le
projet C3GRID, realises au sein de l`equipe Developpement Et Technologie Internet
(DETI) du Centre de Recherche InIormatique de Montreal (CRIM) pendant mon stage
de six mois.
Le premier projet consiste en une application Web basee sur le Iramework Struts. Dans
ce rapport, nous presentons le resultat de recherches documentaires sur ce Iramework, et
l`appliquons aIin de construire l`application Web de reservation des salles de reunion du
CRIM. Par la suite, nous avons donne l`evaluation d`utilisation de technologie et un
nombre de resultats permettant de satisIaire les exigences de l`application
CrimReservation.
Dans le deuxieme projet, nous nous interessons a la mise en place d`une inIrastructure
de grille de modelisation distribuee de reconnaissance de la parole pour le sous-titrage
au Canada. Dans le cadre de ce rapport, nous abordons de Grid Computing et logiciel
libre Globus Toolkit. Particulierement, nous apportons une presentation de
l`inIrastructure de grille avec l`implementation des services de Globus Toolkit et un
Monitoring developpes par DETI.

Mots clefs : Application Web en Java, Modele MVC, Iramework Struts, Application
multi-tiers, Grille de calcul, Globus Toolkit, inIrastructure de grille
3
Abstract
This term paper oI end oI studies presents our work on the CrimReservation project and
the C3GRID project, carried out by the team Development and Internet Technologies
(DETI) oI InIormation Technology Research Center oI Montreal (CRIM) during my six
months oI training in Montreal.
The Iirst project aims at a Web application based on the Struts Iramework. In this
project, we have come up the result oI inIormation retrievals on this Iramework,
enabling us to apply it in order to build the Web application oI reservation oI the
conIerence room in the CRIM. Consequently, we have evaluated the use oI technology
and a number oI results to satisIy the requirements oI the CrimReservation application.
In the second project, we are interested in the installation oI an inIrastructure oI Speech
Recognition Model Training Grid in Canada Ior Automatic Closed-Captioning. In this
paper, we have worked on the Grid Computing and open-source Globus Toolkit.
Particularly, we have brought a presentation oI the grid inIrastructure with the
implementation oI the services oI Globus Toolkit and a "Monitoring" developed by
DETI.

Keywords: Java Web Application, MVC model, Iramework Struts, Multi-tier
applications, Grid Computing, Globus toolkit, Grid InIrastructure.
4
Table des matires
Remerciements.................................................................................................................. 1
Resume.............................................................................................................................. 2
Abstract ............................................................................................................................. 3
Table des matieres ............................................................................................................ 4
Liste des Iigures et tableaux.............................................................................................. 6
Chapitre 1 : Introduction................................................................................................... 7
1. Environnement du stage........................................................................................ 7
2. Deux projets.......................................................................................................... 8
2.1. Projet CrimReservation................................................................................. 8
2.2. Projet CGRID.............................................................................................. 8
3. Plan du rapport...................................................................................................... 9
Chapitre 2 : Projet CrimReservation............................................................................... 10
1. Problematique ..................................................................................................... 10
2. Framework Struts................................................................................................ 10
2.1. Qu`est-ce que Struts ?................................................................................. 11
2.2. Approche de modele MVC......................................................................... 11
2.3. Framework en Java ..................................................................................... 12
2.4. ConIiguration Struts.................................................................................... 13
2.5. Apports de Struts ........................................................................................ 15
3. Analyse et Solution proposee ............................................................................. 16
3.1. Travaux a eIIectuer ..................................................................................... 16
3.2. Fonctionnement de CrimReservation ......................................................... 17
3.3. Architecture physique................................................................................. 19
3.4. Architecture logicielle et ses composants................................................... 20
4. Resultats et contribution ..................................................................................... 24
Chapitre 3 : InIrastructure de CGRID ........................................................................... 26
1. Contexte des travaux........................................................................................... 26
1.1. Presentation generale de CGRID............................................................... 26
1.2. Travaux de DETI ........................................................................................ 27
2. Grid Computing et Globus Toolkit ..................................................................... 28
2.1. DeIinition.................................................................................................... 28
2.2. Architecture du Grid Computing ................................................................ 29
5
2.3. Presentation de Globus Toolkit................................................................... 31
3. InIrastructure CGRID........................................................................................ 34
3.1. Architecture generale.................................................................................. 34
3.2. Services sur chaque noud de grille............................................................. 35
4. Resultat et contribution....................................................................................... 38
Chapitre 4 : Conclusion generale.................................................................................... 40
Annexe 1: CrimReservation............................................................................................ 41
Annexe 2: Monitoring C3GRID..................................................................................... 46
ReIerences....................................................................................................................... 47

6
Liste des figures et tableaux
Figure 1. Modele MVC avec J2EE................................................................................. 12
Figure 2. Cas d`utilisation de CrimReservation............................................................. 16
Figure 3. Sequence de Ionctionnement de l`utilisateur CrimReservation ...................... 17
Figure 4. Sequence de Ionctionnement de l`administrateur CrimReservation ............... 19
Figure 5. Architecture physique de CrimReservation .................................................... 20
Figure 6. Architecture logicielle du systeme CrimResevation ....................................... 21
Figure 7. MVC dans crimReservation............................................................................ 22
Figure 8. Tables de base de donnees Crimreservation.................................................... 23
Figure 9. Services de Grille de Sous-Titrage a distance (STAD)................................... 27
Figure 10. Architecture du Grid Computing................................................................... 29
Figure 11. Architecture de Globus Toolkit ..................................................................... 31
Figure 12. L'architecture de globus avec des services .................................................... 34
Figure 13. InIrastructure generale de c3grid................................................................... 35
Figure 14. l'acces de donnees avec GridFTP.................................................................. 36
Figure 15. Execution un travail avec GRAM................................................................. 36
Figure 16. ressources avec MDS .................................................................................... 37
Figure 17. Mornitoring c3grid ........................................................................................ 37

7
Chapitre 1 : Introduction
Le stage s'est deroule au sein du groupe DETI (Developpement Et Technologies
Internet) du CRIM (Centre de Recherche InIormatique de Montreal), au Quebec sur une
duree de six mois. Durant ce temps, j`ai participe au developpement de deux projets:
la construction du systeme de reservation des salles de reunion
(CrimReservation)
l`etablissement une inIrastructure de modelisation distribuee de reconnaissance
de la parole pour le sous-titrage automatique au Canada (CGRID)
Dans ce chapitre, je decris de l`environnement du stage, introduit en general deux
projets que j`ai participes et le plan de ce document.
1. Environnement du stage
Reconnu comme un accelerateur technologique beneIiciant d'un personnel hautement
qualiIie, le CRIM vise a accrotre la valeur des entreprises par le transIert d'expertise, de
connaissances, de savoir-Iaire et de technologies. Grce a son vaste reseau de membres,
de contacts et de reIerences et grce a la diversite de ses activites, il rejoint la majorite
des intervenants en technologie de l`inIormatique (TI) au Quebec, Canada. Il est aussi
detenteur de la certiIication ISO 9001:2000. CRIM oIIre des services de pointe en
recherche-developpement, Iormation, veille, securite, bonnes pratiques de
developpement et tests de logiciels, dans lesquels DETI est une equipe de service en
recherche-developpement.
L'equipe DETI a pour mandat d'accrotre l'eIIicacite du CRIM dans son mandat de
transIert technologique et dans la matrise des technologies internet. Elle developpe et
maintient l'expertise necessaire pour repondre aux besoins techniques des chercheurs,
des membres et des clients du CRIM. Ses services, qui s'inscrivent surtout dans des
champs d'application en emergence, comportent trois volets:
Accompagnement technologique, qui consiste a guider les clients dans leurs
choix de technologies, d'architectures et de methodologies en matiere de
conception de systemes
Evaluation
Conception d'applications

Les technologies et les champs d`interts pour lesquels DETI maintient une veille sont :
8
Architectures d`applications Web
Logiciels libres Open Source
Methodologies de conception et de
developpement
Modeling Language (UML), Framework
Struts
Commerce electronique
Gestion d`entreprise en reseau
(intranet/extranet)
Gestion documentaire
Ergonomie des sites Web
Tous les standards relies a XML
Technologies peer to peer

2. Deux projets
2.1. Projet CrimReservation
CrimReservation est un projet patrimoine du CRIM: Iinance par le budget du CRIM,
developpe par l'equipe DETI et qui sera utilise par le CRIM. L'objectiI de ce projet est
d'automatiser, de Iaciliter et d'ameliorer la prise de reservation des salles de reunions.
Tous ces processus sont jusqu'a maintenant realises manuellement, ce qui cause des
erreurs et consomme de ressources humaines du CRIM.
En se basant sur les technologies Web, ce systeme developpe permet a realiser les
tches suivantes:
Faciliter la gestion des reservations;
Inviter le client a participer dans le processus de reservation;
Permettre un suivi par le gestionnaire;
Generer des Iactures.
2.2. Projet CGRID
Le projet CGRID (Closed-Captioning Computing GRID) vise a oIIrir du sous-titrage
en temps reel en utilisant la reconnaissance de la parole. Les modeles statistiques
necessaires a cette operation requierent d'enormes quantites de donnees, d'ou l'intert du
calcul distribue (sur plusieurs ordinateurs geographiquement disperses). L'equipe
Developpement et technologies Internet met en place l'inIrastructure de la grille,
l'entrept de donnees et les Ionctions de gestion de la grille (ordonnanceur, operations,
administration, maintenance). Plusieurs partenaires sont impliques dans ce projet dont :
la Chambre de Communes a Ottawa, l'Assemblee Legislative de Colombie Britannique
9
(LABC), le Groupe TVA et l'ONF. Ce projet est realise conjointement avec l'equipe
Reconnaissance de la parole et celle de Vision et imagerie du CRIM.
3. Plan du rapport
Paticipant aux deux projets du CRIM, j`ai redige ce rapport en deux chapitres
principaux correspondant au deux projets. Dans chaque partie, on a divise en plusieurs
composants. Ci-dessous, on presente le contenu de ce rapport :
Chapitre 1: On presente brevement l`environnement de travail et deux projets
participes.
Chapitre 2 : On etudie le projet CrimReservation, il possede :
Problematique : ici on va donner les idees et des exigences pour
construire le systeme CrimReservation
Framework Struts : cette partie represente des technologies Struts a
appliquer pour resoudre le probleme lance precedent.
Analyse et solution proposee : Dans cette partie, on va se concentrer a
l`analyse de l`application et la solution a systeme.
Resultat et contribution : vous allez voir la resumee et des resultats
requis duree six mois du stage pour le projet CrimReservation.
Chapitre 3 : Ce chapitre donne une inIrastructure CGRID developpee par DETI.
Il contient des parties suivantes :
Contexte des travaux : ce morceau donne une presentation generale de
projet CGRID et le travail de l`equipe DETI, ainsi que des contraintes
pour developper une inIrastructure de CGRID.
Grille de calcul et Globus Toolkit : Dans cette partie, on etudie la Grille
de calcul et Globus Toolkit a construire une inIrastructure de
modelisation distribuee pour le CGRID.
InIrastructure CGRID : Cette session possede l`architecture generale de
CGRID et des services sur chaque noud de grille
Resultat et contribution
Chapitre 4 : Ce chapitre parle des travaux et experiences requis pendant six mois
du stage.

10
Chapitre 2 : Projet CrimReservation
1. Problmatique
Le systeme a ete construit dans le but d'automatiser des tches redondantes et pour
soulager les responsables du CRIM en demandant au client de realiser une partie du
travail. Ainsi, le projet est separe en deux sessions, l'une pour le client, l'autre pour la
gestion. Ci-dessous, ce sont des tches du client et de la gestion:
Fonctionnalite du Client:
Entrer des inIormations personnelles;
Faire ou/et modiIier la demande de reservation;
Recevoir la conIirmation de demande;
Recevoir une Iacture par le courrier;
Voir toutes les inIormations concernees des salles (la condition de location, le
cot, l'occupation, la disposition et capacite).
Fonctionnalite de la Gestion:
Approuver la reservation;
Appeler le client au besoin pour modiIier la demande;
Envoyer la Iacture au client et a la comptabilite;
Creer, modiIier ou supprimer une demande au besoin;
VeriIier la disponibilite des salles;
ModiIier, supprimer ou mettre a jour des inIormations dans le systeme.
La solution convenant le mieux a cette tche est une application Web multi-tiers, de
sorte qu'un client interne (un employe) ou externe (un client) puisse reserver une salle
avec la mme procedure et la mme interIace.
Dans le domaine de l'application multi-tiers, le groupe DETI a developpe une expertise
dans le Iramework Struts. On a donc demande a l'agent de recherche d'utiliser cette
plateIorme. C'est un banc d'essai avant de realiser une application commerciale de plus
grande ampleur.
2. Framework Struts
A partir des besoins d`un systeme de reservation de salle de reunion, nous avons
developpe une application Web en Java basee sur le Iramework Struts. Dans cette
section, on va etudier ce Iramework ainsi que leur mise en production.
11
2.1. Qu`est-ce que Struts ?
Struts est un projet open source, developpe par la communaute Jakarta d`Apache.
Debute en mai 2000 sous la direction de Craig R. McClanahan, Struts a ete construit
pour but de Iournir a la communaute Java un Iramework base sur le design partern
MVC2 tout en utilisant les technologies J2EE Standards : JSP/Servlet, JavaBean, XML.
L'application de ce modele permet une separation en trois parties distinctes de
l'interIace, des traitements et des donnees de l'application.
Strust se concentre sur la vue et le contrleur. L'utilisation du modele est laissee libre
aux developpeurs. En ce cas, on va decouvrir les apports techniques et architecturaux de
Struts pour le developpement des applications Web.
2.2. Approche de modle MVC
MVC (Model-Jiew-Controler) est un design pattern separant des composants de type
"Model" qui represente les donnees de l'application; "View" qui represente l'interIace
homme-machine et "Controller" qui assure le lien entre les deux autres entites en
contenant les regles metiers. Chaque composant joue un rle diIIerent dans le systeme et
assume des relations avec les autres. Les contrleurs permettent de repondre aux actions
de l`utilisateur. Chaque contrle est associe a une vue: cette derniere permet de
presenter l'inIormation retournee a l'utilisateur. Bien entendu, l'inIormation renvoyee est
dependante des actions d'entrees de l'utilisateur. Les liens sont realises par le modele
(logique metier).
Framework Struts decoule de modele MVC, selon ce modele, on retrouve dans Struts un
contrleur, des vues, et l`acces du modele. Il represente dans la Iigure ci-dessous :
12

Figure 1. Modle MJC avec 12EE

Un contrleur est installe sous Iorme de servlet Java
Le modele considere l'installation de la logique metier dans une
application Web
Chaque vue est une page JSP
En pratique, Struts est une installation de modele MVC2, c`est une architecture que se
propose de n'utiliser qu'un seul et unique servlet comme contrleur. Ce servlet se charge
d'assurer de receptionner toutes les requtes de client a des traitements.
2.3. Framework en 1ava
Struts est un Iramework ecrit en Java, on considere le Ionctionnement du Iramework
Struts a travers des classes telles que ActionServlet, Action, RequestProcessor,
ActionMapping, ActionForm, ActionForward.
ActionServlet est un des composants constituant le contrleur, classe
org.apatch.struts.action.ActionServlet gere les requtes des clients et determine laquelle
des org.apatch.struts.action.Action doit realiser le traitement. La plupart des applications
possedent une implementation de ActionServlet et plusieurs implementations de
Action.
ActionServlet est un Servlet simple comme des autres servlet http, elle herite de classe
javax.servler.http.HttpServlet, et implemente des methodes dans le cycle de vie de
HttpServlet incluant init() ; doGet() ; doPost() ; destroy(). Elle est associee a toutes les
requtes HTTP se terminant par .do . Ce Servlet accepte un certain nombre de
13
parametres. Toutes les speciIications des requtes et des parametres sont placees dans le
Iichier de conIiguration struts-config.xml
Le second type de composant du contrleur est represente par la classe de
org.apatch.struts.action.Action. Action est utilisee pour acceder aux classes
implementant la logique du business (Modele) a produire. Quand ActionServlet reoit
une demande request , il utilise le URI aIin de determiner laquelle des classes
Action qui sera utilisee pour gerer la demande. Action peut valider les parametres de la
demande et acceder la couche de logique du business.
Pour Ionctionner, Struts doit examiner des parametres implementes dans classe Action,
ce sont ActionMapping, ActionForm, HttpServletRequest, HttpServletRespone :
La classe ActionMapping contient les inIormations de deploiement d`un bean
Action particulier. Elle est utilisee pour determiner ou les resultats de l`action
devront tre envoyes une Iois le traitement termine ;
ActionForm : ce parametre represente la Iormulaire contenant les parametres de
la requte venant de la vue reIerencee par le bean Action. La reIerence passee a
LookupAction pointe ici vers une instance de LookupForm ;
La parametre HttpServletRequest est une reIerence a l`objet request de la
requte http en cours de traitement ;
Le parametre HttpServletResponse est une reIerence a l`objet reponse de la
requte http en cours de traitement
2.4. Configuration Struts
Il y a deux Iichiers de conIiguration de Struts : web.xml et struts-conIig.xml. Le Iichier
web.xml est la description de deploiement. Les inIormations de speciIication de Struts
sont redigees dans le Iichier struts-conIig.xml
Pour creer et deployer une application Struts, on doit avoir des modiIications dans le
Iichier web.xml. On a un Iichier de base comme cela :
<?xml version"1." encoding"ISO-8859-1"?>

<!DOC1YPE web-app
PUBLIC "-//Sun Microsystems, Inc.//D1D Web Application 2.3//EA"
"http://java.sun.com/dtd/web-app23.dtd">

<web-app>
14
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-IAF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-IAF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-IAF/struts-html.tld</taglib-location>
</taglib>
</web-app>

D`abord, on consiste a inIormer l`application de la presence de ActionServlet. On voit
que l`application a un Servlet nomme action, implementee par une instance de la classe
org.apache.struts.action.ActionServlet qui est la classe par deIaut Iournie avec Struts.
On deIinit egalement un parametre d'initialisation nomme config et indiquant ou se
trouve le Iichier de conIiguration struts-config.xml. EnIin, l'element <load-on-
startup>1</load-on-startup> indique que le conteneur de servlets/JSP doit precharger
la servlet lors du demarrage de l'application. Ce pre-chargement est obligatoire. Dans le
cas contraire, les vues Struts ne pourraient pas trouver toutes les ressources necessaires.
Puis, on consiste a indiquer quand l`action doit tre executee. Pour cela, on utilise un
element servlet-mapping~.Ce mapping indique a l'application Web que lorsqu'une
requte dont l'URL se termine par .do est reue, celle-ci doit tre traitee par la
servlet action. Ensuite, on indique que l`application va ouvrir la page index.jsp par
15
deIaut. EnIin, on voit les declarations de librairies des balises (taglib) utilisees dans
l`application de Struts.
2.5. Apports de Struts
L'apport le plus signiIicatiI de Struts est la structuration de la couche de presentation des
applications Web suivant le pattern MVC2. Le developpeur est mieux guide dans sa
tche. A cte des Ionctionnalites precedentes, Struts oIIre la possibilite
d`internationaliser ses application en Ionction de disposer d`une ressource pour langue
utilisee par deIaut et des Iichiers determinant des autres langues ; Struts propose aussi
au developpeur d`implementer des plugins, ainsi qu`il propose son propre mecanisme
d`exceptions pour traiter les erreurs.
En pratique, il reste actuellement plusieurs Irameworks bases sur le pattern MVC2 tel
que Barracuda, Hammock, Tapestry, Webwork...
Framework Url Puissance Complexit
Barracuda http://barracudamvc.org/Barracuda/index.html +++ +++
Hammock
n'existe plus +++ +++
Tapestry
http://sourceforge.net/projects/tapestry ++ +++
Webwork
dlaiss au profit de Tapestry + +
Struts
http://struts.apache.org/ ++ ++

Cependant, Struts est encore choisi pour plusieurs raisons:
Struts est un projet open source. On sait que la qualite de projet open source est
apportee par le nombre d'utilisateurs. On pense ainsi que Struts aura meilleures
qualites que les autres projets utilisant MVC.
C'est un Iramework qui permet un apport concret pour la structuration des
developpements des applications Web. Le decoupage suivant le pattern MVC2
de la couche de presentation permet de mieux gerer la logique de dialogue avec
l'utilisateur. Le developpement est mieux cadre et Iinalement plus eIIicace car :
comme dans l'utilisation de tout Iramework correctement realise sur un
ensemble de projets, le code est plus homogene
16
le developpement de la couche de presentation d'une application web
avec Struts demande moins de competences pointues
le travail des developpeurs experimentes en charge de la logique metier
de l'application est completement independant.
Neanmoins, comme tout Iramework ou librairie, Struts necessite un delai
d'apprentissage et de Iamiliarisation, surtout lorsque l'application devient complexe.
3. Analyse et Solution propose
3.1. Travaux effectuer
Crim souhaite avoir un systeme de reservation des salles pouvant tre accessible par des
clients Web legers et l`evolution des Ionctionnalites de sa gestion. Pour satisIaire de ces
exigences, CrimReservation s`est divise en deux sections : l`un de l`utilisateur et l`autre
de l`administrateur. Des Ionctionnalites du systeme est represente dans la Iigure de cas
d`utilisation ci-dessous :
Faire la demande de rservation
Recevoir la confirmation de
demande
Recevoir une facture
Modifier la demande de rservation
Approuver la rservation
Appeler le client au besoin pour
modifier la demande
Envoyer une facture au client et
la comptabilit
Modifier une demande au besoin
Crer une demande au besoin
Vrifier la disponibilit des salles
Modifier, supprimer des
informations du systme
Entrer des informations
personnelle
Administrateur Utilisateur

Figure 2. Cas d'utilisation de CrimReservation


17
En pratique, un administrateur peut jouer au rle intermediaire pour creer une demande
de reservation, mme il peut reserver des salles comme utilisateur normal. On Iait de la
recherche le Ionctionnement du CrimReservation dans la partie ci-apres.
3.2. Fonctionnement de CrimReservation
AIin de comprendre le Ionctionnement du systeme, on s`interesse a l`interaction entre
l`acteur externe (utilisateur ou administrateur) et le systeme grce au diagramme
sequentiel ci-dessous :
: Utilisateur
Systme
CrimReservation
1. Demande de rservation
2. nformations de pesonne de rservation
3. identification
4. nformations dtails de la rservation
5. Validation
6. Confirmation de la demande
1. Demande d'un modification de rservation
2. Modification des informations de personne
3. identification
4. Modification des informations dtails de la rservation
5.Validation
7. Confirmation
6. Confirmation de modification
7. Confirmation de modification

Figure 3. Squence de fonctionnement de l'utilisateur CrimReservation


18
Un utilisateur peut Iaire de la reservation des salles ou modiIier sa demande de
reservation. Deux actions sont realise selon de l`ordre des pas. Pendant le processus de
reservation, utilisateur peut retourner le pas precedent, s`il veut changer son opinion. La
Iigure ci-devant presente le cas ou toutes des inIormations entrees sont valides. On peut
consulter le scenario de demande de la reservation entre utilisateur et systeme, ci-apres :
Utilisateur Systme CrimReservation
1. Utilisateur a une demande de
reservation.

2. Utilisateur entre des inIormations
demandees



4. Utilisateur choisit des salles voulant
louer, des services concernant tels que des
equipements servant de reunion, des pause
sante ou repas.
6. Utilisateur examine des inIormations,
conIirme sa demande. Dans le cas,
utilisateur veut changer son opinion, il
peut retourner des pas precedents.

Le systeme aIIiche une Iorme pour remplir
des inIormations de personne ou
organisme qui veut reserver des salles
3. Le systeme identiIie ces inIormations.
Si toutes sont valides, il aIIiche un ecran
en detail pour reserver. Sinon une annonce
d`erreur est donnee et le systeme demande
d`entrer des inIormations valides.
5. Le systeme va calculer et valider des
inIormations et donne le resume de
demande de l`utilisateur, ainsi que le cot
total.
7. Le systeme accepte la demande de
l`utilisateur en Ionction de lui donner un
numero de demande que l`utilisateur peut
utiliser pour changer la demande de
reservation soi-mme. Le processus de
reservation Iinit.


19
: Administrateur
Systme
CrimReservation
Nom d'utilisateur, mot de pass
Vrifier
Choix de gestion de rservation
gestion des rservations
Choix de gestion du systme
gestion du systme
Demande d'envoie d'une facture client
Envoie d'une facture automatique
Demande d'envoie d'une facture la comptabilit
Envoie automatique la comptabilit

Figure 4. Squence de fonctionnement de l'administrateur CrimReservation



3.3. Architecture physique
Cas le systeme est une application Web, les utilisateurs peuvent connecter a
l`application par Internet. Voila, la Iigure suivante donne une vue de l`architecture
physique de CrimReservation.


20

Figure 5. Architecture physique de CrimReservation


3.4. Architecture logicielle et ses composants
AIin de permettre un deploiement Iacilite et une utilisation simpliIiee, la solution
logicielle retenue par DETI est basee sur la technologie Web multi-tiers et Iramework
Struts, representant dans la Iigure ci-dessous :
21

Figure . Architecture logicielle du systme CrimResevation

Le systeme se compose de :
Cte client : l`utilisateur utilise un navigateur de l`usager Web (Internet
Explorer, Netscape, Mozilla.) pour se connecter au systeme. Dans ce cas, le
navigateur de l`usager ne voit que les pages Web creees par le Iramework Struts.
Un serveur d`application : un serveur se basant sur technologie J2EE (JavaBean,
JSP, XML,.) avec Iramework Struts :
La Iigure ci-apres presente le modele MVC applique a l`application
CrimReservation. Le Contrleur prend en charge les interactions avec les
utilisateurs ; le Modele eIIectue les operations de la couche metier ; et la
Vue assure le retour d`inIormation Iormatees vers les utilisateurs.


Navigateur
usager



Tomcat
1ava
1DK
1.5
Struts
Couche
persistance


SGBD
Oracle




internet
Rseau interne
Le niveau client Le niveau application Le niveau donne

22

Figure 7. MJC dans crimReservation

Le systeme utilise une couche de persistance maison, a savoir une
presentation objet du modele relationnel de SGBD.
L`ensemble est execute dans un contexte de Tomcat. Bien entendu,
Tomcat est une application Java, il necessite donc la machine virtuelle.
Mais, dans le but d`utiliser l`autoboxing des vecteurs de contenue dans le
projet CrimReservation, on utilise la toute derniere version de Java 1.5.
Un serveur base de donnees : la base de donnee relationnelle de production est
un SGBD Oracle 9i. Les tables de la base de donnees sont presentees ci-apres :

ActionServlet
struts-conIig.xml
Action
Controleur
JSP
Vue
Modle
JavaBean
taglibs(.tld)
Struts
Client

requtes
Iooter
layout
menu

23

Figure 8. 1ables de base de donnes Crimreservation


days
daydate
nbparticipants
daycomment
roomscomment
usecredits
roomscredits
roomsreduction
roomscost
equipmentcomment
equipmentothercost
equipmentreduction
equipmentcost
snackcost
lunchcost
otherccomments
eventid
Iactured
subtotal
tps
tvq
total
day_id
clients
organismname
address
Iirstname
lastname
title
email
phone
Iax

aIIiliated
member
billingaddress
billingto
tpsnumber
tvqnumber
client_id
event
eventname
creationdate
lastupdatedate
duration
clientid

locationcondition
eventstatus
typeevenement
event_id
reservations
begintime
endtime
dayid
layoutid
roomid
reservation_id
lunchs
lunchtime
needscaterrer
cookname
perperson
dayid
lunch_id
days_equipments
quantity
day_id
equipment_id
equipments
name
Iulldayprice
halIdayprice
inIo
equipment_id
pauses
pausetime
dayid
pause_id
pauses_snacks
quantity
pause_id
snack_id
snacks
name
price
snack_id
layouts
name
description
layout_id
rooms_layouts
places
layout_id
room_id
rooms
name
halImemberIee
daymemberIee
halIIee
dayIee
roomtwoid
roomoneid
room_id
closedday
description
date
closedday_id
holidayday
description
date
holidayday_id
admin
name
login
admin_id
24
4. Rsultats et contribution
Apres une periode de developpement, le systeme CrimReservation est presente au client
et est installe sur des serveurs de CRIM. Quelques ecrans dans l`application
CrimReservation installee sur le serveur de CRIM representent dans l`annexe 1
Au point de vue technologique utilise dans l`application CrimReservation, Struts est un
Iramework d'application Web epousant l'approche MVC. En d`autre terme, il separe le
Model (la logique d'aIIaire) represente par des beans, la View (la vue) qui est en Iait un
ensemble de JSP creant de Iaon dynamique au niveau serveur html et, Iinalement, la
couche Control (les Servlets de contrle). Cette approche epouse parIaitement le
modele2 en multi-tiers. Dans l'univers J2EE, il est le Iramework le plus abouti et
complet. De plus, il devient tres populaire et sert souvent d'etalon lors d'une mesure
d'une application Web. L'approche MVC, bien qu'elle ne soit pas aisee, est une bonne
approche en genie logiciel. L'application Java peut tre executee sur toutes les machines
virtuelles Java. Elle peut donc tre executee sur les plateIormes Windows et Linux.
Nous avons privilegie le developpement sur poste de travail Linux, le deploiement sur
serveur Linux pour sa Iacilite, sa souplesse et sa robustesse. Tout utilisateur possedant
un acces reseau et un Iureteur, compatible avec le javascript 1.3, peut utiliser
l'application. C'est a dire la majorite des Iureteurs actuels. Nous avons pris un grand
soin de nous Iier a standard Web tel que le Html plutt qu'un quelqu'un navigateur
particulier.
Au point de vue d`utilisation, CrimReservation repond aux besoins speciIiques tels que:
permettre a plusieurs clients (internes ou externes) d'entrer dans le systeme pour
reserver des salles ;
permettre au gestionnaire ayant l'authentiIication d'entrer dans le systeme pour
approuver des reservations, ainsi que gerer des inIormations de reservation de
salle ;
permettre d'envoyer des Iactures aux clients et a la comptabilite de CRIM.
Actuellement, les procedures du systeme se Ionctionnent bien et l'interIace de
l'application evaluee est Iacile a utiliser. Notamment, l'application reste encore dans la
periode de test avant d'appliquer comme un produit reel.

Paticipant au projet CrimReservation avec des membres de l`equipe DETI, mes travaux
comprennent :
25
Apprentissage des JSP, des Servlets et des Java Beans
Apprentissage de l'environnement de developpement open source (Eclipse,
plugin, cvs)
Recherche de technologie J2EE et Iramework Struts pour le developpement de
l'application Web
SpeciIication des besoins et rencontre avec les clients
Analyse, en collaboration avec l'agent de recherche, du modele de donnees et de
la SGBD
Analyse, en collaboration avec l'agent de recherche, de la structure MVC
principale de l'application
Developpements des composantes MVC de la section usager. Cela comprend la
creation de multiple JSP, de Contrleurs, de Modeles et de Iichiers de
conIiguration XML.
Developpement de la localisation (anglais Iranais) de CrimReservation
Developpement des mecanismes de securites et de validation de l'application
Responsable autonome de la section administration "securisee" de
CrimReservation. Cela comprend la creation de multiple JSP, de contrleurs, de
modeles, de conIigurations de Iichiers XML ainsi que la speciIication et la
creation de tables dans la SGBD Oracle.
Responsable autonome de la presentation et du style de la section administration
de CrimReservation
Analyse, developpements de l'interIace personne machine et de la legende des
couleurs et motiIs associes aux diverses point de vue de la section
administrative.
Debuggage des deux sections de l'application crimReservation
Responsable autonome du deploiement l'application sur le serveur test du CRIM,
ainsi que sur le serveur de production du CRIM.
Presentatrice du projet devant les clients

26
Chapitre 3 : Infrastructure de CGRID
1. Contexte des travaux
1.1.Prsentation gnrale de CGRID
Le projet CGRID represente la premiere grille de modelisation distribuee de
reconnaissance de la parole pour le sous-titrage au Canada. CGRID permettra
l`apprentissage distribue des modeles acoustiques, visuels et de langage ainsi que la
decouverte et le partage des modeles entre participants de la grille.
Cette technologie permettra d`exploiter les donnees privees d`un participant de la grille
dans le but d`optimiser les perIormances de reconnaissance, sans compromettre de
droits proprietaires exclusiIs. Les donnees privees chez un site participant sont d`abord
utilisees localement pour l`etablissement d`un modele statistique. Celui-ci est ensuite
diIIuse aux autres sites chaque Iois qu`il est actualise. A chaque noud, les autres
modeles reus par le reseau sont combines avec le modele local et des donnees
independantes pour etablir une ponderation qui deIinit le modele courant propre au site.
Les eIIorts deployes pour le maintien et l`actualisation de chaque modele local sont
ainsi mis a proIit par tous les nouds participants du reseau. La Iouille de long-metrages
pour l`extraction de traits visuels du visage et associes au mouvement des levres d`un
locuteur, soit des caracteristiques independantes du bruit de Iond, va par ailleurs
contribuer a accrotre les perIormances (cette approche sera utilisee en partenariat avec
l`OIIice National du Film).
Pour apprecier le champ d`applications possibles, imaginons le scenario suivant: un
modele est construit a la Chambre des Communes, adapte au theme du systeme de
sante public. Un reportage de TVA porte sur le regime de l`assurance-maladie du
Quebec, mais un modele adapte n`existe pas chez le telediIIuseur. Le systeme de
recherche inter-nodal de modeles identiIie une liste de candidats possibles, le plus
similaire provenant du noeud Chambre des Communes. Le sous-titrage de l`emission
s`opere alors avec un modele de langage Iortement inIluence par le modele adapte au
systeme de sante public, provenant de la Chambre des Communes.
27

Figure 9. Services de Crille de Sous-1itrage distance (S1AD)


Capacite de l`equipe : Le succes des Iacettes recherche, developpement, test et
deploiement de CGRID, qui sera ultimement le garant de l`accessibilite universelle
pour les Canadiens a deIicience auditive (malentendants), repose sur l`utilisation d`une
grande de donnees et une bonne participation des partenaires en place. La Chambre des
Communes du Canada, l`Assemblee Nationale du Quebec, Le Groupe TVA et l`OIIice
National du Film du Canada representeront tous des sites participants de la grille
CGRID. Le CRIM collabore aussi avec l`Universite McGill, l`Ecole de Technologie
Superieure, le Regroupement quebecois pour le Sous-Titrage, l`UQAM et l`Association
des Industries de la Langue du Canada (AILIA) aIin de realiser ce projet de grille de
modelisation.
1.2.Travaux de DETI
C3GRID est un grand projet ayant la cooperation de plusieurs organismes, et est
developpe par des equipes de CRIM. Du point de vue de developpement, on divise ce
projet en cinq de sous-projets suivants:
InIrastructure GRID
Recherche et collection des donnees
Estimation des modeles
Sous-titrage a distance
Reconnaissance audio-visuelle
28
Dans le cadre du stage, on se preoccupe de l`elaboration d`une inIrastructure GRID.
L`equipe DETI est chargee d`installer cette architecture de grille basee sur le Globus
Toolkit, visant a partager des ressources sur toute grille. On va etudier la technologie
Grid Computing et Globus Toolkit pour construction d`une inIrastructure CGRID.
2. Crid Computing et Clobus 1oolkit
2.1.Dfinition
2.1.1. Qu'est-ce que le Crid Computing ?
Le terme de Grid Computing (ou grille en Iranais) est emprunte aux inIrastructures
logiques et physiques deployees par les Iournisseurs d'electricite et appelees grilles
energetiques. Le Grid Computing est une Iorme d'inIormatique distribuee, basee sur le
partage dynamique des ressources entre des participants, des organisations et des
entreprises dans le but de pouvoir les mutualiser, et Iaire ainsi executer des applications
de calcul intensiI ou des traitements de tres gros volumes de donnees. En eIIet, cette
technologie permet d'avoir acces a de nombreuses ressources inIormatiques telles que
des serveurs de calcul, serveurs de donnees, elements reseau, le tout avec la mme
Iacilite que le courant electrique lorsqu'un interrupteur est actionne.
Il y a plusieurs types des grilles diIIerentes. Dans ce cas, on considere le type des grilles
de calculs et des grilles de donnees :
Dans ce projet, on dispose d'importants moyens de calcul repartis sur
plusieurs sites geographiques. La mise en place d'une grille de calcul
concerne donc la mise en oeuvre de cette interIace aIin de Iaciliter l'acces
des utilisateurs a l'ensemble des serveurs de calcul sur un reseau interne.
Dans d`autres domaines, la grille est experimentee pour sa capacite a
distribuer les donnees sur les noeuds en terme de quantite (capacite de
stockage) et de qualite (diversite). La diversite de ces donnees peut
interesser de nombreux proIessionnels auxquels il Iaut permettre l'acces.
Par consequent, les chercheurs ont envisage de repartir les donnees sur
un ensemble de sites structures en grille. On parle ici de grilles de
donnees.
Pour le moment, plusieurs standards incompatibles cohabitent sur le terrain, s`appuyant
sur des langages et des protocoles diIIerents. Comme en inIormatique, les acteurs du
29
marche doivent se mettre d`accord sur des standards reconnus aIin de Iavoriser la
Iormation de grilles inter-entreprises.
2.1.2. Organisation virtuelle
Ce concept, developpe par l'equipe du projet Globus propose une deIinition des entites
morales partageant leurs ressources; les Jitual Organisation (VO). Il encourage les
utilisateurs et administrateurs de ce type d'equipement a mettre leurs ressources a
disposition d'organisations virtuelles. En echange leur organisation d'appartenance met
a leur disposition les ressources ou complements de ressources dont elle dispose.
L'organisation virtuelle represente un ensemble d'individus et/ou institutions partageant
des ressources aIin de resoudre des problemes communs, ceci dans un environnement
dynamique. Ce partage doit observer des regles deIinies par l'ensemble des participants;
quelles ressources partage-t-on ? Qui est autorise a partager des ressources? Et dans
quelles conditions d'utilisation ?
2.2.Architecture du Grid Computing
Comme le modele OSI et modele TCP/IP, on va representer l`architecture de grille de
calcul en couche par rapport d`architecture de protocol Internet (API)












Figure 1. Architecture du Crid Computing



Application
Collective
Ressource
Connectivity
Fabric Layer

Application
Transport
Transport
Transport
30

La couche Fabric inclut les protocoles et interIaces qui permettent l`acces aux
ressources partagees (ordinateurs, systemes de stockage, bases de donnees,
reseaux.). Cette couche est d`avantage une vue logique plutt qu`une vue
physique
La couche Connectivity deIinit les protocoles requis pour les speciIicites reseaux
d`une grille. Cette couche inclut la pile protocole IP ainsi que les protocoles
pour l`authentiIication et les autorisations. Le GSI (Grid Security InIrastructure)
de globus est a ce niveau. Il est base sur des protocoles tels que SSL, TLS,
X.509 et un systeme d'identiIication base sur un systeme de cles publiques
La couche Ressource deIinit les protocoles qui initialisent et contrlent le
partage des ressources locale. Les services disponibles a ce niveau sont :
Le GRIS (Grid Ressource InIormation Service) qui permet d'acceder aux
elements et de donner leur etat.
Le GRAM (Grid Ressource Allocation Management) qui permet de
reserver, de surveiller, d`allouer a distance et de contrler les ressources.
Des protocoles de transIert tel que GridFTP (une version modiIiee de
FTP)
La couche Collective deIinit les protocoles qui Iournissent des Ionctions
orientees systeme. On trouve par exemple le GIIS (Globus Index InIormation
Serveur) le gestionnaire de bande passante et le gestionnaire de ressources
La couche Application deIinit les protocoles et les services qui ciblent un
domaine ou une classe d`application particuliere.
Actuellement, les domaines d'application du Grid Computing sont multiples. Plusieurs
raisons justiIient leur utilisation de plus en plus systematique. Il Iaut d'abord insister sur
l'amelioration des perIormances et la reduction des cots en materiel dus a la
mutualisation des ressources. La possibilite de creer des organisations virtuelles
permettant l'etablissement de collaborations entre equipes de donnees et de ressources
rares et coteuses en Iait aussi partie. Neanmoins, on n`a pas, ce moment, une norme
commune pour l`architecture de grille. Une solution la plus populaire, qui aide a
installer une application du Grid computing, est Globus Toolkit.
31
2.3.Prsentation de Globus Toolkit
Les developpements ayant attrait a la grille et les progres en matiere de reseaux hauts
debits, ainsi que la diminution de cots d'exploitation de reseau a ouvert la voie a la
construction une couche logicielle intermediaire middleware qui permet
l'interoperabilite des systemes sur le reseau. Ainsi, le projet Globus est une solution et
represente le projet le plus reussi dans le domaine de l'application inIormatique, surtout
de l'application de grille.
2.3.1. Architecture gnral du Clobus 1oolkit
L'objectiI du projet Globus est de Iournir une bote a outils pour Iaciliter la creation
de grille et d'application utilisant leurs services. Au point de vue technique, Globus met
a disposition des utilisateurs une API speciIique leur permettant d'acceder aux
ressources de Iaon transparente. Au point de vue pratique, Globus est une interIace
utilisateur.
L'architecture generale de Globus est constituee de trois services elementaires nommes
piliers , chacun gerant une partie des contraintes.









Figure 11. Architecture de Clobus 1oolkit


Resource Management: allocation de ressource
InIormation Services : acces aux inIormations relatives a la grille, aussi appele
MataDirectory Service ou Monitoring Directory Service
Data Management : gestion des donnees qui sont importantes ou eloignees.
Chaque pilier cree une composante primaire de l'inIrastructure globale de Globus
Toolkit. Ce sont des modularites de Globus permettant une certaine independance entre
Resource
Management
Information
Services
Data
Management
32
les services, si bien qu'il est possible d'installer des composantes de Iaon isolee et
suivant ses besoins.
2.3.2. Services de Clobus 1oolkit
Monitoring and Directory Service (MDS)
L'element du Globus Toolkit charge de recuperer ces inIormations est le Monitoring and
Directory Service (MDS), base sur LDAP. Il permet la consultation d'inIormations
relatives aux entites de la grille, ou a une selection d'entre elles. MDS peut egalement
recuperer des inIormations concernant les caracteristiques des ressources tels que: type
de processeur, bande passante etc... Alors, MDS est en mesure de repondre precisement
aux questions suivantes: quel est l'etat general de la grille ? Quels sont les parametres
d'optimisation ? Etc...
MDS permet d'optimiser les collectes, les echanges et les acces aux inIormations grce
a un mecanisme reposant sur trois services:
GRIS (Grid Resource InIormation Service): des serveurs de GRIS sont charges du
services de description de ressource. Ils donnent des inIormations sur des ressources
speciIiques.
GIIS (Grid Index InIormation Service): des serveurs de GIIS sont charges du services
d'annuaire. Ils consultent des collections de ressources, sur un ensemble de serveurs
GRIS.
ReIerral Service (reIerral: Irequence de consultation), relie les serveurs GRIS et/ou GIIS
dans un seul espace de nom.
Dans la pratique Globus n'utilise souvent qu'un seul serveur GIIS pour optimiser les
perIormances des reponses aux requtes, car en Iait l'environnement d'une organisation
est relativement statique en terme d'inIormation.

Grid Security Infrastructure (GSI)
Ce qui concerne la securite, Globus Toolkit possede son propre module, le Grid
Security InIrastructure (GSI). Il est charge de gerer les autorisations au niveau des acces
aux ressources. Il doit egalement assurer l`identiIication des utilisateurs, l`integrite et la
conIidentialite des messages, attribuer les droits.
Le GSI est l'inIrastructure mise en oeuvre par Globus pour traiter les contraintes de
securite sur une grille. Elle rassemble tous les mecanismes de securisation entre les
entites communicantes (utilisateurs, stations de travail, serveur de calcul ...). En pratique
33
GSI encapsule le logiciel libre OpenSSL lequel implante le protocole SSL, SSL/TLS,
certiIicat X.509, GSS API ...
Sur le plan technique, le parametrage de GSI constitue la premiere intervention de
l'administrateur de la grille. L'administrateur veut planter une grille de Iaon isolee. Il
Iaut modiIier les parametres par deIaut de Globus aux besoins appropries. En pratique,
il existe un paquetage complementaire, nomme SimpleCA, qui en permet l'intervention.

Grid Ressource Allocation Manager (GRAM)
Globus Toolkit est un systeme d'exploitation. Il necessite un planiIicateur de tches.
C'est le Grid Ressource Allocation Manager (GRAM) qui est charge de cette lourde
Ionction.
En eIIet, il s'agit d'une Ionction plutt complexe, car son rle n'est pas simplement de
lancer et surveiller les tches a distance, mais il doit aussi :
Trouver les ressources disponibles. Pour cela il utilise le langage RSL (Ressource
SpeciIication Language) qui permet de deIinir Iacilement les demandes.
Les repartir de la Iaon la plus optimale, aIin d`assurer un Ionctionnement et un temps
d`execution optimal.
GridFTP
La mise en place d'une grille de calcul se distingue de l'inIormatique distribuee
conventionnelle par l'etendue geographique du partage des ressources, et dans certains
cas l'orientation haute-perIormance. En eIIet, on parle, ici, de reseaux d'ordinateurs a
l'echelle nationale voire internationale, et les solutions sont optimisees pour repondre au
mieux a ces contraintes. Globus Iournit un troisieme paquet, le Data Management ,
dont le rle est de gerer les donnees reparties sur des reseaux etendus. Ce dernier integre
l'outil GridFTP qui se charge des transIerts de Iichiers.
AIin de mieux comprendre l'architecture de globus avec ses services, on presente ainsi
une Iigure ci-dessous:

34

Figure 12. L'architecture de globus avec des services


3. Infrastructure C'CRID
3.1. Architecture gnrale
L`inIrastructure de grille C3GRID est construite par l`equipe DETI en utilisant la
solution de middleware Globus Toolkit en version 2.4.
DETI est responsable de une grille interieure en maniere d'installer et de conIigurer des
services Globus Toolkit 2.4 sur des serveurs du CRIM, ainsi que deployer une
inIrastructure de grille exterieure entre le systeme de CRIM et des partenaires
participants du projet c3grid.
Ci-dessous, on presente cette inIrastructure generale de c3grid:



Gatekeeper
Job Manager
Process
GRAM
Ressources
GRIS
GIIS
MDS GridFT
FTP Server

Proxy
Job Allocation
Job
Ressource
Finding
Data Crontab
Data TransIert
User
GSI
LDAP
RSL/HTTP
GridFTP/HTT
PS/

Client
35

Figure 13. Infrastructure gnrale de c3grid

Pour que le systeme Ionctionne, on a installe les services suivants sur chaque noeud de
la grille:
Le GRAM sert a executer des programmes a distance. Dans le cas du
projet, des algorithmes de reconnaissance de la parole.
Le GridFTP sert a telecharger des donnees a distance. Dans le cas du
projet des sources de donnees audio et visuelle.
Le GRIS sert a connatre l'etat du serveur. Dans le cas du projet, le
systeme de Iichiers, la memoire, le processeur...
Le monitoring sert a surveiller en temps reel l'activite des serveurs de
mme que de permettre la recherche dans les donnees de logs. Il permet
de savoir ce qui se passe a l'instant sur le serveur. De plus, il oIIre une
vue arborescente du GIIS au GRIS.
3.2. Services sur chaque noud de grille
Le CRIM est un client demandant l'execution et le transIert de donnees sur les
ordinateurs distant dans le projet c3grid. Notamment, CRIM participe egalement a la
grille comme un noeud de surveillance, il est necessaire d'avoir une inIrastructure

36
interne et de creer un mecanisme de securite et de gestion des inIormations dans toute
grille de c3grid. DETI est donc charge a lancer une modele interne en installant des
services de globus toolkit 2.4 et en sortant un monitoring visant a obtenir le statut des
ressources sur la grille.
D'abord, le mecanisme de securite sur la grille est le service GSI (Grid Security
InIrastructure), grce au paquetage SimpleCA, on a cree une autorite de certiIication
(CA: CertiIicate Authority) sur un noeud (masternode) de CRIM qui est capable de
certiIier des requtes, ainsi que a genere un Iichier qui permet l'installation de ce CA sur
une autre machines. Ce CA devient celui proprietaire pour assurer la securite sur la
grille.
AIin de transIerer des donnees entre noeuds, le service GridFTP est installe sur chaque
noeud.





Figure 14. l'accs de donnes avec CridF1P

Le GRAM est installe et demarre sur tous les noeuds de grille. AIin de lancer
l'execution un travail sur un tel noeud a partir d'un autre noeud de la grille, la Iigure
suivante presente une mission de GRAM










Figure 15. Excution un travail avec CRAM

node-1.crim.ca

node-1.crim.ca

masternode.crim.c
a
masternode.crim.c
a
GridFTP
GridFTP
Demande de transIert du Iichier modele
Reception du Iichier modele
masternode.crim.ca

GRAM
Demande d'execution d'un travaill
Execution
Generation du Iichier
modele la presse
node-1.crim.ca

masternode.crim.ca

GRAM
ConIirmation du succes de la
node-1.crim.ca

37
Le service MDS installe permet de recuperer des inIormations des statuts des noeuds sur
la grille:

Figure 1. ressources avec MDS

EnIin, un Monitoring est construit pour gerer des activites des services en temps reel a
travers des donnees de log. L`operation de monitoring represente dans la Iigure
suivante :














Figure 17. Mornitoring c3grid

Mds-Device-Group
GIIS
GRIS
Enregistrement
Core InIormation
Provider
Processeur
Memoire
Systeme de Iichiers
Reseau
Systeme d'exploitation
MDS
Mds-SoItware-Deployment
Autre InIormation
Provider
masternode.crim.ca
node-1.crim.ca
Job-Manager-Fork
PerIormance
node-2.crim.ca
node-3.crim.ca


GridFTP

/var/log/messages
GRAM

$GLOBUS/var/sys
LDAP

Service MDS
XML

MonitorConIig.xml
DOMServ
ices
TreeServ
ices
LogParse
r
LogMoni
tor
RSLPars
er
RSLMon
itor
MDSSer
vices
DomAna
lyser
LogParse
r
LogMoni
tor
FileServi
ces
Systeme

Abstract
Table
GridFTP

/var/log/messages
FileServi
ces
Systeme

JTable

model

Swing
View









38
4. Rsultat et contribution
Le Grid et la technologie Web service sont eIIicacement appliques dans plusieurs
domaines scientiIiques et d'aIIaires. Cependant, c3grid est connu comme la premiere
grille de modele distribue de reconnaissance de la parole au Canada pour le sous-titrage
automatique. Cette approche de modelisation distribuee est completement nouvelle. De
plus elle met a proIit des avancees recentes dans le domaine de la reconnaissance de la
parole, comme l`apprentissage legerement supervise et la regression lineaire sur les
parametres d`entree. Donc, une inIrastructure de grille de modele distribue de la parole
est construit par DETI, est en train de deployer entre CRIM et des partenaires,
s`appuiant sur la technologie de grille et une solution populaire, Globus Toolkit.

Mon stage a eu lieu dans l`equipe DETI (Developpement Et Technologies Internet) qui
est responsable de constituer l'inIrastructure de la grille de CGRID. Mon travail est
d'etudier le projet, les technologies concernees et de participer a developper le
monitoring "temps reel" de CGRID.


39
Entre autre :
Rencontre avec le client et speciIication des besoins
Analyse, en collaboration avec l'agent de recherche, du modele MVC de
l'application Monitor.
Analyse et conception autonome de l'architecture de la section statique de
l'application monitor, ainsi que le developpement du modele de donnees XML
correspondant.
Responsable autonome du developpement de la section statique du monitor.
Cela comprend les contrleurs, la vue (Swing) et le modele sous-jacent.
Developpement du module de presentation du MDS de la section dynamique.
Cela comprend la creation d'un arbre de donnees image de la base de donnees
LDAP du GIIS, ainsi que la creation des methodes recursives pour acceder aux
elements et attributs de l'arbre.
Developpement de la vue en arborescence (JTree) de l'arbre de donnees ainsi
que l'implementation des evenements associes a la selection et le
raIrachissement des nouds
Developpement de la localisation (anglais, Iranais) de l'application.

40
Chapitre 4 : Conclusion gnrale
Nous avons presente des travaux occupes dans deux projets reels du CRIM. Le resultat
du systeme CrimReservation repond aux besoins pour gerer des reservations des salles
du CRIM, surtout il est prealable de permettre de realiser des applications Web
commerciales de plus grande ampleur basee sur le Iramework Struts et des technologies
d'internet au CRIM. Neanmoins, ce Iramework connat certaines limitations qui ont du
tre corrigees, notamment l'utilisation d'une seule instance de contrleur par plusieurs
clients. Ceci implique qu'un contrleur ne doit pas avoir de proprietes sans quoi elles
peuvent tre ecrasees par les diIIerentes sessions d'usagers.
En basant sur technologie de grille de calcul et un middleware Globus Toolkit,
l`inIrastructure C3GRID est en voie d'exploiter et d'implementer sur chaque noeud de
grille. Ce resultat nous avons apportes des experiences de communications avec des
partenaires, et de deploiement des grands systemes.
Personnellement, en integrant a l`equipe DETI visant a etudier et developper quelques
modules de deux projets, j'ai l'occasion de travailler en l`equipe dans un environnement
industriel reel, d`acquerir des connaissances dans de divers domaines, tels que : Struts,
MVC, XML, Java Swing, Grid Computing. C`est aussi l`occasion que je peux proIiter
de la vie dans un pays inconnu.
41
Annexe 1: CrimReservation
Session d`utilisateur


42


43


Session d`administrateur


44




45

46
Annexe 2: Monitoring C3GRID
Session statique

Session dynamique

47
Rfrences
|1| Sakari Mattila, 'Multi-tier application architectures, draIt, April 1996.
|2| Ian Foster, Carl Kesselman, Steven Tuecke, 'The Anatomv of the Grid, Intl J.
Supercomputer Applications, 2001.
|3| James Goodwill, 'Mastering Jakarta Struts, Wiley Publishing, Inc, 2002.
|4| Vertors Berstis, ' Fundamentals of grid computing ', Redbook paper IBM, 2002.
|5| Thomas Sandholm, Jarek Gawor, 'Globus toolkit 3 Core A Grid Servive Container
Framework, July 2003.
|6| S.Yuen, K.Kato, D.Kato, S.Yamamoto, and K.Agusa, 'A Testing Framework for
Web Applications based on the MJC model with Behavioral Descriptions", Proceeding
oI the 2
nd
ICITA, 2004.