Conception et développement d’un système d’information basé sur XML Projet de Mater EPFL, Section Informatique Conception et développement d’un système d’information basé sur XML Tania Magnenat 17 mars 2006
Plan de la présentation Introduction Cadre et objectifs du projet Analyse des besoins et choix technologiques Fonctionnement actuel/futur de la gestion Étude technologique: frameworks et base de données Conception Architecture, formulaires et schéma de base de données Développement du système Services web et interface Conclusions Travaux futures et perspectives
Introduction – Cadre général (1) Cadre du travail de master: conception et développement d’un système d’information basé sur les technologies XML pour le Center for Global Computing (CGC) Le Center for Global Computing Centre de compétences interdisciplinaire de l’EPFL Mise en œuvre et suivi d’activité de recherche Aide au montage et à la gestion (administrative, financière et scientifique) de projets de recherche
Gestion: fonctionnement actuel Centre des finances Acteurs: Secrétaire Coordinateur du projet
Introduction – Cadre général (2) Motivations Actuellement: gestion faite à la main (feuilles Excel) Problèmes: Toujours plus de projets et donc de données Suivi et maintenance très difficiles Cohérence des données pas garantie La taille des fichiers et le versioning sont problématiques Perte d’informations et erreurs dans la gestion
Gestion: fonctionnement futur Acteurs: Centre des finances Secrétaire Coordinateur du projet Interface Formulaires BD
Pourquoi ne pas utiliser une application générale? Solution pas triviale Impossibilité d’utiliser les applications existantes pour la gestion de projets (ex. MS Project) Besoins trop spécifiques (génération de vues, tables, formulaires, calculs, ...) Structure assez particulière Nécessité de développer un système spécialisé
Introduction - Objectifs Implémentation de deux modules du système d’information du CGC Reporting périodique: justification des dépenses et des ressources deployées Gestion du personnel Buts du projet Comprendre la gestion de projets pour structurer les données Automatiser la gestion Stocker les données de manière sure Accès/Modification des données via une interface graphique Résultat: système automatique capable de remplacer l’actuel système manuel
Phase I Choix technologiques
Choix Technologique Va influencer les performances et les futurs développement de l’application Important: Trouver les solutions les plus adéquates Choisir des technologies ouvertes Garantir l’évolutivité du système
Frameworks Définition: infrastructure logicielle qui facilite la conception d’applications Avantages: Meilleure structuration des différents éléments Séparation entre la couche présentation et les autres couches (transactions et données) Pourquoi utiliser un framework ? Pour une maintenance plus aisée de l’application Pour une meilleure répartition des tâches entre les diverses personnes travaillant sur l’application
Frameworks - Éléments de comparaison Open source Validation des données (côté client ou côté serveur) Technologies utilisées (JSP et Servlet ou XML) Implémentation de la notion de pipeline (traitement des données par enchaînement des opérations)
Frameworks - Étude comparative Struts JSF Cocoon OPS Open Source Oui Usage du MVC Non Validation Serveur Client Technologies Servlets, JSP, … XML Standards XML Pipelines
Base de données Choix de la base de données (pour des documents XML) Dépend du type de documents à stocker (centrés données ou centrés documents) Diverses possibilités pour le stockage: Système de fichiers Blobs dans une base de données relationnelle Mapping du schéma Base de données native XML
Base de données - Éléments de comparaison Base de données relationnelles Type de licence Plates-formes Conformité au standard SQL Stabilité et vitesse Sécurité, gestion de la concurrence et des transactions Base de données natives XML Gestion de la concurrente, de la sécurité et des transactions Mises à jour et APIs disponibles
Windows, Linux, Solaris, … Étude comparative - BD MySQL 5.0 PostgreSQL Licence GPL et commerciale BSD Plates-formes Windows, Linux, Solaris, … Conformité SQL Moyenne Haute Stabilité Haute-Très Haute Vitesse Moyenne-Haute Sécurité Concurrence Oui Transactions Tamino eXists Xindice Licence Commer-ciale GPL Plates-formes Windows, Unix Concur-rence Oui Oui (basique) Non Sécurité Mises à jour Document et nœud Transa-ctions APIs Java, C, PHP, .NET, JScript Java, Python, PHP Java
Solution retenue - Framework Choix final: Orbeon Presentation Server Repose sur les technologies XML Utilisation de la recommandation W3C XForms Langage de pipeline plus complet par rapport à celui de Cocoon Utilisation de Ajax (validation des données du côté du client)
Solution retenue - Base de données Choix difficile: Pas de solution XML totalement satisfaisante (open source, robuste et avec une gestion de la sécurité et des transactions) Choix final: MySQL 5.0 Base de données relationnelles Performante, fiable et simple d’utilisation Offre une bonne protection des données
Phase II Conception
Architecture Architecture SOA: Avantages: S’appuie sur un ensemble de services Décomposition en fonctions basiques Avantages: Modularité Réutilisabilité Meilleures possibilités d’évolution Maintenance plus facile Form Form XSLT WS WS WS MySQL
Pourquoi utiliser des web services? Interopérabilité entre diverses applications Permettent de dialoguer à distance utilisant le réseau web et indépendamment des plates-formes et des langages utilisés Utilisation de standards et de protocoles ouverts Message au format XML: facilité de lecture et de compréhension pour les humains Fonctionnement au travers des firewalls
Analyse du reporting et de la gestion du personnel Rappel: le but du projet est de structurer les données afin d’automatiser la gestion Grand travail d’analyse et de compréhension du reporting et de la gestion du personnel Discussions avec le management team du CGC Analyse des feuilles Excel Résultats: Formalisation des formules nécessaires à la création des tables Création des formulaires pour la saisie des données Création d’un schéma pour la base de données (structuration des données)
Développement du système Phase III Développement du système
Déploiement des Web Services Apache Axis Implémentation de la spécification SOAP (successeur de Apache SOAP) Architecture modulaire et extensible Développement de services web en Java Outil très simple à utiliser: il suffit de créer les classes Java et les déplacer dans le bon répertoire pour les « transformer » en service web Génération à la volée la description WSDL des services déployés
Un exemple pour mieux comprendre l’interaction OPS – WS – MySQL (1) WS: Projects Method: getProjects() Update OK WS: Projects Method: getProject() WS: Projects Method: updateProject()
Un exemple pour mieux comprendre l’interaction OPS – WS – MySQL (2) WS: Projects Method: getProjects() OPS: données XML
Un exemple pour mieux comprendre l’interaction OPS – WS – MySQL (3) WS: Projects Method: getProject() OPS: données XML
Un exemple pour mieux comprendre l’interaction OPS – WS – MySQL (4) Update OK WS: Projects Method: updateProject()
Conclusions Objectifs atteints: Avantages: Données structurées Automatisation du système de gestion L’actuel système peut être remplacé Avantages: Cohérence et versioning des données garantis Maintenance et suivi plus simples Système extensible Portabilité et génération de vues multiples Meilleure gestion financière et administrative
Travaux futurs et perspectives (1) Collecte d’informations Connexion directe entre le centre des finances (SAP) et le SI Discussions en cours entre le CGC et les administrateurs SAP de l’EPFL Centre des finances SI Intégration dans un système plus grand Futur très proche: développement d’autres modules (prévisions financières, gestion de l’information scientifique, …) Garantir l’interopérabilité entre tous les modules du SI
Travaux futurs et perspectives (2) Stockage des données Actuellement: documents centrés données, donc aucune perte d’information avec la BD relationnelle utilisée Futur très proche: ajout de modules avec des documents centrés documents (ex. Delivrables) Ajout d’une base de données permettant le stockage de documents centrés documents sans perte d’information Sécurité des documents XML XML: facilement lisible par les humains Cryptage des données XML afin de les protéger
Insertion, Modification et Visualisation Démo http://globalcomputing.epfl.ch:8080/CGC Insertion, Modification et Visualisation des données
Questions