Vous êtes sur la page 1sur 46

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 STAGE
TYPE DE STAGE : Stage Technique I2 AUTEUR:
Arnaud LIMOUZIN

DATES

: Du 01 juin 2008 au 30 septembre 2008


NIVEAU DE CONFIDENTIALITE

Aucune

Niveau I

Niveau II

Niveau III

TITRE DU STAGE
Rcriture 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 Sommaire


Remerciements ....................................................................................................................................... 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 CONTEXTE


L'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.

SUJET
Rcriture 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.

RESULTATS
Aprs 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 chiffre
En 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

Missions
L'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 2008


Historique
L'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 recherche
En 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 2008


Budget
Les 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 international
Considre 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.

Logements
Avec 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 2008


Division informatique : NTICE
Le 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 stage


Contexte
L'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 2008


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.

Sujet
Ce 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 charges


Le 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 technique
Utilisation 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 2008


Equipe de travail
Le 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 dorganisation
Dans 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.

Responsabilits
Le 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 stage


Situation
LUniversit 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 2008


Quelques notions de JSF
Avant 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 2008


Dtaillons 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 2008


Lors 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 lapplication


Afin 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 2008


De 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 2008


Semaine 4 Prenant conscience du fait que cette application est destine un large public (<200 personnes), la notion de scurit ntait pas ngliger. Cependant, les informations rcoltes au cours de mes recherches, me montre des solutions assez complexes et pas trs adaptes la ralit de lapplication. En consquence de quoi, cette partie fut mise en suspens. Testant le bon fonctionnement de ce dbut dapplication laide de Mozilla Firefox, il tait ncessaire de vrifier la bonne marche de celle-ci sur IE et heureusement, les seuls bugs dtects sont lis des contraintes de style et peuvent tre supprims avec du CSS. Enfin, la vitesse dvolution de lapplication impliquait de penser la structure en couche utiliser et lorganisation des beans. Cette rflexion tait plutt difficile mener car la distinction entre les managed beans et entity beans ntait pas clairement tablie. Semaine 5 La nouvelle structure est enfin clairement tablie aprs quelques dbats avec ma tutrice de stage et par consquent, une certaine remise en forme de ce qui avait dj t fait simposait pour respecter la nouvelle architecture (cf. Figure C). Le workflow qui est lune des fonctionnalits importantes intgrer pendant le stage a t aussi sujet rflexion. Le fait que dautres personnes soient impliques (ceux qui soccuperont de la validation des messages) imposait de se concerter avec celles-ci. Une fois les besoins clairement tablis, il a t possible de raliser le diagramme dactivit du worflow (cf. Figure E) sous NetBeans afin de confirmer la bonne comprhension de leurs attentes. Suite une requte de la section presse qui souhaite accder notre application partir de lagenda des vnements de lUNIGE, il est envisag de faire la connexion notre interface de gestion des messages en utilisant Schibboleth, mcanisme de propagation d'identits, qui est gnralise la plupart des universits suisses. Cependant, au vu du temps passer et des connaissances requises, ma seule tche a consist tenir compte dun possible passage Schibboleth ultrieur mon stage et rflchir la refonte des tables de la base de donnes en consquence. Semaine 6 Premire semaine avec mon poste de travail dfinitif. En consquence, il faut rinstaller les outils de dveloppement. Cela ma permis par la mme occasion de raliser le couplage Apache / Tomcat : redirection des requtes JSF arrives sur le port 80 vers Tomcat. De grands changements sur la base de donnes : les tables sont repenses pour les simplifier et leur rajouter des attributs qui savrent ncessaire avec la nouvelle version de lapplication. La connexion entre lapplication et la base de donnes est finalement tablie via JDBC aprs quelques tentatives infructueuses. Avec toutes ces volutions, il faut maintenant remplir la DAO avec les fonctions ncessaires et tablir le lien entre les managed beans et la DAO via la couche service. Semaine 7 Suite et fin de limplmentation des fonctions essentielles de la DAO (Data Access Object). Dautres se rajouteront au fur et mesure des besoins de fonctions trs spcifiques. La partie dupload dimage qui avait t commence prcdemment est presque termine et stocke rellement sur le serveur limage passe en paramtre. (4)

LIMOUZIN Arnaud

Page 17

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


