Institut numerique

4.3 Implémentation du service web Agenda

Dans cette partie, nous allons décrire les différents détails d’implémentation de notre service web mis en œuvre. Nous commencerons par les différents modules développés et les différentes interfaces, la mise en œuvre même du service, ensuite le déploiement du service et enfin l’invocation du service par l’application cliente.

4.3.1 Différents modules du service web

Notre application est dédiée aux utilisateurs de la plateforme de l’ENT (la communauté universitaire) proposant ainsi un certain nombre de fonctionnalités nécessaires.

Au lancement de l’application, la page d’accueil s’affiche. Via cette page on peut accéder aux différentes fonctionnalités du système. Ces fonctionnalités sont reparties en deux modules principaux : le modules Evènements et le module Utilisateurs. Au préalable il faut être authentifié (saisir son identifiant et son mot de passe) avant d’accéder aux fonctionnalités de la plateforme.

Le module Evènement

Le module Evènement vous permet de gérer les évènements dans votre agenda. Il est composé de trois sous menus :

– Le sous menu Tous vous permet d’afficher votre agenda sur un jour, une semaine, un mois, ou une année donnée. Vous avez aussi la possibilité ici de créer un nouvel évènement, d’en modifier ou de supprimer un existant, ainsi que de proposer un évènement à un utilisateur.

Toujours dans ce sous menu, il est possible pour un utilisateur de créer un nouveau évènement en choisissant une date et en faisant une brève description.

– Le sous menu A valider vous présente tous les évènements suggérés par d’autres utilisateurs, que vous pourrez valider ou non.

Fig. 4.2 Interface de la page d’accueil

Fig. 4.3 Interface du sous menu Tous

Fig. 4.4 Interface sous menu A valider

Le sous menu Des autres vous présente l’agenda des utilisateurs dont vous avez les droits, où vous pouvez proposer, modifier ou supprimer un évènement selon votre niveau d’accès.

Fig. 4.5 Interface sous menu Des autres

Le module Utilisateurs

Le menu Utilisateurs vous présente la liste des utilisateurs ayant accès à votre agenda, avec la possibilité de modifier leur niveau d’accès, d’en ajouter de nouveaux ou d’en supprimer. Les niveaux d’accès peuvent être :

– Lecture : Dans ce cas, l’utilisateur ne peut donc que consulter votre agenda sans pouvoir vous proposer d’évènements,
– Lecture/Ecriture : Dans ce mode, l’utilisateur a un accès complet à votre agenda et peut pour autant vous proposer des évènements.

Fig. 4.6 Interface module Utilisateur

4.3.2 Mise en œuvre du service web

Pour mettre en œuvre ce service web, nous avons suivi la procédure suivante :

Création de la base de données

Comme les applications traditionnelles, nous avons besoin d’une base de données pour notre service web. Nous avons donc utilisé une base de données MySQL version 5.1.30. Nous avons utilisé pour le service agenda trois principales tables :

– la table évènement pour la gestion des évènements ;
– la table utilisateurs pour la gestion des utilisateurs ;
– la table accesAgenda pour la gestion des droits d’accès.

Description du service

Dans cette étape, nous avons réalisé la description du service à travers son WSDL qui peut être réalisé à partir d’un éditeur de texte XML ou alors à travers un éditeur graphique tel que WSDL Creator offert par Eclipse. Ce fichier d’extension .wsdl contient toutes les opérations que doit pouvoir réaliser le service. Nous avons pour notre service les opérations suivantes :

– connect cette fonction permet de réaliser la connexion d’un utilisateur au système en prenant en compte son identifiant et son mot de passe ;
– getListUtilisateursOfAgenda permet d’obtenir la liste des utilisateurs autorisés pour un agenda ;
– getListUtilisateursImAMInAgenda permet d’obtenir la liste des utilisateurs qu’on peut ajouter et attribuer les droits d’accès pour l’agenda d’un utilisateur ;
– getListUtilisateurs permet d’afficher tous les utilisateurs du système ;
– addUtilisateurToAgenda cette fonction permet d’ajouter des utilisateurs au système ;
– modifyUtilisateurAddInAgenda permet de modifier les droits d’accès d’un utilisateur pour un agenda donné ;
– deleteUtilisateurAddInAgenda permet de supprimer un utilisateur de sa liste dans un agenda ;
– getListOfEvenementUtilisateurs permet d’afficher la liste des évènements pour un utilisateur donné ;
– getListOfEvenementUtilisateursTovalidate permet d’afficher la liste des évènements à valider proposée par les autres utilisateurs ;
– addEvenementToUtilisateur permet à un utilisateur d’ajouter des évènements dans son agenda ;
– modifyEvenementOfUtilisateur permet à un utilisateur de modifier des évènements de son agenda ;
– deleteEvenementOfUtilisateur permet à un utilisateur de supprimer un évènement de son agenda.

Nous avons pu obtenir le WSDL suivant mettant en exergue les différentes opérations et les types de données échangées (input et output) :

Fig. 4.7 Description WSDL du service web

La génération des stubs

La génération des stubs constitue une étape très importante. Après avoir décrit le service, il faut décrire dans le chier build.xml la localisation du serveur web Axis, la génération du stub du service web, son déploiement, la génération du stub du client web et la localisation du service web. Il se résume par le code XML suivant :

Fig. 4.8 Extrait de codes XML

Paramétrage et implémentation du service web

Une fois les squelettes du service et du client générés, il faudra maintenant écrire les différentes fonctions et les paramètres nécessaires dans les fichiers générés. C’est dans cette étape que le service lui-même est alors implémenté ainsi que les connexions à la base de données.

Après l’implémentation du service, nous allons aussi implémenter une interface web pour le client généré sous forme de chier compressé .war (2). Ensuite, nous allons déployer le service dans le serveur Axis qui constituera ici notre annuaire de services.

4.3.3 Déploiement du service web

Pour déployer le service web, il suffit de faire un clic droit sur le fichier build.xml et exécuter le déploiement. Pour se rassurer que le service a été correctement déployé, nous allons démarrer les serveurs Tomcat et Axis et accéder au lien suivant : http ://localhost :8080/axis/ ensuite sur List, nous aurons ainsi la liste des services web publiés dans l’annuaire avec leurs différentes opérations ; de même que notre service web agenda. Et pour accéder au WSDL, il suffit de cliquer dessus.

Fig. 4.9 Test de déploiement réussi

4.3.4 Invocation du service web

Une fois le service déployé, l’invocation se fait à partir de l’interface cliente qui accède au service distant via la description publiée dans l’annuaire de service (Axis pour notre cas).

Conclusion

Dans ce chapitre, nous avons procédé à la modélisation, la conception d’une structure fonctionnelle, la mise en œuvre, le déploiement et l’invocation d’un exemple de service web (Agenda) qui sera intégré dans la plateforme de l’environnement numérique de travail de l’Université de Ngaoundéré en particulier. Nous avons aussi touché du doigt la réalité de cette technologie pour comprendre qu’il ne s’agit pas de services traditionnels mis sur Internet.

2 WAR : Web Application Archive, c’est une archive au format jar d’une application web.

Page suivante : Conclusion Générale et Perspectives

Retour au menu : WEB SERVICES : ETUDE ET CONCEPTION D’UNE PLATEFORME DE SERVICES POUR UN ENVIRONNEMENT NUMÉRIQUE DE TRAVAIL D’UNIVERSITÉ