• Aucun résultat trouvé

3.3 Conclusion de l’état de l’art

4.2.2 Évolution de PicWeb

C

e chapitre présente PicWeb, un service de recherche d’images provenant de dif- férentes sources qui correspondent à un mot-clé passé en paramètre. PicWeb est représenté par un processus métier dont le développement s’est déroulé de manière agile. Au fil du temps, ce processus métier a évolué pour continuer de correspondre aux besoins des utilisateurs. Il constitue à ce titre un cas d’étude idéal de par sa taille raisonnable et sa compréhension aisée pour illustrer les problèmes rencontrés lors de l’évolution d’application à base de processus métiers. Tout particulièrement, nous montrons ici qu’il est difficile de garantir le maintien de la qualité de service lors de l’évolution. Nous utilisons PicWeb tout au long du document pour illustrer l’apport des différentes contributions de cette thèse. Dans ce chapitre, nous présentons le scénario d’utilisation de PicWeb : nous montrons comment il s’inscrit dans un système plus large nommé Séduite [Delerce-Mauris 2009] et en quoi les différentes évolutions de PicWeb ont été source de problèmes pour maintenir la qualité de service du système.

4.1

Séduite, un système de diffusion d’informations à

base de processus métiers

Séduite est un système de diffusion d’informations à destination du personnel et des étudiants d’une université. Son origine provient d’un besoin de diffuser sur un campus uni- versitaire des informations diverses, provenant de sources différentes telles que la scolarité, le restaurant universitaire, ou encore les différentes associations étudiantes souhaitant com- muniquer sur leurs activités. De par l’hétérogénéité du public ciblé, ces informations doivent être affichables sur des périphériques variés tels que des écrans de contrôle positionnés au sein de l’institution, des smartphones, ou encore via un site web. La Figure 4.1 illustre l’interface graphique de Séduite.

Le développement de Séduite a débuté en 2005. Originellement utilisé comme prototype de recherche à des fins d’expérimentation (il a servi notamment de validation au projet FAROS1), le système prit de l’ampleur suite à l’implication d’une équipe de huit déve- loppeurs. Le système est aujourd’hui constitué de vingt-six services implémentés en Java et de sept processus métiers implémentés dans le Business Process Execution Language

4.1. Séduite, un système de diffusion d’informations à base de processus métiers

Figure 4.1 – Utilisation de Séduite au cours de la nuit de l’info.

BPEL [OASIS 2007]. Ces services ont pour tâches de collecter les différentes informations provenant des différents services administratifs de l’université, mais également de services web externes. La Figure4.2 représente l’architecture globale de Séduite.

En huit ans, Séduite a été déployé dans plusieurs institutions. Son développement s’est effectué de manière agile : en s’appuyant fortement sur les nombreux retours de la part des utilisateurs, l’implémentation de Séduite a subi de nombreuses évolutions. Nous nous focalisons dans le cadre de cette thèse sur l’évolution de l’un de ces processus métiers, nommé PicWeb.

4.2. PicWeb, un processus métier de recherche d’images

Activité Activité du

processus métier

Activité Activité modifiée au

cours de l'évolution Légende: (a) PicWeb V0 (b) PicWeb V1 Evolution Keyword:= receive() a1 Pics[] := Picasa:getPics(Keyword) a2 PicsF[] = shuffle(Pics[]) a3 reply(PicsF[]) a4 Keyword:= receive() a1 PicsPicasa[] := Picasa:getPics(Keyword)

a2 a21 Flickr:getPics(Keyword)PicsFlickr[] :=

Pics[] := Helper:join(PicsPicasa[], PicsFlickr[]) a30 PicsF[] = shuffle(Pics[]) a3 reply(PicsF[]) a4 a4 a4

Figure 4.3 – Évolutions de PicWeb.

4.2

PicWeb, un processus métier de recherche d’images

De l’ensemble des évolutions de Séduite, le cas des évolutions de PicWeb se dégage particulièrement. En effet, à l’issue de l’une de ces évolutions, le déploiement de la nouvelle version entraîna le ralentissement de l’ensemble du système. Nous nous focalisons dans cette section sur cette évolution, qui nous servira d’exemple tout au long du document.

4.2.1

Description de PicWeb

PicWeb est un processus métier faisant partie de Séduite. Il a pour but d’afficher sur les écrans de diffusion différentes photos de la vie du campus. Pour cela, le processus métier interroge des services web de stockage de photos tels que Flickr de Yahoo! ou encore Picasa de Google, en récupérant les photos correspondant à un mot-clé donné. Le processus métier récupère ces ensembles de photos et effectue un mélange afin de rendre l’affichage des photos aléatoire. Par exemple, sur le campus de Lille, PicWeb est utilisé pour diffuser les photos des différents événements de la vie étudiante.

