PLAN PROJET. Rapport de Projet J2EE Réseau social. Réalisé par : YAMINE Abdelmounaim. Encadré par : LACHGAR Mohamed. Binôme ou monôme (B/M): M



Documents pareils
SITE WEB E-COMMERCE ET VENTE A DISTANCE

Chapitre I : le langage UML et le processus unifié

Cours en ligne Développement Java pour le web

1 JBoss Entreprise Middleware

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Refonte front-office / back-office - Architecture & Conception -

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

CQP Développeur Nouvelles Technologies (DNT)

Formation en Logiciels Libres. Fiche d inscription

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Un serveur d'archivage

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Méthodologies de développement de logiciels de gestion

Java pour le Web. Cours Java - F. Michel

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Environnements de Développement

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Analyse,, Conception des Systèmes Informatiques

Qu'est-ce que le BPM?

Les nouvelles architectures des SI : Etat de l Art

Université de Bangui. Modélisons en UML

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Les diagrammes de modélisation

Introduction à la plateforme J2EE

Gestion d Epargne de Crédit & Comptabilité

Expert technique J2EE

Chapitre 1 : Introduction aux bases de données

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Messagerie asynchrone et Services Web

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Application web de gestion de comptes en banques

Brique BDL Gestion de Projet Logiciel

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Introduction MOSS 2007

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

1. Considérations sur le développement rapide d'application et les méthodes agiles

Catalogue des Formations

IFT2255 : Génie logiciel

Compte Rendu d intégration d application

Nouvelles Plateformes Technologiques

Projet M1 Sujet 21 : Développement d'un logiciel simplifié de type Business Object

UML (Paquetage) Unified Modeling Language

Développement itératif, évolutif et agile

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Cours de Génie Logiciel

Configuration Interface for MEssage ROuting

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Construire un réseau social avec Symfony Xavier Lacot Clever Age. Symfony Live 11 et 12 juin 2009 Clever Age Xavier Lacot

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Projet de Java Enterprise Edition

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Le moteur de workflow JBPM

Devenez un véritable développeur web en 3 mois!

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

Cours Gestion de projet

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

PROSOP : un système de gestion de bases de données prosopographiques

Catalogue des Formations Techniques

Par : ZIED TOUNSI PROJET DE FIN D ETUDE. Licence Appliquée GESTON DES PERSONNELS GOUVERNORAT DU KAIROUAN

Méthodes de développement

SECTION 5 BANQUE DE PROJETS

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

UE 8 Systèmes d information de gestion Le programme

Méthodes de développement. Analyse des exigences (spécification)

J2EE in practice. Olivier Liechti Patrik Fuhrer. Department of Informatics. Computer Science Master Course - SH 2004/05

D UNE APPLICATION EMBARQUEE DE TELECHARGEMENT DES APPLICATIONS ANDROID FTAB STORE. par. Mohamed Anouar DAHDEH UNIVERSITE VIRTUELLE DE TUNIS

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Conduite et Gestion de Projet - Cahier des charges

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

CALENDRIERS DES FORMATIONS LILLE

Évaluation et implémentation des langages

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

MEMOIRE DE STAGE DE FIN D ETUDE

Accélérez la transition vers le cloud

Formation : Modélisation avec UML 2.0 et Mise en pratique

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Notre Catalogue des Formations IT / 2015

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Bases de données et interfaces Génie logiciel

Architecture et infrastructure Web

Le Guide Pratique des Processus Métiers

Concepteur Développeur Informatique

Architectures web/bases de données

et Groupe Eyrolles, 2006, ISBN :

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Architecture distribuée

Transcription:

Développement d une application JAVA EE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom: Yamine Abdelmounaim Email : abdeyamine@gmail.com GSM:06 33 47 19 78 Rapport de Projet J2EE Réseau social Réalisé par : YAMINE Abdelmounaim Encadré par : LACHGAR Mohamed

Développement d une application JAVA EE Cadre réservé à l encadrant : Code d identification du Candidat : Nom des Validateurs Commentaires :

