Spécifications techniques « Risques industriels et naturels » RISQUES INDUSTRIELS ET NATURELS DANS LE BASSIN ALESIEN Spécifications techniques Laura HARDY 1 [2013] Spécifications techniques « Risques industriels et naturels » [2013] SOMMAIRE I. Technologies utilisées…………………………………………………………………………………………….………………..………p.3-4 I.1 Environnement de production……………………………………………………….……………………………………………………………………………………p.3 Plate-forme J2EE…………………………………………………………………………………………………………………………………..………………………………………………………p.3 Serveur d’application Jboss 4.2………………………………………………………………………………………………………….……………………………………………………….p.3 SGBD My SQL…………………………………………………………………………………………………………………………………………..……………………………………………………..p.3 Framework JSF 2.0/Primefaces……………………………………………………………………………………………………………..……………………………..……………………p.3 I.2 Composants de programmation………………………………………………………………………………………………….…………………………………….p.4 JSP…………………………………………………………………………………………………………………………………………………………………….……………………………………………p4 Servlet……………………………………………………………………………………………………………………………………………………………......………………………………………….p.4 Hibernate……………………………………………………………………………………..…………………………………………………………………………………………………………………p.4 I.3 Environnement de développement………………………….………………………………………………………………………………………………………..p.4 IDE Netbeans……………………………………………………………………..……………………………………………………………………………………………………………………………p.4 II. Architecture du projet…………………………………………………………………………………………….………………………....p.5 II. 1 Le modèle MVC…………………………………………………………………………………………………………………………………………………………………..p.5 Vue………………………………………………………………………………………………………………………………………………………………………………………………………………….p.5 Contrôleur……………………………………………………………………………..……………………………………………………………………………………………………………………….p.5 Modèle…………………………………………………………………………………..………………………………………………………………………………………………………………………..p.5 III. Arborescence du projet…………………………………………………………………………………………………………….……….p.6 III. 1 Le module RisquesAdmin-war………………………………………………..………………………………………………………………………………………p.6 III. 2 Le module Risques-ejb…………………………………………………………..………………………………………………………………………………………p.6 IV. Base de données…………………………………………………………….……………………………………………………..……………p.7 IV.1 Schéma relationnel de données…………………………………….………………………………………………………………………………………………..p.7 Laura HARDY 2 Spécifications techniques « Risques industriels et naturels » [2013] I. Technologies utilisées et justification des choix Cette documentation technique présente les technologies utilisées dans le cadre de l’application « Risques industriels et naturels dans le bassin Alésien », du point de vue de l’environnement de développement et de production et également des composants de programmation. I. 1 Environnement de production Plate-forme J2EE : L’application « Risques industriels et naturels dans le bassin Alésien » a été réalisée avec la plate-forme J2EE (Java 2 Enterprise Edition) : - L’organisation (la cellule Web de la mairie d’Alès) a l’habitude d’utiliser la langage - Java permet la modélisation objet - C’est un standard - Cela donne la possibilité de faire communiquer l’application avec d’autres Serveur d’application Jboss 4.2 : Le projet J2EE s’exécute sur le serveur d’applications Jboss 4.2 : - C’est de l’open source, en libre distribution - L’organisation n’a pas le budget nécessaire pour pouvoir utiliser autre chose - Le fonctionnement de Jboss convient très bien à l’organisation SGBD My SQL : Le SGBD (Système de Gestion de Base de Données) utilisé est My SQL : - Pour ce projet il n’y avait pas besoin de base de données graphe - Il n’y avait pas non plus besoin d’avoir une base plus importante et ses outils sont connus - On peut se connecter à la base (pour l’administration etc) avec d’autres outils, en dehors de l’organisation Framework JSF 2.0 avec PrimeFaces : Le framework utilisé est JSF (« Java Server Faces »). JSF dispose de nombreux composants variés favorisant la réalisation d’applications Web avec une interface efficace et agréable pour les utilisateurs. En revanche, le JSF est très lourd. Pourquoi Primefaces ? - Associé à la bibliothèque de composants grahiques PrimeFaces, JSF gagne en productivité et en efficacité. - Les composants Primefaces proposent des fonctionnalités prêtes à l’emploi, nombreux, divers et de qualité. - Il y a beaucoup de Widgets pour la gestion. - Il y a une bonne documentation. Laura HARDY 3 Spécifications techniques « Risques industriels et naturels » [2013] I. 2 Composants de programmation JSP : Les composants JSP (JavaServer Pages) sont intégrables dans les pages HTML par des balises spéciales, sont exécutés côté serveur et réinterprétés en code HTML avant d’être renvoyé au navigateur du client. Pourquoi JSP ? - Le JSP est le langage de base sur J2EE. - Ses composants sont directement utilisables (managed bean) - C’est un langage compilé. Servlet : Les servlets sont des classes Java qui permettent de créer dynamiquement des données au sein d’un serveur http. Hibernate : Pourquoi Hibernate ? - Il facilite la persistance et la recherche de données dans une base de données en réalisant lui même la création des objets et les traitements de remplissage de ceux-ci en accédant à la base de données - C’est le moteur DAO utilisé par Jboss - La communauté est large I. 3 Environnement de développement IDE Netbeans : Pourquoi l’IDE (Integrated Development Environment) Netbeans ? - J’ai l’habitude de l’utiliser - Je le trouve plus agréable à utiliser, moins « brouillon » - JSF est bien intégré dans Netbeans, tu peux déployer des projets facilement - Il n’y a pas besoin de récupérer les plugins que l’on souhaite ajouter, ils y sont centralisés. Laura HARDY 4 Spécifications techniques « Risques industriels et naturels » [2013] II. Architecture du projet II. 1 Le modèle MVC L'architecture MVC (Modèle/Contrôleur/Vue) est une façon d'organiser une interface graphique d'un programme. Elle consiste à distinguer trois entités distinctes qui sont, le modèle, la vue, et le contrôleur, ayant chacun un rôle précis dans l'interface. données Modèle Vue synchronisation modification mise à jour des données événements Contrôleur Vue : La vue présente les données et interagit avec l’utilisateur. Contrôleur : Le contrôleur se charge d’intercepter les requêtes de l’utilisateur, d’appeler le modèle puis de rediriger vers la vue adéquate. Il ne doit faire aucun traitement. Il ne fait que de l’interception et de la redirection. Modèle : Le modèle représente les données et les règles métiers. C’est dans ce composant que s’effectuent les traitements liés au cœur du métier. Laura HARDY 5 Spécifications techniques « Risques industriels et naturels » [2013] III. Arborescence du projet III. 1 Le module RisquesAdmin-war Contient les pages de l’application au format .xhtml Contient les fragments insérés dans les pages (dans le menu) Contient la présentation des pages d’impression au format .jsp Contient mainTemplate.xhtml qui définit le gabarit de l’application Le fichier faces-config.xml est le fichier de configuration JSF (beans, règles de navigation, etc) Le fichier jboss-web.xml précise le nom de l’application web Le fichier web.xml permet de configurer l’application web (servlets, filtres, etc) Contient 3 feuilles de style au format .css Contient des composants JSF réutilisables Contient des images au format .png utilisées dans l’application index.xhtml correspond à la page d’accueil de l’application Contient les managed-bean mappés par les vues des entités contenues dans Risques-ejb > Source Packages Contient des javaBeans Contient 3 convertisseurs JSF (d’une chaîne de caractère à un objet) Contient les fichiers de ressources Contient les servlets (utilisées pour les icônes seulement) au format .java Contient les validateurs, validant l’état d’un objet (par rapport à champs de saisie) III.2 Le module Risques-ejb Contient les entités désignant les enregistrements des tables Objets java simples réutilisables qui permettent aux classes de communiquer entre elles Laura HARDY 6 Spécifications techniques « Risques industriels et naturels » [2013] IV. Base de données IV. 1 Schéma relationnel de données A noter que la table « lieuxrisquesdata » n’est pas encore utilisée : elle prévoit un système de sécurité lié aux données concernant le couple lieux – risques. Il faudra accorder des droits différents aux utilisateurs en fonction du groupe auquel ils appartiennent. Laura HARDY 7