I.2.2. Composition dynamique des services web
On appelle composition dynamique l'agrégation de
services web permettant de résoudre un objectif précis soumis par
un utilisateur en prenant en compte ses préférences. Cette
composition peut se faire avant ou pendant l'exécution des services web.
A l'heur actuelle, il n'existe pas de standard : les recherches sont
principalement académiques [1].
Les différentes approches existantes pour la
composition dynamique de services web peuvent être regroupées en
deux courants : les approches basées sur les workflow et les approches
basées sur les techniques de l'intelligence artificielle.
I.2.2.1. Approches orientées workflow :
L'approche se base sur le fait qu'un service web composite peut
être définit par un ensemble de services atomiques et par la
façon dont ils communiquent entre eux. Cette définition est de
même type que la manière dont est défini un processus
métier. Ce courant propose donc d'adapter les méthodes
d'orchestration et de chorégraphie afin de les rendre dynamiques [1].
Eflow [1], une plateforme pour la spécification, la
création et la gestion de services composites en utilisant les
méthodes de génération de workflows statiques mais
représentés en interne sous la forme d'un graphe qui peut
être modifié dynamiquement lors de l'exécution. Ce graphe
contient, en plus des noeuds représentant les services, des noeuds de
décision et d'événements qui
(1) Web Service Conversation Language
(2) Web Service Choregraphy Interface
(3) XML Business Process Language
permettent une plus grande robustesse du système : en
cas de non disponibilité d'un service web, celui-ci peut être
automatiquement remplacé par un service web équivalent.
Laukkanen et Helin [1] identifient deux solutions possibles
pour composer dynamiquement des processus métier : remplacer un service
web dans un processus métier existant par un autre service ayant des
fonctionnalités similaires, ou définir un nouveau workflow
à partir des services web disponibles. Les auteurs proposent d'utiliser
les descriptions sémantiques des services web pour pouvoir comparer les
fonctionnalités en utilisant les notions de préconditions et
d'effets de OWL-S.
I.2.2.2. Approches orientées intelligence
artificielle : Comme nous avons déjà
présentées dans le chapitre précédent, un service
web dans une description OWL-S peut être spécifié à
l'aide de ses préconditions et ses effets. Ces concepts sont en effet
très proches de ceux de la planification. Un autre domaine a connu ces
dernières années une très grande évolution dans le
domaine de l'intelligence artificielle. Celui des systèmes multi-
agents.
Pour ces raisons et autres, La composition dynamique de
services Web par des techniques d'intelligence artificielle, et plus
particulièrement par des techniques de planification et des
systèmes multi-agents, est la voie qui semble la plus prometteuse
[1].
Dans ce qui suit, nous présentons quelques approches de
composition par planification, par SMA et par d'autres techniques de
l'intelligence artificielle.
Calcul situationnel : dans cette approche, Le
problème de la composition est abordé de la façon suivante
: la requête de l'utilisateur et les contraintes des services sont
représentées en terme de prédicats du premier ordre dans
le langage de calcul situationnel. Les services sont transformés en
actions (primitives ou complexes) dans le même langage. Puis, à
l'aide de règles de déduction et de contraintes, des
modèles sont ainsi générés et sont
instanciés à l'exécution à partir des
préférences utilisateur [1]. Golog fait un exemple de langages de
calcul situationnel.
Preuve de théorèmes : dans
cette approche, les services disponibles et les requêtes utilisateur sont
traduites dans un langage du premier ordre. Puis des preuves sont produites
à partir d'un prouveur de théorèmes [1].
Composition avec SMA : la composition de
services peut être implémentée aussi en utilisant des SMA.
Dans cette approche, chaque agent présente un service et sert à
satisfaire une partie de la requête de l'utilisateur en utilisant ses
propres capacités.
Mùller et Kowalczyk [1] travaillent sur un
système multi-agents pour la composition de services basé sur la
concurrence entre coalitions de services : les agents représentants les
services se contactent les uns les autres pour proposer leurs services en
fonction de leur capacité de raisonnement et ainsi former des coalitions
d'agents capables de résoudre les buts fournis par l'agent utilisateur.
Puis les différentes coalitions vont faire une offre la plus
compétitive possible. Chaque solution reçoit une note de l'agent
utilisateur. C'est donc la solution ayant le plus haut score qui sera
choisie.
Kumar et Mishra dans [6] présentent deux modèles
de composition de services web sémantiques en se basant sur les SMA. Les
deux modèles se différent par l'utilisation d'un
coordinateur dans le processus de composition ou non. Dans le premier
modèle où il n'y a pas de
coordinateur, la requête de l'utilisateur est
décomposée par le système en activités/task
atomiques : task1, task2, ..., taskn. Le système sélectionne en
suite pour chaque activité atomique un agent fournisseur
représentant un service web : AF1, AF2, ..., AFn. L'agent utilisateur
négocie en fin avec chaque agent fournisseur et lui affecte
l'activité associée. Cependant dans le deuxième
modèle un agent coordinateur prend la responsabilité de
contrôler tout le système de composition.
Composition par planification : ordonner des
services web ayant des préconditions et des effets est donc très
similaire à un problème de planification automatique. De
nombreuses études ont été faites pour implémenter
la composition de services web comme une résolution d'un problème
de planification.
Peer [1] propose une approche basée sur le langage PDDL
dans laquelle, après création du domaine de planification
à partir de la description sémantique, un planificateur est
choisi parmi plusieurs en fonction des instructions PDDL utilisées dans
le domaine ou de la complexité du but à atteindre.
Medjahed [1] présente une technique pour
générer des services composites à partir de descriptions
déclaratives de haut niveau. Cette méthode utilise des
règles de composabilité pour déterminer dans quelle mesure
deux services sont composables. L'approche proposée se déroule en
quatre phases : premièrement, une phase de spécification offre
une spécification de haut niveau de la composition désirée
en utilisant le langage CSSL (Composite Service Specification
Langage). En suite, la phase de correspondance utilise des règles
de composabilité pour générer des plans conformes aux
spécifications du service demandé. Si plus d'un plan est
généré, une sélection est effectuée par
rapport à des paramètres de qualité de la composition. La
dernière phase est la phase de génération : Une
description détaillée du service composite est automatiquement
générée et présentée au demandeur. Les
règles de composabilité considèrent les
propriétés syntaxiques et sémantiques des services web.
Wu et al [1] préconisent l'utilisation du planificateur
SHOP2 pour la composition automatique de services web à partir de leur
description sémantique. SHOP2 est un planificateur HTN (Hierachical
Task Network). Dans cette approche, les auteurs considèrent que le
principe de décomposition d'une tache en sous-taches dans la
planification hiérarchique est très similaire au concept de
décomposition de processus composites dans OWL-S.
|