Développement d une application JAVA EE SOMMAIRE 1) PERMETRE DU PROJET...6 1. ENJEUX ET VISION DU PROJET... 6 2. ARCHITECTURE FONCTIONNELLE... 7 2) PLAN DE MISE EN ŒUVRE...8 1. DEMARCHE PROJET... 8 2. CYCLE DE VIE... 8 3) ANALYSE ET CONCEPTION... 10 1. LE LANGUAGE UML... 10 2. DIAGRAMME DE CAS D UTILISATION... 11 3. DIAGRAMME DE CLASES... 18 4. DIAGRAMME DE SEQUENCES... 19 5. DIAGRAMME D ACTIVITES... 21 6. DIAGRAMME D ETAT TRANSITION... 23 4) ARCHITECTURE APPLICATIVE... 21 5) ARCHITECTURE TECHNIQUE... 22

FIGURES FIGURE1 : Le lien entre les profils et les fonctionnalités du système... 7 FIGURE2 : Schéma de la méthode en cascade...9 FIGURE3 : Diagramme de cas d utilisation pour gestion des invitations...12 FIGURE4 : Diagramme de cas d utilisation pour gestion des publicités...13 FIGURE5 : Diagramme de cas d utilisation pour gestion des messages...14 FIGURE6 : Diagramme de cas d utilisation pour gestion des groups...15 FIGURE7 : Diagramme de cas d utilisation pour gestion des pages...16 FIGURE8 : Diagramme de cas d utilisation pour gestion d administration...17 FIGURE9 : Diagramme de classes...18 FIGURE10 : Diagramme de séquence de Publie un fichier...19 FIGURE11 : Diagramme de séquence de envoyer une invitation...20 FIGURE12 : Diagramme d'activité de publie un fichier...21 FIGURE13 : Diagramme états-transitions de publie un fichier...23 FIGURE14 : Diagramme états-transitions de envoyer une invitation...24 FIGURE15 : l architecture Java EE d une application web en trois couches...25 FIGURE16 : Architecture technique du projet...26 FIGURE17 : Architecture technique du projet...27

1) PERIMETRE DU PROJET 1. ENJEUX ET VISION DU PROJET Développement d une application JAVA EE Plan de projet Les réseaux sociaux sur Internet sont des applications ayant comme objectif de relier des amis, des connaissances ou des associés. Ces réseaux présentent des orientations plus ou moins personnelles ou professionnelles, c'est-à-dire que l'objectif des utilisateurs peut être de retrouver des amis et de partager des outils avec eux (photos, messages, commentaires, applications ludiques,...) ou de tisser un réseau professionnel (rencontrer des partenaires potentiels, trouver un nouvel emploi, trouver des collaborateurs, annoncer des événements ou des activités professionnelles,...). Les réseaux les plus connus sont : Twitter est un outil de communication qui a pris de l'ampleur en 2008. De nos jours, tout le monde "tweete". Facebook est un site sur lequel vous vous inscrivez gratuitement et facilement et qui vous permet de rentrer en contact avec vos amis. Vous créez votre profil avec plus ou moins de détails sur votre état civil, vos intérêts, vos passions, Viadeo est un réseau social ayant clairement un objectif professionnel. Vous y définissez votre profil dans lequel votre parcours scolaire et professionnel se taille la part du lion. (musique et vidéo). Myspace Réseau social principalement axé sur le partage de médias Les réseaux sociaux, c'est génial pour : retrouver des personnes perdues de vue, rencontrer de nouvelles personnes, vous tenir au courant des nouvelles de vos contacts et amis, partager une passion, un intérêt,... développer vos réseaux de relations privées ou professionnelles,

travailler votre image,... trouver un emploi, vous faire connaître ou faire connaître votre travail, 2. ARCHITECTURE FONCTIONNELLE Les principaux profils qui auront à utiliser notre système sont les suivants : Administrateur AD : il possède des droits sur le module administration. Utilisateur UT : il possède des droits sur le module Communication et le Personale space. Le schéma suivant décrit le lien entre les profils et les fonctionnalités de notre système : Figure1 : le lien entre les profils et les fonctionnalités du système.

