1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Répartition dun portail web collaboratif par utilisation de web services

41 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 321,29 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Le portail que nous avons utilisé pour intégrer les applications estla plateforme Picoforge.. Nous avons intégré non seulement Mantis dans la plateforme Picoforgemais aussi étudié l’arch

Trang 1

pour l’Informatique Télécommunications

Mémoire de fin d’études

Répartition d'un portail Web

collaboratif par utilisation de Web

Ce stage a été réalisé au sein du projet PicoForge et

Persue du département Informatique de l'Institut

National des Télécommunications(INT)

Trang 2

J’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 3

Dans le cadre du stage de master de recherche effectué dans le départementInformatique à l'INT à Evry (France), nous avons étudié les façons d'intégrer lesapplications existantes dans un portail de travail collaboratif en utilisant lesservices 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 deLibreSoftware 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 Picoforgemais aussi étudié l’architecture générale et normalisé les services pourintégrer rapidement les autres applications dans Picoforge Pendant lapremière partie du stage, nous avons modifié Picoforge pour y intégrer lesnotions de sous projet en utilisant une notion de catégorie de projet

L’intégration de Mantis dans la plateforme Picoforge et l’architecturegénérale de noyau de Picoforge sera utilisée dans la version 1.2 selon laroadmap de développement du projet Picoforge dans la fédération d'identité

de GET (Groupe des Écoles des Télécommunications)/INT

Trang 4

In the context of the training course of master of research carried out in thedepartment of information of the INT in Evry (France), we studied the ways ofintegrating the existing applications in a platform for collaboratif work by usingthe Web services The flatform that we used to integrate the applications is thePicoforge It is the name for a set of applications of LibreSoftware1 which areintegrated into a Web platform, Picoforge allows the work of collaboration, forthe development of software.

The application which was proposed and integrated in the Picoforge is theMantis system It is a free system of bug tracking on Webbased It supports aninterface of the Web service (SOAP) for the interaction between Mantis andthe other applications

We integrated not only Mantis in the Picoforge but also studied the generalarchitecture and standardized the services to quickly integrate the other applications

in Picoforge During the first part of the training course, we modified Picoforge tointegrate the concepts of subproject and of category of project into it

The integration of Mantis in the Picoforge platform and the generalarchitecture of core of Picoforge will be used in version 1.2 according to theroadmap 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 definition.

Trang 5

Table des manières

Remerciements 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

Trang 6

Conclusions 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 7

Figure 1: Architecture générale de la version 1.1 de Picoforge 11

Figure 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 8

Une flatesforme de travail collaboratif pour la recherche est développé àGET depuis plusieurs années, c'est PicoLibre Actuellement, le départementinformatique de l'INT développe une plateforme de travail collaboratif pour lelogiciel (PicoForge) en se basant PicoLibre.

Actuellement, la tendance de développement de logiciel en matièred’intégration des applications existantes, spécialement des applications libres,augmente rapidement parce qu'elle améliore les temps développement etqu'ell diminue les cỏts de ces derniers En plus, les applications existantespeuvent 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 largepanel de ressources et de services (email, forums, moteur de recherche etc.) centréssur un domaine ou une communauté particulière Avec un portail Web, lesutilisateurs ont la possibilité d'enregistrer un compte pour s'y connecterultérieurement et utiliser l'ensemble des services proposés Normalement, chaqueutilisateur 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 deuxmodalité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 libresintégrées pour former une plateforme Web destinée au développementcollaboratif La plateforme PicoForge est développée par l'équipe du projet

PFTCR (PlateFormes de Travail Collaboratif pour la Recherche), dans la continuité du projet PicoLibre développé depuis plusieurs années au GET.

Jusq'au maintenant, il y a plusieurs application libre et indépendante quisont intégrées dans Picoforge comme: Sympa, Twiki, CVS, SubVersion etquelques applications sont développées en utilisant la plateformephpgroupware comme: Todo List, Bug Report

Tout d'abord, Picoforge a une interface de Web qui agit en tant que bureauWeb pour la description de projet et l'accès aux outils offrant différentespossibilités pour chaque projet À partir de cette interface, l'administrateurinstalle (ou supprime) aussi les applications et gère les utilisateurs, lesutilisateurs 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 10

charge du serveur Cette répartition permettra aussi d'intégrer un (ouplusieurs) logiciel qui marche sur un système d'exploitation différent.

