1. La mise en place d’un forum de discussion
Université Mohammed V-Rabat
Ecole Nationale Supérieure d’Informatique et
d’Analyse des Systèmes
RAPPORT DE PROJET DE
FRAMEWORKS JEE
Sujet :
LABOS-FORUM
Forum de discussion pour
Labos de recherche d’UM5S
Réalisé par :
- KANGA Dominique Bernard
- NIDABRAHIM Youssef
Encadré par :
- Mr. Mahmoud EL HAMLAOUI
Année universitaire 2016 - 2017
2. La mise en place d’un forum de discussion
Remerciements
Avant d’entamer ce rapport de projet de Java entreprise édition (JEE),
on tient à exprimer nos sincère gratitudes envers tous ceux qui nous
ont aidé ou ont participé au bon déroulement de ce projet.
Nos sincères remerciements à Monsieur MAHMOUD EL
HAMLAOUI, notre encadrant durant le déroulement de
ce projet, pour sa générosité, sa disponibilité permanente, son guide
et ses conseils son aide inestimable.
3. La mise en place d’un forum de discussion
Table des matières
Remerciements..................................................................................................2
Liste des abréviations......................................................................................... 4
Table des figures ................................................................................................ 5
Introduction générale ........................................................................................ 6
Présentation du projet ...................................................................................... 7
1. Objectif du projet...................................................................................... 8
2. Spécification des besoins fonctionnels et non fonctionnels ...................... 8
Analyse et conception ..................................................................................... 10
1. Analyse des cas d’utilisation.................................................................... 11
2. Modèle conceptuel de données.............................................................. 11
Environnement et outils de travail.................................................................. 13
1. Outils de travail......................................................................................... 14
1.1. Outils de conception.............................................................................................................. 14
1.2. Outils de développement...................................................................................................... 14
1.3. Choix de serveurs ................................................................................................................... 14
2. Framework et Technologies ...................................................................... 17
1.1. Java Entreprise Edition J2ee .................................................................................................. 17
1.2. Framework JSF........................................................................................................................ 17
1.3. Framework Hibernate ............................................................................................................ 17
1.4. HTML...................................................................................................................................... 19
1.5. CSS ......................................................................................................................................... 19
Réalisation et mise en œuvre.......................................................................... 20
Apport du projet.............................................................................................. 23
1. Apports scientifiques et techniques........................................................ 24
2. Apport sur la formation pédagogique..................................................... 24
3. Apport personnel.................................................................................... 24
Conclusion et Perspectives.............................................................................. 25
4. La mise en place d’un forum de discussion
Liste des abréviations
Abréviation Désignation
UML Unified Modeling Language
IDE Integrated Development Environment
MCT Modèle conceptuel de traitement
J2EE Java 2 Entreprise Edition
JSP Java Server Page
MCD Modèle Conceptuel des Données
MLD Modèle Logique des Données
HTML HyperText Markup Language
CSS Feuilles de Style en Cascade
AJAX Asynchronous JavaScript and XML
MOT Modèle organisationnel de traitement
5. La mise en place d’un forum de discussion
Table des figures
Figure 1: Use case ............................................................................................ 11
Figure 5 : MCD.................................................................................................. 12
Figure 2 : Architecture 3-tiers........................................................................... 15
Figure 3 : Page des problèmes.......................................................................... 21
Figure 4 : Page des sous problèmes.................................................................. 21
Figure 5 : Page d'ajout d'un nouveau problème............................................... 22
Figure 6 : Page problème avec des solutions.................................................... 22
6. La mise en place d’un forum de discussion
Introduction générale
L'évolution des technologies de l'information et de la communication est à
l'origine du regain de la notion de système d´information. Le média internet se
révèle pratique pour amorcer un dialogue entre les membres d’un laboratoire.
Le projet qu’on présente, qui s’inscrit dans le cadre de notre projet
académique de plateforme de développement, aborde précisément un
système qui permet de faciliter la recherche des solutions à des problèmes bien
déterminés et cela sous forme de forum.
On présente dans ce rapport les différentes étapes suivies pour la réalisation
de ce projet. Il est axé sur quatre grandes parties. On a commencé par une
étude préliminaire qui consiste à préciser de façon claire les objectifs du projet
ainsi que son contexte. Ensuite vient la phase d’étude détaillée, à ce stade on
a spécifié ce qui doit être réalisé pour atteindre l’objectif dont vient
l’élaboration du cahier des charges. Puis on a entamé la phase d’analyse afin
de modéliser les besoins fonctionnels en réalisant quelques diagrammes à
savoir le diagramme des cas d’utilisation et le diagramme de classe. Après on
a réalisé une étude conceptuelle en élaborant les diagrammes MCD et MLD.
Enfin vient la phase de réalisation qui permet la construction du projet.
7. La mise en place d’un forum de discussion
CHAPITRE
I Présentation du
projet
8. La mise en place d’un forum de discussion
Introduction
Le présent chapitre a pour but de définir le projet. On procède dans un premier
temps à déterminer les objectifs de ce projet ensuite à détailler ses besoins
fonctionnels.
1. Objectif du projet
Le but de notre projet est d'implémenter un forum. Un forum est un espace de
discussion publique, au moins ouvert à plusieurs participants, afin de partager
des informations et des thèmes de discussion avec d'autres personnes.
Il a été conçu dans le cadre d'un projet de frameworks JEE.
Cette solution sera mise en place vue que les nouvelles techniques de
l’information et de la communication prennent de plus en plus d’importance
dans tous les secteurs, et s’avèrent aujourd’hui être indispensables pour faciliter
et bien gérer le bon déroulement d’un projet et trouver des solutions à des
problèmes.
2. Spécification des besoins fonctionnels et non
fonctionnels
Ce projet s’agit bien d’une application de la gestion des projets qui vise à
faciliter et bien gérer le bon déroulement d’un projet et trouver des solutions à
des problèmes. Une telle gestion exige rigueur et méthode, donc l’application
doit être accessible en permanence, depuis n’importe quel ordinateur
connecté à Internet.
L’application doit être dynamique dans tous les sens du terme et avoir une
navigation simple en respectant les bonnes pratiques permettront aux
membres de laboratoire de trouver facilement les informations recherchées
ainsi que les éléments essentiels qui doivent être visibles et accessibles.
L’application doit être sécurisé, fiable et les données doivent être facilement
accessible et disponible.
Le but de notre projet est d'implémenter un forum qui est un espace de
discussion ouvert à plusieurs participants, des membres de laboratoire afin de
partager des informations et des problèmes à résoudre avec d'autres
personnes.
L'ensemble des discussions est généralement visible par ses participants, et
éventuellement par les membres du forum ou même par tous les internautes.
9. La mise en place d’un forum de discussion
Cette plateforme aide les personnes à partager leurs connaissances. Les
personnes ayant des questions obtiennent les réponses dont elles ont besoin.
La plateforme est enrichie par des commentaires, des votes, des notifications,
des points et des classements.
Le forum de discussion affiche tout d'abord les discussions les plus récentes,
ainsi que le nombre de réponses pour chaque discussion. Vous pouvez ainsi
savoir rapidement quelles sont les discussions les plus voté positivement ou
négativement.
On distingue deux possibilités de présentation des messages :
- Un modèle chronologique, où chaque message est au même niveau et
ne fait que suivre ou précéder un autre message dans le temps.
- Un modèle hiérarchique, où chaque message est vu comme une
réponse à un message antérieur.
Nous allons pour ce projet réaliser un forum selon un modèle chronologique
organisé en sujets avec des fonctionnalités simplifiées.
10. La mise en place d’un forum de discussion
CHAPITRE
IIAnalyse et
conception
11. La mise en place d’un forum de discussion
1. Analyse des cas d’utilisation
Les diagrammes de cas d'utilisation sont des diagrammes UML utilisés pour
donner une vision globale du comportement fonctionnel d'un système logiciel.
Les cas d’utilisation « use cases » permettent de structurer les besoins des
utilisateurs aussi bien qu’ils expriment les exigences du système vis-à-vis des
utilisateurs en partent du principe que les objectifs du système sont tous
motivés. Les cas d’utilisation permettent ainsi de classer les acteurs et structurer
les objectifs du système.
Ci-dessous le diagramme de cas d’utilisation général :
Figure 1: Use case
2. Modèle conceptuel de données
12. La mise en place d’un forum de discussion
Figure 2 : MCD
13. La mise en place d’un forum de discussion
CHAPITRE
IIIEnvironnement et
outils de travail
14. La mise en place d’un forum de discussion
Introduction
Dans cette partie, je vais présenter l’environnement matériel et logiciel utilisés
pour le développement de notre solution proposé.
J’expliquerai éventuellement mes choix techniques relatif aux langages de
programmation.
1. Outils de travail
1.1. Outils de conception
PowerAMC est un logiciel de conception qui permet de modéliser les
traitements informatiques et leurs bases de données associées. Il se destine aux
architectures de données, aux architectures d’informations et aux
architectures d’entreprise.
1.2. Outils de développement
Eclipse est un IDE dédié au développement de logiciels basés sur Java (bien
que d’autres langages soient supportés également).
1.3. Choix de serveurs
Nous sommes en train de réaliser une application qui se connecte à un serveur
de bases de données distant, via Internet, afin de récupérer les données. Ce
qui nécessite aussi l’intégration d’un serveur entre l’application client et le
serveur de bases de données.
D’où l’architecture de notre application est à 3 niveaux (architecture 3-tiers),
elle est partagée entre:
- L'utilisateur : Conteneur d’application et demandeur de ressources.
- Le serveur : Vu que les données seront communiquées entre deux
environnements hétérogènes, le rôle principal du serveur est de gérer la
communication entre l'utilisateur et la base de données.
- La base de données fournis les données au serveur.
15. La mise en place d’un forum de discussion
Figure 3 : Architecture 3-tiers
Serveur de base de données
Un serveur de base de données entièrement intacte et hautement disponible
est essentiel à toute application web.
Un serveur de base de données sert à stocker, à extraire et à gérer les données
dans une base de données. Il permet également de gérer la mise à jour des
données. Il donne un accès simultané à cette base à plusieurs serveurs Web et
utilisateurs. Enfin, il assure la sécurité et l’intégrité des données. Et quand on
parle de données, on entend peut-être des millions d’éléments simultanément
accessibles à des milliers d’utilisateurs.
MySQL est la base de données la plus populaire en hébergement Web. Il s’agit
d’une option puissante, tout en étant gratuite, très en vogue.
MySQL est fréquemment utilisé avec une interface de gestion appelée
phpmyadmin qui permet à un non-initié de générer des requêtes sql sur une
base de données dans un espace ergonomique et intuitif.
Serveur web
Un serveur web peut faire référence à des composants logiciels (software) ou
à des composants matériels (hardware) ou à des composants logiciels et
matériels qui fonctionnent ensemble.
Au niveau des composants matériels, un serveur web est un ordinateur qui
stocke les fichiers qui composent un site web (par exemple les documents
HTML, les images, les feuilles de style CSS, les fichiers JavaScript) et qui les envoie
à l'appareil de l'utilisateur qui visite le site. Cet ordinateur est connecté à
Internet et est généralement accessible via un nom de domaine.
16. La mise en place d’un forum de discussion
Au niveau des composants logiciels, un serveur web contient différents
fragments qui contrôlent la façon dont les utilisateurs peuvent accéder aux
fichiers hébergé. On y trouvera un serveur HTTP.
Un serveur HTTP est un logiciel qui comprend les URL et le protocole HTTP (le
protocole utilisé par le navigateur pour afficher les pages web). Le plus connu
est Apache qu’on va l’utiliser.
Au niveau le plus simple, à chaque fois qu'un navigateur a besoin d'un fichier
hébergé sur un serveur web, le navigateur demande (on dit qu'il envoie une
requête) le fichier via HTTP. Quand la requête atteint le bon serveur web
(matériel), le serveur HTTP (logiciel) renvoie le document demandé, également
grâce à HTTP.
Le plus souvent, un serveur Web utilise d'autres logiciels qui fonctionnent en
collaboration avec le serveur HTTP. Selon les besoins, certains services
gourmands en ressources, comme le serveur de base de données, peuvent
être situés sur la même machine ou un serveur spécialisé.
C’est pour cela qu’on va utiliser WampServer, une plateforme de
développement Web de type WAMP, permettant de faire fonctionner
localement, sans se connecter à un serveur externe, des scripts PHP.
17. La mise en place d’un forum de discussion
WampServer n'est pas en soi un logiciel, mais un environnement comprenant
un serveur http Apache et un serveur de base de données MySQL, un
interpréteur de script (PHP), ainsi que phpMyAdminpour l'administration Web
des bases MySQL.
2. Framework et Technologies
1.1. Java Entreprise Edition J2ee
Java Enterprise Edition ou Java EE (anciennement J2EE), est une spécification
pour la technique java d'Oracle plus particulièrement destinée aux
applications d’entreprise. Ces applications sont considérées dans une
approche multi-niveaux.
1.2. Framework JSF
JSF ou Java Server faces est un framework Java pour le développement
d’applications web. JSF est basé sur la notion de composants. Java Server
Faces (JSF) est une technologie dont le but est de proposer un framework qui
facilite et standardise le développement d'applications web avec Java. Son
développement a tenu compte des différentes expériences acquises lors de
l'utilisation des technologies standard pour le développement d'applications
web (servlet, JSP, JSTL) et de différents frameworks (Struts, ...).
Le grand intérêt de JSF est de proposer un framework qui puisse être mis en
oeuvre par des outils pour permettre un développement de type RAD pour les
applications web et ainsi faciliter le développement des applications de ce
type. Ce type de développement était déjà courant pour des applications
standalone ou clients/serveurs lourds avec des outils tels que Delphi de Borland,
Visual Basic de Microsoft ou Swing avec Java.
1.3. Framework Hibernate
Hibernate est un framework qui gère la persistance des objets en base de
données. Ce projet ne repose sur aucun standard mais il est populaire
18. La mise en place d’un forum de discussion
notamment grâce à ses bonnes performances et son ouverture avec de
nombreuses bases de données.
Architecture de Hibernate :
L'utilisation de Hibernate présente plusieurs avantages et inconvénients
Les avantages :
o Hibernate génère le code SQL nécessaire, ce qui rend l'application plus
portable, s'adapte à la base de données.
o La persistance est transparente. Vous pouvez faire de vos classes
métiers des classes persistantes sans ajout de code.
o La récupération de données est optimisée. On peut interroger la base
de données de plusieurs façons (Requête SQL, langage HQL...).
o Portabilité du code en cas de changement de la base de données.
Les inconvénients
o Il est dure de faire des requêtes complexe avec HQL (ex: sous requêtes)
o Etant une technologie jeune, il reste des problèmes à résoudre (ex: les
fichiers de mapping ne sont pas toujours bien formés).
o Ne se base pas sur les standards.
Avant de commencer, il faut copier les librairies des modules Hibernate Core
et Annotations dans le répertoire lib avant de le spécifier à Eclipse en cliquant
droit sur le projet dans le package explorer qui ouvre un menu contextuel : nous
ouvrons Build path, Configure Build path. Nous cliquons sur l’onglet Libraires,
puis sur le bouton add JARS. Il suffit ensuite d’ajouter toutes les bibliothèques
19. La mise en place d’un forum de discussion
du module Core et toutes celles du module Annotations. Il ne faut pas oublier
d’ajouter aussi la bibliothèque associée au SGBD qu’on souhaite utiliser.
Nous passons ensuite à la création du fichier de configuration XML
hibernate.cfg.xml à la racine du répertoire src du projet qui va permettre
d’indiquer au moteur d’Hibernate les paramètres de connexion à la base de
données et les drivers à utiliser. Il faut déclarer les packages et les classes
annotées dans le fichier de configuration XML habituel (hibernate.cfg.xml).
1.4. HTML
L’HyperText Mark up Langage, généralement abrégé HTML, est le format de
données conçu pour représenter les pages web. C’est un langage de balisage
permettant d’écrire de l’hypertexte, d’où son nom.
1.5. CSS
Les feuilles de style en cascade, généralement appelées CSS de l'anglais
Cascading Style Sheets, forment un langage informatique qui décrit la
présentation des documents HTML et XML.
Conclusion
Tous projets informatiques nécessitent la connaissance des outils à utiliser et
nous avons jugé bon de choisir les outils énoncés précédemment.
20. La mise en place d’un forum de discussion
CHAPITRE
IVRéalisation et
mise en œuvre
21. La mise en place d’un forum de discussion
INTRODUCTION
Ce chapitre est consacré à la phase de la réalisation du projet. Il aborde
quelques interfaces de notre plateforme Forum.
Figure 4 : Page des problèmes
L’internaute qui arrive sur le site va être capable de voir l’ensemble des
statistiques fournées à savoir le nombre des problèmes posés, le nombre des
solutions proposées ainsi que le nombre de membres de forum, en plus de ça
un membre peut facilement consulter les nouvelles publications, avoir une idée
sur les problèmes sans solutions.
Figure 5 : Page des sous problèmes
22. La mise en place d’un forum de discussion
Figure 6 : Page d'ajout d'un nouveau problème
Figure 7 : Page problème avec des solutions
23. La mise en place d’un forum de discussion
CHAPITRE
V Apport du
projet
24. La mise en place d’un forum de discussion
Ce projet est une bonne expérience, il nous a apporté beaucoup de choses
tant au niveau technique qu’en terme de gestion de projet.
1. Apports scientifiques et techniques
Ce projet nous a permis de découvrir le monde du développement
informatique, un monde complexe mais passionnant de par les débouchés
auxquels il mène. Nous avons également acquis de nouvelle notion sur les
différentes plateformes de développement. Les acquis de ce projet nous
serviront dans le futur.
2. Apport sur la formation pédagogique
Ce projet nous a permis de consolider nos connaissances sur le langage JEE et
ses frameworks. Nous sommes satisfaits d’avoir choisi ce sujet car nous
répondons à une problématique.
3. Apport personnel
Chaque membre de l’équipe a eu des apports personnels durant le projet.
NIDABRAHIM YOUSSEF :
« Expérience intéressante qui m’a permis de coréaliser un projet abouti et qui
m’a appris à être plus à l’écoute des autres. Que du positif, expérience à
renouveler »
KANGA DOMINIQUE BERNARD :
« Bon travail, bonne ambiance de groupe. Que d’émotion et de souvenir
inoubliable, très bonne expérience à renouveler »
CONCLUSION
Nous sommes en général satisfaits de tous ce que nous avons appris à travers
ce projet.
25. La mise en place d’un forum de discussion
Conclusion et Perspectives
L’objectif visé à travers ce rapport est de présenter l’application réalisée qui
s’inscrit dans le cadre de notre projet académique de plateforme de
développement, ce projet consiste à concevoir et à développer une
plateforme de forum qui permet de mettre en relation entre les membres de
laboratoire d’UM5S pour faciliter la recherche des solutions à des problèmes
rencontrés.
Au cours de ce travail, on a consacré, dans un premier temps, nos réflexions à
l’étude de l’existant et la spécification des besoins. Cette étude nous a permis
de déterminer les grands axes qu’on va suivre pour concevoir cette solution.
Une phase de conception détaillée à précéder l’implémentation de ce projet.
En effet, on a pu développer une application qui répond aux exigences
soulignés pendant l’analyse et la conception.
De l’avis général, nous avons consolidé nos connaissances générales et appris
à faire des applications plus attrayantes et plus orientées pour le monde du
travail. Nous sommes globalement satisfaits de ce que nous avons réalisé.
Au niveau de la gestion du projet en équipe, nous avons réussi à bien nous
répartir les tâches afin de réaliser nos objectifs dans les temps et l'ambiance
générale du groupe était très bonne. Une bonne expérience à renouveler.