Rapport de Stage - Arnaud Limouzin-1

Embed Size (px)

Citation preview

4, rue Merlet de la Boulaye BP 30926 49009 Angers cedex 01 - France Tl. : +33 (0)2.41.86.67.67 http://www.eseo.fr

Universit de Genve 24 rue du Gnral-Dufour CH - 1211 Genve 4 http://www.unige.ch

RAPPORT DE STAGETYPE DE STAGE : Stage Technique I2 AUTEUR:Arnaud LIMOUZIN

DATES

: Du 01 juin 2008 au 30 septembre 2008NIVEAU DE CONFIDENTIALITE

Aucune

Niveau I

Niveau II

Niveau III

TITRE DU STAGERcriture en JSF de lapplication web Panneaux dAffichage prcdemment crite en JSP

Responsable de stage : Mme

Aurlie Schrder

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 Remerciements

Je tiens remercier tout particulirement et tmoigner toute ma reconnaissance aux personnes suivantes, pour lexprience enrichissante et pleine dintrt quelles mont fait vivre durant ces quatre mois au sein de lUniversit de Genve :

Monsieur Pierre-Yves Burgi pour son accueil et la confiance quil ma accords ds mon arrive lUniversit.

Madame Aurlie Schrder, ma tutrice, pour mavoir intgr rapidement au sein de luniversit et mavoir accord toute sa confiance ; pour le temps quelle ma consacr tout au long de cette priode, sachant rpondre toutes mes interrogations ; sans oublier sa participation au cheminement de ce rapport.

Mademoiselle Arielle Moro et Messieurs Yvan Schmied, Florent Glck, Cdric Bontron, Georges Lavoisier, ainsi que lensemble du personnel de lUniversit pour leur accueil sympathique et leur coopration professionnelle tout au long de ces quatre mois.

LIMOUZIN Arnaud

Page 2

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 SommaireRemerciements ....................................................................................................................................... 2 Synthse du stage.................................................................................................................................... 4 LUniversit de Genve (UNIGE) ........................................................................................................... 5 LUniversit en chiffre ......................................................................................................................... 5 Missions ............................................................................................................................................... 5 Historique ............................................................................................................................................ 6 La recherche ........................................................................................................................................ 6 Budget ................................................................................................................................................. 7 Contexte international ........................................................................................................................ 7 Logements ........................................................................................................................................... 7 Division informatique : NTICE.............................................................................................................. 8 Prsentation du stage ............................................................................................................................. 9 Contexte .............................................................................................................................................. 9 Sujet ................................................................................................................................................... 10 Cahier des charges............................................................................................................................. 10 Environnement technique ................................................................................................................. 10 Equipe de travail ................................................................................................................................ 11 Planning dorganisation ..................................................................................................................... 11 Responsabilits .................................................................................................................................. 11 Droulement du stage ........................................................................................................................... 12 Situation ............................................................................................................................................ 12 Quelques notions de JSF.................................................................................................................... 13 Dtail des tapes de ralisation de lapplication .............................................................................. 15 Problmes rencontrs ....................................................................................................................... 20 Solutions mises en uvre ................................................................................................................. 21 Fonctionnement de lapplication ...................................................................................................... 27 Conclusion ............................................................................................................................................. 33 En conclusion ................................................................................................................................. 33 Les apports du stage en cinq points cls ........................................................................................... 33 Annexes ................................................................................................................................................. 34 Documents ........................................................................................................................................ 34 Bibliographie...................................................................................................................................... 46 CV ...................................................................................................................................................... 46

LIMOUZIN Arnaud

Page 3

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 Synthse du stage CONTEXTEL'Universit de Genve communique auprs de sa communaut grce des panneaux d'affichage rpartis dans trois de ses btiments principaux. Cinq facults, des instituts interfacultaires et le service aux tudiants (DASE) utilisent ce systme de communication. Chaque structure a nomm un certain nombre de rdacteurs qui utilisent une interface web pour envoyer ses messages sur les crans. Cette interface offre diverses fonctionnalits suivant le profil de l'utilisateur (rdacteur ou administrateur) afin de pouvoir modifier les messages, y compris ceux en cours de diffusion, pour grer les utilisateurs, les messages, les images etc ... Suite une directive, il est ncessaire de modifier l'application actuelle et dinstaurer un workflow : le message du rdacteur doit tre vrifi puis autoris par un des validateurs de l'Universit avant d'tre mis sur les crans.