2) PLAN DE MISE EN ŒUVRE 1. DEMARCHE PROJET Développement d une application JAVA EE Plan de projet Le présent projet tend à mettre en place le service Réseau social. Et afin de contrôler la qualité du projet en question, il est nécessaire de mettre en place un Plan Assurance Qualité incluant le planning du projet, en partant de la phase d étude préliminaire jusqu à la phase de mise en production de l outil. 2. CYCLE DE VIE C'est le type de méthode le plus utilisé aujourd'hui dans tous les domaines qui nécessitent de concevoir avant de produire quelque chose. Pour parvenir à un produit fini, on passe par plusieurs phases du cadrage du projet jusqu'à la livraison finale. Le principe est simple : on ne passe à la phase suivante que lorsque la précédente est validée. Autre principe : on ne revient pas en arrière (d'où le terme "cascade"). Cette méthode présente de nombreux avantages, notamment celui de sécuriser le planning du projet puisque l'on verrouille chacune des étapes les unes après les autres : on s'entend sur ce que l'on va faire (cadrage), on le conçoit dans les grandes lignes (conception générale) puis dans le détail (conception détaillée) avant de le produire (production), de le tester (tests/corrections) et de le livrer (livraison). Elle permet également de bien s'entendre sur les attendus du projet et elle est très facile à expliciter à un groupe de travail. Enfin, bien menée, elle permet d'éviter les dérives en termes de planning : il est facile de visualiser que si une étape se décale, les suivantes sont impactées. L'inconvénient principal côté client final, est une certaine rigidité du modèle. Ainsi, par exemple, dans le domaine du e-learning, la conception générale consiste à rédiger un document, appelé synopsis, ou conducteur, ou découpage pédagogique selon les prestataires. Ce document liste l'ensemble des objectifs pédagogiques et prévoit un ensemble d'activités a réaliser (animation, interactivité, vidéo, quiz etc.). Or, il n'est pas rare qu'au moment de la conception détaillée (la rédaction des story-boards associés) voire de la production, le client se rende compte d'un oubli d'un objectif ou d'un

message clé. Ceci suppose donc de remettre en question la conception générale pourtant validée... Ici la plupart du temps, deux cas de figures : Soit le prestataire a une certaine latitude en terme de planning et/ou de budget et peut se permettre ce retour en arrière et l'accepte. Soit le planning est déjà très serré et/ou les budgets très justes, et il ne peut tout simplement pas accepter sous peine de mettre en danger la rentabilité globale du projet ou la date de livraison finale. La plupart du temps, budgets et plannings sont calés au plus juste des deux côtés, ce qui empêche toute modification. Conséquence : à la moindre demande de modification, des frictions se créent qui mettent à mal les relations entre les deux partenaires. Une première solution à ceci serait tout simplement qu'en début de projet, prestataire et client se réservent une marge de manœuvre (en terme de planning et de budget) à chaque phase du projet pour justement permettre ces ajustements le moment venu, sans créer de friction. Production Tests/Corrections Conception Détaillée Conception générale Cadrage Figure2 : schéma de la méthode en cascade

