Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
Royaume du MAROC Ministère de la Communication
Rapport de Stage de Fin de 2ème Année
Sujet
Implémentation d’une application J2EE de gestion des demandes de cartes de presse professionnelles des journalistes
Réalisé par : Sakina TASTAOUI
Encadré par : M. Abderrahim EL HARROUS
Khadija ZEKANI
Année Universitaire 2012-2013
Remerciement Il nous est agréable de nous acquitter d’une dette de reconnaissance auprès de toutes les personnes, dont l’intervention au cours de ce stage, a favorisé son aboutissement. Nous
tenons à remercier vivement M. Abderrahim EL HARROUS, chef de
département Informatique au sien du Ministère de la Communication, pour ses propositions, ainsi que pour l’offre de l’information. Nos remerciements vont aussi à l’ensemble du corps professoral et administratif de l’ENSIAS pour l’inestimable qualité de l'enseignement qui nous a été dispensé, et pour leur bataille pour assurer une meilleure formation plus solide et plus valorisante. Nous sommes très reconnaissantes à toutes les personnes qui ont contribué de près ou de loin à l’élaboration de ce travail. Cependant, nous ne pouvons citer tous les noms. Que tous ceux qui ont contribué au bon déroulement de ce travail trouvent ici l’expression de notre profonde gratitude.
Stage de fin de la deuxième année
3
2012-2013
Résumé Le présent rapport synthétise notre travail accompli dans le cadre du stage de fin de la deuxième année qui s’est déroulé au sein du Ministère de la communication du royaume du Maroc. Ce projet a pour objectif de développer un espace journaliste sur le portail web pour la gestion des demandes de carte de presse professionnelle à distance. Parmi les missions du ministère de communication une qui consiste à gérer les médiats et plus précisément
les relations avec la presse. Dans ce cadre le ministère offre aux
journalistes des cartes d’accréditations qui leurs assignent beaucoup de privilèges et assez de droit. Notre stage consiste d’une part à mettre en place une application permettant aux journalistes de déposer leurs demandes d’obtention de cartes en ligne et d’autre part à faciliter aux responsables au niveau interne le traitement de ces demandes en utilisant la plateforme J2EE et certains Framework. Le projet a été élaboré en trois grandes étapes, à savoir :
La première étape est une étude fonctionnelle et technique comportant l’analyse des besoins ainsi que la rédaction du dossier des spécifications fonctionnelles.
La deuxième étape est la conception du projet en langage de modélisation objet UML.
La troisième et dernière étape comprend la mise en œuvre de la solution.
Mots clés : carte d’accréditation, traitement de dossier, plateforme J2EE, Framework.
Stage de fin de la deuxième année
4
2012-2013
Abstract This report outlines the work done in the context of the final second year internship performed at the ministry of communication of the Moroccan Kingdom. The aim of this project is to develop a web application that presents a portfolio to manage the requests for accreditation card remote.
Among the tasks of the ministry of communication, we can consider the management of Medias and specially the relationship with the press. In this context the ministry offers to the journalist the accreditation cards that promote them with lot of privileges and more rights. Our internship was the opportunity to develop a web application that offers two services: the first one is facilitate to the journalists to apply online to get the cards. And in the same time our application permits to the responsible in the back office to manage and treat the demands under a J2EE platform and some other Frameworks. The main steps followed during the projects are:
The first step was the functional and technical studies that emphasizes on the needs and the writing of functional specification folder.
The second step focused more on the concept and mobilization of the project with
UML.
The third step was dedicated to the deployment of the solution.
Keywords! Accrediation card, the folder treatment; platforme J2EE, Framework.
Stage de fin de la deuxième année
5
2012-2013
Listes des abréviations
Abréviation
Désignation
JEE
Java Enterprise Edition
UML
Unified Modeling Language
2TUP
2 Tracks Unified Process
PHP
Hypertext Preprocessor
JSF
Java Server Faces
API
Application Programming Interface
ASF
Apache Software fondation
HTML
Hypertext Markup language
MVC
Model view controller
SGBD
Système de gestion de base de données
Stage de fin de la deuxième année
6
2012-2013
Table des figures
Figure 1 : organigramme du ministère de la communication [1] .......................................................... 16 Figure 2: processus 2TUP [2] ................................................................................................................ 18 Figure 3: planification temporelle es étapes du projet ........................................................................... 19 Figure 4: Planning du projet .................................................................................................................. 20 Figure 5 : processus d'obtention de carte de presse professionnelle...................................................... 22 Figure 6: les diffèrent profil utilisateurs ................................................................................................ 25 Figure 7: Patron MVC [3] ..................................................................................................................... 30 Figure 8: diagramme de séquence "déposition du dossier" ................................................................... 35 Figure 9: diagramme de séquence 2 "vérification du dossier" .............................................................. 36 Figure 10: diagramme de séquence "Etude de la demande".................................................................. 37 Figure 11: MCD .................................................................................................................................... 38 Figure 12: Authentification du journaliste ............................................................................................ 43 Figure 13: profil de l'utilisateur ............................................................................................................. 43 Figure 14: changer les informations du journaliste ............................................................................... 44 Figure 15: déposition de demande de carte de presse ........................................................................... 44 Figure 16: Number One à DevRates [12] .............................................................................................. 53 Figure 17: utilisation de PrimeFaces [12] ............................................................................................. 53 Figure 18: utilisation de PrimeFaces en mois d’Avril 2012 [12] .......................................................... 53
Stage de fin de la deuxième année
7
2012-2013
Liste des tableaux
Tableau 1: rôles des utilisateurs ............................................................................................................ 25 Tableau 2: les tables de la base de données ........................................................................................... 38 Tableau 3: Tableau comparatif de JSF vs Struts ................................................................................... 51 Tableau 4: Libertaires de composants de JSF [11] ................................................................................ 52
Stage de fin de la deuxième année
8
2012-2013
Tables des matières
Table des matières
Remerciement ......................................................................................................................................... 3 Résumé .................................................................................................................................................... 4 Abstract ................................................................................................................................................... 5 Listes des abréviations ............................................................................................................................ 6 Table des figures...................................................................................................................................... 7 Liste des tableaux .................................................................................................................................... 8 Table des matières ................................................................................................................................. 9 Introduction générale............................................................................................................................ 11 Chapitre 1 .............................................................................................................................................. 13 Introduction....................................................................................................................................... 14 1.
2.
3.
Présentation de l’organisme d’accueil [1] ................................................................................. 14 1.1
Mission .............................................................................................................................. 14
1.1
Organigramme du ministère de la communication .......................................................... 15
Cadre du projet.......................................................................................................................... 16 2.1.
Motivation ......................................................................................................................... 16
2.2.
Présentation du projet ...................................................................................................... 16
2.3.
Objectifs du projet ............................................................................................................. 17
Elaboration de la conduite du projet ........................................................................................ 17 3.1
Choix de la méthode du développement [2]..................................................................... 17
3.2
Planification du projet ....................................................................................................... 19
Conclusion ......................................................................................................................................... 20 Chapitre 2 .............................................................................................................................................. 21 1.
2.
Étude de l’existant ..................................................................................................................... 22 1.1
Déroulement de l’obtention des cartes de presse professionnelle .................................. 22
1.2
Critiques du système existant ........................................................................................... 23
Spécification des besoins fonctionnels...................................................................................... 23 2.1
Liste de besoins fonctionnels concernant le système de gestion ..................................... 24
2.2
Analyse des besoins........................................................................................................... 24
2.3
Diagrammes de cas d’utilisation du système .................................................................... 26
Stage de fin de la deuxième année
9
2012-2013
Tables des matières Chapitre 3 .............................................................................................................................................. 27 Introduction....................................................................................................................................... 28 1.
Exigences techniques ................................................................................................................ 28 1.1
Une architecture JEE.......................................................................................................... 28
1.2
Le modèle MVC ................................................................................................................ 29
1.3
Frameworks utilisés ........................................................................................................... 30
Chapitre 4 .............................................................................................................................................. 33 Introduction....................................................................................................................................... 34 1.
2.
Diagrammes de séquence ......................................................................................................... 34 1.1
Scénarios pour le « dépôt du dossier » ............................................................................. 34
1.2
Scénarios pour la « Vérification du dossier » ................................................................... 35
1.3
Scénarios pour « Etude du dossier » ................................................................................ 36
Diagrammes de classe ............................................................................................................... 37
Conclusion ......................................................................................................................................... 39 Chapitre 5 .............................................................................................................................................. 40 Introduction....................................................................................................................................... 41 1.
2.
Outils de développement .......................................................................................................... 41 1.1
Framworks ......................................................................................................................... 41
1.2
IDE Eclipse.......................................................................................................................... 42
Réalisation ................................................................................................................................. 42
Conclusion : ....................................................................................................................................... 44 Conclusion générale .............................................................................................................................. 45 Webographie ........................................................................................................................................ 46 Annexes ................................................................................................................................................. 47
Stage de fin de la deuxième année
10
2012-2013
Chapitre 1
Contexte du projet
Introduction générale Dans le cadre de la politique gouvernementale d’approcher l’administration du citoyen,
toutes les tutelles du gouvernement marocain cherchent à informatiser ses
procédures réglementaires. Ainsi le ministère de la communication n’a pas fait l’exception en tendant vers l’informatisation de son système. En mettant en œuvre la politique du gouvernement, le ministère de la communication agit sur tout le domaine de la communication. Cela impose une collaboration avec les différents acteurs engagés dans ce domaine afin d’organiser certains métiers.
Cette
organisation touche les spécialistes de la communication et des médias à travers leur activité professionnelle. Parmi les métiers des médias, nous trouvons aussi bien les photographes, les correspondants que les journalistes dont la profession est qualifiée du quatrième pouvoir. Le métier du journaliste consiste à recueillir les informations sur des sujets particulier, à collecter les données relatives à l’actualité ou à s’investiguer en s’appuyant sur toutes source dans le but de produire des articles et des missions qui maintenaient le peuple en actualité, le mettent en situation et le poussent à réagir. Vue cette grande importance le ministère de la communication règlemente cette profession en offrant des cartes de presse professionnelle dans le but de leurs facilité les taches et rendre leur quête d’information plus aisé. Afin de se doter d’un tel privilège le journaliste aurai à se déplacer jusqu’au ministère pour déposer sa demande de carte de presse professionnelle. Cela rendait la procédure difficile et couteuse. Alors la solution était de mettre l’informatique en service du journaliste. Notre stage portait donc sur la mise en place d’une plateforme pour la gestion des demandes de cartes de presse professionnelle. Cela signifie qu’une fois l’application est déployée les journalistes auront à déposer leur demande via le net en utilisant ce futur volet du portail du ministère. Notre mission consistée en premier lieu à comprendre la procédure, et identifier les documents utilisés et acteurs opérants. Ensuite nous avons établi une étude technique et au même temps une autre fonctionnelle qui s’est fermée sur la livraison d’un cahier de spécifications. Ensuite nous avons entamé la conception pour le mettre en œuvre en dernier lieu.
Stage de fin de la deuxième année
11
2012-2013
Chapitre 1
Contexte du projet
Le présent rapport décrit le déroulement du stage il sera présenté sous forme de cinq chapitres. Le premier expose le contexte général du projet en présentant l’organisme d’accueil et le sujet proposé ainsi que la planification de son accomplissement. Les deux chapitres deux et trois couvrent les études préalables à la réalisation du projet qui sont l’étude fonctionnelle, visant à déterminer les besoin et à écrire le cahier des spécifications, Et l’étude technique, concernant le choix de l’architecture, des outils et des technologies utilisées. Le dernier chapitre décrit la mise en œuvre de ce projet.
Stage de fin de la deuxième année
12
2012-2013
Chapitre 1
Contexte du projet
Chapitre 1
Contexte du projet Ce chapitre présente l’organisme d’accueil, le cadre général du projet et la méthodologie de conduite du projet suivie pour élaborer ce travail.
Stage de fin de la deuxième année
13
2012-2013
Chapitre 1
Contexte du projet
Introduction La première partie de ce chapitre introduit l’organisme d’accueil, ses activités et sa structure organisationnelle. La deuxième partie présente le cadre général du projet et une vision globale sur les fonctionnalités attendues du système cible. La dernière partie précise la méthodologie de conduite du projet suivie ainsi que le planning de la réalisation de ce projet.
1.
Présentation de l’organisme d’accueil [1] 1.1 Mission
Le ministère de la communication prépare et met en œuvre la politique du gouvernement dans tous les domaines de la communication. Il est le porte-parole du gouvernement. Il exerce la tutelle sur les établissements publics et les autres organismes dépendant de son autorité, conformément aux textes législatifs et réglementaires en vigueur. A cet effet, et sous réserve des attributions dévolues aux autres départements ministériels ou d’autres organismes par les textes législatifs et réglementaires en vigueur, il est chargé de :
Préparer et exécuter la politique du gouvernement relative aux différents domaines du
secteur de la communication : presse écrite, communication audiovisuelle, publicité, cinéma et droits d’auteurs et droits voisins, la formation des ressources humaines du secteur et la production nationale et assurer la mise à niveau et le développement du secteur ;
Contribuer à la promotion de la société de l’information au Maroc ; Elaborer, pour le compte du gouvernement, les cahiers des charges et les contrats
programmés avec les organismes publics intervenant dans le secteur afin qu’ils contribuent aux objectifs des politiques publiques et de la réforme du secteur d’une part, de leur sensibilisation à la responsabilité et à l’autonomie de gestion d’autre part ;
Réaliser des études juridiques et élaborer les textes relatifs à la réglementation du
secteur de la communication ;
Veiller à une promotion meilleure de l’image institutionnelle du Maroc ;
Mettre en place un service d’information public destiné à l’opinion publique
notamment aux leaders d’opinion à l’intérieur et l’extérieur du pays, afin de faire connaitre Stage de fin de la deuxième année
14
2012-2013
Chapitre 1
Contexte du projet
les institutions du Maroc, ses grandes réformes, ses réalisations et ses potentialités.
Animer le travail du gouvernement en matière de communication.
Il veille également à la promotion et à l’organisation des professions liées aux secteurs de la communication et encourage le partenariat avec les professionnels du domaine et les opérateurs publiques et privés. Le ministère de la communisation comprend, outre le cabinet du ministère et l’inspection générale, une administration centrale (le secrétariat général, la direction des études et du développement des médias, la direction de la communication et des relations publiques, la direction du portail national et de la documentation, la direction des ressources humaines et financières) et des services déconcentrés.
1.1 Organigramme du ministère de la communication
Stage de fin de la deuxième année
15
2012-2013
Chapitre 1
Contexte du projet Figure 1 : organigramme du ministère de la communication [1]
Le ministère de la communisation comprend, outre du cabinet du ministère et l’inspection générale, une administration centrale incluse entre autres direction la direction des études et du développement des médias, la direction de la communication et des relations publiques, la direction du portail national et de la documentation et la direction des ressources humaines et financières ou nous avons effectué notre stage sous la direction de son chef M. A. El HARROUS.
2.
Cadre du projet 2.1. Motivation Dans le cadre de la transformation du Maroc en société de l’information. Le ministère de
la communication vise à informatiser ses services afin d’améliorer leurs qualité vis-à-vis des parties prenantes. Il opte non seulement à rendre plus performante et rigoureuse la gestion de l’accréditation des journalistes mais aussi à offrir à ses partenaires un espace convivial qui leur permettra une meilleure interaction et usage de ses services. D’une part, le ministère de la communication vise principalement à concevoir des applications de gestion web ergonomique, modulaire et efficace. D’une autre part, Le dépôt annuel des dossiers de demandes d’obtention de la carte de la presse professionnelle ne cesse d’augmenter vue l’importante évolution de la presse marocaine, que ce soit du contenu : enquêtes, reportages, articles de fond…qu’au niveau de la diversité des supports et l’importance des équipes rédactionnelles. La gestion de l’obtention de l’accréditation des cartes des journalistes s’avère donc l’un des processus qui nécessitent une informatisation.
2.2. Présentation du projet Au titre de chaque année, les journalistes sont appelés à déposer auprès du service concerné au sein du ministère de la communication le formulaire de la demande dûment rempli et joint des documents requis. Notre projet nommé gestion des demandes de cartes de presse professionnelles des journalistes assure ce service à travers son portail web. Il consiste à informatiser l’obtention des cartes d’accréditation des journalistes marocains et étrangers. Le projet consiste, entre autres, à créer un module web permettant aux
Stage de fin de la deuxième année
16
2012-2013
Chapitre 1
Contexte du projet
journalistes de déposer leurs dossiers à distance ainsi que leurs suivis.
2.3. Objectifs du projet Le principal objectif de ce projet est d’offrir un outil de gestion des demandes d’obtention de la carte de presse professionnelle à distance basé sur les services intranet du ministère exportés sur le web. Cet objectif peut être décline en trois principaux volets :
3.
La conception de la couche service exposant les services intranet aux journalistes. La mise à disposition d’un service de gestion de l’obtention de l’accréditation des cartes journalistes sur le site du ministère. La gestion électronique des documents des demandes d’obtention de la carte professionnelle et la sécurisation des dossiers.
Elaboration de la conduite du projet 3.1 Choix de la méthode du développement [2] Le choix Le choix du processus de développement, définissant une séquence d’étapes
qui concoure à l’obtention d’un système logiciel nouveau ou à l’amélioration d’un système existant, s’impose à l’élaboration de tout projet. L’adéquation du projet au processus de développement peut largement affecter le sort d’un projet informatique. Le présent projet exige qu’une grande importance soit accordée à la compréhension des besoins et à la conception. Par ailleurs, la méthode doit être simple permettant d’avancer rapidement. Pour mener bien le projet nous avons opté pour la méthode 2TUP «2 Track Unified Process ». C’est un processus itératif, incrémental et centré sur l’architecture appartenant à la famille des processus unifiés. En insistant sur la non-corrélation initiale des aspects fonctionnel et technique. « 2 Tracks » signifie littéralement que le processus suit 2 chemins ; le chemin « fonctionnel » et « d’architecture technique ». Les deux branches d’étude fusionnent ensuite pour la conception du système, ce qui donne la forme d’un processus de développement en Y. La dichotomie initiale permet à la fois de capitaliser la connaissance métier sur la branche gauche et de réutiliser un savoir-faire
Stage de fin de la deuxième année
17
2012-2013
Chapitre 1
Contexte du projet
technique sur la branche droite.
Figure 2: processus 2TUP [2]
La branche gauche (fonctionnelle) comporte : La capture des besoins fonctionnels, qui produit un modèle des besoins focalisé sur le métier des utilisateurs. Elle qualifie au plus tôt le risque de produire un système inadapté aux utilisateurs ; L’analyse, qui consiste à étudier précisément la spécification fonctionnelle de manière à obtenir une idée de ce que va réaliser le système en termes de métier. Les résultats de l’analyse ne dépendent d’aucune technologie particulière. La branche droite (architecture technique) comporte : La capture des besoins techniques, qui recense toutes les contraintes et les choix dimensionnant la conception du système. Les outils et les matériels sélectionnés ainsi que la prise en compte de contraintes d’intégration avec l’existant conditionnent généralement des prérequis d’architecture technique ; La conception générique, qui définit ensuite les composants nécessaires à la construction de l’architecture technique. Cette conception est complètement indépendante des aspects fonctionnels. Elle a pour objectif d’uniformiser et de réutiliser les mêmes mécanismes pour
Stage de fin de la deuxième année
18
2012-2013
Chapitre 1
Contexte du projet
tout un système. L’architecture technique construit le squelette du système informatique et écarte la plupart des risques de niveau technique. La branche du milieu comporte : La conception préliminaire, qui représente une étape délicate, car elle intègre le modèle d’analyse dans l’architecture technique de manière à tracer la cartographie des composants du système à développer ; La conception détaillée, qui étudie ensuite comment réaliser chaque composant ; L’étape de codage, qui produit ces composants et teste au fur et à mesure les unités de code réalisées ; L’étape de recette, qui consiste enfin à valider les fonctions du système développé.
3.2 Planification du projet La planification du projet est une phase importante d'avant-projet. Elle consiste à prévoir le déroulement du projet tout au long des phases constituant le cycle de développement. Le diagramme de Gantt (cf. Figure 3) suivant présente le planning de notre stage.
Figure 3: planification temporelle es étapes du projet
La phase étude fonctionnelle pour laquelle nous avons consacré une durée Stage de fin de la deuxième année
19
2012-2013
Chapitre 1
Contexte du projet
approximative de deux semaines. Cette étape consiste en l’élaboration et l’analyse des besoins et est clôturé par la livraison d’un cahier des charges. La phase étude technique consistait en la prise en connaissance du contexte du projet et l’installation des logiciels afin de préparer l’environnement technique de travail. Enfin, nous avons mené la phase de conception avant d’entamer la phase de réalisation. La rédaction du rapport a été réalisée au fur et à mesure de toute la période du stage (cf. Figure 4).
Figure 4: Planning du projet
Conclusion Ce chapitre été le point de départ pour la présentation de notre stage, dans la mesure où il décrit son contexte général en présentant l’organisme d’accueil du Ministère de la communication, les objectifs généraux à atteindre et les étapes de sa mise en œuvre. Le chapitre suivant mènera une analyse des besoins fonctionnels.
Stage de fin de la deuxième année
20
2012-2013
Chapitre 2
Etude fonctionnelle Ce deuxième chapitre du rapport vient détailler l’analyse fonctionnelle du projet. Pour bien assimiler l’architecture fonctionnelle du système nous listerons les principales fonctionnalités et les différents acteurs de l’application.
Stage de fin de la deuxième année
21
2012-2013
Chapitre 2
Etude fonctionnelle
1. Étude de l’existant Dans cette section nous présenterons un aperçu du système existant et nous exposerons ses points forts et ses points faibles.
1.1 Déroulement de l’obtention des cartes de presse professionnelle A titre de chaque année, les journalistes sont appelés à déposer auprès du service concerné au sien du ministère de la communication le formulaire de la demande et accompagné des documents nécessaires. A l’échéance du délai de dépôt des dossiers, les demandes étudiées seront soumises à la commission professionnelle de la presse. La figure suivante schématise le processus d’obtention de la carte de presse professionnelle.
Publication de l’inscription pour l’obtention de la carte de presse. Réception des demandes.
Délai de dépôt non expiré.
Vérification des dossiers.
Etudes des dossiers.
Création des cartes. Figure 5 : processus d'obtention de carte de presse professionnelle
Stage de fin de la deuxième année
22
2012-2013
Chapitre 2
Etude fonctionnelle
1.2 Critiques du système existant L’administration des demandes d’obtention des cartes de presse professionnelle au sein du ministère se fait de manière traditionnelle et suit un déroulement pseudo –manuel. La critique du système existant peut se faire à 2 niveaux :
Au niveau communication : A chaque nouvelle période de préparation des cartes professionnelles, le trafic de communication à destination de bureau d’ordres augmente d’une manière anormalement gênante à but de dépôt de dossier et de demande d’information. Ce trafic représente un obstacle devant l’activité et sa fluidité. Au niveau intranet : La gestion de l’obtention des cartes de presse professionnelles se fait de manière traditionnelle, ce qui rend ce processus très lent et non transparent.
Au niveau Gestion des documents : Le déroulement actuel des demandes d’obtention de la carte de presse professionnelle
exige un dossier pour chaque candidature, ce qui rend difficile la gestion, le traitement et l’archivage de ces documents.
Devant ces limitations, le ministère de la communication a décidé de mettre en place un projet d’informatisation visant à concevoir et réaliser la couche base de données, service ainsi que le module web qui en fera usage.
2. Spécification des besoins fonctionnels Afin de définir les activités attendues du système ainsi que ses frontières fonctionnelles, une étude relevant les principales fonctionnalités que doit offrir le système à été menée. Cette étude est basée sur des documents du ministère ainsi que des explications des responsables. Cette étude a permis de dégager les besoins nécessaires, et suite aux réunions avec le responsable, on a classé les besoins fonctionnels du système en trois types : Stage de fin de la deuxième année
23
2012-2013
Chapitre 2
Etude fonctionnelle
Des besoins concernant la gestion des données et des documents des journalistes.
Des besoins liés à la gestion des demandes d’obtention de la carte de presse professionnelle à travers la création d’un espace dédié aux journalistes au niveau du portail web.
Des besoins d’exportation des services intranet du ministère sous forme de service web accessible à partir de l’espace partenaire.
2.1 Liste de besoins fonctionnels concernant le système de gestion Gestion des journalistes : -
La création d’un nouveau compte journalistes. La modification d’un compte journaliste existant. La consultation du dossier d’inscription et son état.
Gestion des Demandes d’obtention de la carte de presse professionnelle : -
Le dépôt de dossier d’inscription.
-
Le suivi de l’état de dépôt.
2.2 Analyse des besoins Après avoir identifié les besoins fonctionnels auxquels le système doit répondre, nous passons à la modélisation de notre projet. Dans cette partie nous traitons l’identification des acteurs interagissant avec le système. Ensuite nous organisons ces interactions sous forme de cas d’utilisation de notre application, nous avons eu recours au formalisme UML étant le plus adéquat pour la modélisation d’une application modulaire et facilement extensible.
4.1. Identification des rôles La première étape du formalisme UML utilisé consiste en l’identification des acteurs interagissant avec le système, et afin d’organiser ces interactions nous les avons classé en «Rôles». En se basant sur les besoins fonctionnels recensés, nous avons identifié les rôles suivants : Stage de fin de la deuxième année
24
2012-2013
Chapitre 2
Etude fonctionnelle
Chef du Service des
Comité de presse
Application
Relations avec la Presse
Comité de la création de la carte de presse
Administrateur
Journalistes
Figure 6: les diffèrent profil utilisateurs
Chaque rôle remplie une mission assumée par des entités externes au système qui peuvent être un ou plusieurs acteurs. La table suivante présente les missions des rôles identifiés. Rôle
Mission
Administrateur
Gestion des comptes.
Journaliste
Création de compte journaliste. Édition de compte journaliste. Dépôt du dossier de candidature. Consultation de dossier de candidature. Suivi de la demande.
Chef de service De relation avec La presse
Réception, vérification et validation des documents de demande d’obtention de la carte de presse professionnelle.
Comité de presse
Traitement du dossier.
Comité de la création De la carte de presse
Création de professionnelle.
la
carte
de
Tableau 1: rôles des utilisateurs
Stage de fin de la deuxième année
25
2012-2013
presse
Chapitre 2
Etude fonctionnelle
2.3 Diagrammes de cas d’utilisation du système Après avoir identifié les rôles et leurs missions dans la section précédente, il est nécessaire de déterminer le diagramme de cas d’utilisation (figure 7).
Saisie d'information de séjour A Etude du dossier <>
Comité de presse
A Dépot du dossier <>
Journaliste
<> Authentification
<>
A
Vérification du dossier
Chef de service de relation avec la pressse
<>
<> Création des cartes d'accréditation
A
Comité de la création de la carte de presse professionnelle
Justifications
Figure 7: Diagrmme de cas d'utilisation
Conclusion Ce chapitre synthétise la phase de l’étude fonctionnelle qui a porté sur l’étude de l’existant et l’identification des besoins. Le chapitre suivant va dévoiler l’autre volet de l’étude préalable à l’accomplissement de ce projet et qui s’est déroulé au même temps que l’étude fonctionnelle c’est l’étude technique.
Stage de fin de la deuxième année
26
2012-2013
Chapitre 3
Etude technique Après avoir achevé l’étude fonctionnelle du système et dans laquelle ont les besoins à remplir pour le système futur, vient la phase d’étude technique dans laquelle seront présentées d’abord les contraintes techniques ainsi que les architectures physique et logique du système, et ensuite le modèle de conception ainsi que les plateformes utilisées.
Stage de fin de la deuxième année
27
2012-2013
Chapitre 3
Etude technique
Introduction Cette section vise à définir l’architecture physique et logique du système. Elle décrira les besoins techniques avant de présenter la conception répondant aux exigences du système futur.
1. Exigences techniques Le système futur doit être conforme à un ensemble de critères, notamment :
Il doit suivre les standards de la plateforme JEE ;
Il doit présenter une architecture en couches qui permettra au système d’être évolutif, facilement maintenable et tolérant aux montées en charge ;
Il doit utiliser un système de gestion électronique des documents performant et flexible pour gérer les documents impliqués dans le processus de demande de carte de presse professionnelle de manière personnalisée ;
Le système doit communiquer avec une base de données relationnelle MySQL
Dans la section suivante, nous analyserons ces contraintes afin de déterminer une solution répondant à ces besoins.
1.1 Une architecture JEE La plateforme J2EE (Java 2 Entreprise Edition), créée par SUN Microsystems, définit le concept de développement par couches. Elle permet de simplifier les applications d'entreprise en les basant sur des composants modulaires normalisés tout en fournissant un ensemble complet de services et en gérant automatiquement un grand nombre de détails sur le comportement des applications. Parmi les avantages de la technologie J2EE, nous citons :
Stage de fin de la deuxième année
28
2012-2013
Chapitre 3
Etude technique
J2EE est venue pour remplacer les méthodes traditionnelles de développement (voir la partie MVC) ;
J2EE dispose d’une documentation très riche et l’ensemble des projets en J2EE sont publiés dans le web ;
Un très grand nombre de bibliothèques gratuites sont publiées dans le web et sont facilement intégrables dans un projet J2EE.
1.2 Le modèle MVC
Avant de définir le modèle MVC, Nous allons présenter quelques déficiences de la méthodologie traditionnelle de développement. Nous notons qu’avec JSP ou PHP ou autre langage Web coté serveur, le développement d’une application web, commence par la création d’un certain nombre de pages Web. Dans ces pages, nous constatons qu’il y a des codes qui concernent l’affichage graphique, des codes relatifs aux traitements et des codes d’accès aux données comme la connexion à la BD, des requêtes SQL, etc. Or, avec ce concept nous pouvons constater qu’il y a des segments de codes qui ne sont pas cohérents et qui sont mélangés les uns avec les autres, ce qui rend la réutilisation du code difficile. Le changement d’une base de données sous Oracle vers une base de données sous MySQL par exemple, va entraîner un changement dans la plupart des pages. L’inconvénient de ceci, est que dans la plupart des cas, c’est le développeur de l’application lui-même qui doit intervenir, ce qui rend le coût de la maintenance et de la réutilisation plus élevé. Pour pallier à ce problème, le modèle MVC (Model, View, Controller) définit un nouveau concept de développement. Il a pour objectif de séparer les codes en divisant le projet en couches : vue, contrôleur et modèle de données.
Le modèle : correspond aux données manipulées par l’application, qu’il s’agisse de l’accès ou de la mise à jour.
La vue : correspond à l'interface avec laquelle l'utilisateur interagit. Sa première tâche est de présenter les résultats renvoyés par le modèle qui lui sont passés par le contrôleur. Sa seconde tâche est de recevoir toutes les actions de l'utilisateur. Ces différents évènements sont envoyés au contrôleur. Elle n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués par le modèle.
Stage de fin de la deuxième année
29
2012-2013
Chapitre 3
Etude technique
Le contrôleur : Le contrôleur prend en charge la gestion des évènements de synchronisation pour mettre à jour la vue ou le modèle et les synchroniser. Il reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer.
Figure 7: Patron MVC [3]
1.3 Frameworks utilisés Un Framework est un espace de travail modulaire. C'est un ensemble de bibliothèques, d'outils et de conventions permettant le développement d'applications. Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres [4] . Cette section présente les Framework Open Source utilisés. Ils ont été sélectionnés sur la base d’études comparatives menées pour chaque Framework, lesquelles sont disponibles en annexe A.
a. Java Server Faces (JSF) Pour construire la couche présentation de notre application, nous avons adopté la technologie JSF. Java Server Faces est un Framework de développement d’applications Web Stage de fin de la deuxième année
30
2012-2013
Chapitre 3
Etude technique
en Java permettant de respecter le modèle d'architecture MVC, décrit dans la partie précédente, et basé sur des composants côté présentation. Ce Framework permet aussi [8]:
La séparation de la couche présentation des autres couches (MVC) ;
Le mapping entre l’HTML et l’objet ;
La réutilisabilité d’un ensemble de composants riches;
La création de nouveaux composants graphiques ;
La possibilité de générer des formats autres que du HTML (XUL, XML, WML,..) ;
L’accès aux Beans par leurs noms en utilisant les ExpressionsLanguage ;
La simplicité des définitions des contrôleurs, des Beans et des fichiers de configuration.
En somme, l’orientation composante graphique permet à JSF d’être utilise de manière plus simple dans les environnements de développement. Pour notre application nous avons opté pour la version 2.0 du Framework JSF, vu ces apports par rapport à l’ancienne version. Parmi ces améliorations nous citons :
La possibilité de configurer les managed beans avec des annotations, ce qui rend l’utilisation fichier (faces-config.xml) facultatif.
L’inclusion de facelets en natif en supportant toujours les jsp.
L’import de ressources statiques dans le répertoire ressources.
b. PrimeFaces
PrimeFaces est une suite open source pour les composants Java Server Faces (JSF) avec Ajax. Il a été mis en place pour enrichir l’interface homme-machine construite à l’aide du Framework JSF. PrimeFaces offre un ensemble très riche de composants JSF ainsi que des modules pour la réalisation des interfaces sur les mobiles. Le principal objectif de PrimeFaces est de créer la suite de composants ultime pour le Framework JSF [6].
Stage de fin de la deuxième année
31
2012-2013
Chapitre 3
Etude technique
PrimeFaces est maintenu par « Prime Technology », une société Turque de développement des logiciels, spécialisée dans la technologie Java Enterprise Edition et le développement des logiciels sous-traité. Le choix de PrimeFaces est justifié par une étude comparative, disponible en Annexe B, entre PrimeFaces et d’autres outils de même gamme disponibles sur le marché. Cette étude a montré que PrimeFaces est le meilleur sur plusieurs niveaux, à savoir : flexibilité, nombre de composants, souplesse, intégration et ergonomie.
Conclusion Dans cette section nous avons exposé l’étude technique menée durant la première phase de notre stage. Cette étude a couvert
le choix de l’architecture de l’application et les
technologies utilisées.
Stage de fin de la deuxième année
32
2012-2013
Chapitre 4
Etude conceptuelle Ce chapitre représente le fondamental du travail effectué durant la phase de conception du projet. Nous allons présenter tout d’abord l’aspect fonctionnel à travers les diagrammes de séquences. Puis, nous allons enchaîner par l’élaboration du diagramme de classe pour décrire finalement la structure interne du système.
Stage de fin de la deuxième année
33
2012-2013
Chapitre 4
Etude conceptuelle
Introduction Le présent chapitre représente le point de fusion entre l’étude fonctionnelle présentée en chapitre deux du rapport et l’étude technique présentée dans le chapitre précédent. Nous aborderons dans un premier lieu les scénarios d’utilisation du système avant de passer au diagramme de classe.
1. Diagrammes de séquence Un diagramme de séquence représente l’interaction des acteurs avec le système selon un enchaînement chronologique. Modéliser ces interactions revient donc à déterminer les différents scénarios possibles pour un cas d’utilisation donné. Dans la suite de cette section nous présenterons les scénarios d’utilisations pour les différents cas d’utilisation.
1.1 Scénarios pour le « dépôt du dossier » La figure ci-dessous représente le diagramme de séquence pour le cas d’utilisation « dépôt du dossier »de l’acteur « journaliste ». Elle fait concevoir trois scénarios principaux :
Authentification : Le journaliste est invité dans un premier lieu à donner son login et mot de passe.
Dépôt du dossier : Une fois le journaliste s’est authentifié, il peut déposer les documents requis pour le renouvèlement ou la création pour la première fois de la carte de presse professionnelle.
Suivi du dossier : Le journaliste peut ainsi à tout instant suivre l’état de son dossier (complet, en cours de validation, validé, …).
Stage de fin de la deuxième année
34
2012-2013
Chapitre 4
Etude conceptuelle
Dépôt du dossier
page d'accueil
menu principal
formulaire de demande
dossier
formulaire de suivi
journaliste
demande_authentification verifier authentification
Authentification réussie
display
selectionner faire une demande de carte d' Accréditation display saisir information joindre pieces demander la validation enregistrer dossier valider redirection page accueil selectionner suivi du dossier
daisplay getinformationdossier() return etat de dossier
Return l'etat du dossier
Figure 8: diagramme de séquence "déposition du dossier"
1.2 Scénarios pour la « Vérification du dossier » Pour la vérification d’un dossier, le chef de relation avec la presse et après avoir s’authentifier, procède comme suit : Il sélectionne un dossier dans la liste des dossiers publiés dans la page d’accueil. Il consulte les documents joints. Si le dossier est complet, il le valide. Si non il le refuse avec des justifications.
Stage de fin de la deuxième année
35
2012-2013
Chapitre 4
Etude conceptuelle
Ce processus est synthétisé à travers le diagramme de séquence suivant : Vérification du dossier
page_accueil
formulaire_gestion_dossier
dosseir
dossier_valide
dossier_rejete
chef de relation avec presse
damand_authenfication verifier authentification() authentification reussie display
get_list_dossier() return list_dossier
demander de traioter un dossier afficher formulaire_dossier valider un dossier valider_dossier() validation reussie validation reussie
rejeter un dossier afficher formulaire_justification saisir justification rejeter dosssier() rejet reussi rejet reussi
Figure 9: diagramme de séquence 2 "vérification du dossier"
1.3 Scénarios pour « Etude du dossier »
Stage de fin de la deuxième année
36
2012-2013
Chapitre 4
Etude conceptuelle
Ce processus est semblable au processus suivi par le chef de relation avec la presse. La seule différence est que le comité de l’étude de la carte d’accréditation est invité à valider le contenu du dossier et nom sa forme (voir figure ci-dessous). Etude du dossier
page_accueil
formulaire gestion dossier
dossier valide
dossieer accepte
dossier_rejete
comite de carte d 'accreditation
damand_authenfication verifier authentification() authentification reussie display
get list dossier() return list_dossier
demander d'etudier un dossier afficher formulaire_dossier accepter un dossier valider dossier() validation reussie validation reussie
rejeter un dossier afficher formulaire_justification saisir justification rejeter_dosssier() rejet reussi rejet reussi
Figure 10: diagramme de séquence "Etude de la demande"
2. Diagrammes de classe
Stage de fin de la deuxième année
37
2012-2013
Chapitre 4
Etude conceptuelle
La modélisation de tout système passe essentiellement par un diagramme de classes qui englobe les différentes entités et les relations entre elles. Le diagramme de classes global du système (figure 11) est détaillé dans le tableau 2 : Dossier
Journaliste
travailler + date : java.util.Date
0..* Entreprise + id_entr : int + raison_soc : java.lang.String
1..*
+ + + + + + + + + + + + + + + + + + + + + +
id_jr prenom nom login password pseudonyme situation_fam nombre_enf date_nais lieu_nais tel mail cnss echel poste niv_instruction service dat_obtention-cart date_deb nationnalite cin N_passport
: int : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : int : java.util.Date : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.lang.String : java.util.Date : java.util.Date : java.lang.String : java.lang.String : java.lang.String
+ id_dossier : int + etat : java.lang.String + type : java.lang.String
0..1
1..1
1..1
Document
1..*
+ id : int + libelle : java.lang.String + emplacement : java.lang.String
0..1 Carte + id_car : int + n_carte : java.lang.String + date_livr : java.util.Date
Figure 11: MCD
Classe Journaliste
Description Représente les différents journalistes avec leurs informations personnelles et professionnelles.
Entreprise Travailler
Représente les différentes entreprises. Représente la période du travail d’un journaliste au sein d’une entreprise. Représentes les différentes cartes crée par le comité de la carte. Représente un ensemble de documents. Un dossier appartient à un espace donné au niveau de la GED.
Carte Dossier
Représente un document. Un document est caractérisé au niveau de la GED par un ensemble d’attributs qui permettront les recherches avancées.
Document
Tableau 2: les tables de la base de données
Stage de fin de la deuxième année
38
2012-2013
Chapitre 4
Etude conceptuelle
Conclusion Dans ce chapitre nous avons abordé l’étude conceptuelle du système. Nous avons détaillé quelques scénarios d’utilisation du système avant de présenter le diagramme de classes global du système. Le chapitre suivant sera consacré à la phase de la mise en œuvre de l’application.
Stage de fin de la deuxième année
39
2012-2013
Chapitre 5
Mise en œuvre Ce dernier chapitre décrit la partie de réalisation de notre stage. Dans lequel nous allons exposer les outils et environnement de réalisation ainsi que quelques vue utilisateurs du travail accompli.
Stage de fin de la deuxième année
40
2012-2013
Chapitre 5
Mise en Œuvre
Introduction Nous allons faire étalage de l’environnement et outils utilisés pour mettre en œuvre l’étude conceptuelle dans la première partie de ce chapitre. La deuxième partie révèle certaines interfaces de l’application réalisée.
1. Outils de développement Pour implémenter le système il a fallu d’abord mettre en place la base de données et la base des documents (GED) du système, ensuite de développer l’application. Plusieurs technologies et outils ont été adoptés pour atteindre cet objectif et qui seront exposé après.
1.1 Framworks 1.1.1. Spring [13] L'inversion de contrôle (Inversion of Control, IoC) est un patron d’architecture commun à tous les frameworks dont Spring fait partie. Il fonctionne selon le principe que le flot d'exécution d'un logiciel n'est plus sous le contrôle direct de l'application elle-même, mais du framework ou de la couche logicielle sous-jacente. L'inversion de contrôle est un terme générique. Selon la problématique, il existe différentes formes, ou représentation d'IoC. La plus connue étant l’injection de dépendances (dependency injection) qui est un patron de conception permettant, en programmation orientée objet, de découpler les dépendances entre objets. Le Spring Framework 2.5 intègre la technique des annotations qui permettent de simplifier grandement les fichiers de configurations de Spring et de séparer plus nettement les beans techniques qui restent configurés en fichier XML, des beans fonctionnels pour lesquels les annotations apportent des simplifications.
1.1.2 Hibernate Hibernante est un Framework qui s'occupe de la persistance. Il rend les technologies de stockage transparentes à l'application. Outre cela, il assure le mappage d’objets vers le modèle relationnel. Dans notre projet, on programme en objet alors que notre base de données est relationnelle, Hibernate nous permet d’interagir avec
Stage de fin de la deuxième année
41
2012-2013
Chapitre 5
Mise en Œuvre
la base de données relationnelle comme s’il s’agissait d’une base de données orientée objet. Hibernate fournit également des facilités de recherche et de retrait de données, il peut réduire énormément le temps de développement, normalement passé à traiter des données manuellement dans SQL ou JDBC.
1.1.3 Apatche Tomcat Apache est un serveur web. Ce serveur est géré par « Apache Software Foundation » qui compte plusieurs dizaine de membres, des centaines de contributeurs et développe plusieurs projets liés à la diffusion d'information sur internet. Le serveur HTTP Apache a été conçu comme un serveur web puissant et flexible pouvant fonctionner sur une très grande variété de plateformes et toute une gamme d'environnements différentes. Ainsi, le serveur Apache permet l’utilisation de différentes méthodes pour implémenter la même fonctionnalité, le plus efficacement possible, dépendamment des différentes plateformes et environnements. Apache s'est toujours accommodé d'une grande variété d'environnements grâce à sa conception modulaire. Pour le SGBD nous avons choisi MySQL comme SGBD relationnelle pour y stocker les données de l’application.
1.2 IDE Eclipse L'IDE Eclipse pour Java EE Developers contient tout ce qu’un développeur a besoin pour créer des applications Java et Java Enterprise Edition (Java EE). Considéré par beaucoup comme le meilleur outil de développement Java disponibles, l'EDI Eclipse pour Java EE Developers offre une excellente édition Java avec la compilation incrémentielle, Java EE 5, une interface graphique HTML / JSP / JSF éditeur, outils de gestion de bases de données, et le soutien aux plus populaire serveurs d'applications
2. Réalisation Dans cette partie nous allons présenter des utilisations de l’application, sujet du rapport, par le journaliste et les comités de traitement de dossier. Tout journaliste est invité à s’authentifier pour pouvoir profiter des services offerts par notre
Stage de fin de la deuxième année
42
2012-2013
Chapitre 5
Mise en Œuvre
application :
Figure 12: Authentification du journaliste
•
Si l’information saisies sont erronées ou incomplètes un message averti l’utilisateur.
•
Si l’authentification est réussie l’utilisateur est dirigé alors vers un menu ou il a à choisir soit de faire une demande soit de déposer une demande de carte ou bien de s’informer sur son état ou bien de visualiser son profil et le modifier.
•
En choisissant la visualisation de son profil l’utilisateur sera mené vers cette page où il lui proposé de l’éditer pour changer certaines informations (se référer au deux figures suivantes) :
Figure 13: profil de l'utilisateur
Stage de fin de la deuxième année
43
2012-2013
Chapitre 5
Mise en Œuvre
Figure 14: changer les informations du journaliste
L’application offre à l’utilisateur un espace pour déposer sa demande de carte de presse professionnelle. Cela est fait par la jointure pièces exigés dans le dossier de demande.
Figure 15: déposition de demande de carte de presse
Conclusion : Dans le présent chapitre nous avons explorer les outils utilisé et quelque captures des interfaces temgnage du travail effectué lors du stage de deuxième année.
Stage de fin de la deuxième année
44
2012-2013
Conclusion générale Ce projet de stage de fin de deuxième année vient comme solution à un des besoins révélés par le ministère de la communication dans le cadre d’informatiser ses procédures administratives. La solution consiste majoritairement à mettre en œuvre un système permettant de déposer les demandes de carte de presse en ligne. La réalisation d’un tel projet requiert une bonne compréhension du contexte pour appréhender ses notions fonctionnelles. Une compréhension de la procédure de demande de carte fut indispensable au début de ce projet. Au terme de cette phase, les connaissances nécessaires sur les enjeux de la solution ont pu être acquises. Durant le stage, nous avons essayé de suivre les bonnes démarches pour réaliser ce projet. En effet, avant la phase conception il y a eu une importante phase d’analyse fonctionnelle approfondie où nous avons rédigé un cahier de spécifications. Au même temps la phase analyse technique et discussion des choix des de technologie et framworks était menée, vient ensuite la phase conception qui consistait à modéliser la solution retenue. En fin nous commençons le développement et nous montons des cas de test. Ce stage a été pour nous une source d’enseignement à bien des égards. Outre la connaissance technique qu’il a renforcée, nous avons acquis un esprit rigoureux d’analyse permettant d’apporter des solutions appropriées aux problèmes rencontrés. Nous avons réussi durant le stage à mettre en œuvre une solution qui répond au besoin spécifié mais il reste certaines améliorations avant de la déployer.
Stage de fin de la deuxième année
45
2012-2013
Webographie
Webographie [1]
http://www.mincom.gov.ma/fr/le-ministere/presentation-du-ministere.html
[2]
http://haitbaslam.wordpress.com/2010/10/05/le-cycle-en-y/
[3]
http://www.roseindia.net/tutorialfiles/27368.mvc.gif
[4]
http://www.trackbusters.fr/definition-framework.html
[5]
http://jakarta.apache.org/struts
[6]
http://java.sun.com/javaee/javaserverfaces/
[7]
http://soaj2ee.blogspirit.com/archive/2005/05/18/comparatif_jsf_struts.html
[8]
ftp://ftp-developpez.com/mbaron/javaee/jsf.pdf
[9]
Ancien s rapports PFE
[10]
http://www.jboss.org/richfaces
[11]
http://deptinfo.unice.fr/~grin/jsf.html
[12]
http://www.primefaces.org/whyprimefaces.html
[13]
http://www.springsource.org
Stage de fin de la deuxième année
46
2012-2013
Annexes Annexe A : JSF vs Struts Annexe B: Etude Benchmarking
Stage de fin de la deuxième année
47
2012-2013
Annexe A
JSF vs Struts
Struts vs javaServerFaces (JSF) Etant le deux standards dans le domaine de la conception d’applications web, Struts et JSF seront l’objet de notre étude comparative. Présentation générale de Struts Struts, fut le premier des deux Framework à arriver sur le marché. Apparu en 1998, il a eu beaucoup de succès. Compatible avec la plate-forme J2EE de Sun, Struts fait partie du projet Jakarta (mené par l'ASF, l'Apache Software Fondation) [5]. Struts est une combinaison des servlets Java, des JSP, des balises personnalisées et des ressources messages qui forment une base unifiée. Dès son arrivée, il a su s’imposer pour les applications de grandes tailles. Cependant son utilisation de nos jours perd tout son sens pour les applications simples. En effet, pour les petites applications, l’utilisation de Struts pourrait prendre bien plus de temps que la construction de l’application elle-même.
Présentation générale de JavaServerFaces (JSF) JavaServerFaces est paru en 2004 après Struts. JSF a été réalisé par Sun pour JEE. C’est une spécification permettant de développer des interfaces graphiques améliorées pour des applications Web basées sur la plate-forme JEE. Les JSF utilisent un modèle Orienté événement. Elle propose dans son implémentation des composants graphiques réutilisables capables de gérer les états et les événements. Les JSF proposent aussi une librairie de balises à insérer dans des pages JSP [6]. Beaucoup crurent que l’arrivée de JSF allait écraser son concurrent. En effet, bien intégré aux projets de Sun tels que Java Enterprise Edition (Java EE), JSF a su s’imposer par sa simplicité. La partie Vue de JSF a été bien pensée et d’une très simple utilisation. Ainsi son emploi s’impose pour les projets de petites tailles. Comparatif Struts/JAvaServerFaces Cette partie présente un comparatif entre les Framework Struts et JSF (cf. Tableau suivant). [7]
Stage de fin de la deuxième année
48
2012-2013
Annexe A
JSF vs Struts
Comparatif Struts/JAvaServerFaces Cette partie présente un comparatif entre les Framework Struts et JSF (cf. Tableau suivant). [7]
Flexibilité du
STRUT
JSF
+
++
Commentaire
JSF
peut
avoir
plusieurs
gestionnaires d’événements au
contrôleur
sein d’une seule page tandis que Struts ne peut déclencher qu’un
seul
événement
par
requête utilisateur. Navigation
+
++
JSF propose un dispositif de navigation plus flexible que celui de Struts en le découplant du code applicatif.
Extensibilité
+
++
Struts est extensible via la classe RequestProcessor qui implémente les appels aux méthodes durant le cycle de vie d’une requête.
JSF
dispose
fonctionnalité plus
il
découpler
a la
d’une
similaire,
en
l’avantage
de
phase
rendement du contrôleur.
Stage de fin de la deuxième année
49
2012-2013
de
Annexe A Développement
JSF vs Struts +
++
Les
JSF
facilitent
combinaison
des
la GUI
complexes au sein d’un seul composant.
JSF fait partie de la J2EE et bénéficie
d’une
spécification
standard.
Le développement basé sur JSF ne nécessite pas d’étendre des classes ou implémenter des interfaces spécifiques.
La
configuration
application
Struts
d’une est
plus
laborieuse qu’une application JSF.
Le module de validation de Struts
est
plus
efficace
et
robuste que celui des JSF.
Le module de validation de Struts peut se faire coté client, ce n’est pas le cas pour les JSF.
Intégration
+
++
JSF n’est pas limité à HTML et http
mais
aussi
à
d’autres
technologies et protocoles.
Stage de fin de la deuxième année
50
2012-2013
Annexe A Maturité
JSF vs Struts ++
-/+
Struts bénéficie d’un retour d’expérience positif de la part de ses utilisateurs et des entreprises qui
maintiennent
applications L’exemple concerne
en le
des
production. plus
la
parlant console
d’administration de WebSphere 5
Tableau 3: Tableau comparatif de JSF vs Struts
Stage de fin de la deuxième année
51
2012-2013
Annexe B
Etude Benchmarking
PrimeFaces Primefaces fait partie d’un ensemble de jeux de composants additionnels permettant le développement d’applications d’entreprise avec JSF et parmi lesquels on cite Richfaces et Icefaces. En effet, le jeu de composants de bases de JSF présente une grande limitation vis-àvis des besoins complexes et évolutifs des développeurs. Dans ce qui suit nous exposerons une étude comparative entre quelques librairies.
RichFaces Le RichFaces est une infrastructure d'interface utilisateur avancée composant pour intégrer facilement des fonctionnalités AJAX dans des applications métier utilisant JSF. RichFaces 4 s'appuie sur le soutien de pionnier Ajax qui a commencé avec RichFaces 3 et est standardisé dans JSF 2. En plus d'étendre ces fonctionnalités ajax, RichFaces améliore également d'autres domaines de JSF 2, y compris l'optimisation des performances facilité d'utilisation, les ressources dynamiques, le dépouillement et le développement de composants. Cela permet aux utilisateurs de tirer pleinement parti de toutes les améliorations de la productivité du JSF 2. [10] La section qui suit comporte une comparaison entre certaines librairies utilisées avec JSF :
Librairie MyFaces Core Icefaces
Remarques Comporte uniquement les composants de la spécification JSF 2.1 La version gratuite ne comporte pas tous les composants (les composite components sont dans la version payante Icefaces EE)
RichFaces
Moins riche que PrimFaces mais plus stable
PrimFaces
Beaucoup de composants
Tableau 4: Libertaires de composants de JSF [11]
Stage de fin de la deuxième année
52
2012-2013
Annexe B
Etude Benchmarking
Selon DevRates.com , PrimeFaces a pris les devants avec note globale 9,4 en tant que cadre des développeurs préféré pour créer des interfaces utilisateur riches.
Figure 16: Number One à DevRates [12]
Des milliers d'applications ont été créées avec PrimeFaces, même les produits concurrents comme ICEfaces sont alimentés par PrimeFaces . Voici deux graphiques générés.
Figure 17: utilisation de PrimeFaces [12]
La figure 10 nous montre l’évolution de l’utilisation de la librairie PrimeFaces durant le mois d’avril de l’an en cours.
Figure 18: utilisation de PrimeFaces en mois d’Avril 2012 [12]
Stage de fin de la deuxième année
53
2012-2013