SUJETRcriture en JSF de linterface web Panneaux dAffichage prcdemment crite en JSP/Servlet, portant sur la gestion de messages diffuser sur des crans gants. Par ailleurs, il faut intgrer de nouvelles fonctionnalits telles que la possibilit de prvisualiser des messages et la validation de ceux-ci travers un workflow. Lamlioration de lergonomie fait aussi partie des tches demandes.

RESULTATSAprs quatre mois de remise en forme de lapplication, celle-ci est fonctionnelle et pourra tre bientt mise en production. Toutes les fonctionnalits exiges ont t intgres et le rendu de lapplication a t considrablement amlior. Le dveloppement sest effectu sur Netbeans 6.1 et des librairies telles que MyFaces (Apache) et Richfaces (JBoss) ont tendu les possibilits offertes par le framework JSF. Cette dernire librairie offre beaucoup de nouveaux composants utiliser mais le peu de documentations disponibles pour lemployer impose de passer du temps pour la maitriser correctement. Ma responsable de stage a pris connaissance du programme et de sa structure, et est maintenant capable de poursuivre le dveloppement ou la correction de bugs dtects ultrieurement.

LIMOUZIN Arnaud

Page 4

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 LUniversit de Genve (UNIGE)Cre il y a prs de 450 ans, l'Universit de Genve est aujourd'hui la deuxime plus grande haute cole de Suisse. Fleuron de la cit de Calvin, l'institution jouit d'un rayonnement international privilgi et cultive son ouverture au monde. L'Universit de Genve se distingue par son patrimoine intellectuel, un enseignement de qualit couvrant l'essentiel des domaines des sciences, des arts et des lettres ainsi que par une recherche de pointe.

LUniversit en chiffreEn 2007, lUNIGE c'est : 7 facults, 1 cole et 1 institut (Sciences, Mdecine, Lettres, Sciences conomique et sociales, Droit, Thologie, Psychologie et sciences de lducation, ) 3 instituts rattachs l'Universit 8 centres et instituts interfacultaires 3 ples de recherches nationaux 13'364 tudiants dont 10'509 en tudes de base 5'200 collaborateurs dont 2'516 femmes (48.4%) 213 programmes de formation continue pour 8322 tudiants 3'359 diplmes dlivrs dont 916 Bachelors, 428 Masters et 255 doctorats

MissionsL'Universit a trois missions principales, dfinies dans la Loi sur l'Universit: Lenseignement LUniversit offre des cursus de formation de base, approfondie et continue, organiss selon le principe du systme europen des crdits (European Credit Transfer and Accumulation System ECTS). 30 crdits ECTS sont normalement acquis aprs un semestre dtudes. La formation de base est compose de deux cursus dtudes: le baccalaurat universitaire (bachelor) qui quivaut 180 crdits ECTS et la matrise universitaire (master) qui quivaut, selon les cas, 90 ou 120 crdits ECTS. La recherche Le but principal de la recherche est de promouvoir la connaissance fondamentale. Lorsqu'un domaine de recherche est porteur de dveloppement de savoir-faire, l'institution s'engage galement dans la recherche applique. L'Universit de Genve est prsente dans la plupart des secteurs de pointe et s'est engage depuis quelques annes dans des domaines pluri- et interdisciplinaires. Le service la cit L'Universit de Genve offre des prestations de service la communaut en matire de formation continue, de conseils-expertises et de recherche. Elle assure notamment des prestations de service l'intention des entreprises publiques et prives, principalement sous forme d'tudes, d'analyses et de recherches commandites. L'institution intervient aussi en matire de transfert de technologies afin de transformer les inventions de ses chercheurs en produits utiles pour la socit.

LIMOUZIN Arnaud

Page 5

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008HistoriqueL'Universit de Genve est une universit pluricentenaire qui se distingue par son patrimoine intellectuel, un enseignement de qualit couvrant l'essentiel des domaines des sciences, des arts et des lettres ainsi que par une recherche de pointe. Cre en 1559 l'initiative de Jean Calvin, l'Acadmie de Genve est conue comme un sminaire thologique et humaniste. Au sicle des Lumires, elle devient une ppinire de savants illustres et s'ouvre de nouvelles disciplines comme les sciences physiques et naturelles, le droit et la philosophie. Lors des bouleversements politiques et sociaux du XIXe sicle, elle perd ses allgeances ecclsiastiques. En 1873, avec la cration d'une facult de mdecine, elle est rige en universit. Depuis, elle ne cesse de s'ouvrir de nouveaux domaines pour rpondre aux besoins de formation et de recherche, tout en maintenant avec force ses valeurs humanistes.