3) ANALYSE ET CONCEPTION 1. LE LANGUAGE UML Développement d une application JAVA EE Plan de projet UML est un moyen d'exprimer des modèles objet en faisant abstraction de leur implémentation, c est-à-dire que le modèle fourni par UML est valable pour n'importe quel langage de Programmation. UML est un langage qui s'appuie sur un méta modèle, un modèle de plus haut niveau qui définit les éléments d'uml (les concepts utilisables) et leur sémantique (leur signification et leur mode d'utilisation). Le méta modèle permet de se placer à un niveau d'abstraction supérieur car il est étudié pour être plus générique que le modèle qu'il permet de construire. Le méta modèle d'uml en fait un langage formel possédant les caractéristiques suivantes: - un langage sans ambiguïtés. - un langage universel pouvant servir de support pour tout langage orienté objet. - un moyen de définir la structure d'un programme. - une représentation visuelle permettant la communication entre acteurs d'un même projet. - une notation graphique simple, compréhensible même par des non informaticiens. - Le méta modèle permet de donner des bases solides et rigoureuses à ce langage graphique. - dont les représentations graphiques ne sont là que pour véhiculer des concepts de réalisation. UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus d'élaboration des modèles. Cependant, dans le cadre de la modélisation d'une application informatique, les auteurs d'uml préconisent d'utiliser une démarche : itérative et incrémentale. guidée par les besoins des utilisateurs du système.

centrée sur l'architecture logicielle. La modélisation consiste à créer une représentation simplifiée d'un problème: le modèle. Grâce au modèle il est possible de représenter simplement un problème, un concept et le simuler. La modélisation comporte deux composantes: L'analyse, c'est-à-dire l'étude du problème. la conception, soit la mise au point d'une solution au problème. Le modèle constitue ainsi une représentation possible du système pour un point de vue donné. Le méta-modèle UML fournit une panoplie d'outils permettant de représenter l'ensemble des éléments du monde objet (classes, objets,...) ainsi que les liens qui les relie. Toutefois, étant donné qu'une seule représentation est trop subjective, UML fournit un moyen astucieux permettant de représenter diverses projections d'une même représentation grâce aux vues. Une vue est constitué d'un ou plusieurs diagrammes. On distingue deux types de vues: Les vues statiques, c'est-à-dire représentant le système physiquement DIAGRAMMES D'OBJETS DIAGRAMMES DE CLASSES DIAGRAMMES DE CAS D'UTILISATION DIAGRAMMES DE COMPOSANTS DIAGRAMMES DE DEPLOIEMENT Les vues dynamiques, montrant le fonctionnement du système DIAGRAMMES DE SEQUENCE DIAGRAMMES DE COLLABORATION DIAGRAMMES D'ETATS-TRANSITIONS DIAGRAMMES D'ACTIVITES

2. DIAGRAMME DE CAS D UTILISATION UC : UTILISATEUR Sommaire d identification : But : Gestion des invitations Résumé : Cette fonctionnalité permet au utilisateur de bien organiser son invitation Acteur : Utilisateur. Description détaillée : Pré conditions : L utilisateur doit : Etre authentifié. Description du traitement nominal : L utilisateur peut : Envoyer une invitation. Annuler une invitation envoyée. Confirmer une invitation d un ami. Annuler une invitation d un ami. Diagramme : Figure3 : Diagramme de cas d utilisation pour gestion des invitations

UC : UTILISATEUR Sommaire d identification : But : Gestion des publicités Résumé : Cette fonctionnalité permet à l utilisateur de gérée son publicités Acteur : Utilisateur. Description détaillée : Pré conditions : L utilisateur doit : Etre authentifié. Description du traitement nominal : L utilisateur peut : Publie un fichier. Supprimer un fichier. Commenter un fichier. J aime un fichier. Diagramme : Figure4 : Diagramme de cas d utilisation pour gestion des publicités

UC : UTILISATEUR Sommaire d identification : But : Gestion des messages Résumé : Cette fonctionnalité permet à l utilisateur de gérée son messages Acteur : Utilisateur. Description détaillée : Pré conditions : L utilisateur doit : Etre authentifié. Description du traitement nominal : L utilisateur peut : Envoyer un message à un ami. Envoyer un message à un page. Supprimer un message. Diagramme : Figure5 : Diagramme de cas d utilisation pour gestion des messages

UC : UTILISATEUR Sommaire d identification : But : Gestion des groups Résumé : Cette fonctionnalité permet à l utilisateur de gérée son group Acteur : Utilisateur. Description détaillée : Pré conditions : L utilisateur doit : Etre authentifié. Description du traitement nominal : L utilisateur peut : Crée un group. Supprimer un group. Rechercher un group. Diagramme : Figure6 : Diagramme de cas d utilisation pour gestion des groups

UC : UTILISATEUR Sommaire d identification : But : Gestion des pages Résumé : Cette fonctionnalité permet à l utilisateur de gérée son page Acteur : Utilisateur. Description détaillée : Pré conditions : L utilisateur doit : Etre authentifié. Description du traitement nominal : L utilisateur peut : Crée une page. Supprimer une page. Rechercher une page. Diagramme : Figure7 : Diagramme de cas d utilisation pour gestion des pages

AD: ADMINISTRATEUR Sommaire d identification : But : Gestion d administration Résumé : Cette fonctionnalité permet à l administrateur de bloquer une page, bloquer un groupe, bloquer un utilisateur, bloquer un fichier. Acteur : Administrateur. Description détaillée : Pré conditions : L administrateur doit : Etre authentifié. Description du traitement nominal : L administrateur peut Diagramme : Bloquer une page. Bloquer un fichier. Bloquer un utilisateur. Bloquer un groupe. Figure8 : Diagramme de cas d utilisation pour gestion d administration

3. DIAGRAMME DE CLASSES Le diagramme des classes identifie la structure des classes d'un système, y compris les propriétés et les méthodes de chaque classe. Les diverses relations, telles que la relation d'héritage par exemple, qui peuvent exister entre les classes y sont également représentées. Ci-dessous, on représente le diagramme de classe du projet Réseau Sociale «XXX». Figure9 : Diagramme de classes

4. DIAGRAMME DE SEQUENCES Le diagramme de séquence est une représentation intuitive qu on a utilisée concrétiser des interactions entre nos entités. pour Le diagramme de séquence décrit un scénario qui modélise une exécution particulière d un cas d utilisation du début jusqu à la fin. Il correspond à une sélection d enchaînements du cas d utilisation. Publie un fichier Figure10 : Diagramme de séquence de Publie un fichier 1. L utilisateur demande au système de faire une publicité. 2. Le système définit le type de l utilisateur et propose des types de partages prédéfinis. 3. L utilisateur choisit le type convenable. 4. Le système affiche la Template correspondante. 5. L utilisateur effectue l opération. 6. Le système vérifie puis valide l opération.

Envoyer une invitation Figure11 : Diagramme de séquence de envoyer une invitation 1. Le membre envoie une demande d invitation d un membre préinscrit dans réseau social au sous-système. 2. Le sous-système reçoit la demande et envoi une notification à l invité 3. Le membre reçoit l invitation 4. Le membre accepte ou ignorer l invitation.

5. DIAGRAMME D ACTIVITES Un diagramme d'activité permet de modéliser un processus interactif, global ou partiel pour un système donné (logiciel, système d'information). Il est recommandable pour exprimer une dimension temporelle sur une partie du modèle, à partir de diagrammes de classes ou de cas d'utilisation. Le diagramme d'activité est une représentation proche de l'organigramme ; la description d'un cas d'utilisation par un diagramme d'activité correspond à sa traduction algorithmique. Une activité est l'exécution d'une partie du cas d'utilisation, elle est représentée par un rectangle aux bords arrondis. Publie un fichier Figure12 : Diagramme d'activité de publie un fichier

