OUTIL de GESTION ADMINISTRATIVE des UE CAHIER DES CHARGES ELIAS Éric POUZANCRE Sébastien SOULIE Guillaume ROGER Rémy Encadrants : Mme LIBOUREL Master Informatique Professionnel Année 2006 2007 Université Montpellier II 1
Master Informatique Professionnel Année 2006 2007 Université Montpellier II 2
SOMMAIRE I Présentation II Description des outils utilisés 1) Modèle MVC 2) Apache 3) Langage Python 4) Subversion 5) PostgreSQL 6) aodapi III Déroulement du projet IV Moyens de communication Master Informatique Professionnel Année 2006 2007 Université Montpellier II 3
I Présentation L'objectif principal de ce projet est de réaliser un outil permettant de gérer dynamiquement (en ligne) les inscriptions aux UE du département informatique de l'université Montpellier II. Un responsable d'ue devra pouvoir gérer les intervenants, et les interventions d'une UE proposée par le département, par l'intermédiaire d'un outil de saisie et de modification en ligne. La description de l'ue devant être compatible avec le standard européen, nous nous appuierons sur le modèle du CDM (Cursus Description Metadata). Nous allons donc dans un premier temps devoir nous approprier les outils déjà existant afin de les comprendre dans le but de développer par la suite notre propre outil. L'outil réalisé devant permettre la saisie et la modification de données en ligne, cela nous conduira à étudier : l'architecture d'un Modèle Vue Contrôleur (MVC) le serveur Apache la base de données PostgreSQL le langage Python II Description des outils utilisés 1) Modèle MVC pour la saisie et la modification en ligne des données L'architecture Modèle Vue Contrôleur (MVC) est un motif de conception pour le développement d'applications logicielles qui sépare le modèle de données, l'interface utilisateur et la logique de contrôle. Ce modèle d'architecture impose la séparation entre les données, les traitements et la présentation, ce qui donne trois parties fondamentales dans l'application finale : le modèle, la vue et le contrôleur Le Modèle représente le comportement de l'application : traitements des données, interactions avec la base de données, etc. Il décrit les données manipulées par l'application et définit les méthodes d'accès. la Vue correspond à l'interface avec laquelle l'utilisateur interagit. Les résultats renvoyés par le modèle sont dénués de toute présentation mais sont présentés par les vues. Plusieurs vues peuvent afficher les informations d'un même modèle. Elle peut être conçue en HTML, ou tout Master Informatique Professionnel Année 2006 2007 Université Montpellier II 4
autre «langage» de présentation. La vue n'effectue aucun traitement, elle se contente d'afficher les résultats des traitements effectués par le modèle, et de permettre à l'utilisateur d'interagir avec elles. le Contrôleur prend en charge la gestion des événements de synchronisation pour mettre à jour la vue ou le modèle. Il n'effectue aucun traitement, ne modifie aucune donnée, il analyse la requête du client et se contente d'appeler le modèle adéquat et de renvoyer la vue correspondant à la demande. En résumé, lorsqu'un client envoie une requête à l'application, celle ci est analysée par le contrôleur, qui demande au modèle approprié d'effectuer les traitements, puis renvoie la vue adaptée au navigateur, si le modèle ne l'a pas déjà fait. Un avantage apporté par ce modèle est la clarté de l'architecture qu'il impose. Cela simplifie la maintenance ou l'amélioration sur le projet. En effet, la modification des traitements ne change en rien la vue. Par exemple on peut passer d'une base de données de type SQL à XML en changeant simplement les traitements d'interaction avec la base, et les vues ne s'en trouvent pas affectées. Le MVC montre ses limites dans le cadre des applications utilisant les technologies du web, bâties à partir de serveurs d'applications. Des couches supplémentaires sont alors introduites ainsi que les mécanismes d'inversion de contrôle et d'injection de dépendance. Un Schéma du Model View Controller Master Informatique Professionnel Année 2006 2007 Université Montpellier II 5
2) APACHE pour la publication des données sur le site Le logiciel Apache HTTP Server, souvent appelé Apache, est un serveur HTTP produit par la Apache Software Foundation. C'est le serveur HTTP le plus populaire du Web. C'est un logiciel libre avec un type spécifique de licence, nommée licence Apache. Apache est conçu pour supporter de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage Perl, PHP et Python, serveur proxy, Common Gateway Interface, Server Side Includes, réecriture d'url, négociation de contenu, protocoles de communication additionnels, etc. Les possibilités de configuration d'apache sont une fonctionnalité phare. Le principe repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. C'est notamment utile aux hébergeurs Web qui peuvent ainsi servir les sites de plusieurs clients à l'aide d'un seul serveur HTTP. 3) Langage PYTHON pour la publication des données sur le site Python est un langage de programmation interprété, multi paradigme. Il autorise la programmation impérative structurée, orientée objet, et fonctionnelle. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse miettes et d'un système de gestion d'exceptions. Le langage Python est placé sous une licence libre et fonctionne sur la plupart des plates formes informatiques. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. 4) Serveur Subversion pour la gestion des versions concurrentes du projet Un gestionnaire de version permet, comme son nom l indique, de gérer les différentes versions d un projet. Il est principalement utilisé pour maintenir le code source ou la documentation d un logiciel, mais on pourrait, en théorie, l employer dans bien d autres domaines, comme par exemple, la conception d un site Web, ou la rédaction d un rapport. Le dépôt Subversion garde en mémoire toutes les versions validées. Il offre ainsi la possibilité de revenir rapidement à un moment particulier du développement, ou de déterminer les différences entre deux versions quelconques. Un gestionnaire de version facilite le travail collaboratif. Plusieurs personnes peuvent en effet travailler en parallèle, et mettre à jour leurs répertoires de travail locaux en fonction des modifications apportées par les autres. Dans le cas de Subversion, le dépôt intègre au mieux les différentes modifications, même si elles portent sur le même fichier. En cas de conflit, par exemple si la même partie du même fichier a été modifiée, le serveur prévient Master Informatique Professionnel Année 2006 2007 Université Montpellier II 6
alors l utilisateur et lui propose plusieurs solutions, comme par exemple, modifier sa version locale, ou celle en ligne. 5) PostgreSQL PostgreSQL est un SGBDR fonctionnant sur des systèmes de type Unix. PostgreSQL est un logiciel libre et gratuit dont les sources sont disponibles. PostgreSQL possède de nombreuses caractéristiques en faisant un SGBDR robuste et puissant digne des SGBD commerciaux : des interfaces graphiques (X-Window est donc nécessaire) pour gérer les tables des bibliothèques pour de nombreux langages (appelés frontaux) afin d'accéder aux enregistrements à partir de programmes une API ODBC permettant à n'importe quelle application supportant ce type d'interface d'accéder à des bases de données de type PostgreSQL PostgreSQL fonctionne selon une architecture client/serveur, il est ainsi constitué d'une partie serveur, c'est-à-dire une application fonctionnant sur la machine hébergeant la base de données (le serveur de bases de données) capable de traiter les requêtes des clients. Il s'agit dans le cas de PostgreSQL d'un programme résident en mémoire appelé postmaster d'une partie client devant être installée sur toutes les machines nécessitant d'accéder au serveur de base de données (un client peut éventuellement fonctionner sur le serveur luimême) 6) aodapi Automatic Object oriented Database Application Program Interface permet de travailler en Python avec toute base de donnée PostgreSQL en conservant une approche objets. L'objectif est de ne plus avoir à manipuler de curseur et de se débarrasser du code SQL à l'intérieur de nos programmes. À chacun des objets est associé un certain nombre de méthodes qui vont permettre de travailler avec la base de données et de programmer plus simplement en Python. Master Informatique Professionnel Année 2006 2007 Université Montpellier II 7
III Déroulement du projet Le travail se découpera en 3 parties, 5 semaines par partie, la première de chaque partie étant réservée à l'apprentissage 1) la modélisation et la création de la base de données 2) la publication des données sur le Web 3) la modification en ligne à l aide de formulaires, avec la gestion des droits Emploi du temps : Semaines S1 (1/01/07) S2 S3 S4 S5 (29/01/07) Cahier des charges Semaines S6 S7 S8 S9 S10 Apprentissage : Subversion + PostgreSQL Partie 1 Partie 1 Partie 1 Partie 1 Semaines S11 S12 S13 S14 S15 Apprentissage : Python + MVC + aodapi Partie 2 Partie 2 Partie 2 Partie 2 Semaines S16 S17 S18 S19 S20 Partie 3 Partie 3 Partie 3 Partie 3 Partie 3 IV Moyens de communication Un serveur Subversion sera mis en place afin de permettre à tous de pouvoir suivre les évolutions des sources, sans avoir de problème de version concurrentes. Ensuite nous utiliserons le moyen classique de l'e mail afin de tenir au courant nos encadrants, des évolutions du projet. Une réunion hebdomadaire est prévu tous les vendredi après midi avec les encadrants. Master Informatique Professionnel Année 2006 2007 Université Montpellier II 8