La rechercheEn 2006, lhebdomadaire Newsweek plaait lUniversit de Genve au 3e rang europen de son classement des meilleures universits gnralistes, aprs Cambridge et Oxford. Les secteurs phares de la recherche lUNIGE sont: les sciences de la vie (biologie molculaire, bioinformatique, etc.), la physique des particules lmentaires, l'astrophysique, les sciences sociales et conomiques, la chimie, la biochimie et la biophysique. LUNIGE est aussi la maison-mre de trois ples de recherche nationaux en gntique (Frontiers in Genetics), en sciences des matriaux (MaNEP) et dans ltude des motions (Affectives Sciences). Elle est le partenaire privilgi de l'Institut de hautes tudes internationales et du dveloppement (IHEID), qui a pour vocation danalyser les enjeux du monde contemporain avec indpendance.

Au plan national, lUNIGE obtient les meilleurs rsultats depuis plusieurs annes entre toutes les hautes coles universitaires suisses auprs du Fonds national de la recherche scientifique. Au niveau international, lUNIGE a doubl le nombre de ses publications dans les revues scientifiques durant les vingt dernires annes. En matire de biologie molculaire, limpact des recherches menes Genve situe lUniversit au deuxime rang mondial, directement derrire Princeton. La physique genevoise occupe pour sa part le sixime rang mondial. La communaut universitaire genevoise bnficie en outre des avantages lis une universit de longue tradition avec un accs de riches bibliothques et dextraordinaires documents d'archives comme les archives Piaget. De plus, elle profite dun esprit d'innovation dont tmoignent des chercheurs de pointe comme Michel Mayor, avec la dcouverte des plantes extrasolaires, Denis Duboule avec la gntique, Nicolas Gisin avec la tlportation quantique. Grce l'excellent niveau de leurs travaux, les chercheurs de l'UNIGE sont des partenaires convoits par l'industrie comme en tmoignent les nombreux projets de recherche collaborative avec des partenaires industriels suisses et internationaux.

LIMOUZIN Arnaud

Page 6

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008BudgetLes dpenses annuelles globales de lUniversit sont de lordre de 627 millions de francs suisses soit environ 395 millions deuros. LUniversit de Genve dispose de trois sources de financement distinctes: Le budget Etat (78%), comprenant lallocation cantonale, la subvention cantonale relative aux tudes et btiments ainsi que des revenus qui sont composs en particulier de la subvention de base de la Confdration et de la contribution des cantons non universitaires aux tudes de leurs ressortissants. Le Fonds national suisse de la recherche scientifique (FNS), reprsentant 10% du budget global. Les fonds tiers (12%). De diffrentes natures, ils peuvent tre aliments par mandats de recherche (privs ou publics), des donations et legs, par fondations prives ou autres institutions vocation scientifique et sont en gnral affects des buts prcis.

-

Le budget ordinaire correspond au budget de fonctionnement permettant linstitution dassurer ses prestations de base denseignement et de recherche. Le FNS soutient des projets spcifiques de recherche au sein des universits suisses sur concours. Enfin, lUniversit entretient des liens avec les milieux conomiques et industriels pour lesquels elle ralise des mandats de recherche, des tudes et des expertises.

Contexte internationalConsidre comme la plus petite des grandes capitales, Genve, qui accueille une trentaine d'organisations internationales dont l'ONU, l'OMC, l'OMS ou l'OIT et plus de 300 organisations non-gouvernementales et missions permanentes d'Etats trangers, jouit d'une vocation internationale. Cet environnement multiculturel se reflte l'Universit de Genve qui accueille environ un tiers d'tudiants de nationalit trangre et mne une politique trs active en matire de relations internationales. Elle participe notamment de nombreux accords, rseaux et programmes bi- ou multilatraux tels qu'Erasmus ou Socrates. Ces partenariats prennent des formes diverses tels que des changes d'tudiants ou d'enseignants, des recherches et formations communes, une prsence dans le cadre de manifestations internationales, etc. En outre, les tudiants de l'Universit de Genve bnficient des liens troits entretenus avec l'Institut des hautes tudes internationales et du dveloppement (IHEID) et l'Institut cumnique de Bossey.

LogementsAvec un taux de logements vacants infrieur deux pour mille, le march immobilier genevois est traditionnellement tendu. Les loyers sont donc coteux et la recherche d'un logement souvent problmatique. En dpit des efforts long et moyen terme de l'Universit, les diverses rsidences universitaires peinent satisfaire toutes les demandes des tudiant-e-s. Devant cette situation difficile, l'Universit a lanc, l'instar des annes prcdentes, une campagne de sensibilisation auprs de la population genevoise. Son objectif : trouver suffisamment de logements chez les particuliers et proposer aux tudiant-e-s de prendre directement contact avec ces personnes.