Envoyer une invitation Figure13 : Diagramme d'activité de envoyer une invitation

6. DIAGRAMME D ETAT TRANSITION Développement d une application JAVA EE Plan de projet Un diagramme états-transitions est un schéma utilisé en génie logiciel pour représenter des automates déterministes. Il fait partie du modèle UML et s'inspire principalement du formalisme des state harts et rappelle les grafcets des automates. S'ils ne permettent pas de comprendre globalement le fonctionnement du système, ils sont directement transposables en algorithme. Tous les automates d'un système s'exécutent parallèlement et peuvent donc changer d'état de façon indépendante. Publie un fichier Figure14 : Diagramme états-transitions de publie un fichier

Envoyer une invitation Figure15 : Diagramme états-transitions de envoyer une invitation

4) ARCHITECTURE APPLICATIVE Développement d une application JAVA EE Plan de projet Notre application est constituée de trois couches. Ces trois couches se conforment à l architecture de couches fermées «Closed layer architecture» (une couche peut communiquer seulement avec la couche qui lui est adjacente). La figure suivante présente l architecture Java EE d une application web en trois couches : Figure16 : l architecture Java EE d une application web en trois couches Le concept de partitionner une application en couches et de garder toute la logique de l application dans ces couches distinctes et séparées, a été introduite bien avant l approche orientée objet. Ainsi une application est divisée en trois couches logiques, chacune traitant des fonctions spécifiques : Présentation : interface usager et présentation. Logique du logiciel à produire (besoins, services de l entreprise) : les règlements de l entreprise et la logique de l application. Logique des données : Base de données et intégration des services de l entreprise. Ce concept nous permet de créer des composants indépendants et de les déployer sur des plates-formes différentes. En fait, ce concept est très utilisé dans le développement des applications multi-tier. Plus tard,il fut adapté au modèle de conception Model-View- Controller (MVC) qui est un modèle très commun pour développer des applications distribuées et multi-tier.

