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

36 279 0
Répartition dun portail web collaboratif par utilisation de web services

Đ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

Institut de la Francophonie  pour l’Informatique Institut National des  Télécommunications Mémoire de fin d’études Répartition d'un portail Web  collaboratif par utilisation de Web  Services Responsable:  Étudiant: M. Christian BAC (INT) CAO Tien Dung (IFI­P11) 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) Evry, Septembre 2007 Remerciements 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 Résumé 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 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 Web­basé. 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 Abstract In   the   context   of   the   training   course   of   master   of   research   carried   out   in   the  department   of   information   of   the   INT   in   Evry   (France),   we   studied   the   ways   of  integrating the existing applications in a platform for collaboratif work by using the  Web services. The flatform that we used to integrate the applications is the Picoforge.  It 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 Web­based. 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 sub­project 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  definition Table des manières Remerciements Résumé Abstract Chapitre 1.  Introduction 1.1.Contexte du stage 1.2.Portail de travail collaboratif 1.3.Picoforge une plateforme de travail collaboratif 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.XML­RPC 16 2.3.4.SOAP .17 Chapitre 3. Propositions 19 Chapitre 4. Choix de réalisation 21 4.1. Ajouter la notion de sous­projet 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.Picoforge­core 30 5.2.Avantage 30 5.2.1. Installation indépendante des applications 30 5.2.2.Intégration facile des applications 31 5.2.3.Changement facile de version de l'application 31 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 Liste des figures 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 XML­RPC .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 Répartition d'un portail Web collaboratif par utilisation de Web Services Chapitre Introduction 1.1.Contexte du stage Le   Groupe   des   Écoles   des   Télécommunications   (GET)   se   compose   plusieurs  grandes écoles d'ingénieurs et de management ainsi que des centres de recherche situés  à Paris (ENST – École Nationale Supérieure des Télécommunications), Brest (ENST  Bretagne),   Évry   (INT),   Sophia­Antipolis   (Eurécom)   et   Lille   (Télécom   Lille   1)   en  France. Le groupe compte actuellement plus de 470 enseignants­chercheurs et plus de  500 thésards dans ses laboratoires Une   flates­forme   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 plate­forme 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 coû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 CAO Tien Dung – Promotion 11­ IFI Répartition d'un portail Web collaboratif par utilisation de Web Services  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 plate­forme Web destinée au développement collaboratif. La plate­forme  PicoForge  est   développée   par   l'équipe   du   projet   PFTCR   (Plate­Formes   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   qui   sont  intégrées   dans   Picoforge   comme:   Sympa,   Twiki,   CVS,   SubVersion   et   quelques  applications sont développées en utilisant la plateforme phpgroupware comme: Todo  List, Bug Report   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  CAO Tien Dung – Promotion 11­ IFI Répartition d'un portail Web collaboratif par utilisation de Web Services charge du serveur. Cette répartition permettra aussi d'intégrer un (ou plusieurs) logiciel  qui marche sur un système d'exploitation différent Selon   le   contexte   ci­dessus,   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, où 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 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 flate­forme 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 CAO Tien Dung – Promotion 11­ IFI 10 Répartition d'un portail Web collaboratif par utilisation de Web Services synchronisation   de   données,   dans   Picoforge   Dans   cette   partie,   nous   donnons   les  événements   normaux     deux   niveau   (le   projet   et   l'utilisateur)   Pour   mettre   en  correspondance chaque événement, il faut avoir un service pour la synchronisation.    4.2.1 Au niveau projet Avec un projet, nous devons synchroniser immédiatement les données des autres  applications   quand   nous   créons   un   nouveau   projet,   mettons     jour   un   projet,  supprimons un projet, ajoutons ou enlevons un membre dans le projet,   ajoutons ou  enlevons une catégorie du projet. Voici la liste de données que Picoforge donne à  chaque événement correspondant Événement Création de projet Données Description project_id code de projet short_title court nom de projet long_title long nom de projet description description de projet view_state état de projet (public/private) web_link le site web de projet parent_project le projet parent Mise à jour de projet même données que pourla création de projet Suppression de  projet même données que  l'événement de création de projet project_id short_title Ajouter un membre  user_id dans projet user_name is_admin_project code de projet court nom de projet code d'utilisateurorganisation nom d'utilisateur l'utilisateur est chef de projet ou pas? Enlever un membre  même données que l'événement d'ajouter un membre de projet Ajouter  une  catégorie du projet project_id code de projet short_title court nom de projet CAO Tien Dung – Promotion 11­ IFI 22 Répartition d'un portail Web collaboratif par utilisation de Web Services category_name Enlever  une  catégorie du projet nom de catégorie même données que l'événement d'ajouter une catégorie du  projet avec code de catégorie Tableau 2: Liste de données que Picoforge donne à chaque événement correspondant 4.2.2 Au niveau utilisateur Au niveau utilisateur, il y a deux événements: création et suppression d'utilisateur.  Donc nous avons besoin de deux services correspondants pour la synchronisation de  données   Les   données   jointes   pour   la   création   d'un   utilisateur   se   composent   de   :  lastname (nom), firstname (prénom), username (utilisateur), password (mot de pass),  email,   phone_number   (numéro   de   téléphone),   organization_name   (nom  d'organisation) 4.3 Création des hooks Dans   une   solution   informatique,   un   hook   permet   de   lancer   un   programme  personnalisé au moment précis où le programme principal a la tâche de l'exécuter.  Sans action de l'utilisateur, le hook est généralement vide et l'application tourne de  manière standard Techniquement, un hook peut se présenter sous la forme d'un fichier (par exemple  un   script)   localisé     un   endroit   bien   particulier   Le   programme   principal   impose  généralement les caractéristiques du hook: son type, sa localisation voire son nom, et  le moment auquel il sera exécuté Dans   phpgroupware,   les   hooks   sont   supportés   pour   permettre   de   lancer  automatiquement des modules quand il a lieu un événement. La plupart des hooks sont  utilisés dans le module  phpgw.admin  pour des événements comme: create_account,  delete_account, admin, config etc Actuellement,   si   nous   ajoutons   une   nouvelle   application   dans   Picoforge,   nous  devons ajouter les commandes correspondantes dans la classe  class.project.inc.php,  par exemple, pour lancer cette application à partir d'événement de création de projet.  C'est trop complexe pour l'intégration des applications suivantes. Nous utilisons donc  les   hook   de   phpgroupware   pour   lancer   les   modules   de   création   de   projet   (ou   de  CAO Tien Dung – Promotion 11­ IFI 23 Répartition d'un portail Web collaboratif par utilisation de Web Services catégorie   de   projet, )   des   applications   d'intégration   quand   l'utilisateur   crée   un  nouveau projet dans Picoforge. Voici la liste de hooks que nous avons créé pour lancer  les modules nécessaires Nom de hook L'événement correspondant hook_project_add L'événement de création d'un nouveau projet hook_project_update Mettre à jour de projet hook_project_delete Supprimer un projet hook_project_add_category Ajouter une catégorie dans projet indiqué hook_project_remove_category Enlever une catégorie de projet indiqué hook_project_add_user Ajouter l'utilisateur dans projet indiqué hook_project_remove_user Enlever un utilisateur de projet indiqué Tableau 5: Liste des hooks ajoutés dans Picoforge Avec   ces   hooks,   toutes   les   applications   écrivent   seulement   le   module   qui  correspond à chaque événement, par exemple, le module hook_project_add.inc.php  pour   le   hook   project_add   Evidemment,   les   infomations   jointes   pour   chaque  événement sont envoyées au module correspondant via les variables globales 4.4 Intégration de Mantis dans Picoforge via SOAP 4.4.1 Analyse Mantis version 1.0.7 supporte une interface de Web service (SOAP). Avec cette  interface, nous pouvons créer une nouvelle  bogue, supprimer ou mettre à jour des  bogues. Nous pouvons prendre les informations de bogue, évidemment. Au niveau  projet, Mantis supporte seulement de prendre les infomations de projet. Il ne supporte  pas   de   création   de   projet,   de   suppression   de   projet,   de   mise     jours   de   projet,   de  création d'utilisateur, de suppression d'utilisateur, d'ajout des catégories dans un projet  et de suppression de catégorie d'un projet Le   tableau   ci­dessous   montre   les   services   principaux   qui   sont   supportés   par  MantisConnect­1.0a5, C'est le paquet de serveur SOAP de Mantis CAO Tien Dung – Promotion 11­ IFI 24 Répartition d'un portail Web collaboratif par utilisation de Web Services Nom de service Description mc_issue_exists Le contrôle d'existence d'une issue avec  l'identification indiquée.  mc_issue_get Obtenir l'issue avec l'identification indiquée mc_issue_get_biggest_id Obtenir la dernière issue soumise dans le  projet indiqué mc_issue_get_id_from_summary Obtenir l'identification de l'issue avec le  résumé indiqué mc_issue_add Ajouter une nouvelle issue mc_issue_delete Supprimer une issue mc_issue_note_add Ajouter un commentaire dans une issue mc_issue_note_delete Supprimer un commentaire d'une issue mc_project_get_categories Obtenir les catégories appartenant au projet  indiqué mc_filter_get Obtenir les filtres définis pour le projet  indiqué mc_projects_get_user_accessible Obtenir la liste de projets qui sont accessibles  à l'utilisateur entré Tableau 3: Liste des services principaux supportés par  MantisConnect­1.0a5 Mantis a la notion de projet, de sous­projet, de catégorie de projet et d'utilisateur  mais il a une base de données différente avec la base de données de Picoforge. Nous  devons  donc  synchroniser  des  projets,  des  utilisateurs  et des  catégories  entre  deux  bases de données. C'est à dire, quand nous créons un projet (ou bien une catégorie) à  côté de Picoforge, nous créons aussi un projet correspondant à côté de Mantis Bien que MantisConnect­1.0a5, ne supporte pas des fonctions pour la création ou la  suppression de projet ou d'utilisateur mais il supporte les fonctions APIs que nous  emploierons pour adapter aux besoins du client pour Picoforge 4.4.2 Solution Nous   avons   besoin   de   créer   un   module   de   Picoforge   qui   s'appelle  picoforge_bug_tracking   en   utilisant   phpgwapi­soapclient   Ce   module   recevra   les  CAO Tien Dung – Promotion 11­ IFI 25 Répartition d'un portail Web collaboratif par utilisation de Web Services exigences à partir de Picoforge­core (ou d'autre application) et enverra ces exigences  de synchronisation de données au serveur SOAP de Mantis. Ce module a aussi une  interface d'utilisateur graphique pour travailler avec Mantis à partir de l'interface de  Picoforge. Dans  l'architecture  de  Web service,  picoforge_bug_tracking  a le  rôle  de  client Figure 4: Modèle d'intégration de Mantis dans Picoforge À côté de Mantis, nous devons ajouter les services qui supportent la création et la  suppression de projet ou d'utilisateur. Voici la liste de services que nous ajouterons  dans Web service de Mantis pour synchroniser les bases de données Nom de service mc_project_add mc_project_update mc_project_delete Description Créer un nouveau projet  Mettre à jour un projet Supprimer un projet mc_project_category_add Ajouter  une (ou plusieurs) catégorie dans le  projet indiqué mc_project_category_remove Enlever une catégorie du projet indiqué CAO Tien Dung – Promotion 11­ IFI 26 Répartition d'un portail Web collaboratif par utilisation de Web Services mc_project_add_user Ajouter l'utilisateur dans le projet indiqué mc_project_remove_user Enlever un utilisateur du projet indiqué mc_user_create Créer un nouveau utilisateur mc_user_delete Supprimer un utilisateur mc_get_project_info_by_name Prendre les infomations du projet par son  nom mc_get_top_new_issue_id_by_project Prendre N­dernières bogues de projet  indiqué Tableau 4: Liste des services d'ajouté dans serveur SOAP de Mantis Nous ne stockons l'utilisateur que pour la gestion de permission et la création de  session du système Mantis. Pour accéder à Mantis, il faut s'authentifier à la base de  données LDAP de Picoforge. En plus, Mantis ne peut pas mettre à jour la base de  données LDAP de Picoforge 4.4.3 Synchronisation des projets, des utilisateurs et des categories Dans la partie 4.3 création des hooks, nous avons créés les hooks correspondants  avec   chaque   événement   qui   a   besoin   de   synchronisation   de   données   Pour  synchronisation   de   données   entre   Picoforge   et   Mantis,   nous   créons   les   modules  correspondants avec l'événement de hook. C'est à dire, nous devons créer 7 modules  correspondants avec les hooks au niveau projet que nous avons ajouté ci­dessus. Parce  que phpGroupWare   supporte deux hooks de création d'utilisateur et de suppression  d'utilisateur, nous créons aussi deux modules pour ces hooks. Dans Picoforge, il y a  pas la notion d'état de projet (par exemple: en developpement, en production, clos,  ),  nous utilisons la valeur de défaut en développement quand nous créons un nouveau  projet dans Mantis 4.4.4 Configure Mantis login au LDAP Picoforge gère les utilisateurs en utilisant la base de données LDAP. Tandis que  Mantis supporte la méthode de login au LDAP. Voici un exemple de configuration  CAO Tien Dung – Promotion 11­ IFI 27 Répartition d'un portail Web collaboratif par utilisation de Web Services pour que  Mantis  utilise le login de  la  base  de  données LDAP de  Picoforge. Nous  ajouterons les commandes ci­dessous dans le fichier mantis­config_inc.php $g_login_method       = LDAP; $g_ldap_server        = 'ldap://agate.int­evry.fr/'; $g_ldap_port             = '389'; $g_ldap_root_dn          = 'ou=people,dc=int­ evry,dc=fr'; $g_ldap_organization     = '';   $g_ldap_uid_field        = 'uid'; $g_ldap_bind_dn          = 'cn=admin,dc=int­evry,dc=fr'; $g_ldap_bind_passwd      = 'xxxxxx'; $g_use_ldap_email        = OFF;  CAO Tien Dung – Promotion 11­ IFI 28 Répartition d'un portail Web collaboratif par utilisation de Web Services Chapitre Picoforge dans l'avenir prochain En version 1.1 de Picoforge, les classes (ou les fonction APIs), qui sont écrites  encore par les dévelopeurs de Picoforge concernant la création de projet, la création de  catégorie   du   projet ,   sont   réparties   dans   les   applications:   picolibre_current,   et  picolibre_choice. En réalité, ces modules fournissent les interfaces   graphiques qui  aident l'utilisateur à choisir le projet ou à afficher les informations de projet. Nous  grouperons ces classes ou bien les fonctions APIs générales de ces modules, qui sont  utilisées par plusieurs modules de Picoforge, en paquet qui s'appelle Picforge­core. Le  système Mantis sera intégré dans cette version. Voici l'architecture générale de version  1.2 de Picoforge Figure 5: Architecture générale de la version 1.2 de Picoforge CAO Tien Dung – Promotion 11­ IFI 29 Répartition d'un portail Web collaboratif par utilisation de Web Services 5.1.Picoforge-core Picoforge­core est le noyau de la plateforme de Picoforge. Il travaille directement  avec   la   base   de   données   (sur   les   tableaux   qui   sont   créés   par   les   développeurs   de  Picoforge). Il reçoit les exigences de mise à jour de données à partir des applications et  les exécute. Quand il y a un événement de mise à jours de données, il peut activer les  hooks   pour   demander   de   synchroniser   des   données   avec   la   base   de   données   de  l'application extérieure. Il supporte les fonctions pour travailler avec la session, les  permissions, les templates, l'inscription d'utilisateurs,  le projet, la catégorie 5.2.Avantage 5.2.1 Installation indépendante des applications Avec l'utilisation  de  Web  services pour intégrer les  applications  dans  Picoforge,  nous n'avons pas besoin d'installer des applications de l'extérieur comme: Sympa, et  Mantis sur un même serveur. Cela signifie que nous pourrons avoir la répartition de  plateforme Picoforge.  Figure 6: Répartition d'installation de la plateforme Picoforge CAO Tien Dung – Promotion 11­ IFI 30 Répartition d'un portail Web collaboratif par utilisation de Web Services 5.2.2.Intégration facile des applications La   plupart   des   applications   intégrées   dans   Picoforge   marchent   sur   système  d'exploitation Linux. On ne peut pas donc intégrer une application qui marche sur  Window ou Mac OS dans Picoforge si'l n'y a pas de répartition de ces applications sur  les serveurs différents en utilisant les Web Services pour échanger les données ou les  informations   Grâce     cette   répartition,   nous   aurons   plusieurs   applications   pour  intégrer dans Picoforge. Nous pouvons choisir l'application qui est  meilleure. En plus,  si une application qui a besoin de synchroniser la données du projet ou de l'utilisateur,  nous faisons seulement les modules joint avec chaque événement de hook.  5.2.3.Changement facile de version de l'application Le problème réel de système Picoforge est le changement de version des application  d'intégration. Ce problème a été résolu facilement grâce à l'intégration par utilisation  de Web Sevices s'il n'y a pas de changement de l'interface de Web Service quand il y a  le changement de l'architecture intérieur de l'application. Nous pouvons donc utiliser le  nouvelle version tandis que nous ne devons pas refaire le codage CAO Tien Dung – Promotion 11­ IFI 31 Répartition d'un portail Web collaboratif par utilisation de Web Services Conclusions et Perspectives Dans   le   cadre   du   stage   nous   avons   ajouté   quelques   notions   dans   la   plateforme  Picoforge comme: le sous­projet, la catégorie de projet. Nous avons aussi créé des  hooks pour lancer facilement les applications dans Picoforge. Nous avons proposé une  manière d'utiliser des Web Services pour la répartition de Picoforge sur des serveurs  différents. Cela peut permettre de diminuer la charge du serveur et aussi d'intégrer un  (ou plusieurs) logiciel qui marche sur un autre système d'exploitation. En plus, nous  avons utilisé les Web Services pour intégrer le système Mantis dans la plateforme  Picoforge. Mantis est un outil libre de suivi de bogues associé à une interface Web.  Nous avons donné les services nécessaires et les données jointes de ces services dans  le cas nous avons besoin de synchroniser les données entre Picoforge et les autres  applications extérieures.  Dans l'avenir, nous voulons intégrer un système de gestion de projet en base Web au  lieu d'utiliser To­Do­List de phpGroupWare. Nous allons aussi ajouter la notion « l'état  de projet » pour les projets dans Picoforge, par example: développement, fermeture,  pause  et créer les hooks pour Sympa, Twiki. Spécialement, nous voulions régulariser  les   services   au   niveau   projet   et  utilisateur   de   l'interface   Web   Services   dans   projet  MantisConnect CAO Tien Dung – Promotion 11­ IFI 32 Répartition d'un portail Web collaboratif par utilisation de Web Services Références [1]  Site du projet Picoforge  http://www.picoforge.org [2] Site du projet phpgroupware  http://www.phpgroupware.org [3] Site du projet Bugzilla  http://www.bugzilla.org/features [4]  Site du projet Mantis  http://www.mantisbt.org/ [5]  Site du projet Bugzero  http://www.websina.com/bugzero [6]  Site du projet Jira   http://www.atlassian.com/software/jira/ [7]  Site de Wikipedia  http://fr.wikipedia.org/ [8]  Site XML­RPC.com  http://www.xmlrpc.com [9] Site w3c.org http://www.w3.org/  [10] The Bugzilla Team, The Bugzilla Guide ­ 3.1 Development Release,  Published  2007­02­25 [11]  MOUSSA   Ilf,   NAKANO   Asako,  ASR   2007   end   of   studies   project:  Web   Services Integration, INT [12]  Dietrich Ayala, Christopher Browne, Vivek Chopra, Poornachandra    Sarang,  Karpi Apschankar, Tim McAllister, «Professional OpenSource Web Services,   chapter 8: PHP and Web Services», July 2002   CAO Tien Dung – Promotion 11­ IFI 33 Répartition d'un portail Web collaboratif par utilisation de Web Services Annexe A: phpGroupWare phpGroupWare est une suite d'applications web écrite en PHP destinée à faciliter  le travail en groupe, son organisation  et sa communication. Il fait partie du projet  GNU, est sous copyright de la Free Software Foundation, et est publié sous Licence  publique   générale   GNU   PhpGroupWare   propose   déjà   de   nombreuses   applications  comme:  courrier   électronique,  messagerie   interne,   carnet   d'adresses,    gestion   de  projet ,   mais   il   fournit   en   plus   des   APIs   complètes   pour   permettre     client   de  concevoir   et   d'intégrer   sa   propre   application   Depuis   des   APIs,   beaucoup   de  développeurs ont conçus de nouvelles applications. Alors Le projet phpGroupWare  s'enrichit régulièrement de nouvelles fonctionnalités. Voici l'architecture générale de  phpgroupware Figure 7: Architecture générale de phpGroupWare APIs de phpgroupware Le paquet phpgwapi fournit aux développeurs les APIs, en langage PHP, pour aider  le développement d'application Web dans phpgroupware. Il supporte les fonctions pour  travailler avec e­mail, calendrie, gestion de contacts, gestion de fichiers et Web Service  aussi Les APIs de phpGroupware manipulent la gestion de session, des utilisateurs et  groupes. Elle supporte de travailler avec la base de données en utilisant les méthodes  CAO Tien Dung – Promotion 11­ IFI 34 Répartition d'un portail Web collaboratif par utilisation de Web Services d’abstraction de base de données. Elle supporte aussi d’afficher les interfaces web en  utilisation les classes de Template dans PHPLIB Web services dans phpgroupware phpGroupWare supporte les fonctions APIs pour faire le Web services (client et  serveur) en deux types: SOAP et XML­RPC dans le paquet phpgwapi. Ces classe se  composent:  phpgwapi/inc/class.soap_client.inc.php phpgwapi/inc/class.soap_parser.inc.php phpgwapi/inc/class.soap_server.inc.php phpgwapi/inc/class.soapclient.inc.php phpgwapi/inc/class.soapmsg.inc.php phpgwapi/inc/class.soapval.inc.php phpgwapi/inc/class.wsdl.inc.php phpgwapi/inc/class.xmlrpc_client.inc.php phpgwapi/inc/class.xmlrpc_server.inc.php phpgwapi/inc/class.xmlrpcmsg.inc.php phpgwapi/inc/class.xmlrpcresp.inc.php phpgwapi/inc/class.xmlrpcval.inc.php Ces fonctions permettent de créer le SOAP client (ou bien XML­RPC client) et  SOAP serveur  (ou bien XML­RPC serveur). Voici un exemple de création du SOAP  client et d'appel de la méthode login dans phpgroupware $soapclient   =   CreateObject('phpgwapi.soapclient',$endpoint,  'wsdl'); $param = array('username'=>$this­>username,                'password'=>$this­>password,                ); $result = $soapclient­>call('login',$param); Par  défaut,   les   applications   de   serveur  (xmlrpc.php   ou   soap.php)   supporte   deux  méthodes:  system.login  et system.logout. Un client  peut  appeler  directement à  une  fonction dans une classe quelconque des applications de phpgroupware avec format du  nom   de   méthode   comme:   nom_d'application.nom_de_classe.nom_de_méthode,   par  exemple: picoforge_soap.project.getProject CAO Tien Dung – Promotion 11­ IFI 35 Répartition d'un portail Web collaboratif par utilisation de Web Services Annexe B: Utilisation de SOAP pour intégrer Sympa avec Picoforge Sympa est un logiciel libre et est intégré dans Picoforge pour la gestion du fichier  d’adresses   (mailing   list)   Il   supporte   une   interface   de   Web   Service   (SOAP)   Un  module, qui s'appelle  picolibre_sympa,  a été créé dans  Picoforge pour l'interaction  entre Picoforge et Sympa. Plusieurs classes de version ancienne qui situées dans la  chemise le «sympa/inc» a été modifiées:   class.sympa_ui.inc.php  class.sympa_bo.inc.php  class.sympa_soap.inc.php   function.inc.php Pour   adapter   avec   l'exigence   de   Picoforge,   quelques   services   sont   ajoutés   dans  Sympa comme: add, del et closeList La figure ci­dessous montre le modèle d'intégration de Sympa dans Picoforge Figure 8: Modèle d'intégration de Sympa dans Picoforge CAO Tien Dung – Promotion 11­ IFI 36 [...]... déployé sur n'importe quelle plate­forme et enveloppé dans une couche de standards  CAO Tien Dung – Promotion 11­ IFI 14 Répartition d'un portail Web collaboratif par utilisation de Web Services dé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 ... Les APIs de phpGroupware manipulent la gestion de session, des utilisateurs et  groupes. Elle supporte de travailler avec la base de données en utilisant les méthodes  CAO Tien Dung – Promotion 11­ IFI 34 Répartition d'un portail Web collaboratif par utilisation de Web Services d’abstraction de base de données. Elle supporte aussi d’afficher les interfaces web en  utilisation les classes de Template dans PHPLIB... par exemple, pour lancer cette application à partir d'événement de création de projet.  C'est trop complexe pour l'intégration des applications suivantes. Nous utilisons donc  les   hook   de   phpgroupware   pour   lancer   les   modules   de   création   de   projet   (ou   de CAO Tien Dung – Promotion 11­ IFI 23 Répartition d'un portail Web collaboratif par utilisation de Web Services catégorie   de   projet, )   des   applications... CAO Tien Dung – Promotion 11­ IFI 25 Répartition d'un portail Web collaboratif par utilisation de Web Services exigences à partir de Picoforge­core (ou d'autre application) et enverra ces exigences  de synchronisation de données au serveur SOAP de Mantis. Ce module a aussi une  interface d'utilisateur graphique pour travailler avec Mantis à partir de l'interface de Picoforge. Dans  l'architecture de Web service, ... Avec   ces   descriptions,   le   client   peut   envoyer   des   requêtes   au  fournisseur et recevoir des réponse du fournisseur via le protocole HTTP CAO Tien Dung – Promotion 11­ IFI 15 Répartition d'un portail Web collaboratif par utilisation de Web Services 2.3.2.WSDL WSDL   (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 ... is_admin_project code de projet court nom de projet code d'utilisateurorganisation nom d'utilisateur l'utilisateur est chef de projet ou pas? Enlever un membre  même données que l'événement d'ajouter un membre de projet Ajouter  une  catégorie du projet project_id code de projet short_title court nom de projet CAO Tien Dung – Promotion 11­ IFI 22 Répartition d'un portail Web collaboratif par utilisation de Web Services. .. Picoforge gère les utilisateurs en utilisant la base de données LDAP. Tandis que  Mantis supporte la méthode de login au LDAP. Voici un exemple de configuration  CAO Tien Dung – Promotion 11­ IFI 27 Répartition d'un portail Web collaboratif par utilisation de Web Services pour que  Mantis  utilise le login de  la  base de  données LDAP de  Picoforge. Nous  ajouterons les commandes ci­dessous dans le fichier mantis­config_inc.php... 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  CAO Tien Dung – Promotion 11­ IFI 13 Répartition d'un portail Web collaboratif par utilisation de Web Services bogues permet à l'utilisateur ou aux groupes de réalisateurs de maintenir les bogues ... Figure 5: Architecture générale de la version 1.2 de Picoforge CAO Tien Dung – Promotion 11­ IFI 29 Répartition d'un portail Web collaboratif par utilisation de Web Services 5.1.Picoforge-core Picoforge­core est le noyau de la plateforme de Picoforge. Il travaille directement  avec   la   base   de   données   (sur   les   tableaux   qui   sont   créés   par   les   développeurs   de Picoforge). Il reçoit les exigences de mise à jour de données à partir des applications et ... Karpi Apschankar, Tim McAllister, «Professional OpenSource Web Services,   chapter 8: PHP and Web Services , July 2002   CAO Tien Dung – Promotion 11­ IFI 33 Répartition d'un portail Web collaboratif par utilisation de Web Services Annexe A: phpGroupWare phpGroupWare est une suite d'applications web écrite en PHP destinée à faciliter  le travail en groupe, son organisation  et sa communication. Il fait partie du projet  GNU, est sous copyright de la Free Software Foundation, et est publié sous Licence 

Ngày đăng: 27/10/2016, 23:09

Từ khóa liên quan

Mục lục

  • Remerciements

  • Résumé

  • Abstract

  • Chapitre 1. Introduction

    • 1.1.Contexte du stage

    • 1.2.Portail de travail collaboratif

    • 1.3.Picoforge une plateforme de travail collaboratif

    • 1.4.Objectifs du stage

    • 1.5.Organisation du rapport

    • Chapitre 2. État de l'art

      • 2.1.Picoforge

      • 2.2.Application de suivi de bogues

        • 2.2.1.Mantis

        • 2.2.2.Bugzilla

        • 2.2.3.Autre applications

        • 2.3.Web Services

          • 2.3.1.Architecture générale

          • 2.3.2.WSDL

          • 2.3.3.XML-RPC

          • 2.3.4.SOAP

          • Chapitre 3. Propositions

          • Chapitre 4. Choix de réalisation

            • 4.1. Ajouter la notion de sous-projet et de catégorie dans Picoforge

            • 4.2. Normalisation des services pour intégrer les logiciels dans Picoforge

              • 4.2.1. Au niveau projet

              • 4.2.2. Au niveau utilisateur

Tài liệu cùng người dùng

Tài liệu liên quan