LIMOUZIN Arnaud

Page 7

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Division informatique : NTICELe Division informatique (DINF) soutient les missions de lenseignement et de la recherche de lUniversit ainsi que son fonctionnement administratif, en lui proposant des services informatiques de qualit bass sur un rseau performant et sur des technologies de pointe. La DINF offre aux utilisateurs des prestations informatiques qui diffrent suivant leur statut. On distinguera les prestations destines aux tudiants et tudiantes de celles sadressant aux personnels administratifs et acadmiques. La division a galement pour objectif prioritaire de renforcer les synergies avec les facults. Rattache la direction gnrale de lUniversit, la DINF est compose de 7 services : - Scurit informatique - Helpdesk - Organisation et ProjectOffice - Dveloppement et Maintenance - Production et services - Nouvelles technologies de linformation, de la communication et de lenseignement (NTICE) - Administration et Finances NTICE La DINF, et plus particulirement la section NTICE, met disposition de la communaut universitaire les dernires technologies du numrique pour l'enseignement, la recherche et l'administration. L'utilisation de ces technologies implique une grande diversit d'activits et de pratiques, mises en uvre par le biais d'une multitude de plates-formes et de moyens de communication Elle gre et dveloppe les outils ncessaires permettant le travail collaboratif distance, l'e-learning, la gestion de sites Web, la numrisation de cours et confrences avec leur diffusion en temps rel, ainsi que l'hbergement des documents numriques de toute sorte.

LIMOUZIN Arnaud

Page 8

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 Prsentation du stageContexteL'Universit de Genve communique auprs de sa communaut grce des panneaux d'affichage (crans gants) rpartis dans les halls et couloirs des trois btiments principaux de lUniversit de Genve. Cinq facults, des instituts interfacultaires et le service aux tudiants (DASE) utilisent ce systme de communication. L'architecture est compos du logiciel commercial TV-BUILDER, de la socit Kewego et d'une application web dvelopp par le service NTICE. TV-BUILDER permet de lire dans une base de donnes les informations ncessaires (titre, texte, image, image de fond et couleur du titre en fonction de la facult) pour construire les messages envoyer vers un ou plusieurs panneaux d'affichage (choix du ou des btiments) en fonction de l'heure indique (dates et heures de dbut et de fin). C'est sous TV-BUILDER que les templates ont t crs et la base de donnes doit les respecter. L'interface web qui permet des utilisateurs non informaticiens (secrtaires ou assistants des professeurs, bibliothcaires par exemple) d'crire simplement les messages grce un formulaire qui enverra ses informations vers la base de donnes que lit TV-BUILDER. Quelques autres fonctionnalits permettent de modifier les messages, grer les utilisateurs et les messages.

Chaque structure a nomm un certain nombre de rdacteurs qui utilisent une interface web pour envoyer ses messages sur les crans. Cette interface offre diverses fonctionnalits suivant le profil de l'utilisateur (rdacteur ou administrateur) afin de pouvoir modifier les messages, y compris ceux en cours de diffusion, de grer les utilisateurs, les messages, les images etc ...

LIMOUZIN Arnaud

Page 9

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Suite une directive, il est ncessaire de modifier l'application actuelle et dinstaurer un workflow : le message du rdacteur doit tre vrifi puis autoris par un des validateurs de l'Universit avant d'tre mis sur les crans.

SujetCe stage a pour but de rcrire en JSF linterface web Panneaux dAffichage prcdemment crite en JSP/Servlet, portant sur la gestion de messages diffuser sur des crans gants. Par ailleurs, il faut intgrer de nouvelles fonctionnalits telles que la possibilit de prvisualiser les messages et la validation de ceux-ci travers un workflow. Lamlioration de lergonomie est aussi un point non ngligeable lors du dveloppement.

Cahier des chargesLe projet consiste : Prendre en main les JSF avec l'criture d'un prototype avec un formulaire identique celui de l'application (1 mois environ) Analyser la rcriture de l'application en JSF en intgrant le workflow Rcrire l'application en JSF en intgrant le workflow