De plus, jentame lautre point important du stage, c'est--dire la prvisualisation et elle savre beaucoup moins difficile que prvu grce lun des composants Richfaces permettant de gnrer une image dynamiquement. Le plus difficile consiste reproduire exactement ou presque ce qui sera diffus sur les crans gants. La rplique exacte est toutefois impossible cause de diffrence de taille de police mais lapproximation obtenue est toutefois trs proche du rel. (9 ; 21) Etant donn que la prvisualisation du message se prsente sous forme dune image, la gestion de laffichage du texte est dlicate. En effet, il faut tenir compte la fois des sauts de ligne, des espaces pour passer la ligne suivante lorsque la premire est remplie mais, et cest l que a se complique, il faut aussi grer les mots composes (avec un tiret) et le cas peu probable o un mot est plus long que la longueur de la ligne. Regrouper toutes ces exigences et leurs exceptions dans une seule fonction ne fut pas une mince affaire. Semaine 8 Aprs avoir pass environ une semaine complte dessus, lessentiel de la prvisualisation est maintenant termin. Il reste quelques dtails de moindre importance rajouter mais cela ne sera fait qu la finalisation. Afin de grer les problmes lis aux injections SQL ou linsertion de guillemet dans une zone de texte par exemple, toutes les fonctions de la DAO doivent tre modifies pour tre utilises avec des PreparedStatement qui grent automatiquement le problme voqu prcdemment. Semaine 9 Cette semaine a t trs riche en nouvelles fonctionnalits. En effet, il est dsormais possible denregistrer un message dans la BDD via linterface de cration des messages. Une nouvelle page voit le jour pour intgrer la recherche de message partir du nom de lauteur. Cependant, seuls les noms des personnes appartenant la mme facult que la personne connecte sont affichs. Il est maintenant possible de voir ltat du message (visible / non visible sur les crans / non valid) grce un code de couleur. En cliquant sur le lien propos lors de la recherche, le message slectionn est charg dans linterface ddition des messages ce qui facilite sa modification ventuelle. De plus, on pourra remarquer que dans le cas dune modification, les tapes sont lgrement diffrentes de celles dun enregistrement normal car le message est dj prsent dans la BDD. (3 ; 8 ; 14 ; 15) Semaine 10 La plus grande nouveaut de cette semaine est la mise en place de la scurit laisse en suspens prcdemment. En effet, suite une concidence et force de recherche, une solution tout fait adapt mon problme sest prsente. Elle consiste tablir un filtre de servlet qui va imposer une nouvelle tape dans le cycle de vie JSF. Ainsi, en cas de tentative daccs direct par url sans authentification pralable, la personne est redirige vers la page de connexion. Laccs direct aux fichiers avec lextension .jsp est aussi interdit et lve une erreur HTTP 403. Dans la suite de lintgration de la scurit, les messages derreur tels que HTTP 403 (accs interdit ou session expire), 404 (page non existante) et 500 (erreur lie du serveur) ont t personnaliss. (5) De nouvelles proprits apparaissent au cours de la semaine. Ainsi, un bouton effaant le formulaire ddition des messages, la possibilit de supprimer un message via la page de recherche de message (seulement si la personne connecte est l'auteur du message), la suppression de la session utilisateur aprs cinq minutes dinactivit (correspond une dconnexion) ou encore lintgration dune page pour la FAQ enrichissent de plus en plus lapplication. (3 ; 15 ; 16 ; 10)

LIMOUZIN Arnaud

Page 18

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


Semaine 11 Dj mi-aot mais lapplication continue dvoluer un rythme soutenu. La popup de changement de mot de passe prcdemment accessible depuis une seule page est maintenant accessible de tous. La gestion de mails qui ne sont pas de la forme prenom.nom@unige.ch est rajoute. Le nom des images uploads est systmatiquement chang pour y rajouter le nom de la personne ayant ajout limage. Avec cette dernire nouveaut et quelques ajouts supplmentaires, lutilisateur peut alors voir les images de lauteur dun message en plus des siennes. Vis--vis du workflow, il est ncessaire davertir un validateur lors de lenregistrement dun nouveau message. En consquence, il faut utiliser un API de Java permettant lenvoi de mail et celui utilis sera tout simplement JavaMail. Trs facile dutilisation une fois pris en main, il donne beaucoup de possibilits mais intgre peu de scurit car pour des personnes malintentionnes, il est alors trs facile de faire un moteur de spams ! Grce cet API, jai pu intgrer une fonctionnalit trs pratique qui sauvera plus dun utilisateur et fera gagner du temps aux administrateurs : le rappel de mot de passe, ou plutt lenvoi dun password permettant de se connecter lapplication pour ensuite rinitialiser son mot de passe. (2) De plus, linterface d'administration des messages voit le jour avec une apparence et des fonctionnalits similaires la recherche de messages mais avec des possibilits tendues. Il est alors possible pour un administrateur (car les utilisateurs nont pas accs aux pages lies ladministration grce au filtre de servlet) de rendre visible ou non visible un message quelconque ou encore le supprimer. (17 ; 18) Semaine 12 Aprs un dbriefing oral des deux semaines prcdentes avec ma responsable de stage en raison de ces congs, jai rajout la possibilit de se reconnecter rapidement sans se reloguer si la session utilisateur na pas expire entre temps. Les deux interfaces qui ntaient pas encore dveloppes sont enfin apparues. Ainsi, un administrateur peut ajouter un utilisateur, ou consulter la liste des utilisateurs pour une facult. Il peut aussi supprimer des utilisateurs et affiche la liste des emails des gens autoriss utiliser linterface web pour une facult. Dun autre ct, les validateurs ont leur page eux. A partir de cette dernire, on voit les messages en attente de validation et lon peut alors soit les prvisualiser (plus dinformations quune prvisualisation normale), les modifier, les valider ou encore les refuser en prcisant le motif de refus lauteur. (11 ; 19 ; 20 ; 21 ; 22) Semaine 13 Quatre jours de vacances pendant lesquels une srie de premiers tests ont t raliss. Il sensuit une explication orale du code avec ma tutrice de stage afin de faire le transfert de connaissance et cibler les points dlicats lors du dveloppement. Semaine 14 Fin de lexplication orale du code. De nombreuses corrections de bugs ont t apportes suite aux remarques en consquence des tests de la semaine prcdente. Augmentation de la lisibilit et surtout de la comprhension grce lintgration dinfo bulles et le changement de quelques icnes. Abandon du code des couleurs pour la diffrenciation des messages et mise en place dicnes dtat.