5) ARCHITECTURE TECHNIQUE Développement d une application JAVA EE Plan de projet Couche Présentation Couche Sécurité Couche Métier Couche service Couche domaine Couche Persistance de données Couche DAO Base de données Figure17 : Architecture technique du projet 1. CHOIX TECHNOLOGIQUES JSF Java Server Faces est un framework de développement d application Web en Java permettant de respecter le modèle d architecture MVC et basé sur des composants côté présentation.

FACELET Technologie de présentation pour le développement d'applications web en Java ; Système detemplating : permet de définir des vues de JSF en utilisant des calibres du modèle HTML ; Réduit la quantité de code nécessaire pour intégrer des composants dans la vue. RICHFACES Librairie de composants JSF pour le développement d'applications web riches (RIA) Rich Internet Application avec Ajax. SPRING Spring est un framework open source J2EE pour applications 3-tiers ; Faciliter l'intégration des différentes technologies qui a priori sont pour le moins hétérogènes. SPRING SECURITY Framework qui permet la gestion de deux grandes problématiques liées à la sécurité applicative : Authentification ; Autorisation. HIBERNATE Hibernate est un framework open source gérant la persistance des objets en base de données relationnelle. Figure17 : Architecture technique du projet

2. OUTILS : TOMCAT L'utilisation d'un serveur Java EE est obligatoire pour le développement de pages Web dynamiques en Java EE. Un serveur HTTP classique reçoit des requêtes HTTP et renvoie des réponses mais il ne connait pas les Servlets, les JSP... Il est donc essentiel d'utiliser un programme appelé moteur de Servlets qui est contenu dans le serveur Java EE et qui permet de pallier ce manque. ECLIPSE Eclipse est l'environnement de développement (spécialisé pour le langage Java) qui sera utilisé dans ce projet. Le choix d'eclipse repose essentiellement sur sa gratuité, sa facilité d'utilisation, sa puissance de développement et surtout ses nombreux plugins (bibliothèques additives). APACHE Apache est le serveur Web le plus utilisé sur Internet. Dans une architecture en production, il est recommandé d'utiliser un serveur Web en frontal d'un serveur d'applications. Ces recommandations sont également appliquées dans le cas de l'utilisation d'un conteneur Web comme Tomcat. L'utilisation d'un serveur Web en frontal est nécessaire dans ce projet pour des raisons de performance, de sécurité et de flexibilité. Coupler Tomcat et le serveur web Apache L'intégration d'un serveur Tomcat avec un serveur Web se fait au travers d'un connecteur configuré au sein de Tomcat et d'une extension ajoutée au serveur Web. Un connecteur Tomcat est une classe Java qui supporte un protocole réseau spécifique et propriétaire. La librairie d'extension du serveur Web permet un dialogue entre les deux serveurs. MySQL Le SGBD MySQL est supporté par un large éventail d'outils. MySQL est surtout installé pour les applications Web, ce SGBD est solide et utilisé par de grands groupes spécialisés dans l'internet. Plusieurs pilotes natifs de type 4 sont disponibles pour MySQL et sont conseillés pour une utilisation en Java.