Le stagiaire travaillera au sein de l'quipe NTICE (Nouvelles Technologies de lInformation, de la Communication, et de lEnseignement). Le stagiaire devra prendre contact avec l'interface existante et son environnement : serveur Tomcat, serveur MySql, environnement de test et de production sur virtual hosts, code en JAVA et JSP. Ensuite, si ce n'est pas dj acquis, il devra apprendre les JSF et faire une sorte de mini-pilote qui simule les fonctionnalits principales actuelles pour dmontrer sa matrise de la technologie. Une fois le pilote ralis, il devra rcrire l'interface web en JSF tout en tenant compte du nouveau cahier des charges qui intgre le workflow, savoir : Envoi de message automatique avec le lien vers le message aux validateurs Rponse automatique au rdacteur pour informer si le message est valid ou non Permettre aux validateurs de visualiser les messages dposs par les rdacteurs

Description des rles des personnes accdant lapplication panneaux daffichage : Utilisateur : peut crire un message, effectu une recherche ou modifier un message. Administrateur : Utilisateur + gestion des utilisateurs et administration des messages. Validateur : Utilisateur + validation des messages (workflow) Super Administrateur : Utilisateur + Administrateur + Validateur

Environnement techniqueUtilisation de Apache 2, Tomcat 1.6, Mysql 5 et phpmyadmin Dveloppement sur NetBeans 6.1 Version de Java : 1.6 Utilisation du framework JSF (Java Server Faces). A cette fin, il a t dcid dutiliser les librairies suivantes : MyFaces dApache et Richfaces de JBoss. API Javamail pour lenvoi de mail Utilisation de VMWare

LIMOUZIN Arnaud

Page 10

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Equipe de travailLe stage se droule en autonomie. La personne responsable du stage aide ponctuellement pour lorientation du projet, les choix techniques et pour contrler lavance et la bonne marche du dveloppement. Il est donn une grande libert au stagiaire pour limplmentation surtout sur la nouvelle ergonomie mais il se doit de conserver les fonctionnalits dj prsentes : lutilisateur ne doit pas tre trop perturb par le changement de version. Il sera ncessaire de faire un compte rendu hebdomadaire de ce qui a t ralis au cours de la semaine, des difficults rencontres et de ce qui est prvu pour la semaine suivante.

Planning dorganisationDans un premier temps, le stagiaire doit prendre connaissance de l'interface existante et de son environnement : serveur Tomcat, serveur MySql, environnement de test et de production sur virtual hosts, code en JAVA et JSP. Il sera ncessaire de comprendre le fonctionnement de lapplication afin de pouvoir le reproduire. Lorsque ceci aura t ralis, il devra apprendre lutilisation du framework JSF (Java Server Faces) et faire des choix sur son implmentation (choix de MyFaces et Richfaces). Tout en tudiant JSF, le stagiaire devra crire un prototype avec un formulaire identique celui de l'application (sauf pour lergonomie) qui simule les fonctionnalits principales actuelles pour dmontrer sa matrise de la technologie. Les tches voques ci-dessus seront effectues ( priori) durant le premier mois. Dans un second temps, il faudra rcrire lapplication entire en JSF aprs avoir analyser la manire dintgrer le workflow dfini en annexe (figure 1). Il sera aussi possible de prvisualiser son message avant enregistrement et aprs pour consultation. Cette fonctionnalit gnre une image quasiment identique ce que crera loutil TV Builder sur les crans gants.

ResponsabilitsLe stagiaire aura la responsabilit des choix des librairies Java utilises (ex : Richfaces) et devra justifier ceux-ci auprs de la personne responsable du stage. Il lui est laisser son apprciation les choix vis--vis de la nouvelle ergonomie. A la fin du stage, une brve documentation des parties de lapplication juges compliques devra tre fournie afin de faciliter la comprhension du lecteur. Il est bien entendu vident que lapplication doit tre maintenable et pour cela, une explication orale dtaille du fonctionnement et des subtilits sera prvoir.

LIMOUZIN Arnaud

Page 11

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008 Droulement du stageSituationLUniversit de Genve est compose de plusieurs btiments rpartis au sein de la ville. Pour ma part, mon lieu de travail tait situ au cur de Genve permettant ainsi un accs rapide via les transports en commun. De plus, ne possdant pas de contraintes particulires au niveau des horaires (ncessit de faire quarante heures par semaine), cela me permettait duvrer mon rythme et efficacement. Pendant mon premier mois lUniversit de Genve, jai travaill sur un ordinateur portable jusqu ce que jaie ma place de travail dfinitive. En effet, jai chang de place quatre fois avant davoir un poste dfinitif en consquence de quoi il tait ncessaire de travailler sur un ordinateur transportable. Ceci a aussi impliqu de rinstaller les outils de dveloppement lorsque jai obtenu ma propre machine. Lors de ce stage, je disposais dune grande autonomie et pouvait exposer librement mes ides pour amliorer lapplication. Aprs avoir dmontr mes comptences au travers dun mini-pilote qui simule les fonctionnalits principales de lancienne version de lapplication, jai bnfici dune grande libert dans les choix dimplmentation. Cependant, les points importants tels que la structure du programme en couches indpendantes ou le workflow ont t dcid en commun accord avec ma tutrice de stage, Aurlie Schrder, et les personnes impliques dans le projet. Afin de suivre rgulirement lavance des travaux, je devais faire un compte rendu hebdomadaire des tches effectues au cours de la semaine, des divers problmes rencontrs et de ce que je prvoyais pour la semaine suivante. Le dtail des heures effectues au cours de la semaine tait aussi not au travers dune application nomm PSNext, interne lUniversit de Genve.

