Télécharger le fichier original (Mémoire de fin d’études)
LES dernières décennies ont été marquées par le développement rapide des systèmes
d’information distribués, et la diffusion de l’accès à Internet. Cette évolution du monde informatique a entraîné le développement de nouveaux paradigmes d’interaction entre les applications. Un de ces paradigmes qui a pris de l’ampleur au cours de ces dernières années est l’architecture orientée services (SOA). La méthode de conception des architectures SOA est basée sur un ensemble de standards permettant de créer une infrastructure informa-tique capable de répondre rapidement aux nouveaux besoins d’un utilisateur. Les services Web constituent un moyen de plus en plus normalisé, étendu et puissant pour mettre en œuvre une architecture SOA. Parmi les concepts intéressants qu’offre la technologie de ser-vice Web, il convient de souligner la possibilité de créer un nouveau service Web à valeur ajoutée par composition de plusieurs services Web existants. Il n’est pas toujours évident de trouver des services Web qui correspondent aux requêtes des utilisateurs. Par conséquent,
la composition des services existants est un besoin grandissant de nos jours.
La composition de services implique la capacité de sélectionner, de coordonner, d’inter-agir, et de faire interopérer des services Web existants. Elle constitue une tâche complexe. Cette complexité est due principalement au grand nombre de services Web disponibles sur le Web et à leur hétérogénéité puisqu’ils sont créés par des organisations différentes [Buc-chiarone et Gnesi, 2006].
Cette complexité est renforcée quand il s’agit d’intégrer dynamiquement des services à la demande, et surtout les composer pour répondre automatiquement à des exigences qui ne sont pas réalisées par les services existants. Ce défi est d’autant plus grand dans le cas d’un environnement, tel que le Web et l’informatique pervasive où les entités disponibles sont dynamiques et les attentes des utilisateurs sont variables et personnalisées. En effet, une approche pour la composition de services doit offrir le potentiel de réaliser des applications flexibles et adaptables, en sélectionnant et en combinant les services de manière appropriée sur la base de la requête et du contexte de l’utilisateur .
Dans cette perspective, différentes approches ont été développées pour la composition dynamique de services. Cependant, la plupart d’entre elles considèrent l’ensemble de ser-vices Web comme le seul aspect configurable au moment de l’exécution. En conséquence, les processus de composition ont tendance à être statique et non-flexible dans le sens où ils n’ont pas la capacité de s’adapter aux besoins des utilisateurs.
Afin de construire une composition de services, deux étapes doivent être effectuées [San-tos et al., 2006] (pas nécessairement séparées) : un schéma de composition (ou modèle de processus) spécifiant le flux de contrôle et de données entre les activités doit être créé ; (2) les services concrets doivent être découverts et assignés aux activités du processus.
En ce qui concerne le degré de dynamicité dans ces deux étapes, nous avons retenu essentiellement deux stratégies de composition. La première consiste à définir le schéma de composition au moment de la conception et à sélectionner les services concrets au mo-ment de l’exécution en se basant sur des critères automatiquement analysables, telles que la fonctionnalité du service, la signature et les paramètres QoS. [Casati et al., 2000] utilise une méthode statique pour la génération de workflow. Un service composite est modélisé par un graphe qui définit l’ordre de l’exécution. Les services concrets peuvent être assignés aux tâches du workflow au moment de l’exécution. Dans Meteors [Aggarwal et al., 2004], les auteurs ont proposé une approche qui consiste à ajouter de la sémantique aux standards courants tels que UDDI, WSDL et BPEL. Toutefois, ces deux initiatives nécessitent un work-flow prédéfini. Par conséquent, une telle méthode de composition manque de flexibilité et présente des difficultés à s’adapter aux besoins des utilisateurs.
La deuxième stratégie consiste à combiner la génération du schéma de composition avec l’assignation des service au moment de l’exécution. Cela implique que la composition com-plète de services peut être effectuée lors de l’exécution. Généralement, les méthodes inspi-rées de l’intelligence artificielle (IA) basées sur la logique formelle sont utilisées dans le but de fournir une composition entièrement automatisée, comme le raisonnement automatisé par les preuves de théorèmes (theorem proving). Un exemple de composition de services entièrement automatisée basée sur des algorithmes de planification inspirés de l’IA est don-née dans [Ponnekanti et Fox, 2002]. Pour créer un service composite, le demandeur de ser-vices a besoin seulement de spécifier l’état initial et final pour le service composite, puis la génération de plan peut être obtenue en utilisant un système expert basé sur des règles. Une solution pour la composition automatique basée sur un langage de description de but (GDL4WSAC) est proposé par Lin et. al. [Lin et al., 2005].
Bien que cette deuxième stratégie semble être plus flexible et adaptable que la première, la modélisation des flux de contrôle et de données d’un service composite est une tâche po-tentiellement fastidieuse et consommatrice en terme de temps (raisonnement, planification),
et surtout si nous considérons une composition totalement automatisée. En outre, la création du flux de données, peut être complexe et nécessite l’intervention de l’utilisateur censé avoir une connaissance approfondie sur les représentations de types sous-jacents. Donc même les approches qui clament fournir une composition « entièrement automatisée » au moment de l’exécution se basent sur une partie prédéfinie (comme les règles).
Dans notre travail, nous essayons de tirer profit des avantages des deux stratégies ci-tées : en plus de la sélection des services concrets au moment de l’exécution, la génération du schéma de composition est effectuée en partie au moment de l’exécution en ayant recours aux services abstraits fournis au moment de la conception. Cela permet une certaine flexi-bilité et adaptabilité sans avoir besoin de construire une composition de services à partir de zéro au moment de l’exécution.
Dans cette même perspective, quelques travaux sur la composition des services ont uti-lisé une sorte de gabarit ou workflow flexibles. Le travail dans [Teije et al., 2004] a utilisé une méthode à base d’agents pour dériver différents services complexes grâce à des tem-plates. cependant, le seul aspect configurable est l’ensemble des services Web. Les auteurs dans [Wang et al., 2010] modélisent une composition de services comme un processus de décision de Markov, de sorte que de multiples services et workflow peuvent être incorporés dans une composition de service unique. L’optimisation de la composition est réalisée au moment de l’exécution à travers l’apprentissage par renforcement. Lors de l’exécution de la composition, le système peut choisir le workflow qui offre les meilleurs résultats. Toutefois, l’accent dans ce travail est mis sur l’adaptation aux changements des services composants et non pas des exigences fonctionnelles des utilisateurs.
Dans cette thèse, nous proposons une approche qui se compose principalement de quatre étapes. La première étape prend une structuration des besoins de l’utilisateur matérialisée par un graphe d’intentions et l’enrichit pour expliciter les relations implicites. Le résultat de cette étape permet de générer un schéma de composition initial en construisant le flux de contrôle déduit du graphe des intentions enrichi, puis en sélectionnant les services abstraits adéquats. Le choix de ces services est basé sur le matching sémantique et le degré d’affinité entre les services abstraits. La troisième étape consiste à générer le schéma de composition final à l’aide d’un mécanisme de raffinement des services abstraits en utilisant des tech-niques de matching sémantique. Enfin, le plan d’exécution est généré en tenant compte des contraintes non-fonctionnelles fournies par la spécification des intentions.