Dans le cadre du stage de master de recherche effectué dans le département Informatique à l'INT à Evry France, nous avons étudié les façons d'intégrer les applications existantes dans un
Trang 2J’adresse toute ma gratitude à mon responsable de stage, M. Christian BAC (INT), pour sa disponibilité, son soutien constant et son aide précieuse durant ce stage.
Je voudrais également remercier M. Olivier BERGER (INT), DANG Quang
Vu (IFI Promotion 10) et M. Benoît HAMET (phpgroupware) pour leurs collaborations serrées, leurs aides tout au long de mon stage.
Un grand merci à toutes les personnes du département Informatique à l'INT pour leurs aides et leur gentillesse pendant mon séjour en France.
Enfin, je voudrais exprimer mon entière reconnaissance envers ma famille, mes amis et mes professeurs à l’IFI pour leurs soutiens, leurs aides et leurs encouragements.
Trang 3Dans le cadre du stage de master de recherche effectué dans le département Informatique à l'INT à Evry (France), nous avons étudié les façons d'intégrer les applications existantes dans un portail de travail collaboratif en utilisant les services Web. Le portail que nous avons utilisé pour intégrer les applications est la plateforme Picoforge. C’est le nom pour un ensemble d'applications de LibreSoftware qui sont intégrées dans une plateforme de Web, Picoforge permet le travail de collaboration, pour le développement de logiciels.
L’application qui a été proposée et intégrée dans Picoforge est le système Mantis. C’est un système libre de suivi de bogues sur le Webbasé. Il supporte une interface de services Web (SOAP) pour l’interaction entre Mantis et les autres applications
Nous avons intégré non seulement Mantis dans la plateforme Picoforge mais aussi étudié l’architecture générale et normalisé les services pour intégrer rapidement les autres applications dans Picoforge. Pendant la première partie du stage, nous avons modifié Picoforge pour y intégrer les notions de sous projet en utilisant une notion de catégorie de projet.
L’intégration de Mantis dans la plateforme Picoforge et l’architecture générale de noyau de Picoforge sera utilisée dans la version 1.2 selon la roadmap de développement du projet Picoforge dans la fédération d'identité de GET (Groupe des Écoles des Télécommunications)/INT
Trang 4It is the name for a set of applications of LibreSoftware1 which are integrated into a Web platform, Picoforge allows the work of collaboration, for the development of software
The application which was proposed and integrated in the Picoforge is the Mantis system. It is a free system of bug tracking on Webbased. It supports an interface of the Web service (SOAP) for the interaction between Mantis and the other applications
We integrated not only Mantis in the Picoforge but also studied the general architecture and standardized the services to quickly integrate the other applications in Picoforge. During the first part of the training course, we modified Picoforge to integrate the concepts of subproject and of category of project into it
The integration of Mantis in the Picoforge platform and the general architecture of core of Picoforge will be used in version 1.2 according to the roadmap of development
of the Picoforge project in the federation of identity of GET (Groupe des Écoles des Télécommunications) /INT
1 LibreSoftware also defined as FreeSoftware or OpenSource is defined classically by the Free Software
Trang 5Remerciements 2
Résumé 3
Abstract 4
Chapitre 1. Introduction 8
1.1.Contexte du stage 8
1.2.Portail de travail collaboratif 8
1.3.Picoforge une plateforme de travail collaboratif 9
1.4.Objectifs du stage 9
1.5.Organisation du rapport 10
Chapitre 2. État de l'art 11
2.1.Picoforge 11
2.2.Application de suivi de bogues 13
2.2.1.Mantis 13
2.2.2.Bugzilla 13
2.2.3.Autre applications 14
2.3.Web Services 14
2.3.1.Architecture générale 15
2.3.2.WSDL 16
2.3.3.XMLRPC 16
2.3.4.SOAP 17
Chapitre 3. Propositions 19
Chapitre 4. Choix de réalisation 21
4.1. Ajouter la notion de sousprojet et de catégorie dans Picoforge 21
4.2. Normalisation des services pour intégrer les logiciels dans Picoforge 21
4.2.1. Au niveau projet 22
4.2.2. Au niveau utilisateur 23
4.3. Création des hooks 23
4.4. Intégration de Mantis dans Picoforge via SOAP 24
4.4.1 Analyse 24
4.4.2 Solution 25
4.4.3 Synchronisation des projets, des utilisateurs et des categories 27
4.4.4 Configure Mantis login au LDAP 27
Chapitre 5. Picoforge dans l'avenir prochain 29
5.1.Picoforgecore 30
5.2.Avantage 30
5.2.1. Installation indépendante des applications 30
5.2.2.Intégration facile des applications 31
Trang 6Conclusions et Perspectives 32
Références 33
Annexe A: phpGroupWare 34
APIs de phpgroupware 34
Web services dans phpgroupware 35
Annexe B: Utilisation de SOAP pour intégrer Sympa avec Picoforge 36
Trang 7Figure 2: Architecture générale du Web service 15
Figure 3: Transmission de données en utilisant XMLRPC 16
Figure 4: Modèle d'intégration de Mantis dans Picoforge 26
Figure 5: Architecture générale de la version 1.2 de Picoforge 29
Figure 6: Répartition d'installation de la plateforme Picoforge 30
Figure 7: Architecture générale de phpGroupWare 34
Figure 8: Modèle d'intégration de Sympa dans Picoforge 36
Trang 8Une flatesforme de travail collaboratif pour la recherche est développé à GET depuis plusieurs années, c'est PicoLibre. Actuellement, le département informatique de l'INT développe une plateforme de travail collaboratif pour le logiciel (PicoForge) en
se basant PicoLibre
Actuellement, la tendance de développement de logiciel en matière d’intégration des applications existantes, spécialement des applications libres, augmente rapidement parce qu'elle améliore les temps développement et qu'ell diminue les cỏts de ces derniers En plus, les applications existantes peuvent marcher sur des systèmes d'exploitation différents comme Window, ou Linux mais aussi sur des plateformes différentes. Nous pouvons, en effet, ne pas installer toutes ces applications sur un même serveur
1.2.Portail de travail collaboratif
Un portail Web est un site Web qui offre une porte d'entrée unique sur un large panel de ressources et de services (email, forums, moteur de recherche etc.) centrés sur
un domaine ou une communauté particulière. Avec un portail Web, les utilisateurs ont
la possibilité d'enregistrer un compte pour s'y connecter ultérieurement et utiliser l'ensemble des services proposés. Normalement, chaque utilisateur a une espace de travail individuel qui est associé avec son compte
Le travail collaboratif est un nouveau modèle de travail qui résulte des deux modalités suivantes:
Organiser le travail en séquences de tâches parallèles
Trang 9 Fournir aux acteurs de chacune des tâches une information utile et facilement exploitable sur les autres tâches parallèles et sur l'environnement de la réalisation.
Un portail de travail collaboratif est un environnement de travail collaboratif sur le Web. Il a une interface de Web, des ressources Web et des services Web etc
Dans un portail de travail collaboratif, il faut avoir les outils pour travailler. Les méthodes dépendent de chaque but concret et les outils pour organiser le travail pour chaque membre pour éviter les tâches qui se répètent. Il faut aussi faciliter l'accès et le partage des informations communes des contributeurs, des projets et des applications. Évidemment, ce portail permet aux contributeurs de travailler ensemble, de partager des connaissances, des ressources et d'utiliser ensemble des ressources.
1.3.Picoforge une plateforme de travail collaboratif
PicoForge est le nom d'un ensemble d'applications logicielles libres intégrées pour former une plateforme Web destinée au développement collaboratif. La plateforme
Tout d'abord, Picoforge a une interface de Web qui agit en tant que bureau Web pour la description de projet et l'accès aux outils offrant différentes possibilités pour chaque projet. À partir de cette interface, l'administrateur installe (ou supprime) aussi les applications et gère les utilisateurs, les utilisateurs travaillent sur ses projets en utilisant les outils de Picoforge
1.4.Objectifs du stage
Dans le contexte de développement de la plateforme Picoforge, le nombre d'applications intégrées dans Picoforge augmente de plus en plus. La répartition de ces applications sur des serveurs différents est nécessaire parce que cela diminuera le
Trang 10Selon le contexte cidessus, le but de ce stage est de fournir les techniques et améliorer l'architecture pour contruire le Picoforge de façon que les applications d'intégration puissent être installées et développées indépendamment les unes des autres. Dans le cas, ó nous remplaçons une application par une autre application qui
a la même fonction, l'intégration est alors plus simple.
Dans la partie pratique de ce stage, nous intégrerons une application de suivi de bogues dans cette plateforme. Nous normaliserons aussi l'interface de communication entre l'application de suivi de bogues et Picoforge
1.5.Organisation du rapport
L'état de l'art est réalisé dans le chapitre 2, il donne une vue générale sur la flateforme PicoForge, les applications courantes de suivi des bogues et les technologies que nous avons utilisé dans ce stage. Le troisième chapitre, nous proposons quelques idées pour améliorer la flateforme PicoForge. Le quatrième chapitre, nous presentons notre travail de réalisation dans ce stage Le dernière chapitre, nous parlons de l'architecture de PicoForge dans l'avenir prochain (version 1.2) et quelques avantages
Trang 11Chapitre 2 État de l'art
2.1.Picoforge
La plateforme PicoForge est une plateforme de travail collaboratif se basant sur les APIs et les applications de base de phpGroupWare. Elle héberge des projets, offre un bureau virtuel permettant aux utilisateurs de travailler de façon sécurisée dans leurs projets. C'est un espace de travail associé à un ensemble d’outils. Ces outils gèrent les différents registres d’activité de la vie d’un projet, communication au sein de l’équipe
et communication externe (mailinglists Sympa), planification des tâches, documentation du projet (Twiki) , suivi de bogues, mise à disposition des sources (CVS). La figure cidessous montre l'architecture générale de PicoForge
Figure 1: Architecture générale de la version 1.1 de Picoforge
Trang 12PicoForge est une plateforme regroupant un ensemble de logiciels libres comme environnent de travail collaboratif. Tous les logiciels utilisent des fonctions APIs de phpgroupware pour le développement. Nous utilisons les modules picolibre_choice et picolibre_current pour la creation de projet, la mise à jours de projet et l'affichage des infomations de projet Ces deux applications sont le noyau de cette plateforme. L'utilisation des autres modules dépend du type de projet (projet de recherche, projet
de logiciel etc.) et des outils pour le projet. Nous n'avons pas besoin d'installer toutes les autres applications de Picoforge. Les applications concrètes seront installées par l'administrateur de plateforme. Voici la liste de fonctions de chaque application:
phpgw_admin: installer et supprimer l'application, gérer des utilisateurs et la permission de ces utilisateurs
Bug report: suivi des bogues
To Do List: gestion de projet.
picolibre_sympa: une interface pour travailler avec Sympa (gestion de mailinglists) en utilisant Web service (SOAP)
picolibre_twiki: créer, supprimer des pages de wiki en utilisant la méthode POST du protocole HTTP
picolibre_CVS: afficher des informations et des commandes nécessaires pour travailler avec CVS
picolibre_SVN: afficher des informations et des commandes nécessaires pour travailler avec SubVersion
Trang 132.2.Application de suivi de bogues
Le suivi des bogues est la gestion des erreurs qui est soutenue par une base de données. Normalement, les bogues sont traitées selon un Workflow. C'estàdire, l’état
de la bogue est changé selon les valeurs aux instants différents comme: nouveau, ouvrir, résoudre, fermer … Un outil de suivi de bogues offre l‘affichage des bogues et
le traitement coordonnateuré de ces bogues. Dans cette partie, nous vous présentons quelques outils de suivi de bogues qui sont utilisés par beaucoup d’entreprises
2.2.1.Mantis
Mantis est un outil libre de suivi de bogues associé à une interface Web. Il est écrit
en PHP et fonctionne avec MySQL, MS SQL, ou PostgreSQL et un server de Web. Mantis peut marcher sur Windows, Linux, Mac OS
Supporte une interface de Web service (SOAP). Ceci est un caractère très important pour intégrer Mantis dans autres systèmes. Nous pouvons créer un bogue, prendre les informations des bogues, des projets.
2.2.2.Bugzilla
Bugzilla est un système de suivi des bogues qui nous aide à contrôler le développement de logiciel. Il est développé par Mozilla. Le système de suivi des
Trang 14bogues permet à l'utilisateur ou aux groupes de réalisateurs de maintenir les bogues exceptionnels dans leur produit efficacement Il est écrit en langage PERL et fonctionne avec MySQL et PostgreSQL et un server de Web.
Voici la liste principale des caractèristiques de Bugzilla
Logiciel libre
Méthodes multiples d'authentification
Webservices interface (XMLRPC). Ne supporte pas de création d'un projet via Webservices
Possibilités avancées de recherche
Rapports programmés (quotidien, hebdomadaire, horaire, etc.) par Email
Bugzilla soutient ajouter les champs dans la base de données de bogue pour adapter aux besoins du client
Bugzilla a des systèmes de rapport très avancés: rapport en table, rapport graphique
Bugzero est un système de suivi des bogues basé Web. Il est écrit en langage Java, fonctionne avec la base de données sur le standard SQL92, et supporte login via LDAP. Il peut aussi intégrer avec SubVersion
2.3.Web Services
Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plateforme et enveloppé dans une couche de standards
Trang 15dérivés de XML. Il doit pouvoir être découvert et invoqué dynamiquement par d'autres services. L'objectif des Web Services est de faciliter l'accès aux applications entre entreprises et ainsi de simplifier les échanges de données. Normalement, les Web services utilisent le protocole HTTP sur le port 80 pour les échanges de données. Il est établi sur les standards existantes comme: SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), UDDI (Universal Description, Discovery, and Integration).
2.3.1.Architecture générale
La figure 2 montre l'architecture générale du Web service.
Le fournisseur de service crée un Web service et définit ces services. Il publie ces service avec le service d'enregistrement basé sur la norme universelles de description,
de découverte, et d'intégration (UDDI)
Le client peut trouver les services qui sont supportés par fournisseur via l'interface UDDI UDDI va fournir des descriptions de service et URL (Uniform Resource Locator) au client Avec ces descriptions, le client peut envoyer des requêtes au fournisseur et recevoir des réponse du fournisseur via le protocole HTTP
Figure 2: Architecture générale du Web service
Trang 16WSDL (Web Services Description Language) est un format pour décrire une interface de services de Web. Il est une manière de décrire des services et comment ils devraient être liés aux adresses de réseau spécifiques. WSDL a trois parties:
Les définitions sont généralement exprimés en XML et incluent les deux descriptions : les types de données et les messages qui emploient ces types
de données
Les opérations décrivent des actions pour les messages soutenus par le Service Web. Il y a quatre types d'opérations :
✔ Oneway : Messages envoyés sans réponse requise
✔ Demande/réponse: L'expéditeur envoie un message et reçoit une réponse
✔ Solliciter la réponse : Une demande de réponse (Les détail de définition pour cette action sont en cours)
✔ Notification: Messages envoyés à plusieurs récepteurs. (la définition spécifique pour cette action est en suspens)
Des opérations sont groupées dans les port types. Les port types définissent
un ensemble d'opérations soutenues par le service Web
Services d'association ou de découverte (bindings) relient les port types à un port. Un port est défini en associant une adresse de réseau à un port type. Une collection de ports defini un service
2.3.3.XML-RPC
XMLRPC est un format d'appel de procédures à distance en utilisant le protocole HTTP comme transport et XML comme codage. XMLRPC est conçu pour être aussi simple que possible, tout en permettant aux structures de données complexes d'être transmises, traitées et retournées. La figure 3 montre la transmission de données en utilisant XMLRPC
Trang 17Figure 3: Transmission de données en utilisant XMLRPC
Trang 18Le protocole SOAP est composé de deux parties:
Une enveloppe, contenant des informations sur le message luimême afin de permettre son acheminement et son traitement
Un modèle de données, définissant le format du message, c'estàdire les informations à transmettre