Selon le contexte cidessus, le but de ce stage est de fournir les techniques etaméliorer l'architecture pour contruire le Picoforge de façon que les applicationsd'intégration puissent être installées et développées indépendamment les unesdes autres Dans le cas, ó nous remplaçons une application par une autreapplication 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 desuivi 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 flate forme 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 11

Chapitre 2 État de l'art

2.1.Picoforge

La plateforme PicoForge est une plateforme de travail collaboratif se basant surles 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éedans leurs projets C'est un espace de travail associé à un ensemble d’outils Cesoutils gèrent les différents registres d’activité de la vie d’un projet, communication ausein de l’équipe et communication externe (mailinglists Sympa), planification destâches, documentation du projet (Twiki) , suivi de bogues, mise à disposition dessources (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 12

PicoForge est une plateforme regroupant un ensemble de logiciels libres commeenvironnent de travail collaboratif Tous les logiciels utilisent des fonctions APIs dephpgroupware 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'affichagedes 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 toutesles autres applications de Picoforge Les applications concrètes seront installées parl'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 mailing lists) 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

FileManagement: gérer des fichiers de document joints pour le projet

picolibre_supervision: permet de donner des infomations générales sur

le projet

Justqu'à la version 1.1, Picoforge ne supporte pas encore de notion de sous projet

et la catégorie de projet Dans le cas, ó nous ajoutons une nouvelle applicationdans Picoforge, nous devons aussi ajouter le code pour appeler cette application àpartir des autres applications parce que le lancement d'une application extérieuren'est pas encore automatique En plus, les fonctions communes qui sont utilisées parplusieurs modules sont réparties dans plusieurs modules

Trang 13

2.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 Ilest écrit en PHP et fonctionne avec MySQL, MS SQL, ou PostgreSQL et unserver de Web Mantis peut marcher sur Windows, Linux, Mac OS

Voici la liste principale des caractéristiques de Mantis

Logiciel libre

Supporte la création de projet, sousprojet et des catégories

Chaque utilisateur peut avoir un niveau d'accès différent par

projet Nous pouvons aussi faire le rapport graphique des bugs

La base de données peut être exportée aux format CSV, Microsoft Excel, Microsoft Word

Reportage des bogues via Email

Adaptation des champs selon les besoins du client

Supporte plusieurs méthodes de login: LDAP, HTTP_AUTH, BASIC_AUTH Intégration avec commande de source (SVN ou CVS) Il analyse le message de

log de SVN (ou CVS) pour ajouter les commentaires dans la bogue correspondante

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 14

bogues permet à l'utilisateur ou aux groupes de réalisateurs de maintenir lesbogues exceptionnels dans leur produit efficacement Il est écrit en langagePERL 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 EmailBugzilla soutient ajouter les champs dans la base de données de boguepour adapter aux besoins du client

Bugzilla a des systèmes de rapport très avancés: rapport en table, rapport graphique

Création, mis à jours un bogue via email en utilisant Web interface

Contrôler la visibilité de bogue/l'édition avec des groupes.

Intégration avec Subversion et CVS

2.2.3.Autre applications

JIRA est une application de suivi des bogues, suivi des bogues, et application

de gestion de projets développée pour faciliter ce processus pour votre équipe.JIRA a beaucoup le caractère pour une application professionnelle de suivi desbogue comme: adapter le workflow aux besoins du client, supporter plusieursméthodes (email, RSS, XML, Excel, Web service) pour s'intégrer avec les autressystème (Subversion, CVS), mais il n'est pas un logiciel libre

Bugzero est un système de suivi des bogues basé Web Il est écrit enlangage Java, fonctionne avec la base de données sur le standard SQL92, etsupporte 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 15

dérivés de XML Il doit pouvoir être découvert et invoqué dynamiquement pard'autres services L'objectif des Web Services est de faciliter l'accès auxapplications entre entreprises et ainsi de simplifier les échanges de données.Normalement, les Web services utilisent le protocole HTTP sur le port 80 pourles échanges de données Il est établi sur les standards existantes comme:SOAP (Simple Object Access Protocol), WSDL (Web Services DescriptionLanguage), 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

Figure 2: Architecture générale du Web service

Le fournisseur de service crée un Web service et définit ces services Ilpublie ces service avec le service d'enregistrement basé sur la normeuniverselles de description, de découverte, et d'intégration (UDDI)

Le client peut trouver les services qui sont supportés par fournisseur via l'interfaceUDDI UDDI va fournir des descriptions de service et URL (Uniform ResourceLocator) au client Avec ces descriptions, le client peut envoyer des requêtes aufournisseur et recevoir des réponse du fournisseur via le protocole HTTP