Figure A Le logiciel PSNext Partageant la mme pice avec trois autres personnes, jai bnfici dune bonne ambiance de travail et jai pu compter ponctuellement sur leur aide lorsque jen avais besoin tant sur le plan humain que technologique. Dans un autre domaine, jai t surpris de constater que pour connecter mon ordinateur au rseau de lUniversit, on ma attribu une adresse IP publique. Ceci avait lavantage de me permettre daccder mon serveur sur ma machine fixe depuis lextrieur avec mon ordinateur portable. Jai pleinement apprci ces quatre mois lUniversit de Genve o jai pu travailler sur un projet intressant et rencontrer des personnes sympathiques et accessibles.

LIMOUZIN Arnaud

Page 12

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Quelques notions de JSFAvant de rentrer dans le vif du sujet, il est ncessaire de possder quelques connaissances sur le framework Java utilis au cours de ce stage, c'est--dire JSF (Java Server Faces). Voici une approche rapide des points importants retenir. Java Server Faces (JSF) est une technologie dont le but est de proposer un framework qui facilite et standardise le dveloppement d'applications web avec Java. Son dveloppement a tenu compte des diffrentes expriences acquises lors de l'utilisation des technologies standards pour le dveloppement d'applications web (servlet, JSP, JSTL) et de diffrents frameworks (Struts, ...). Le grand intrt de JSF est de proposer un framework qui puisse tre mis en uvre par des outils pour permettre un dveloppement de type RAD (Rapid Application Development) pour les applications web et ainsi faciliter le dveloppement des applications de ce type. () Ainsi de par sa complexit et sa puissance, JSF s'adapte parfaitement au dveloppement d'applications web complexes en facilitant leur criture. () JSF est une technologie utilise ct serveur dont le but est de faciliter le dveloppement de l'interface utilisateur en sparant clairement la partie interface de la partie mtier d'autant que la partie interface n'est souvent pas la plus complique mais la plus fastidieuse raliser. J.M.Doudoux, Dveloppons en Java Voici rsum en quelques phrases tout lintrt de JSF qui utilise et complte les autres technologies web tels que les servlets, les JSP, les balises JSTL et les langages dexpressions. Comme prcis un peu plus haut, JSF apporte une sparation nette entre la couche de prsentation les autres couches. Mais ce nest pas son seul avantage car il permet aussi une navigation simplifie entre les pages, le traitement de formulaires et leur validation, la gestion des exceptions et laffichage des messages derreur, la cration ou lenrichissement de composants graphiques customiss et tant dautres fonctionnalits Le support de la partie graphique est une page JSP auxquelles on rajoute des balises JSF. Cette page est donc constitue de composants graphiques qui simbriquent les uns dans les autres pour former un arbre. Aprs interprtation, ces balises sont transformes en HTML, comprhensible par le navigateur. Par dfaut, il existe deux librairies de balises : HTML et Core. La premire sert au rendu graphique et la seconde contient des fonctionnalits de base ne gnrant aucun rendu. Pour utiliser ces deux bibliothques, il est ncessaire d'utiliser une directive taglib pour chacune d'elle au dbut de page JSP. Il est important aussi de savoir que JSF respecte le modle MVC (Modle, Vue, Contrleur). Pour ce faire, il implmente un contrleur unique (le Faces Servlet) qui intercepte les requtes http, une navigation configurable par fichier XML, des traitements dlgus des managed beans qui manipulent le modle et un rendu graphique utilisant les balises JSF. Un bean est une simple classe Java qui respecte certaines conventions sur le nommage des mthodes, la construction et le comportement. Par exemple, les proprits de cette classe doivent tre accessibles via des mthodes telles que des getters et setters. Le respect de ces conventions rend possible l'utilisation, la rutilisation, le remplacement et la connexion de beans par des outils de dveloppement. LIMOUZIN Arnaud Page 13

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Dtaillons un peu ces nouvelles notions. La Faces Servlet dclare dans le fichier web.xml va intercepter toutes les requtes concernant JSF et va assurer la mise en uvre d'un cycle de vie des traitements permettant de traiter la requte et de prparer la rponse qui sera affiche dans le navigateur. Sur le schma ci-dessous, nous pouvons suivre le droulement de ces tapes. Connatre ce schma est un lment primordial lors de limplmentation en JSF dune application.