LIMOUZIN Arnaud

Page 19

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


La page de contact rest vide jusqu prsent est complte et le refus dun message par un validateur est oprationnel. (15 ; 18 ; 19 ; 13 ; 22) Semaine 15 Intgration complte du workflow : toutes les fonctions lies la validation dun message sont mises en place et les tapes dans la validation respectent le diagramme dactivit du workflow prcdemment mentionn. Lapplication est dsormais fonctionnelle et intgre toutes les fonctionnalits demandes mais il faut encore tester et dbugger pour viter les mauvaises surprises. Semaine 16 & 17 En prvision

Problmes rencontrs
Au cours du dveloppement de lapplication panneaux daffichage , jai rencontr divers problmes plus ou moins importants qui parfois se sont rvls surprenants, impossibles rsoudre ou totalement indpendants de notre volont. Voici une liste non exhaustive des difficults sur lesquelles je me suis heurtes. Pour pouvoir dvelopper en Java EE 5 avec NetBeans en utilisant Tomcat, il faut absolument Tomcat 1.6 ce qui confirme le choix dutiliser cette version plutt quune autre antrieure. Le rpertoire de Tomcat nomm root qui contient la page daccueil lors de laccs au serveur (http://localhost:8080/) a t supprim probablement par NetBeans ce qui mempchait daccder au manager via cet url. Cette erreur ne sest produite quune seule fois et je ne suis donc pas sr de la cause. Jai rencontr quelques problmes de compatibilit entre Richfaces et Tomahawk. Etant donn que ce bug est li aux librairies, le seul moyen de rsoudre ce problme ou plutt de le contourner est de rcrire dune autre faon le code. Les composants Richfaces peuvent tre trs capricieux certaines fois. Lexemple des menus droulants implments dans le pilote est parlant. Ceux-ci fonctionnaient bien sparment et ds quils ont t intgrs au pilote, ils avaient un comportement anormal (du un problme sur les vnements Ajax) alors que le code de ces composants tait inchang. Ce nest quavec laide dune astuce que ce problme fut rsolu. En tant que dbutant en JSF, le choix du scope nest pas forcement vident au dbut et plusieurs fois mes beans taient en request et non en session ce qui provoquait des pertes de donnes. La documentation et l'aide sur Richfaces sont dures trouver : part le forum de JBoss et developpez.net, il y a trs peu dendroit o trouver des renseignements sur la manire dutiliser tel ou tel composant. Par consquent, un temps considrable est pass rechercher de la documentation ou le moyen de rsoudre un problme. Du fait de lutilisation de Richfaces et donc dAjax, les vnements ont des priorits et par exemple, une action Ajax va tre traite avant une action JSF normale. Cet exemple peut sembler simple mais lorsquon multiplie les actions raliser cela devient un vritable casse-tte pour dterminer le bon ordre surtout si ces actions sont dpendantes les unes des autres.

LIMOUZIN Arnaud

Page 20

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


Solutions mises en uvre
Choix de MyFaces (Tomahawk) et R Richfaces
Pour lapplication Panneaux dAffichage , j'ai dcid d dutiliser la fois les librairies 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. De plus, MyFaces les propose plusieurs librairies qui vont au del des spcifications JSF dont au-del Tomahawk qui est celle utilise ici. Ce choix cest dailleurs avr judicieux par la suite vu la frquente utilisation que jen ai fait fait. 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. met De plus, il existe un site pour Richfaces (cf. Bibliographie) prsentant les divers composants et permettant de regarder une ou plusieurs implmentations de ces derniers tout en dtaillant les diverses options pour chacun dentre eux. Mais, le plus important tait la quantit de documentation disponible 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 trouver a, malgr tout, trs peu de sites qui traitent de Richfaces. En gnral, ces deux librairies ce sont bien complmentes pendant le projet mais il ait arriv de rares occasions que certains composants Tomahawk soient incompatibles avec dautres de Richfaces. t

Architecture de lapplication
Pour implmenter lapplication Panneaux dAffichage tout en respectant le modle MVC (Modle, Vue, Contrleur) et en obissant aux rgles dfinies par JSF, il est ncessaire de mener une rflexion complte sur larchitecture adopter. Mon principal problme tait de diffrencier les Managed Beans du contrleur et les Entity Beans de la couche entit. Cela donnait des Beans qui nappartenaient aucune des deux catgories. Pour mieux comprendre et viter ce problme, Il faut voir les Entity Beans comme des classes qui reprsentent des objets de la base de donnes. Ainsi, on va trouver dans la couche entit un UserBean et un MessageBean dont les attributs ean seront accessibles par des getters et setters. Dans ces beans, aucun ou peu de traitement de donnes est effectu.

Ci-contre : Figure C Architecture de l linterface de gestion des messages

LIMOUZIN Arnaud

Page 21

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


Dun autre ct, les Managed Beans sont plus associs aux pages contenant les balises JSF. Ils peuvent contenir des lments dun message par exemple ou mme une instance dun Entity Bean tel que MessageBean. On trouve souvent du traitement de donne dans ces beans ainsi que de nombreux attributs qui servent essentiellement au rendu de lapplication sur le navigateur (dans le cas dun boolen, cela peut tre lautorisation ou linterdiction dafficher un composant). De plus, les Managed Beans ont une dure de vie dfinie dans le faces-config.xml (scope) et peuvent rester en mmoire tant que la session ou encore lapplication (scope application) nest pas termine. Les Entity Beans contrairement aux Managed Beans, sont cres puis dtruits ds quils deviennent inutiles. La diffrence entre ces deux genres de Beans se fait plus claire avec ces quelques explications et il est alors possible davoir un aperu de la future structure. Le schma prcdent illustre larchitecture actuelle de lapplication. Ainsi, les pages JSP avec leurs balises JSF assistes des informations contenus dans les Managed Beans reprsentent la vue. La Faces Servlet qui redirige les requtes dune page JSP vers le Managed Bean associ, et les Managed Beans eux-mmes sont les acteurs formant le contrleur. Enfin, les Entity Beans de la couche entit sont associs au modle. Il nous reste encore les services qui permettent laccs la DAO et enfin, la DAO qui associe une requte SQL chacune de ses fonctions. Pour rsumer, prenons lexemple de laffichage dun message lcran. La JSP lance une requte capture par la Faces Servlet et redirige vers la bon Managed Bean celui-ci demande la DAO via les services de donner toutes les informations du message afficher. Viens alors lutilit de lEntity Bean qui va permettre denglober toutes les proprits du message dans un MessageBean, ce dernier tant renvoy au Managed Bean travers la couche service. Finalement, ce dernier va pouvoir rcuprer les informations contenues dans le MessageBean et les transmettre au composant JSF ayant fait la requte.

Base de donnes
Suite au changement de version de lapplication et au rajout de nouvelles fonctionnalits, lancienne base de donnes est devenue obsolte. Des champs tels que isValidate pour un message taient ncessaires pour rpondre au cahier des charges. En se basant sur lexistant, les tables ont t repenses afin de les simplifier et leur ajouter les attributs qui savraient essentiels pour la suite du dveloppement. Figure D schma des relations entre les tables de la base de donnes

LIMOUZIN Arnaud

Page 22

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


Cette remise en forme de la BDD a eu pour consquence un besoin urgent de modifier une partie des requtes SQL de la DAO. Au final, la base de donnes est compose de six tables permettant de stocker des informations telles que les utilisateurs pouvant accder linterface, la liste des facults existantes ou encore les messages enregistrs. Regardons plus en dtail les champs importants de ces tables laide du schma prcdent. La table messagebuilding est une table dassociation qui pour un message donn fait correspondre les btiments dans lesquels il doit tre diffus. Ce systme de table dassociation est essentiel car le nombre de btiments correspondant est variable. Dans la table message, il y a deux parties importantes : les mails et les boolens. Les premiers permettent de garder une trace des actions effectues sur un message. Ils stockent dans lordre de limage, lauteur, la dernire personne avoir modifi le message et la dernire personne ayant modifie la visibilit du message. Les boolens permettent de connatre ltat du message partir de la table de dcodage suivante : isVisible 1 0 0 0 0 isValidate X 1 0 0 0 isRefused X X 0 1 1 isUpdated X X X 0 1 Etat du message visible non visible en attente de validation refus refus puis modifi donc en attente de validation

Les attributs de rle et de domaine de la table user ont aussi une grande importance dans le droulement de lapplication. En effet, le rle dterminera les pages accessibles par lutilisateur. Un validateur par exemple ne pourra pas consulter la liste des utilisateurs de linterface pour une facult donne, page rserv aux administrateurs. Enfin le domaine, permet dassocier une facult chaque utilisateur. Lors de la recherche de message, ce champ va permettre de nafficher que les utilisateurs appartenant la mme facult.

Workflow
Lobjectif principal de ce stage tait lintgration dun workflow dans linterface web de gestion des messages diffuss sur crans gants. Par dfinition, un workflow dcrit le circuit de validation, les tches accomplir entre les diffrents acteurs d'un processus, les dlais, les modes de validation, et fournit chacun des acteurs les informations ncessaires pour la ralisation de sa tche. Il faut donc pouvoir suivre lvolution dun message jusqu sa validation ou son refus. Aprs une tude sur la manire dimplmenter ce workflow et aprs concertation avec les autres personnes impliques par cette fonctionnalit (ceux qui soccuperont de la validation des messages), nous nous sommes accords sur le processus de validation reprsente par le diagramme dactivit la page suivante. A cause de la grande taille de limage, les commentaires trop petits ont t placs en lgende de limage. Le workflow requiert la mise en place de beaucoup de fonctionnalits avant de pouvoir en tester lefficacit. Par consquent, seules quelques tapes du processus ont t testes pendant le stage et le fonctionnement global du workflow na t test que rcemment. Ce dernier test sest droul sans problme et a prouv la bonne marche du processus de validation. Lessentiel de la gestion des tapes de validation dun message repose sur les quatre boolens vus prcdemment pour la base de donnes. Ainsi chaque action va modifier les champs de visibilit et va faire avancer le message dans le cycle de validation du worklow. Suivons maintenant les tapes ralises par un message au cours de son processus de validation. LIMOUZIN Arnaud Page 23

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

Figure E diagramme dactivit du workflow Aprs cration du message, le validateur de la facult auquel est li lauteur va recevoir une notification de nouveau message par mail. Aprs stre connect lapplication, le validateur vrifie si le message est correct. Dans ce cas, il le valide ou effectue une lgre modification en cas derreur dorthographe par exemple. Un message qui ne peut tre valid mme aprs correction sera tout simplement supprim et lauteur averti de cette action. En cas de refus, lauteur est averti de la possibilit de modifier son message et peut corriger son message. Cette modification sera signale au validateur qui pourra alors choisir de valider son message ou non. Et la boucle est boucle. LIMOUZIN Arnaud Page 24

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


Prvisualisation
La prvisualisation, trs demande par les utilisateurs de lancienne version des Panneaux dAffichage est aussi un point capital de ce sujet de stage. Le but atteindre est de pouvoir observer mme lapplication une simulation de ce qui devrait safficher sur les crans gants. Cependant, la cration de limage tant effectue par TV-Builder proprit de la socit Kewego et non de lUNIGE, il nous est impossible de savoir comment il la gnre. Les seules informations dont nous disposons sont le placement sur limage des zones de texte et les captures dcran. Grce lutilisation du composant Richfaces a4j:mediaoutput , il est possible de crer des images dynamiquement. Lutilisation de la libraire Richfaces est encore une fois justifie. Le plus difficile maintenant consiste reproduire exactement ou presque ce qui sera diffus sur les crans gants. Pour cela, le composant Richfaces fait appel une fonction java qui doit renvoyer limage. Celle-ci commence par charger la police Arial (elle nexiste pas sur Linux par dfaut donc elle doit tre transporte avec lapplication) qui est la police utilise sur les crans gants. Il faut rcuprer les donnes du message prvisualiser et les stocker pour un temps. Il existe quatre modle de prvisualisation (sans image / avec image carr, horizontale ou verticale) et en fonction du modle, la taille occup par le texte du message varie. Une fois le modle dtermin, on crit la section et le dpartement en haut droite avec un alignement droite en mesurant la longueur du texte afficher. Ensuite, viennent les parties compliques : la gnration du titre et du texte. Etant donn que la prvisualisation du message se prsente sous forme dune image, la gestion de laffichage du texte est dlicate. En effet, il faut tenir compte la fois des sauts de ligne, des espaces pour passer la ligne suivante lorsque la premire est remplie mais, et cest l que a se complique, il faut aussi grer les mots composes (avec un tiret) et le cas peu probable o un mot est plus long que la longueur de la ligne. Regrouper toutes ces exigences et leurs exceptions dans une seule fonction ne fut pas une mince affaire. Le dernier point rgler est laffichage de lventuelle image mais cela reste quelque chose de banal compar aux fonctions prcdentes. Et voila, notre image est gnre et peut-tre affiche lcran. La rplique exacte est toutefois impossible obtenir cause de diffrence de taille de police mais lapproximation obtenue est toutefois trs proche du rel. Figure F Prvisualisation dun message

LIMOUZIN Arnaud

Page 25

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


Ergonomie
Vis--vis de lergonomie, jai fait le choix dimplmenter une interface beaucoup plus conviviale et colore. De plus, lutilisation de Richfaces permis de profiter de la technologie Ajax. Ainsi, les interfaces sont beaucoup plus rapides ragir et autorisent des actions jusque l impossible. Pour amliorer la lisibilit sur les nouvelles fonctionnalits intgres, celles-ci se lancent gnralement en cliquant sur des icnes choisies minutieusement. Et en cas de non comprhension du symbole, une info-bulle apparaitra au passage de la souris. Une autre particularit de la nouvelle version est lutilisation rgulire dune sorte de popup appel modalpanel. Trs pratique mais difficile maitriser au dbut, elle sest avre indispensable pour des fonctionnalits telles que la prvisualisation. Afin de voir lvolution ergonomique de lapplication, une image vaut mieux quun discours : comparer la figure 3 avec la 23, la 18 avec la 24 et la 11 avec la 25 dans lannexe. Les fonctions ralises sont plus ou moins les mmes mais la diffrence est renversante.

Scurit
Etant donne que linterface web Panneaux dAffichage est destine un large public (<200 personnes), la notion de scurit est importante. Dans un premier temps mes recherches mont amenes des solutions non adapt lapplication. Ce nest que mi-aot que jai trouv une solution qui me convenait parfaitement. Elle consiste tablir un filtre de servlet qui va imposer une nouvelle tape dans le cycle de vie JSF. Ainsi, en cas de tentative daccs direct par url sans authentification pralable, la personne est redirige vers la page de connexion. Laccs direct aux fichiers avec lextension .jsp est aussi interdit et lve une erreur HTTP 403. Dans la suite de lintgration de la scurit, les messages derreur tels que HTTP 403 (accs interdit ou session expire), 404 (page non existante) et 500 (erreur lie du serveur) ont t personnaliss. Pour raliser sa fonction, le filtre de servlet vrifie dans un premier temps sil connat la page de destination. Si oui, il vrifie la prsence dune session puis du mail mmoris lors de la connexion lapplication. Dans le cas, o le mail est absent cela signifie que la personne nest pas ou plus connecte et sil est prsent on vrifie si lutilisateur a les droits suffisants pour charger la page demande.

LIMOUZIN Arnaud

Page 26

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


Fonctionnement de lapplication
Cette section va dvelopper les dtails non voqus prcdemment et les rsultats obtenus lors de lutilisation normale de lapplication Panneaux dAffichage . Scnario 1 : page de connexion

La page de connexion se rvle trs simple : un champ pour le login et un pour le password. Lorsque lun des champs est vide, que lemail nest pas valide (@unige.ch) ou que le mot de passe et le login ne correspondent pas, une erreur est gnre et affiche lcran. La fonctionnalit de rappel de mot de passe permet en prcisant son mail de recevoir cette adresse un second mot de passe qui remplacera temporairement lancien et permettra de le changer facilement.

Scnario 2 : cration dun message

Pour crer un message et lenregistrer, il faut remplir plusieurs informations obligatoires. La premire tape est le choix de la facult que lon dtermine via trois menus droulants. Le contenu du deuxime menu est dpendant du choix fait dans le premier et il en est de mme pour le troisime et le second.

LIMOUZIN Arnaud

Page 27

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


La seconde tape est le choix des btiments dans lequel le message sera diffus. Puis, il faut taper le titre et le corps du message pour finir par les dates de dbut et de fin de diffusion du message. Si tous les champs sont remplis, vous devez voir apparatre un message de confirmation. Sinon, vrifier la prsence dun message davertissement. Il vous est possible aussi si vous le souhaitez de rajoutez une image votre message depuis la liste dans votre menu droulant dimages.

Scnario 3 : prvisualisation dun message La fonctionnalit de prvisualisation est prsente sur deux pages de lapplication : celle ddition et celle de validation des messages. Les deux sont identiques mis part des informations supplmentaires pour le validateur dont les btiments de destination, les dates de diffusion, lauteur et la dernire personne ayant effectue une modification sur le message. Il est possible de prvisualiser un message en cliquant sur le bouton Aperu ou en cliquant sur licne ci-contre. Aprs avoir effectu cette action, une popup (modalpanel) souvrira et une image reprsentant lapparence du message sur les crans gants apparaitra. Pour quitter ce mode, il suffit de fermer la popup en cliquant sur la croix en haut droite.

LIMOUZIN Arnaud

Page 28

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


Scnario 4 : upload dune image Il est possible dajouter une image un message et pour ce faire, il existe une fonctionnalit dupload permettant de stocker une ou plusieurs images sur le serveur. La nouvelle image uploade apparaitra alors dans la liste des images dans le panneau ddition des messages. Celles-ci sont prfixes par lemail de lutilisateur et ne sont accessibles que par cette personne exception faite dune modification dun de ses messages par un deuxime acteur. Pour rajouter une image, cliquer sur le bouton Ajouter et une popup souvrira. Slectionner votre image et cliquer sur upload : votre image a t copie sur le serveur. Toutefois, les images doivent respectes certaines conditions dont le format en jpeg et un poids infrieur 1 Mo.

Scnario 5 : recherche dun message et fonctions associes Retrouver un message afin de le modifier est parfois trs utile. Cette fonction permet de lister les messages dont la date de diffusion nest pas dpasse et dont lauteur appartient la mme facult que la personne connecte. Aprs avoir slectionn un auteur, la liste des messages qui lui est associe apparait. Si le nombre de message est suprieur trois, un scroller permet datteindre les messages suivants. La premire remarque est licne associe chaque message :

Celles-ci reprsentent ltat du message soit respectivement en attente de validation, visible et non visible. Ensuite, le corps du message avec le titre, le texte et la prsence dune image est prsent.

Enfin, si vous avez slectionn votre nom dans la liste, la possibilit de supprimer le message vous est offerte en cliquant sur licne reprsentant une poubelle. Une confirmation de la suppression est alors ncessaire pour viter une mauvaise manipulation. Le but de la recherche est souvent de modifier un message existant et pour cela, vous devrez cliquez sur le numro associ au message, la page ddition des messages souvrant en consquence. Le contenu et les caractristiques du message slectionn seront affichs dans les sections correspondantes et peuvent tre modifis facilement.

LIMOUZIN Arnaud

Page 29

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


Scnario 6 : administration des messages et fonctions associes Ladministration des messages est similaire la recherche de message. Avec une interface identique, elle est cependant rserve aux administrateurs. Il est possible dobtenir la liste complte des messages et dinterdire un message de passer sur les crans (modification de la visibilit) en cliquant sur licne correspondante. La suppression dun message nest plus limite au seul utilisateur mais est disponible pour tout message. Scnario 7 : validation des messages et fonctions associes Lintgration du workflow exigeait de pouvoir accder aux messages pour les valider (ou refuser). Une page ddie aux validateurs remplie ce rle en gardant une interface ressemblante la recherche de message. Le validateur, une fois connect, ne verra que les messages en attente de validation pour sa facult. Un nouvel tat a t rajout : les messages ayant t prcdemment refuss puis corriges et qui demande de vrifier que la correction a t faite. Ces messages sont signals par une icne spcifique reprsentant un panneau de signalisation indiquant un danger. Le validateur peut effectuer quatre actions diffrentes sur chaque message. Le modifier en cliquant sur le numro du message Le prvisualiser en cliquant sur la loupe. Cet aperu possde des informations supplmentaires comme indiques prcdemment. Le valider : une confirmation est ncessaire car le message sera diffusable sur les crans ds la ralisation de cette action. Le refuser. Cette action exige de justifier le refus et de spcifier si le message peut tre modifi (certains messages comme de la publicit ne sont pas autoriss tre diffuss). Lauteur recevra alors automatiquement un mail explicatif de la part du validateur.

Scnario 8 : Gestion des utilisateurs Ouvrir cette interface web un grand nombre de personnes impose de grer ces dernires. Les super-administrateurs, validateurs et administrateurs sont dfinis lavance. Par consquent, ce sont les personnes nappartenant pas ces catgories qui sont viss. Une fois sur la page concerne (laccs est rserv aux administrateurs), deux actions sont possibles : Ajouter un utilisateur en prcisant son mail, son prnom, son nom et sa facult. Consulter la liste des personnes appartenant une facult donne. Toutefois, seuls les utilisateurs et validateurs sont visibles. Il est possible dexporter les adresses mails de cette liste via un document texte gnr dynamiquement ou tout simplement de supprimer un utilisateur aprs confirmation de cette action.

LIMOUZIN Arnaud

Page 30

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

Scnario 9 : changer le mot de passe Les utilisateurs prfrent utiliser un mot de passe qui leur est propre. Pour cela, lutilitaire de changement de mot de passe est trs utile et tout en respectant la confidentialit des informations, il oblige lutilisateur respect un certain degr de complexit pour le nouveau mot de passe. Lors de loubli de son mot de passe, la personne concerne pourra renouveler celui-ci grce un code de connexion temporaire et cette fonctionnalit.

La vrification avant le changement du mot de passe impose plusieurs tapes : Le nouveau mot de passe doit tre identique au nouveau mot de passe bis Le nouveau mot de passe doit tre diffrent de lancien Le mot de passe actuel doit tre celui stock dans la basse de donne (pour plus de scurit, celui-ci est crypt) Le nouveau mot de passe doit possder un minimum de huit caractres dont une lettre et un chiffre.

Aprs validation, un message averti lutilisateur de la russite ou de lchec du changement en dtaillant lerreur dans le deuxime cas.

LIMOUZIN Arnaud

Page 31

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


Scnario 10 : test de la scurit Lapplication tant restreinte dutilisation un certain nombre de personnes, la scurit permet dinterdire laccs linterface ou des pages spcifiques excutant des fonctions dadministration. Ces interdictions sont lies essentiellement laccs une page par son url. Sans scurit, une personne peut deviner une url valide et ainsi passer la barrire de la page de connexion. De la mme faon, laccs aux pages dadministration via des liens apparaissant que si le rle de la personne est suffisant peut tre possible. Un fois implmente, la scurit est assure en vrifiant lurl de destination et si la personne est connecte (cela implique aussi que la session de lutilisateur nest pas expire) et possde des droits suffisants. En cas de tentative non autorise, une erreur HTTP 403 est cre et transmise lutilisateur. De mme, si la page demande nexiste pas, il en rsulte une erreur HTTP 404.

LIMOUZIN Arnaud

Page 32

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


En conclusion
Dans les pages qui prcdent, jai tent de rendre compte de lexprience accumule pendant cette priode de stage. Il en ressort de nombreuses observations personnelles et professionnelles. Dans lensemble, je nai pas de remarques ngatives et lexprience vcue correspondait tout fait mes attentes vis--vis de ce stage. La mission principale, consistant produire une nouvelle version de linterface de gestion des messages pour les crans gants avec un workflow et une prvisualisation, ntait pas clairement dfinie au dbut du stage mais indiquait plus une ligne directrice suivre. Ainsi, la plupart des actions et fonctions intgrer et surtout la manire de les prsenter ont t des choix qui ont t pris au fur et mesure de lavance de lapplication. Mais lavantage de tout cela est de mavoir offert une plus grande libert et possibilit dinnovation dans la manire de dvelopper linterface web. Ctait une exprience nouvelle sur un projet de cette ampleur. De plus, lintrt port ce sujet de stage ma motiv et permit de my investir pleinement. A la fin du stage, cette volution de lapplication devrait tre mise disposition des utilisateurs et je pense ainsi avoir contribu apporter quelque chose au sein de lUniversit de Genve. Les personnes concernes pourront alors dcouvrir une prsentation plus adapte leurs besoins et de nouvelles fonctionnalits. Dun point de vue personnel, ce stage a t trs bnfique. Il ma permis dentrevoir lune des faces du mtier dingnieur mais aussi de dcouvrir une ambiance de travail diffrente et de me lier avec de nombreuses personnes. Exprimenter le dveloppement dapplication en situation relle a t enrichissant et je nai pas rencontr de grandes difficults sauf peut-tre sur un point de vue technique. Par rapport mes tudes, ce stage tait en adquation avec mon cursus scolaire et cela ma autoris au cours de celui-ci, rutiliser ou encore mettre en pratique ce que javais appris prcdemment. Lopportunit de travailler dans un pays tranger sest rvl trs instructrice. Jai pu faire la dcouverte dune autre ville et dune culture diffrente tout en travaillant llaboration dune solution pour lUniversit de Genve. Compte tenu de la dure limite de ce stage (toutefois bien calcule car lapplication na t termine que rcemment) et du succs de cette exprience, faire un mtier similaire ne me dplairait pas, bien au contraire. Ce stage ma permis dexprimenter les avantages et inconvnients de cette fonction et cest donc une piste pour mon avenir professionnel. Cependant, il me semble trop prmatur de me dcider maintenant tant donn que jentame ma dernire anne dtude en option Rseaux et Tlcoms .

Les apports du stage en cinq points cls


Une meilleure approche sur le dveloppement dune application web en entreprise. Lapprentissage dun nouveau framework (JSF). La ncessit dentretenir de bonnes relations avec ses collgues afin de profiter dune bonne ambiance de travail. Un souci de qualit, de stabilit et de maintenabilit constant. Acquisition de mthodes de travail notamment au travers de compte-rendu hebdommadaire des activits afin de garder une trace de ce qui a t ralis. LIMOUZIN Arnaud Page 33

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


Documents

Figure 1 Page de connexion lapplication

Figure 2 Fonctionnalit de rappel de mot de passe LIMOUZIN Arnaud Page 34

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

Figure 3 Page permettant la cration et ldition des messages

Figure 4 Fonctionnalit dupload dimage LIMOUZIN Arnaud Page 35

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

Figure 5 Message derreur personnalis

Figure 6 Fonctionnalit de changement de mot de passe (partie 1)

Figure 7 Fonctionnalit de changement de mot de passe (partie 2)

Figure 8 Page de succs de lenregistrement ou de la mise jour dun message

LIMOUZIN Arnaud

Page 36

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

Figure 9 Prvisualisation dun message

Figure 10 Page pour les questions frquentes (FAQ) en dveloppement LIMOUZIN Arnaud Page 37

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

Figure 11 Page de gestion des utilisateurs

Figure 12 Liste des utilisateurs dune facult gnre dans un document txt

LIMOUZIN Arnaud

Page 38

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

Figure 13 Page permettant de trouver les personnes contacter en cas de problmes

Figure 14 Page de recherche de message (partie 1)

LIMOUZIN Arnaud

Page 39

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

Figure 15 Recherche de messages (partie 2)

Figure 16 Fonctionnalit de suppression de message LIMOUZIN Arnaud Page 40

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

Figure 17 Page dadministration des messages (partie 1)

Figure 18 Administration des messages (partie 2)

LIMOUZIN Arnaud

Page 41

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

Figure 19 Page de validation des messages

Figure 20 Fonctionnalit de validation dun message LIMOUZIN Arnaud Page 42

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

Figure 21 Prvisualisation dun message avant validation

Figure 22 Fonctionnalit de refus de message LIMOUZIN Arnaud Page 43

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

Figure 23 Edition dun message (version JSP/Servlet)

Figure 24 Administration des messages (version JSP/Servlet)

LIMOUZIN Arnaud

Page 44

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

Figure 25 Gestion des utilisateurs (version JSP/Servlet)

LIMOUZIN Arnaud

Page 45

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


Bibliographie
Sites internet http://java.developpez.com/faq/jsf/ Une FAQ sur lutilisation des JSF. Trs utile lorsque lon a un problme souvent rencontr par les dveloppeurs car on y trouve une solution rapidement. http://livedemo.exadel.com/richfaces-demo/richfaces/panel.jsf Site qui montre des exemples dutilisation de Richfaces. Forums http://www.developpez.net/forums/f300/java/developpement-web-java/frameworks/jsf/ http://www.jboss.com/index.html?module=bb&op=viewforum&f=261 http://forums.sun.com/forum.jspa?forumID=427 Ces trois forums donnent des lments de rponse lorsque les deux sites prcdents ne suffisent pas. Livres Dveloppons en Java http://www.jmdoudoux.fr/accueil_java.htm#dej Documentation complte sur lutilisation de Java. Java EE 5
EJB 3.0 - JPA - JSP - JSF - Web Services (JAXB, JAX-WS) - JavaMail - JMS - GlassFish - Ant - Derby

Editeur : Eyrolles Auteur : A. Goncalves Nb de pages : 330 pages Langue : Franais Ouvrage qui traite de la plateforme J2EE dans sa nouvelle version Java EE5. Core JavaServer Faces (Second Edition) Editeur(s) : Prentice Hall Auteur(s) : D. Geary, C. Horstmann Nb de pages : 752 pages Langue : Anglais Livre ddi lutilisation des JSF et une rfrence pour dbuter.

CV
En dernire page : CV ayant servi la recherche de stage

LIMOUZIN Arnaud

Page 46