Trang 16

WSDL (Web Services Description Language) est un format pour décrire uneinterface de services de Web Il est une manière de décrire des services et commentils 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 dedé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 leprotocole HTTP comme transport et XML comme codage XMLRPC est conçupour être aussi simple que possible, tout en permettant aux structures dedonnées complexes d'être transmises, traitées et retournées La figure 3montre la transmission de données en utilisant XMLRPC

Trang 17

Figure 3: Transmission de données en utilisant XMLRPC

Voici un exemple de structures de données pour demander un login à distance

Trang 18

pour structurer des messages qui peuvent être utilisés dans de simplestransmissions unidirectionnelles, mais il est particulièrement utile pour exécuterdes dialogues du type requêteréponse RPC (Remote Procedure Call).

Le 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

Voici un exemple de message SOAP

Trang 19

Chapitre 3 Propositions

Selon la tendance de développement de la plateforme de Picoforge, nous intégrerons beaucoup d'applications libres qui sont développées indépendamment avec Picoforge C'est très difficile si nous utilisons des RPC, CORBA ou un codage spécialisé pour intégrer ces applications dans Picoforge parce que ces applications indépendantes peuvent changer complètement leur architecture, leur fonctions Dans ce cas, nous ne tirerons pas le meilleur parti de leur nouveaux caractères ou nous devons recoder Dans

le contexte de ce stage, nous avons quelques propositions.

Utiliser les Web services pour la répartition de la plateforme Picoforge sur plusieurs de serveurs différents grâce aux raisons suivantes:

Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plateforme

La plupart de logiciels actuels supporte une interface de Web service

Le changement de l'architecture du logiciel n'influence pas

l'intégration si l'interface du Web service ne change pas

Grouper les classes qui sont utilisées par plusieurs modules dans Picoforgecore comme dans la branche 2.0 et le projet Perseus Il a une interface unique vers les tables de la base de données Il est aussi un moteur qui reçoit des requêtes de l'utilisateur et transmet ces requêtes aux applications indépendantes pour

traitement Dans d'autre cas, Picoforgecore peut envoyer des requêtes à

plusieurs applications pour demander de traiter ou de synchroniser la données quand il a lieu des événements qui influenceront ces applications différentes, par exemple, ajouter ou supprimer un projet Dans ce module, nous utilisons des hooks pour faciliter l'intégration de nouveau modules.

Avec chaque logiciel, nous construisons une application (au sens

phpGroupWare) intégrée à Picoforge pour recevoir des requêtes à partir

de l'utilisateur et envoyer des requêtes aux applications de traitement par utilisation de Web service

Trang 20

Dans la partie pratique de ce stage, nous proposons d'utiliser le logiciel qui s'appelle Mantis, c'est une application de suivi des bogues pour intégrer dans Picoforge pour les raisons suivantes Mantis

logiciel libre ;

supporte le Web service SOAP

; intégration avec SVN, CVS ;

supporte les fonctions APIs pour adapter aux besoins du client ;

peut être installé facilement et sont interface Web Service peut être configurée simplement ;

supporte les projets, les sousprojets et les catégories de

projet; intègre les authentifications par LDAP;

est écrit en PHP, qui est un langage très familier avec les

développeurs de Picoforge

Ngày đăng: 30/10/2020, 21:19

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Site du projet Bugzilla h ttp://www.bugzilla.org/features Sách, tạp chí
Tiêu đề: Site du projet Bugzilla "h
[10] The Bugzilla Team, The Bugzilla Guide 3.1 Development Release, Published 20070225 Sách, tạp chí
Tiêu đề: The Bugzilla Guide 3.1 Development Release
[11] MOUSSA Ilf, NAKANO Asako, ASR 2007 end of studies project: Web Services Integration, INT Sách, tạp chí
Tiêu đề: ASR 2007 end of studies project: Web Services Integration
[1] Site du projet Picoforge http://www.picoforge.org Link
[2] Site du projet phpgroupware http://www.phpgroupware.org Link
[4] Site du projet Mantis http://www.mantisbt.org/ Link
[5] Site du projet Bugzero http://www.websina.com/bugzero Link
[6] Site du projet Jira http://www.atlassian.com/software/jira/ Link
[7] Site de Wikipedia http://fr.wikipedia.org/ Link
[8] Site XMLRPC.com http://www.xmlrpc.com Link
[9] Site w3c.org http://www.w3.org/ Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w