Figure B Cycle de vie dune requte JSF Reconstitute Component Tree: Cette premire phase permet au serveur de recrer l'arborescence des composants qui composent la page. Cette arborescence est stocke dans un objet de type FacesContext et sera utilise tout au long du traitement de la requte. Apply Request Values: Dans cette tape, les valeurs des donnes sont extraites de la requte HTTP pour chaque composant et sont stockes dans leur composant respectif dans le FacesContext. Process validations: Une fois les donnes extraites et converties, il est possible de procder leur validation en appliquant les validateurs enregistrs auprs de chaque composant. Dans le cas dune erreur de conversion, l'tape suivante est directement Render Responder pour permettre de rafficher la page avec les valeurs saisies et afficher les erreurs Update Model Values: Cette tape permet de stocker dans les composants du FacesContext leur valeur locale valide respective. De mme, en cas derreur de conversion, ltape suivante est Render Response pour les raisons voques prcdemment. Invoke Application: Dans cette tape, le ou les vnements mis dans la page sont traits. Cette phase doit permettre de dterminer quelle sera la page rsultat qui sera renvoye dans la rponse en utilisant les rgles de navigation dfinie dans l'application. L'arborescence des composants de cette page est cre. Render Response: Cette tape se charge de crer le rendu de la page de la rponse. LIMOUZIN Arnaud Page 14

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Lors de ce cycle de vie, la Faces Servlet dlgue les traitements et les appels aux managed beans aussi appels backing beans qui sont des classes dont la dure de vie est gre par JSF. Ces beans sont dclars dans le faces-config.xml et il leur est associ une dure de vie parmi les trois suivantes : request, session et application. Le premier scope ne conserve pas le bean aprs requte, le suivant maintient les donnes sur le pc client pendant une dure limite et le dernier garde les informations sur le serveur et donc rend accessible celles-ci tous les clients. On retrouvera aussi les rgles de navigation entre pages dans le fichier faces-config.xml. Java Server Faces nest pas une implmentation mais une spcification. Il faut donc utiliser lune des implmentations commerciales ou libres disponibles. Il existe cependant deux implmentations de rfrence : celle de Sun et celle dApache nomm MyFaces. Cette dernire comprend plusieurs librairies dont une appele Tomahawk qui est celle utilise pour lapplication dvelopp durant le stage. Les librairies dApache possdent lavantage davoir plus de composants disponibles mais encore faut il sen servir ! En complment de ces deux implmentations, il existe dautres librairies qui augmentent considrablement les possibilits offertes par JSF (Icefaces, Woodstock, ). Celle qui a t choisie ici sappelle Richfaces et donne de trs bons rsultats une fois mise en place. C'est un jeu de composants open source et gratuit. Il permet d'ajaxifier simplement son application JSF et offre de nombreux composants complexes (Tree, images dynamiques, drag'n'drop, etc ).

Dtail des tapes de ralisation de lapplicationAfin dexpliquer au mieux la procdure suivie lors du stage, cette partie sera dveloppe dans un ordre chronologique et expliquera brivement le dtail des tches ralises hebdomadairement. Etant donn que le stage se droulait sur une dure de quatre mois (1er Juin au 30 Septembre), cela reprsente donc 17 semaines pour lesquels je dvelopperais le travail effectu. Cependant, seulement les avances suffisamment importantes seront explicites et la correction de bugs au fur et mesure qui prend quelquefois beaucoup de temps ne sera pas en gnral pris en compte. Les nombres en rouge dsignent les numros des figures dans lannexe auxquels il faut se rfrer pour une meilleure comprhension. Semaine 1 Le stage commence et par consquent, il me faut installer et configurer les outils de dveloppement sur lordinateur portable (suite aux problmes voqus prcdemment). Pour la base de donnes, il a t choisi dutiliser mysql et phpmyadmin pour y accder et modifier son contenu plus facilement. En tant que serveur Web, Tomcat est parfaitement adapt et, dans le but dutiliser les technologies les plus rcentes tout en restant stables, cest la version 6.0 qui a t choisie. Avec une intention similaire, cest la version 1.6 du JDK qui a t retenue. Dans lancienne version de lapplication, les outils utiliss tait les mmes mis part les versions de Tomcat et du JDK qui taient antrieures. Pour le dveloppement, entre les deux IDE Java Eclipse et Netbeans, le second a t prfr. En effet, il est possible de crer des pages JSF graphiquement avec cet IDE. Cependant, lutilisation de Richfaces rendant nul cet avantage, le point positif de ce choix tait de me permettre de matriser Netbeans en plus dEclipse utilis lors des projets lESEO. En parallle de ces installations, une tude un peu plus prcise du cahier des charges a t rendue possible grce la prsence de ma responsable de stage. Cependant, ne matrisant pas encore le framework JSF, la premire tape tait den apprendre les bases. A cet effet, je disposais de deux livres ainsi que des exemples et des cours sur Internet. Aprs une lecture attentive et le suivi de plusieurs tutoriels sur JSF et les managed beans, jai pu comprendre lessentiel du fonctionnement de ce framework.

