Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23
Table des matières 1 Objectif du document...4 2 Architecture...5 2-1 Contraintes techniques...5 2-2 Packages et dépendances...6 2-2-1 La couche de navigation Web...6 2-2-2 La couche de traitements métiers...7 2-2-3 La couche domaine...7 2-2-4 L'accès aux données...8 2-2-5 Dépendances...8 2-3 Déploiement...13 3 Technologies utilisées...15 3-1 Serveur Web...15 3-2 Stockage des données et couche de persistance...15 3-3 Couche métier...15 3-4 Couche service...15 3-5 Couche présentation...15 3-6 Environnement de développement...16 3-7 Tests unitaires...16 4 Les acteurs et le système...16 4-1 Naviguer sur le site...17 4-1-1 Rechercher un article...17 4-1-1-1 Sélectionner une catégorie...17 4-1-1-2 Sélectionner un produit...18 4-1-1-3 Afficher les références d'un produit...18 4-1-1-4 Rechercher un article : description des classes...19 4-1-2 Effectuer une commande...20 4-1-2-2 Afficher le contenu du panier...20 4-1-2-2 Ajouter une référence dans le panier...20 4-1-2-3 Valider son panier...21 4-1-2-4 Sélectionner le transporteur...22 4-1-2-5 Régler la commande...23 2 / 23
4-1-2-6 Effectuer une commande : description des classes...24 4-2 La gestion du catalogue par le gérant...25 4-2-1 Ajouter une catégorie...25 4-2-2 Modifier une catégorie / un produit / une référence...25 4-2-3 Supprimer une catégorie...26 4-2-4 Ajouter un produit / une référence...26 4-2-5 La gestion du catalogue par le gérant : description des classes...27 Bibliographie...28 3 / 23
1 Objectif du document Ce document est le troisième rédigé dans le cadre de la refonte du site pacificnorthwestshop.com. A l'aide de diagrammes et de description, il détaille l'architecture technique et la conception de l'application. Le langage de modélisation est UML - Unified Modeling Language - standardisé depuis 1997 par l'omt - Object Mangement Group. Ce document utilise deux diagrammes UML. Le diagramme de séquence représente les interactions entre les objets d'un point de vue temporel. Nous considérons dans ce document que ces interactions s'effectuent avec succès. Le diagramme de classes liste les classes du système et leurs relations (instanciation, association, composition,...). Pour faciliter la clarté de ces diagrammes, la traduction en différentes langues des éléments du site n'est pas pris en compte. En pratique, il faudrait ajouter les différents attributs et opérations correspondant à chaque langue retenue. Suivi du planning : 2009 Février Mars Avril Mai Juin Juillet Août Septembre Octobre Étude des besoins Analyse Conception Codage Finalisation et mise en ligne Concernant le développement de l'application pendant les prochains mois, tout devra être mis en œuvre pour : assurer une mise en ligne en octobre 2009, garantir le fonctionnement du site e-commerce pour les fêtes de fin d'année. Par rapport donc aux cas d'utilisation détaillés dans les précédents documents, les fonctionnalités suivantes seront prioritaires dans le développement : pour l'internaute, rechercher un article, gérer son panier et effectuer une commande, pour l'administrateur, la gestion des catégories, des produits et des références. Ces éléments sont détaillés dans ce document. La gestion de la newsletter et des e-mailings peut être reportée à un second temps de développement. De même, des technologies comme JSF ou JSTL peuvent être mises en place ultérieurement. 4 / 23
2 Architecture 2-1 Contraintes techniques Les dernières spécifications de la plateforme Java Enterprise Edition 5 devront être respectées. Ceci se traduira donc par l'utilisation des technologies : Enterprise Java Beans 3.0 pour la gestion de la couche métiers, Java Persistence API pour assurer la persistance des objets, Java Server Faces pour l'organisation des pages Web. Le site sera installé sur un serveur dédié chez un hébergeur américain. La sauvegarde des différentes données et autres back-ups seront délégués à ce prestataire. La distribution Linux reste à définir. Les caractéristiques techniques seront proches des éléments suivants : un processeur Intel Core2Duo E6550 2x 2.33 GHz, 4 Go de mémoire vive, 100 Mbps de bande passante pour un trafic illimité, 100 Go de disque dur. Un serveur d'applications compatible JEE y sera configuré et MySQL sera le système de gestion de base de donnés. Les utilisateurs du site - gérant ou clients - se connecteront à l'aide d'un logiciel de navigation. L'élaboration graphique respectera les standards du W3C et les pages Web seront optimisées pour les dernières versions des navigateurs, notamment : Microsoft Internet Explorer 7.0, Mozilla Firefox 2.0 5 / 23
2-2 Packages et dépendances 2-2-1 La couche de navigation Web Les pages Web au format XHTML seront générées dynamiquement à l'aide de JSP, JSF et JSTL. Les interfaces JSP seront les suivantes : Les managed beans seront chargés des traitements et des appels effectués par les pages JSP : 6 / 23
2-2-2 La couche de traitements métiers Cette couche traite les requêtes envoyées depuis la couche de présentation et retourne un résultat calculé. Dans notre application, elle comprend donc les stateless beans et stateful beans qui manipuleront les entity beans : 2-2-3 La couche domaine Ces classes représentent les objets métier manipulés par l'application. Sous forme d'entity beans, elles composent la couche domaine. La persistence des objets est assuré par la couche de mapping objet/relationnel. 7 / 23
2-2-4 L'accès aux données Dans notre application, cette couche est en fait une couche de mapping objet/relationnel. L'accès aux données s'effectue via les entity beans ci-dessus et JPA. Cette couche sauvegarde les informations d'un objet dans une représentation physique et réciproquement. 2-2-5 Dépendances 2-3 Déploiement Les machines représentées ci-contre sont : le serveur distant comprend le serveur d'applications GlassFish et la base de données MySQL, les serveurs des prestataires accessibles via les services Web, le poste d'un internaute qui se connecte au site à l'aide d'un client léger de navigation Web. 8 / 23
9 / 23
3 Technologies utilisées 3-1 Serveur Web L'API Java Servlet est une application Java qui permet de générer dynamiquement des données au sein d'un serveur Web. Les servlets peuvent utiliser toutes les API Java. Le serveur d'applications open-source GlassFish intègre un conteneur Web, permettant ainsi l'utilisation des servlets 2.5. 3-2 Stockage des données et couche de persistance Le système de gestion de bases de données relationnelles retenu est MySQL. Une distribution du serveur d'applications GlassFish intègre désormais la version 5.0 de MySQL et le pilote JDBC MySQL 5.1.6. Le serveur de base de données sera donc installé sur la même machine que le serveur d'applications. La base de données sera généré à l'aide de JPA. Il répondra aux besoins exprimés lors de la mise en relation des différents entity beans (voir le diagramme des classes correspondant dans la seconde partie de cet exposé). La persistance des objets et le mapping objet/relationnel seront assurés par JPA, à travers les entity beans. 3-3 Couche métier La couche métier regroupe tous les entity beans. Depuis la spécification EJB 3, les entity beans ne sont plus des composants lourds mais de simples POJO. 3-4 Couche service Dans notre application, les stateless session beans et les stateful session beans traitent les requêtes effectuées depuis la couche présentation. Ces composants remplacent donc les classes Service présentées dans le document d'analyse. 3-5 Couche présentation Pour l'application Web, les technologies retenues sont XHTML et CSS. Toutefois, ces pages Web seront générées à l'aide de servlets, pages JSP et autres tags JSTL. L'architecture du client léger sera le modèle MVC, enrichi par JSF : les entity beans sont le modèle, les pages JSP représente la vue, le contrôleur est implémenté avec une servlet unique (la FacesServlet), chargée d'intercepter toutes les requêtes HTTP, et le fichier faces-config.xml définit la navigation entre les pages. La FacesServlet déléguera les traitements aux managed beans. 10 / 23
3-6 Environnement de développement Le développement de l'application s'effectuera à partir de l'ide libre Eclipse for Java EE Developers. Les diagrammes UML sont générés avec Visual Paradigm. 3-7 Tests unitaires Pour tester les interactions entre les objets et le bon-fonctionnement de l'application, la bibliothèque Junit sera utilisée. Pour tester les différents échanges HTTP, l'application intégrera également un module de tests développés avec HttpUnit. 4 Les acteurs et le système 11 / 23
4-1 Naviguer sur le site 4-1-1 Rechercher un article 4-1-1-1 Sélectionner une catégorie 12 / 23
4-1-1-2 Sélectionner un produit 4-1-1-3 Afficher les références d'un produit 13 / 23
4-1-1-4 Rechercher un article : description des classes 14 / 23
4-1-2 Effectuer une commande 4-1-2-2 Afficher le contenu du panier 4-1-2-2 Ajouter une référence dans le panier 15 / 23
4-1-2-3 Valider son panier 16 / 23
4-1-2-4 Sélectionner le transporteur 17 / 23
4-1-2-5 Régler la commande 18 / 23
4-1-2-6 Effectuer une commande : description des classes 19 / 23
4-2 La gestion du catalogue par le gérant 4-2-1 Ajouter une catégorie 4-2-2 Modifier une catégorie / un produit / une référence 20 / 23
4-2-3 Supprimer une catégorie 4-2-4 Ajouter un produit / une référence 21 / 23
4-2-5 La gestion du catalogue par le gérant : description des classes 22 / 23
Bibliographie Ouvrages Pierre-Alain Muller & Nathalie Gaertner, Modélisation objet avec UML, 2e édition, Eyrolles, 2000 C.T. Arrington, Enterprise Java with UML, John Wiley, 2001 Pascal Roques, UML 2 par la pratique, 5e édition, Eyrolles, 2006 Mike Keith & Merrick Schincariol, Pro EJB 3, Java Persistence API, Apress, 2006 Jonas Jacobi & John R. Fallows, Pro JSF and Ajax, Apress, 2006 Autre référence Cours Cnam GLG204, Modélisation des besoins avec UML, 2007/2008 23 / 23