La Figure4.3(a) est une représentation de la version initiale de PicWeb selon le forma-

lisme des diagrammes d’activités d’UML, permettant la description du processus métier. Au départ, le processus métier récupère les photos correspondant à un mot-clé donné (activité a1 ). Le processus reçoit le mot-clé, effectue une invocation au service Picasa (activité a2 ) pour récupérer les correspondances, les mélange pour obtenir un ordre aléatoire (activité a3 ), et les retourne en tant que résultat (activité a4 ).

4.2. PicWeb, un processus métier de recherche d’images

Dans le cadre du développement de PicWeb, l’équipe de développement s’est intéressé particulièrement à étudier le temps de réponse du service. Concrètement, il s’agissait de caractériser un appel à un service ou à un processus métier, en mesurant le temps passé entre la réception du message d’entrée, et l’envoi du résultat en sortie. Ce temps comprend le temps passé pour l’envoi des messages d’entrée et de sortie (appelé temps de transmission), et le temps passé pour calculer la réponse (appelé temps de calcul ). Pour s’assurer que le temps de réponse de PicWeb se situait dans un intervalle de temps acceptable, des mesures ont été effectuées sur l’ensemble du processus. Puis, lors de chaque évolution, l’équipe de développement considérait uniquement les activités modifiées par l’évolution pour s’assurer du maintien de la qualité de service pour le temps de réponse.

4.2.2

Évolution de PicWeb

Au cours de son cycle de vie, PicWeb évolua à plusieurs reprises pour répondre aux changements des besoins des utilisateurs. Nous nous focaliserons dans ce document sur l’évolution décrite dans la Figure4.3, car elle montre comment le simple ajout d’un appel de service peut avoir un impact sur la qualité de service de l’ensemble du processus métier, voire même du système tout entier. PicWeb évolue pour prendre en considération un nouveau fournisseur d’images (Flickr), comme montré dans la figure Figure4.3(b). Ce fournisseur est désormais appelé en parallèle de Picasa, avant que le résultat soit concaténé dans la réponse.

Lors de cette évolution, si les temps de réponse des activités a20, a21 et a30 de la Figure 4.3(b) présentaient individuellement des valeurs d’un ordre de grandeur attendu, le déploiement de la nouvelle version de PicWeb révéla une toute autre réalité. En effet, les temps de réponse de PicWeb, mais également de Séduite dans son ensemble, augmentèrent de façon significative. Cette augmentation provoqua le ralentissement du système, obligeant l’équipe de développement à déployer dans l’urgence une version précédente du système.

Il est intéressant de noter ici que la cause du problème ne vient pas directement de l’évolution mais d’un autre service. Ici, l’appel à Flickr ou au service de concaténation n’était pas la cause du ralentissement du système. Toutefois, l’augmentation de la taille des données traitées par l’activité de formatage des images ralentit considérablement son exécution, causant le ralentissement de l’ensemble du système. En effet, l’implémentation de l’opération shuffle consiste, pour un ensemble de n éléments donnés en entrée, à effectuer n2 permutations afin de mélanger l’ensemble. L’évolution appliquée à PicWeb n’a pas modifié l’implémentation de shuffle ; toutefois, le contenu de la variable Pics, donnée en entrée de shuffle, est passé de n éléments à 2n. Au niveau de shuffle, l’évolution a entrainé les n2

permutations à devenir 4n2 permutations, causant ainsi un ralentissement de l’exécution

de l’opération, de PicWeb et du système dans son ensemble.

De ce fait, il n’est pas raisonnable de limiter l’analyse de l’évolution aux seuls éléments modifiés dans l’évolution, car cette modification peut avoir des effets indirects sur le reste du système. Il est donc nécessaire de pouvoir déterminer la relation entre l’évolution et son effet sur le reste du système, afin de pouvoir qualifier l’effet concret de l’évolution sur l’ensemble du système.

Ce chapitre vient de présenter le cas d’étude de ce document. Dans le chapitre suivant, nous présentons les différents problèmes rencontrés au cours de l’évolution de PicWeb. Nous en extrayons les différents défis liés à l’évolution, avant de donner un aperçu des contributions de la thèse pour apporter une solution à cette problématique.

Deuxième partie

Contributions

Chapitre 5

Un processus de développement

pour le maintien de la qualité de

service

Sommaire

Documents relatifs