LIMOUZIN Arnaud

Page 15

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008De plus, afin de prparer limplmentation de la nouvelle version de lapplication, il a t utile de lire et de voir fonctionner le code de lexistant (JSP/Servlet), certaines parties pouvant tre rexploites. Cela a permis aussi de dterminer les fonctionnalits conserver et la base sur laquelle sappuyer pour le rendu graphique. Semaine 2 Suite aux recherches menes la semaine prcdente, j'ai dcid dutiliser la fois MyFaces et Richfaces. La premire librairie est lune des deux implmentations de base avec celle de Sun. Myfaces qui implmente plus de fonctionnalits grce des extensions tait plus intressante ne sachant pas exactement ce que jaurais besoin dans les mois suivants. Lextension Tomahawk rpond parfaitement ces besoins. Ce choix cest dailleurs avr judicieux par la suite pour les raisons voques prcdemment. Il tait ncessaire dutiliser une deuxime librairie afin damliorer les fonctionnalits et lergonomie. Aprs quelques recherches parmi celles disponibles, Richfaces a des avantages non ngligeables. En effet, elle utilise des composants ajaxifis ce qui permet de rafrachir seulement llment dsir. De plus, un site prsentant les divers composants et permettant de les tester tout en dtaillant les diverses options pour chacun dentre eux tait aussi un bon point. Mais, le plus important tait la quantit de documentations disponibles sur la toile et parmi toutes les librairies possibles, cest celle qui en possde le plus. Il est toutefois ncessaire de chercher assez longtemps avant de trouver la solution son problme car il y a, malgr tout, trs peu de sites qui traitent de Richfaces. La plus grosse partie de cette semaine tait consacre la ralisation dun mini-pilote qui simulait le fonctionnement dune partie de lapplication actuelle. Celui-ci tait seulement compos de pages JSP avec des balises JSF et de managed beans. Par consquent, une partie des donnes comme le contenu de listes droulantes tait statique ce qui imposera des changements lors de lintgration de la relation avec la base de donnes. Au final, jai ralis une page de connexion avec un login et password unique, et qui vrifie que ladresse mail saisie comme login se termine bien par @unige.ch . Sur la page ddition des messages, il tait possible de crer un message avec des menus droulants dynamiques (en fonction du choix dans le premier menu, les choix possibles dans le deuxime sont diffrents), une liste de checkbox, des zones de textes et des calendriers pour les dates de diffusion. Une premire version de lupload dimage aussi t dveloppe. (1 ; 3 ; 4) Semaine 3 Cette semaine a t consacre amliorer le pilote en dveloppement. Ainsi, une fonctionnalit de dconnexion totale de lapplication a t implmente. Elle permet, pour faire un lien au petit cours JSF prcdent, de supprimer tous les managed beans avec un scope session et par consquent, de supprimer toutes les donnes en mmoire. Puis, elle redirige lutilisateur vers la page de connexion. Cest aussi les dbuts de lintgration dun nouveau composant Richfaces (rich:modalPanel) qui sera trs utilis par la suite et qui apparat comme une sorte de popup dans le navigateur tout en grisant le reste de la page. Ici, son utilisation tait limite la fonctionnalit de changement de mot de passe. (6 ; 7)

LIMOUZIN Arnaud

Page 16

RAPPORT DE STAGE : UNIVERSITE DE GENEVE, JUIN-SEPTEMBRE 2008Semaine 4 Prenant conscience du fait que cette application est destine un large public (