Académique Documents
Professionnel Documents
Culture Documents
Intitulé
Modèle multi-agents pour la composition des services Web,
fondé sur des techniques de planification
Département : Informatique
Spécialité : Informatique
Option : Informatique
Abstract
The Web has achieved phenomenal success by allowing simple interactions bet-
ween humans and computers on the Internet. Web services are web-provided applica-
tions, each performing a specific task. They take up most of the ideas and principles
of the web, and apply them to interactions between users and computers. Web users
often need to compose different services to perform a more complex task that can
not be satisfied by an individual service. To solve this problem, we propose in this
thesis a model of composition of web services based on agents. Our solution, using
some planning techniques, ensures the automatic composition of web services with
consideration of few criteria to ensure a better quality of the composition of these
services to the user.
iii
iv
Dédicaces
Je dédie ce modeste travail à la mémoire de ma très chère sœur
Mme Fatma Mansouri, née Belmabrouk,
qui s’est brulée comme une bougie pour éclairer ma vie
et celle de ma grande famille.
Aucune dédicace ne saurait être assez éloquente
pour exprimer ce que tu mérites pour tous les sacrifices
que tu n’as cessé de me donner
depuis ma naissance,
durant mon enfance
et même à l’âge adulte.
Tu m’as toujours tout donné, sans rien demander ;
Tu m’as appris que nous ne sommes, sur terre, que des passagers ;
Et que la vraie victoire est de nous rencontrer au paradis !
v
vi
Remerciements
Je remercie, du fond de mon cœur, ALLAH, de m’avoir donné le courage et la
santé pour que je puisse achever ce modeste travail.
– Ma mère Yamina : ”Tout ce que j’ai de bon, c’est à ma mère que je le dois”.
Tu es ma force, mon courage, celle qui fait de moi une bonne personne dans
ce monde. Je te remercie pour tout ce que tu as fais pour moi. Que Dieu te
préserve santé et longue vie !
– Mon mari Anouar : ”Ce travail te doit beaucoup”. Qu’il soit pour toi le
témoignage de ma parfaite reconnaissance pour ces années de compréhension,
de privations et d’efforts communs.
– Mes enfants Oussama, Anes et Ayoub : ”Les enfants sont le trésor le plus
précieux dans la vie”. Une bonne maman doit faire tout ce qu’elle peut pour
donner à ses enfants le sens de la famille. Que vous me pardonniez, surtout
pour tout le temps que j’ai consacré à cette thèse au détriment de mes devoirs
envers vous !
– Ma grande famille : Je remercie tous les membres de ma grande famille, sans
citer des noms ou des prénoms par peur d’oublier une personne. Que vous trou-
viez ici l’expression de ma parfaite reconnaissance pour votre aide précieuse et
vos encouragements.
– Tous mes enseignants : ”Sans vous tous, soyez certains que je ne vaux rien”. Si
je suis entrain de taper ces mots en ce moment, c’est grâce à vous ! Que vous
soyez assurés de mon entière reconnaissance.
– Mon encadreur Pr. Fatima Bendella : ”Votre sérieux est une qualité rare,
en ce moment”. Je n’oublierai jamais votre persévérance pour aller jusqu’au
bout ainsi que vos encouragements pour mener à bien cette thèse. Vous étiez
compréhensives aux moments difficiles. Je vous remercie infiniment et j’avoue
que c’est un grand honneur pour moi de continuer mes futurs travaux de
recherche avec vous.
– Mon co-encadreur Pr. Maroua Bouzid : Je tiens à signaler, que c’est grâce à
vous que j’ai pu définir ma problématique. Que vous trouviez, ici, quelques
mots de reconnaissance pour tout ce que vous avez fait pour moi. Vous m’avez
accueilli dans votre laboratoire à bras ouverts et vous m’avez consacré énormément
de votre temps précieux pour m’orienter et me mettre en contact avec les cher-
cheurs de votre laboratoire, spécialement Dr. Mohamad El Falou que je tiens
à remercier, également, pour son aide précieuse.
– Mes chers professeurs Mohamed Benyettou, Ghalem Belalem, Moussa Benaissa
et Sid Ahmed Rahal : Je suis très reconnaissante de l’honneur que vous me
faites en acceptant de juger ce travail. Veuillez croire à l’expression de ma
grande admiration et mon profond respect.
– Finalement, j’adresse toute ma gratitude à toutes mes amies, spécialement
Mme Nawal Bouali et sa famille, à tous mes collègues de travail et à toutes les
personnes qui m’ont aidé dans la réalisation de ce modeste travail.
vii
viii
Contributions
1. Multi-Agent Based Model for Web Service Composition ; Karima Belma-
brouk, Fatima Bendella, Maroua Bouzid ; International Journal of Advanced
Computer Science and Applications (IJACSA), Volume 7 Issue 3, 2016, DOI :
10.14569/IJACSA.2016.070320.
2. L’Intelligence Interactive au service de l’enseignement ; Fatima Bendella,
Karima Belmabrouk, Hasna Bouazza, Abdelhafidh Chadli et Nassima Ouasti ;
Conférence sur la formation à distance en supports technologiques et pratiques
pédagogiques, Oran, décembre 2014.
3. Computer-assisted problem-based learning for word-based mathematical pro-
blem solving ; Chadli Abdelhafid, Bendella Fatima, Belmabrouk Karima ; The
4th International workshop on Interactive Environments and Emerging Tech-
nologies for eLearning, IEETeL 2013, 4 June 2013, Utrecht, the Nederlands,
http ://ceur-ws.org/Vol-991/paper4.pdf.
4. Modèle de conception d’un Système Multi-Agents à base d’un Réseau de
Pétri ; Karima Belmabrouk, Nassima Ouasti ; 6ème journées scientifiques,
InfoDays’2012, 25 et 26 avril 2012, Université Hassiba Benbouali de Chlef,
Algérie.
5. Agent conversationnel animé pour l’apprentissage du calcul, Nassima Ouasti,
Fatima Bendella, Karima Belmabrouk, 1er Séminaire National sur les Tech-
nologies Educative, SNTE’2012, 06 - 07 Mars 2012, Université 8 Mai 1945,
Guelma, Algérie.
6. Complex System Model based on Multi-Agent Systems and Petri Nets ; Bel-
mabrouk Karima, Bendella Fatima and Benkhedda Samira, The International
Arab Conference on Information Technology, ACIT’2011, Naif Arab University
for Security Science (NAUSS), December 11-14, 2011, Riyadh, Saudi Arabia.
7. Simulation of Human Behavior in Situation of Emergency, Samira Ben-
khedda, Fatima Bendella, Karima Belmabrouk ; 23rd European Modeling and
Simulation Symposium, EMSS 2011, Rome, Italy 12 – 14 September 2011,
Volume : ISBN : 978-1-62993-465-5.
8. Multimedia Mining : P-arbres ou R-arbres pour la représentation des données
multimédia ; Karima Belmabrouk, Yahia Slimani ; Conférence Internationale
sur l’Informatique et ses Applications, CIIA’06, Mai 2006, Saida, Algérie.
9. Structures de données pour le Multimedia Mining ; Karima Draou, Yahia
Slimani ; Colloque International sur : Méthodes et Outils d’Aide à la Décision,
MOAD’04, Novembre 2004, Saida, Algérie.
ix
x
Table des matières
Introduction générale 1
1 Contexte et problématique . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Approche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4 Plan du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I État de l’art 5
1 Les agents et les systèmes multi-agents (SMA) 7
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 L’intelligence artificielle distribuée (I.A.D) . . . . . . . . . . . . . . . 8
3 Thèmes de recherche de L’I.A.D . . . . . . . . . . . . . . . . . . . . 8
4 Problématique de L’I.A.D . . . . . . . . . . . . . . . . . . . . . . . . 8
4.1 Les problèmes classiques . . . . . . . . . . . . . . . . . . . . . 9
4.2 Les nouveaux problèmes proprement liés au thème de l’I.A.D. 9
5 Évolution vers les systèmes multi-agents . . . . . . . . . . . . . . . . 9
6 Qu’est-ce qu’un agent ? . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1 Quelques définitions . . . . . . . . . . . . . . . . . . . . . . . 10
6.2 Les caractéristiques multidimensionnelles d’un agent . . . . . . 11
6.3 Différentes catégories d’agents . . . . . . . . . . . . . . . . . 13
7 Les systèmes multi-agents (S.M.A) . . . . . . . . . . . . . . . . . . . 15
7.1 Définition d’un S.M.A . . . . . . . . . . . . . . . . . . . . . . 15
7.2 Les problématiques des S.M.A . . . . . . . . . . . . . . . . . 16
7.3 Avantages et objectifs des S.M.A . . . . . . . . . . . . . . . . 17
8 Coopération . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.2 Modèles de Coopération . . . . . . . . . . . . . . . . . . . . . 17
9 Résolution de conflits . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1 Coordination . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.2 Négociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10 La communication dans les S.M.A . . . . . . . . . . . . . . . . . . . 19
10.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
10.2 Les modes de communication . . . . . . . . . . . . . . . . . . 19
11 Méthodes de conception des S.M.A . . . . . . . . . . . . . . . . . . . 20
xi
TABLE DES MATIÈRES
3 La planification 61
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2 La planification en intelligence artificielle . . . . . . . . . . . . . . . . 61
3 Planification classique . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1 Planification dans un espace d’états . . . . . . . . . . . . . . . 62
3.2 Planification dans l’espace de plans . . . . . . . . . . . . . . . 65
4 Planification graphique . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1 Principe de construction de graphe . . . . . . . . . . . . . . . 68
4.2 Planificateur GRAPHPLAN . . . . . . . . . . . . . . . . . . . 69
5 Planification hiérarchique . . . . . . . . . . . . . . . . . . . . . . . . 69
5.1 Algorithme de résolution HTN . . . . . . . . . . . . . . . . . . 70
5.2 Planificateur HTN . . . . . . . . . . . . . . . . . . . . . . . . 70
6 Planification distribuée . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1 Planification centralisée pour les plans distribués . . . . . . . . 71
6.2 Planification distribuée pour les plans centralisés . . . . . . . . 71
6.3 Planification distribuée pour les plans distribués . . . . . . . . 71
7 Avantages de la planification . . . . . . . . . . . . . . . . . . . . . . . 71
8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Bibliographie 137
Bibliographie 137
xvii
LISTE DES TABLEAUX
1 Contexte et problématique
L’internet est devenu la baguette magique servant ses utilisateurs des différents
endroits du monde de recueillir d’énormes quantités d’information dont ils ont be-
soin. Mais ces utilisateurs du Net n’ont pas besoin, uniquement, de l’information,
ce dont ils ont vraiment besoin, actuellement, dépasse la recherche d’information
à la recherche de service et avance encore plus loin pour exiger l’invocation de ces
services avec prise en considération de plusieurs facteurs, pouvant jouer un rôle très
important dans le cadre de l’optimisation de la qualité de ces services.
Les services Web sont des applications accessibles sur Internet réalisant chacune
une tâche spécifique comme par exemple, réserver un billet d’avion, afficher un re-
levé bancaire, acheter un livre ou autre. Cependant, les services Web ont, pour la
plupart, une utilité limitée puisqu’ils n’effectuent qu’une seule tâche spécifique. Par
exemple, pour partir en vacances, une personne devra trouver un service Web pour
chaque réservation qu’elle désire réaliser (avion, train, hôtel,...).
Pour remédier à ce problème, des services Web peuvent être regroupés pour ne
former, du point de vue de l’utilisateur, qu’un seul service ; on parle alors de la
composition des services Web.
2 Objectif
Après avoir situé nos travaux de recherche, dans la section précédente, parmi la
multitude des axes de recherche présents, actuellement, dans le domaine informa-
tique, de façon générale ; et dans le domaine de l’intelligence artificielle, des agents
et des systèmes multi-agents, des services Web et de la planification, de façon plus
précise. Nous tenons à préciser que notre objectif principal est de proposer un modèle
de composition des services Web à l’aide des agents et que l’approche de composition
adoptée soit fondée sur des techniques de planification.
1
INTRODUCTION GÉNÉRALE
3 Approche
La nécessité de composer des services Web, nous mène à la découverte de différentes
approches pouvant nous aider à la réalisation de cet objectif. Dans ce contexte, nous
avons pu réaliser une synthèse qui nous a permis de faire la distinction entre :
L’approche que nous avons adopté pour la conception de notre modèle est une
approche :
– Automatique : ce sont les agents du modèle qui vont assurer cette composition,
sans aucune intervention humaine.
– Dynamique : nos agents vont assurer cette composition, quelque soit le service
demandé, avec une auto-organisation permettant leur adaptation pour pouvoir
satisfaire l’utilisateur du service demandé.
4 Plan du document
Cette thèse est composée de deux parties où :
– La première est un état de l’art sur les principaux domaines de recherche
liés à notre problématique tels que les systèmes multi-agents (SMA), les ser-
vices Web, la planification ainsi que la présentation de quelques travaux de
recherche réalisés pour remédier aux différents problèmes liés à la composition
2 3. APPROCHE
INTRODUCTION GÉNÉRALE
Et nous terminons cette thèse par une conclusion générale et quelques perspectives
pour de futurs travaux de recherche.
4. PLAN DU DOCUMENT 3
INTRODUCTION GÉNÉRALE
4 4. PLAN DU DOCUMENT
Première partie
État de l’art
5
Chapitre 1
1 Introduction
L’éclatement de l’internet et l’augmentation des capacités des ordinateurs offrent
aujourd’hui des possibilités importantes quant au passage de relais des humains aux
ordinateurs d’une partie de leur effort cognitif. Ainsi, l’arrivée de l’approche orientée
objet avait suscité beaucoup d’espérance et d’intérêt du moment où les concepts
d’encapsulation et d’héritage représentent au mieux le monde réel. Malheureuse-
ment, cette approche s’est avérée insuffisante : malgré les avantages offerts par les
objets, ils restent des structures de données passives et ils dépendent du système
dans lequel ils sont implémentés c’est à dire ils n’ont pas une marge importante
de contrôle sur leur propre comportement. En effet, le besoin qui se faisait le plus
ressentir était d’avoir des entités autonomes et flexibles, qui ont des buts et qui
essaient de leur propre intention de trouver la manière avec laquelle ils doivent agir
et décider afin de les atteindre. Cette entité s’appelle un agent.
D’un autre côté, la puissance de l’intelligence artificielle avec les systèmes à bases
de connaissances (SBC) traditionnels avaient entretenu l’espoir quant à la possibi-
lité qu’un ordinateur puisse remplacer l’être humain. Néanmoins, les SBC qui ont,
surement, prouvé leurs puissance notamment dans le domaine de la médecine et
de la reconnaissance du langage naturel, ont déçu notamment dans les applications
distribuées et/ou temps réel. En effet, le principal handicap des SBC traditionnels
est que le contrôle y est centralisé, ce qui limite les capacités et l’efficacité du système.
Le besoin d’avoir des systèmes où le contrôle est distribué doivent être flexibles,
simples à maintenir et aptes à l’émergence d’organisations. Ces systèmes sont appelés
Systèmes multi-agents (SMA), ce sont des systèmes dont les composantes principales
sont des agents.
Dans ce chapitre, nous présentons un état de l’art sur les agents et les systèmes
multi-agents (SMA) après avoir introduit l’intelligence artificielle distribué (I.A.D)
et avoir mis l’accent sur l’évolution de cette discipline vers les SMA.
7
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
4 Problématique de L’I.A.D
Les problèmes que l’I.A.D s’attachent à résoudre peuvent être divisés en deux
classes : la première concerne les problèmes classiques de l’I.A qui ont pris une
nouvelle dimension dans le contexte multi-agents. La seconde regroupe les nouveaux
problèmes proprement liés au thème de l’I.A.D.
8 2. L’INTELLIGENCE ARTIFICIELLE DISTRIBUÉE (I.A.D)
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
– La gestion des conflits entre les agents : de points de vue différents des
agents et le maintien de la cohérence des décisions et des plans d’actions.
Une extension des systèmes de l’I.A.D est proposée : les composants doivent
être capables de raisonner sur les connaissances et les capacités des autres dans le
but d’une coopération effective. Pour ce faire, ils doivent être dotés de capacités
de perception et d’action sur leur environnement et doivent posséder une certaine
autonomie de comportement, on parle alors d’agents et par conséquent de systèmes
multi-agents[GDK87].
Définition 1 [FG88]
On appelle agent une entité physique ou abstraite qui est capable d’agir sur
elle-même et sur son environnement, qui dispose une représentation partielle de cet
environnement, qui, dans un univers multi-agents, peut communiquer avec d’autre
agents, et dont le comportement est la conséquence de ses observations, de sa
connaissance et de ses interaction avec d’autre agents.
Définition 2 [Fer95]
Un agent est une entité autonome, réelle ou abstraite, qui est capable d’agir sur
elle-même et sur son environnement, qui, dans un univers multi-agents, peut com-
muniquer avec d’autres agents, et dont le comportement est la conséquence de ses
observations, de ses connaissances et des interactions avec les autres agents.
Il ressort de cette définition des propriétés clés comme l’autonomie, l’action, la per-
ception et la communication. D’autres propriétés peuvent être attribuées aux agents.
Nous citons en particulier la réactivité, la rationalité, l’engagement et l’intention.
Définition 3 [WJ95]
Wooldridge et Jennings ont proposé la définition suivante : ”Un agent est un
système informatique, situé dans un environnement, et qui agit d’une façon auto-
10 6. QU’EST-CE QU’UN AGENT ?
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
nome pour atteindre les objectifs (buts) pour lesquels il a été conçu”.
Définition 4 [Sho93]
Un agent selon Shoham est une entité qui fonctionne continuellement et de
manière autonome dans un environnement où d’autres processus se déroulent et
d’autres agents existent.
Définition 5 [Wei04]
Weiss a défini l’agent comme suit : ”Un agent est une ”entité computationnelle”,
comme un programme informatique ou un robot, qui peut être vue comme percevant
et agissant de façon autonome sur son environnement. On peut parler d’autonomie
parce que son comportement dépend au moins partiellement de son expérience”.
– social : l’agent doit être capable d’interagir avec les autres agents (logiciels
et humains) quand la situation l’exige afin d’accomplir ses tâches ou aider
ces agents à accomplir les leurs.
– Le contrôle : il peut être totalement distribué entre les agents mais peut
être voué à une certaine classe d’agents comme les agents facilitateurs.
a. Les Agents réactifs : Les agents réactifs n’ont pas une représentation ex-
plicite de leur environnement et ne tiennent pas compte de leurs actions
passées. Ils ont un comportement de type stimulus / réponse (perception/action).
Les agents réagissent ainsi à des changements survenant dans leur environne-
ment à travers des actions prédéfinies auparavant. La figure 1.1 montre bien
le mécanisme évoqué. Un système multi-agents constitué uniquement d’agents
réactifs requiert un nombre élevé d’agents pour pouvoir parler d’un système in-
6. QU’EST-CE QU’UN AGENT ? 13
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
De ce fait, on peut dire qu’un agent cognitif possède un état mental qui se
base sur les notions de connaissances, de la croyance, de l’intentionnalité et de
l’engagement. Tous ces concepts vont être réunis à l’intérieur de l’agent selon
l’architecture qui va être adoptée afin de définir une structure agençant les
composants de ce dernier.
Le tableau 1.1 résume les différences entre les deux approches : cognitive et
réactive.
Systèmes d’agents cognitifs Systèmes d’agents réactifs
Représentation explicite de l’environnement Pas de représentation explicite
Peut tenir compte de son passé Pas de mémoire de son historique
Agent complexe Fonctionnement stimulus/action
Petit nombre d’agents Grand nombre d’agents
Définition [Fer95]
1. Un environnement E, c’est-à-dire un espace disposant généralement d’une
métrique.
2. Un ensemble d’objets O. Ces objets sont situés, c’est-à-dire que, pour tout
objet, il est possible, à un moment donné, d’associer une position dans E. Ces
objets sont passifs, c’est-à-dire qu’ils peuvent être perçus, créés, détruits et
modifiés par les agents.
3. Un ensemble A d’agents, qui sont des objets particuliers (A inclu dans O),
lesquels représentent les entités actives du système.
4. Un ensemble de relations R qui unissent des objets (et donc des agents) entre
eux.
5. Un ensemble d’opérations Op permettant aux agents de A de percevoir, pro-
duire, consommer, transformer et manipuler des objets de O.
6. Des opérateurs chargés de représenter l’application de ces opérations et la
réaction du monde à cette tentative de modification, que l’on appellera les lois
de l’univers.
La figure 1.3 donne une illustration de la notion de système multi-agents.
La problématique de l’action :
Cela revient à répondre à des questions du genre : comment un ensemble d’agents
peut agir de manière simultanée dans un environnement partagé ?, et comment cet
environnement interagit en retour avec les agents ? Les questions sous-jacentes sont
entre-autres celles de la représentation de l’environnement par les agents, de la col-
laboration entre agents et de la planification multi-agents.
La problématique de l’interaction :
La problématique de l’interaction s’intéresse aux moyens de l’interaction (quel
langage ? quel support ?), et à l’analyse et la conception des formes d’interaction
entre agents. Les notions de collaboration et coopération.
La problématique de l’adaptation :
Il s’agit de l’adaptation en terme d’adaptation individuelle ou apprentissage
d’une part et d’adaptation collective ou évolution d’une autre part.
La problématique de l’implémentation :
Enfin, il reste la question de la réalisation effective des SMA, en structurant
notamment les langages de programmation en plusieurs types allant du langage de
type L5, ou langage de formalisation et de spécification, au langage de type L1 qui
est le langage d’implémentation effective. Entre les deux, on retrouve le langage
de communication entre agents, de description des lois de l’environnement et de
représentation des connaissances.
16 7. LES SYSTÈMES MULTI-AGENTS (S.M.A)
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
8 Coopération
8.1 Définition
La coopération est nécessaire quand un agent ne peut pas atteindre ses buts
sans l’aide des autres agents. Cette situation est fréquente même chez des espèces
primitives, édification d’une fourmilière par exemple. Souvent les buts nécessitant
la coopération sont des buts sociaux, ils assurent la survie du groupe ou de l’espèce.
Quelquefois, ce sont des buts individuels, un agent qui en aide un autre peut attendre
une aide en retour ou se faire payer son travail. Un agent peut avoir besoin d’un
autre agent parce que cet agent a des compétences qu’il n’a pas, ou parce qu’il faut
être plusieurs pour réaliser la tâche (pousser un objet trop lourd). La coopération
n’est pas forcément consciente, elle peut résulter d’un comportement automatique,
comme la construction des ruches ou des termitières.
Jacques Ferber propose la définition suivante [Fer95] : On dira que plusieurs
agents coopèrent, ou encore qu’ils sont dans une situation de coopération, si l’une
des deux conditions est vérifiée :
1. L’ajout d’un nouvel agent permet d’accroı̂tre différentiellement les perfor-
mances du groupe.
2. L’action des agents sert à éviter ou à résoudre des conflits potentiels ou actuels.
Il suffit alors que l’une de ces deux conditions soit vérifiée pour que l’on puisse
juger la situation étudiée comme coopérative.
9 Résolution de conflits
Les agents coopératifs ont besoin d’éviter autant que possible les situations
conflictuelles pour résoudre un problème. Pour ce faire, ils peuvent être amenés
à coordonner leurs activités et négocier leurs actions pour arriver à une solution.
9.1 Coordination
Les agents travaillent sur des problèmes dont les solutions sont utiles pour les
autres agents. Leur travail doit donc être coordonné dans le temps. La coordination
[GDK87] permet aux agents de considérer toutes les tâches et de ne pas dupliquer
le travail. La coordination des actions est liée à la planification et à la résolution des
conflits, car c’est à ce niveau qu’on tient compte des actions (plans) des autres agents.
Dans les systèmes d’IAD, la coordination des actions des agents peut s’organiser
suivant deux schémas principaux [Fer95] : une coordination au moyen d’un système
capable de déterminer et de planifier globalement les actions des différents agents
ou à l’inverse, on décide de donner une totale autonomie aux agents qui, à leur tour,
identifient les conflits pour les résoudre localement.
On peut distinguer deux types de coordination :
– la coordination due à la gêne (problème de navigation : les agents doivent
coordonner leurs plans de navigation pour s’éviter mutuellement),
– la coordination due à l’aide (manutention : dans un environnement multi-
robots, les agents doivent synchroniser leurs actions pour pouvoir agir effica-
cement et transporter un objet [Peg88]).
9.2 Négociation
Les activités des agents dans un système distribué sont souvent interdépendantes
et entraı̂nent des conflits. Pour les résoudre, il faut considérer les points de vue des
agents, les négocier, et utiliser des mécanismes de décision concernant les buts sur
lesquels le système doit se focaliser [Che92]. La négociation est caractérisée par :
– Un nombre faible d’agents impliqués dans le processus.
18 9. RÉSOLUTION DE CONFLITS
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
de communiquer est l’une des plus utilisées dans la conception des systèmes multi-
experts. L’exemple parfait d’utilisation de ce mode de communication est l’archi-
tecture de blackboard, on parle plutôt de sources de connaissances que d’agents.
Ce mode de communication n’existe pas dans les systèmes multi-agents où l’on dis-
pose que d’une vision partielle du système alors que la communication par partage
d’informations suppose l’existence d’une base partagée sur laquelle les composants
viennent lire et écrire (voir figure 1.5).
Pour mettre en œuvre un S.M.A, il faut gérer globalement le cycle de vie des
agents, la communication entre les agents et le contrôle des agents du système. Le
cycle de vie d’un S.M.A est géré par un processus de management qui peut être
centralisé même si le processus propre au S.M.A est distribué. Ce processus de ma-
nagement comporte :
– Une phase d’initialisation : où les agents sont créés et initialisés. D’autres
agents peuvent être crées ensuite si certains agents ont la possibilité d’en créer.
– Une phase de terminaison : où tous les agents du S.M.A doivent être
supprimés pour redonner un environnement propre. Tous les agents doivent
donc être référencés, soit par le système, soit par un autre agent.
Figure 1.6 – Classification des différents types d’application des SMA [Fer95].
Une autre classification des domaines d’application des agents permet de distinguer
le fait qu’un agent est utilisé dans un réseau ou sans réseau :
Les assistants
Ce sont des agents qui travaillent pour et avec vous. Le plus célèbre d’entre eux
est sûrement l’assistant de Microsoft Office. En effet, cet assistant surveille tout ce
12. DOMAINES D’UTILISATION DES AGENTS ET DES SYSTÈMES 21
MULTI-AGENTS
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
que vous faites et vous propose des astuces pour aller plus vite (raccourcis claviers,
manipulation à la souris...).
Les jeux
Des agents permettent de faire fonctionner des avatars, c’est à dire, les joueurs
gérés par l’ordinateur. En effet, lorsque c’est l’ordinateur qui joue, il y a de fortes
chances pour que ce soit un agent qui joue.
La robotique
Dans ce cas, on n’est plus dans le domaine de l’informatique. Le petit robot qui
transporte des charges, la tondeuse ou la balayeuse automatique, ce sont des agents.
Autres utilisations
D’autres applications utilisent des agents, mais leur diffusion est marginale : les
applications de recherche en reconnaissance de forme, reconnaissance de parole...
La recherche d’information
La recherche d’information est une des applications la plus souvent mise en
avant lorsque l’on parle d’agents. En effet, la quantité d’informations disponible sur
Internet étant gigantesque, il est impossible pour un Homme de trouver la bonne
information. Même si des moteurs de recherche (Yahoo, Alta Vista...) existent, il
est très vite fastidieux de rechercher une information. Dans ces conditions, un agent
mobile qui peut se déplacer de site en site à la recherche d’informations peut se
révéler très utile. De plus cet agent peut être ”intelligent” et mémoriser, par exemple,
les préférences de l’utilisateur ou les recherches antérieures pour accélérer la récolte
des informations.
La surveillance
Parfois, le problème n’est pas de savoir où se trouve l’information mais quand
est-ce qu’elle va s’y trouver. Dans ce cas, les agents peuvent aussi se révéler utiles.
Prenons l’exemple des cours boursiers : En France les cours boursiers sont disponibles
sur Internet (Bourse de Paris, Yahoo - Finance...). On sait donc où est l’information,
il faut maintenant savoir quand l’information va devenir intéressante. Ainsi, on peut
envoyer un agent sur le serveur de la bourse en lui disant d’attendre jusqu’à ce qu’une
action atteigne un certain cours puis de revenir nous faire un rapport. Quand l’agent
est sur le serveur de la bourse, il peut revenir à tout moment. Vous avez alors deux
solutions :
22 12. DOMAINES D’UTILISATION DES AGENTS ET DES SYSTÈMES
MULTI-AGENTS
CHAPITRE 1. LES AGENTS ET LES SYSTÈMES MULTI-AGENTS (SMA)
– Vous restez connecté et l’agent revient vous faire un rapport dès que le cours
est atteint.
– Vous ne restez pas connecté et l’agent attend que vous vous connectiez pour
faire son rapport.
Le commerce électronique
Avec le développement du commerce électronique, l’utilisation d’un agent qui fait
vos courses est de plus en plus envisageable. Par exemple si vous voulez aller de Paris
à New-York-York en avion, un agent peut aller dans les agences de voyages et revenir
avec la liste des vols, les horaires et bien sûr les prix. Il peut ensuite vous proposer
le meilleur compromis horaire/prix et effectuer la réservation à votre place. Prenons
un autre exemple : un site accueille des agents qui achètent ou vendent des voitures.
Si vous voulez vendre une voiture, vous envoyez un agent avec les informations
concernant votre voiture (prix, couleur, marque, année, options...). Si vous voulez
acheter une voiture, vous envoyez aussi un agent en précisant la voiture de votre
rêve. Dans les deux cas, les agents vont négocier à votre place l’achat ou la vente de
votre voiture.
Calcul parallèle
Une application beaucoup plus informatique des agents est le calcul parallèle.
Un calcul complexe peut s’exécuter facilement sur plusieurs machines en utilisant
des agents : Il suffit d’envoyer des agents pour effectuer de petites parties du calcul
sur des machines différentes. Ainsi, on utilise plusieurs ordinateurs pour effectuer le
calcul et le résultat est obtenu plus rapidement.
Les jeux
Enfin, l’application la moins utile, mais peut être celle qui va se servir le plus
des agents : les jeux en réseau. Les joueurs programment des agents qui vont sur
un serveur de jeu. Les agents jouent alors ensemble. Si le serveur de jeu est à Las
Vegas, votre agent pourrait jouer votre propre argent au poker.
13.8 NetLogo
C’est un environnement de simulation des phénomènes naturels et sociaux à base
d’agents. Il a été créé par Uri Wilenski en 1999 et son développement est poursuivi
de manière continue par le ”Center for Connected Learning and Computer-Based
Modeling”. NetLogo convient tout particulièrement à la modélisation de systèmes
complexes évoluant au cours du temps. Les modélisateurs peuvent donner des
instructions à des centaines ou des milliers d’agents opérant indépendamment
les uns des autres. Ce qui permet d’explorer les liens entre les comportements des
individus à leur niveau et les schémas généraux (comportements de groupe ou de
masse) qui émergent des interactions entre de nombreux individus [Wil99, Wil17].
14 Conclusion
Dans ce chapitre, nous avons présenté une étude de l’univers des agents, tout en
essayant de clarifier la terminologie du domaine : I.A.D, agent et systèmes multi-
agents. Les SMA sont largement répandus et développés autour du monde. Ils sont
parmi les domaines les plus porteurs en Intelligence Artificielle.
Vu que le domaine des SMA est en pleine expansion et qu’il est encore mystérieux
par rapport à la majorité de nos étudiants, et vu le rôle important que vont jouer les
agents dans notre modèle, nous avons jugé indispensable de consacrer plusieurs sec-
tions dans ce chapitre pour pouvoir éclaircir les principaux concepts liés aux agents
et aux systèmes multi-agents.
Dans le chapitre suivant, nous allons présenter les services Web avant de passer
à la présentation de la relation entre les SMA et les services Web.
26 14. CONCLUSION
Chapitre 2
1 Introduction
Le Web a remporté un succès phénoménal en permettant des interactions simples
entre les êtres humains et les machines. Les services Web reprennent la plupart des
idées et des principes du Web, et les appliquent à des interactions entre utilisa-
teurs et ordinateurs. Ces dernières doivent être basées sur des architectures fiables
et stables. Ce qui explique l’abandon des architectures centralisées (client/serveur)
au profit des architectures distribuées. Les services Web sont un sujet complexe,
intégrant plusieurs domaines informatiques (documents, sécurité, programmation,
implémentation, etc.). Le nombre de normes est impressionnant, mais est dépassé
par la multitude de solutions d’implémentation. Notre objectif dans ce chapitre est de
présenter un état de l’art sur les services Web. Différentes sections sont consacrées à
leur définition, la présentation de leur utilité, l’énumération de leurs caractéristiques,
la présentation de leur architecture, leur fonctionnement et nous terminons par la
présentation de leurs avantages et leurs inconvénients.
Les architectures SOA ont été popularisées avec l’apparition de standards liés
aux services Web dans l’e-commerce (commerce électronique) (B2B, inter-entreprise,
ou B2C, d’entreprise à consommateur), basés sur des plateformes comme J2EE ou
.NET.
Définition 1 [BH03] :
Le consortium W3C 1 a donné la définition suivante : ”Un service Web est un
système logiciel identifié par un URI, dont les interfaces et liaisons publiques sont
définies et décrites à l’aide de XML. Sa définition peut être découverte par d’autres
1. World Wide Web Consortium (http ://www.w3.org) : une communauté internationale qui
élabore des protocoles et des standards pour assurer la croissance du Web à long terme.
3. QU’EST CE QU’UN SERVICE WEB ? 29
CHAPITRE 2. LES SERVICES WEB
systèmes logiciels. Les services Web peuvent interagir entre eux d’une manière pres-
crite par leurs définitions, en utilisant des messages XML portés par les protocoles
Internet”.
Définition 2 [ACKM04] :
Une définition plus précise est fournie par le consortium UDDI, qui caractérise
les services Web comme des applications métiers autonomes et modulaires qui ont
des interfaces ouvertes, orientées vers Internet et basées sur des standards.
Définition 3 [Wik17] :
Selon Wikipédia 2 : ”Un service Web est un protocole d’interface informatique de
la famille des technologies Web permettant la communication et l’échange de données
entre applications et systèmes hétérogènes dans des environnements distribués. Il
s’agit donc d’un ensemble de fonctionnalités exposées sur internet ou sur un intranet,
par et pour des applications ou machines, sans intervention humaine, de manière
synchrone ou asynchrone. Le protocole de communication est défini dans le cadre
de la norme SOAP dans la signature du service exposé (WSDL). Actuellement, le
protocole de transport est essentiellement HTTP(S)”.
Définition 4 [Pon08] :
Julien Ponge a, également, proposé une défintion très acceptable dans [Pon08] :
”Les services Web sont une nouvelle génération d’applications Web. Ce sont des
applications modulaires autonomes, auto-descriptibles, qui peuvent être publiées,
localisées et invoquées sur le Web. Les services Web exécutent des fonctions, allant
de simples demandes à des processus commerciaux compliqués..., une fois qu’un
service Web est déployé, d’autres applications (et d’autres services Web) peuvent
découvrir et invoquer le service déployé”.
Définition 5 [BSS17]
Dans le dictionnaire technique en ligne Webopedia 3 , un service Web est défini
comme une manière standardisée d’intégrer des applications Web à l’aide des
normes ouvertes XML, SOAP, WSDL et UDDI sur un squelette de protocole In-
ternet. XML est utilisé pour marquer les données, SOAP est utilisé pour transférer
les données, WSDL est utilisé pour décrire les services disponibles et UDDI est uti-
lisé pour répertorier les services disponibles”.
Cette dimension englobe toute description complémentaire (du fournisseur, des ob-
jectifs du service Web, etc.) de la description fonctionnelle qui permet d’ajouter de
l’information à la description classique du service Web. Cette information peut en-
suite être traitée par des mécanismes (tels que l’inférence) afin d’en extraire de la
connaissance [LV08]. Les services Web sémantiques sont à la convergence de la tech-
nologie de services Web et du Web sémantique[KT03], ce sont des services Web à
descriptions dotées de sémantique. Actuellement les services Web sont décrits par le
langage WSDL qui permet de définir les opérations et les paramètres autorisés par le
service Web. Cela est fait en attribuant des noms aux opérations et aux paramètres,
puis associer ces paramètres à des types abstraits de données (string, char,...) .
– La normalisation : Les services Web sont normalisés car ils utilisent les
standards XML et HTTP pour transférer des données et ils sont compatibles
avec de nombreux autres environnements de développement. Ils sont donc
indépendants des plates-formes. C’est dans ce contexte qu’un intérêt très par-
ticulier a été attribué à la conception des services Web puisqu’ils permettent
aux entreprises d’offrir des applications accessibles à distance par d’autres en-
treprises. Cela s’explique par le fait que les services Web n’imposent pas de
modèles de programmation spécifiques.
Les services Web représentent donc la façon la plus efficace de partager des méthodes
et des fonctionnalités. De plus, ils réduisent le temps de réalisation en permettant
de tirer directement parti de services existants.
Un exemple de document XML est présenté dans la figure 2.4 de la page 36.
XML Namespaces est une extension de la recommandation XML qui permet
de créer des espaces de nommages. Les espaces de noms d’XML permettent de
qualifier de manière unique des éléments et des attributs. On sait alors à quel do-
maine de définition se rapporte un objet et comment il doit être interprété, selon
sa spécification. Différencier des espaces de noms permet de faire coopérer, dans un
5. TECHNOLOGIES DE BASE DES SERVICES WEB 35
CHAPITRE 2. LES SERVICES WEB
même document, des objets ayant le même nom, mais une signification différente,
souvent liée à un modèle de contenu différent. Cette spécification est une avancée
importante car, à partir du moment où beaucoup de formats s’expriment selon XML,
les risques de collision de noms deviennent plus importants et cette spécification
prend alors toute son importance [MN12].
Origine :
XML a été développé par le XML Working Group sous la tutelle du W3C (World
Wide Web Consortium) dès 1996. Depuis le 10 février 1998, les spécifications XML
1.0 sont reconnues comme recommandation par le W3C, ultime étape du processus
d’approbation de cet organisme. Une seconde édition de la norme XML 1.0 a été
publiée, elle vise principalement à prendre en compte un certain nombre de correc-
tions , et ne défini en aucun cas une nouvelle recommandation. A sa création, les
objectifs de conception de XML étaient les suivants :
1. XML devrait pouvoir être utilisé sans difficulté sur Internet
2. XML devrait soutenir une grande variété d’applications
3. XML devrait être compatible avec SGML (pour Standard Generalized Markup
Language)
4. Il devrait être facile d’écrire des programmes traitant les documents XML
5. Le nombre d’options dans XML doit être réduit au minimum, idéalement à
aucune
6. Les documents XML devraient être lisibles par l’homme et raisonnablement
clairs
7. La conception de XML devrait être préparée rapidement
8. La conception de XML devrait être formelle et concise
9. Il devrait être facile de créer des documents XML
10. La concision dans le balisage de XML est de peu d’importance
Impacts :
Le code XML ne dépend pas de la plateforme, ce qui signifie que tous les pro-
grammes conçus pour utiliser le langage XML peuvent lire et traiter des données
XML, quel que soit le matériel ou le système d’exploitation. Par exemple, avec les
balises XML appropriées, il est possible d’utiliser un programme bureautique pour
ouvrir et utiliser des données sur un gros ordinateur. Quel que soit l’auteur d’un
corps de données XML, il est possible d’utiliser les mêmes données dans plusieurs
programmes Microsoft Office 2003 et Microsoft Office Professional 2007, dont Mi-
crosoft Office Access 2007, Microsoft Office Word 2007, Microsoft Office InfoPath
2007 et Microsoft Office Excel 2007 (voir figure 2.5). Grâce à sa grande portabilité,
le langage XML s’est imposé comme l’une des technologies les plus courantes pour
l’échange de données entre des bases de données et des utilisateurs.
Outre les données bien formées qui utilisent des balises, les systèmes XML uti-
lisent généralement des composants supplémentaires : des schémas et des transfor-
mations. Et parmi les points forts qu’offre XML, nous pouvons citer les suivants :
– XML est bien adapté à la transmission de données, du serveur vers le naviga-
teur (portable, échangeable, universel),
– XML est lisible et présentable par les navigateurs Web,
– XML est aussi un outil idéal de communication :
– d’application à application
– de machine à machine
– de base de données à base de données (compatible avec tous les SGBD)
Origine :
La définition du protocole SOAP débuta en 1998, à l’initiative de Microsoft,
de DevelopMentor et d’Userland Software [KT03], dans le but de parvenir à la
création d’une procédure d’appel distant utilisant http comme couche de transport
de données. Puis, ce groupe de réflexion fut rejoint par IBM et d’autres grands
éditeurs, afin de contribuer à transformer SOAP en un standard, soumis au World
Wide Web Consortium - W3C. SOAP se base sur les spécifications XML-RPC.
Ce dernier est un RPC au même titre que CORBA ou DCOM, mais il n’impose
aucun modèle de composants, des deux côtés de la connexion. L’activation des objets
exécutant les méthodes est aussi laissée à la charge des applications. La norme XML-
RPC précise l’enveloppe des messages échangés par les deux applications (envoi de
requête et de réponse), et la manière d’utiliser ces messages dans le but de faire des
appels de procédures distantes.
Impacts :
SOAP est une RPC simple et légère qui permet de sortir du réseau local. Les
précédentes tentatives (DCOM, CORBA, RMI) ont échoué car elles n’étaient pas
simples, ni standards. SOAP, a au contraire été conçu pour être simple et devenir
standard international grâce au support du plus grand nombre. SOAP pourrait
bien devenir le middleware pour Internet : couche logicielle permettant de faire du
client-serveur entre applications (interconnexion) à travers l’Internet et c’est une
nouveauté.
Origine :
Il y a eu d’autres tentatives de langages pour résoudre le problème de la définition
des services Web. Microsoft a d’abord proposé SDL (Service Description Language)
avec une implémentation fournie dans leur toolkit SOAP, puis IBM a proposé NASSL
(Network Accessible Service Specification Language), dont une implémentation est
fournie dans SOAP4J. Microsoft a modifié sa première spécification pour proposer
SCL (SOAP Contract Language), puis les différents acteurs se sont accordés sur
WSDL.
Origine :
UDDI a été conçu en 2000 à l’initiative d’un ensemble d’industriels (Ariba 5 ,
IBM 6 , Microsoft 7 ) en vue de devenir le registre standard de la technologie des
5. http ://www.ariba.com/
6. http ://www.ibm.com
7. http ://research.microsoft.com
5. TECHNOLOGIES DE BASE DES SERVICES WEB 41
CHAPITRE 2. LES SERVICES WEB
– TModel (index) : Les ” TModels ” sont les descriptions techniques des ser-
vices. UDDI n’impose aucun format pour ces descriptions qui peuvent Être pu-
bliées sous n’importe quelle forme et notamment sous forme de documents tex-
tuels (XHTML, par exemple). C’est à ce niveau que WSDL intervient comme
le vocabulaire de choix pour publier des descriptions techniques de services.
– Pages jaunes : recensent des détails sur le métier de l’entreprise et les ser-
vices qu’elle propose. Ces informations sont décrites dans des entités de type
Business-Service.
– Pages vertes : fournissent des informations techniques précises sur les ser-
vices proposés. Les pages vertes incluent des références vers les spécifications
des services Web, et les détails nécessaires à l’utilisation de ces services.
Il faut donc un mécanisme permettant aux clients de publier les services qu’ils
offrent et de trouver les services dont ils ont besoin. Ce mécanisme doit être trans-
parent pour l’utilisateur : les services proposés doivent correspondre à la requête de
l’utilisateur. Différentes approches ont été développées pour résoudre la problématique
de recherche telles que celles présentées dans [HM06, BHRT03, KFKS05].
La troisième question concerne les modèles utilisés dans l’approche autant pour
les aspects processus que les aspects produits. Coté produit, nous nous intéressons
aux langages qui permettent aux utilisateurs d’exprimer et éventuellement de modéliser
leurs requêtes lors de la recherche de services. Nous avons pu identifier quelques
formes :
– Mots-clés : C’est la forme utilisée pour saisir une requête dans les annuaires
standards de service (tels que les annuaires UDDI).
– Modèle de tâche : Dans cette forme, l’utilisateur exprime sa requête comme
un modèle de tâche métier. Une tâche est une action réalisée par un ou plusieurs
agents afin d’atteindre un but. C’est le choix fait dans l’approche proposée par
Da Silva Santos dans [DSSGPvS09].
– Modèle de but : l’utilisateur exprime sa requête selon une certaine structure,
où l’on distingue le sujet, le verbe et les paramètres.
– Modèle de carte : La Carte est un système de représentation qui permet
de modéliser les processus dans des termes intentionnels. Le graphe montre
quelles intentions peuvent être réalisées au moyen de quelles stratégies. C’est
le choix fait dans l’approche proposée par Mirbel et Crescenzo dans [MC09].
Et nous nous intéressons aussi au modèle de requête, c’est à dire la forme à partir
de laquelle le moteur de recherche associé à l’annuaire effectue la recherche. Cette
forme peut correspondre directement à ce que l’utilisateur a formulé dans sa requête,
ou bien elle est obtenue par transformation de la requête vers une autre forme que
le moteur de recherche peut traiter. Nous avons pu identifier quelques formes :
– Mots-clés
– XQuery : langage optimisé pour l’interrogation de tous les types de données
XML..
– SPARQL : Ce langage combine un langage d’interrogation et un protocole
pour créer un service web au sens propre.
Côté processus, nous nous intéressons, en premier lieu, au processus de formulation
de requête. Cette action concerne la démarche avec laquelle l’utilisateur final formule
et construit une requête. Nous avons identifié trois valeurs possibles :
– Brut : Le processus de formulation est brut lorsque l’utilisateur doit manuel-
lement saisir la requête. Ce processus est entièrement à sa charge, et aucun
support n’est fourni par le système.
7. PRINCIPES GÉNÉRAUX SUR LA RECHERCHE DE SERVICE WEB 45
CHAPITRE 2. LES SERVICES WEB
pariement. Nous avons identifié deux valeurs possibles pour caractériser le processus
d’appariement :
– Lexical : dans l’appariement lexical, c’est la forme textuelle et syntaxique des
éléments comparés qui est privilégiée. La mesure se fait dans ce cas par des
métriques connues telles que la mesure Levenshtein , la mesure du vecteur
cosinus, la méthode TF/IDF , la méthode de divergence des informations
Jensen-Shannon .
SPOC
Le modèle SPOC (Semantic based Planning Optimized Compositions)a été pro-
posée par Daniella Barreiro Claro dans sa thèse de doctorat [Cla06]. Plus précisément,
son travail se focalise sur la composition automatique de services Web en se basant
sur les 4 phases présentées dans la figure 2.12.
GODO
Goal Oriented Discovery for Semantic Web Services est une approche de
découverte et d’invocation de services web dont l’objectif principal est d’aider les
utilisateurs à formuler leurs besoins pour rechercher des services web sémantique
[GRGS06]. La requête est exprimée en langage naturel. L’approche est dotée d’un
éditeur intelligent qui aide les utilisateurs à formuler leurs besoins. Pour cela, l’ap-
proche GODO fait usage des ontologies sur les actions les plus invoquées qui sont
stockées dans un référentiel. Une fois les entrées de l’utilisateur analysées par GODO,
il extrait les actions similaires à la demande de l’utilisateur et sélectionne les plus
proches en les exprimant sous forme de buts.
SWASDL-MX
Cette approche de découverte était proposée en 2009 par M. Klüsch [KKZ09].
Son objectif est d’aider les utilisateurs à rechercher et classer les services web
sémantiques. Pour cela, il fait usage d’ontologies de domaine pour faire un apparie-
ment hybride qui utilise une combinaison de mécanismes d’appariement lexical et
48 7. PRINCIPES GÉNÉRAUX SUR LA RECHERCHE DE SERVICE WEB
CHAPITRE 2. LES SERVICES WEB
Parmi les appariements hybrides, on peut citer les prototypes LARKS et OWLS-
MX, ils combinent les capacités formelles (basées sur les logiques de descriptions) et
informelles des services web, dans le Matching. OWLSMX propose 5 types de pro-
cessus de ”Matching”, dont un est purement logique, et les autres sont des méthodes
inspirées des techniques de recherche d’information.
Les auteurs affirment qu’une approche basée sur l’appariement lexical ou sur
l’appariement sémantique seulement, échouerait en raison de ses limitations.
SATIS
Cette approche s’inscrit dans la famille des approches de recherche de service web
par but. Elle est développée au sein du laboratoire I3S par Isabelle Mirabel [MC09].
C’est une approche sémantique guidée par les intentions, elle repose sur un modèle
pour capitaliser, réutiliser et partager des requêtes de recherche d’information et
pour les organiser en un ensemble de démarches de recherche formalisées également
réutilisables et partageables. Cette approche repose sur les techniques et modèles du
Web sémantique pour proposer des moyens de raisonnement et d’explications des
services web trouvés, ainsi que sur la représentation intentionnelle d’un processus.
Les auteurs proposent ainsi un modèle pour formaliser et raisonner sur les buts
et les sous-buts. Enfin, cette proposition permet la réutilisation et le partage d’étapes
(de sous-buts) entre les procédures de recherche. Précisément, les auteurs s’intéressent
à la construction et l’exploitation d’une base de requêtes rendant opérationnelles
les étapes d’un scénario de recherche d’information qu’ils appellent démarche de
recherche d’information. Cette base de connaissances peut être vue comme une
mémoire épisodique dans laquelle les démarches de recherche sont construites dyna-
miquement en fonction du contexte.
DRISS
Dans cette approche de modélisation, de recherche et de sélection de services
web, les auteurs proposent une approche centrée exigence. Les besoins de l’utilisa-
7. PRINCIPES GÉNÉRAUX SUR LA RECHERCHE DE SERVICE WEB 49
CHAPITRE 2. LES SERVICES WEB
SECSE
Cette approche de découverte de services à partir des exigences exprimées en
langage naturel a était développée par Zachos en 2007 [ZMZJ07]. Sa principale fonc-
tion est la recherche et le classement de services web à partir des requêtes composées
et structurées en langage naturel.
Cette approche utilise un annuaire étendu. Comme le montre la figure 11, l’ap-
proche SECSE est composée de 4 étapes. Dans la première étape, la requête de
50 7. PRINCIPES GÉNÉRAUX SUR LA RECHERCHE DE SERVICE WEB
CHAPITRE 2. LES SERVICES WEB
service permet de découper en phrases, puis en jetons, tagués et modifiés pour in-
clure les racines morphologiques de chaque terme (par exemple le voyage à voyager,
et du voyageur à voyager).
Dans la seconde étape, l’algorithme applique des procédures pour lever l’am-
biguı̈té en définissant à chaque terme son sens correct et l’insère pour chaque terme
(par exemple la définition d’un pilote est le conducteur d’un avion plutôt qu’un pi-
lote d’un périphérique informatique).
Dans la troisième étape, l’algorithme augmente chaque terme avec d’autres termes
qui ont un sens similaire, afin d’augmenter ainsi la probabilité d’un appariement avec
une description de service (par exemple, conducteur est un terme synonyme du terme
automobiliste qui est également inclus dans la requête).
Dans la quatrième étape, l’algorithme fait un Matching avec tous les termes
élargis et tagués de la requête. Ce qui aboutit à un ensemble semblable de termes qui
décrivent chaque service candidat, exprimé en utilisant la facette de la description
du service, dans le registre des services.
chaque synonyme est suivi par sa définition qui contient une phrase définissant, un
commentaire optionnel et un ou plusieurs exemples. Deuxièmement, WordNet est
structuré selon des relations sémantiques entre les significations de mots qui relient
les concepts [ZMZJ07].
AASDU
C’est une approche multi agents pour la découverte de services Web proposée
dans [PC04]. Le système appelé AASDU (Agent Approach for Service Discovery and
Utilization) contient quatre composants :
1. Une interface utilisateur graphique (GUI)
2. Un agent analyseur de requête
3. Un système référentiel des domaines d’expertises des agents de service
4. Le module de services
WSPAB
L’approche WSPAB (Web Service Personal Address Book) se base sur le développement
d’une application qui facilite la découverte des services Web les plus pertinents à une
52 7. PRINCIPES GÉNÉRAUX SUR LA RECHERCHE DE SERVICE WEB
CHAPITRE 2. LES SERVICES WEB
requête donnée. Elle fonctionne avec les autres approches de découverte de services
Web, et ce afin de donner une solution pertinente et précise. Vu que le nombre de
services d’une solution offerte par les moteurs de recherche actuels est important
alors, le travail de sélection manuelle d’un service Web sera généralement trop diffi-
cile [AHT+ 08].
Table 2.1 – Tableau comparatif des différentes approches de recherche des services
Web
Parmi les classifications les plus importantes, nous pouvons citer celle de Glen
Dobson et al. dans [GRI05] (voir figure 2.20) qui propose de diviser les attributs en
deux classes :
1. Attributs de QdS spécifiques : Les QdS spécifiques sont des qualités qui
concernent une application particulière et qui sont en relation avec sa logique
métier. Par exemple, pour le processus de revue coopérative, nous pouvons
identifier une liste de dysfonctionnements qui pourraient dégrader la QdS. En
effet, il s’agit des événements à mesurer afin de diagnostiquer des éventuels
problèmes du système. Ces QdS spécifiques peuvent être des QdS liées aux
arguments.
2. Attributs de QdS génériques : Dans cette classe d’attributs, nous distin-
guons les attributs mesurables des attributs non mesurables.
56 8. QUALITÉ D’UN SERVICE WEB
CHAPITRE 2. LES SERVICES WEB
(a) Attributs mesurables : Les attributs mesurables les plus communs sont
décrits pas les paramètres liés à la performance :
– Le débit : Le nombre de requêtes servies pendant un intervalle de
temps.
– Le temps de réponse : Le temps requis pour compléter une requête
du service Web.
– La fiabilité : La capacité d’un service d’exécuter correctement ses
fonctions.
– La scalabilité : La capacité du service de traiter le plus grand nombre
d’opérations ou de transactions pendant une période donnée tout en
gardant les mêmes performances.
– La robustesse : La probabilité qu’un service peut réagir proprement
à des messages d’entrée invalides, incomplètes ou conflictuelles.
– La disponibilité : La probabilité d’accessibilité d’un service.
(b) Attributs non mesurables : Il y a des attributs de QdS qui ne sont
pas mesurables, mais qui sont importants pour les services Web tels que :
– Le coût ou le prix d’exécution : C’est le prix qu’un client du
service doit payer pour bénéficier du service.
– La réputation : C’est une mesure de la crédibilité du service. Elle
dépend des expériences d’utilisateurs finals.
– La sécurité : C’est un regroupement d’un ensemble de qualités à sa-
voir : la confidentialité, le cryptage des messages et le contrôle d’accès.
Le modèle de QdS pour les services Web, proposé dans [AS04], suggère une clas-
sification principale des attributs de QdS basée sur les attributs indépendants de
l’environnement du service (partie fonctionnelle) et les attributs dépendent de l’envi-
ronnement du service (partie non fonctionnelle). Bien que les métriques soient moins
définies que le modèle détaillé dans l’approche de Glen Dobson et al. [GRI05], ce
8. QUALITÉ D’UN SERVICE WEB 57
CHAPITRE 2. LES SERVICES WEB
modèle donne une orientation générale que certains des attributs de QdS doivent être
mesurés en examinant l’implémentation du service (c.-à-d. les attributs internes).
Riadh Benhalima a proposé dans [Ben09a] une autre classification des attributs
de QdS avec prise en considération de différents paramètres tels que :
Le travail mené par Shuping Ran dans [Shu03b] a identifié et organisé les attributs
de QdS des services Web en catégories :
– Attributs liés à l’exécution : Scalabilité, capacité, performance (temps
de réponse, temps de latence, et débit), fiabilité, disponibilité, robustesse/
flexibilité, réputation, traitement d’exception, et exactitude.
– Attributs liés au support de transaction : Intégrité de transaction.
– Attributs liés au prix et à la gestion de configuration : Standard
supporté, stabilité, prix et complétude.
– Attributs liés à la sécurité : Authentification, autorisation, confidentialité,
traçabilité et cryptage de données.
9 Conclusion
Dans ce chapitre nous avons présenté le concept des services Web comme étant
la dernière technologie pour l’intégration et l’interopérabilité des systèmes réparties.
Basés sur le standard XML, ils sont caractérisés par leurs indépendances aux pla-
teformes et aux systèmes d’exploitation, ce qui a impliqué leur adoption par les
différentes organisations commerciales et industrielles offrant leurs services à tra-
vers le Web, et par conséquent l’augmentation du nombre de services offerts. La
découverte de services devient de ce fait un des aspects les plus importants relatifs
aux services Web.
58 9. CONCLUSION
CHAPITRE 2. LES SERVICES WEB
L’un des facteurs ayant contribué au succès des services Web est sans doute l’uti-
lisation des standards Internet tels que XML et HTTP. Par conséquent, tout système
capable d’analyser du texte et de communiquer via un protocole de transport Inter-
net standard peut communiquer avec un service Web. XML a engendré l’apparition
de nouveaux standards tels que SOAP pour l’échange de messages, WSDL pour la
description de services et UDDI pour la publication et la découverte de services. Ces
derniers ont été présentés dans ce chapitre via la section des technologies de base des
services Web, avant de procéder à la définition du concept de la qualité de service
Web et de la citation de quelques classification de ses différents attributs.
Les technologies présentées reposent sur une architecture orientée services (SOA),
et correspondent à des composants logiciels qui peuvent être combinés, grâce à un
certain processus de composition, pour former de nouveaux services plus élaborés.
Ce processus fera l’objet d’un chapitre en entier, vu son importance et ce après avoir
présenté le concept de planification, de façon détaillée, dans le chapitre suivant.
9. CONCLUSION 59
CHAPITRE 2. LES SERVICES WEB
60 9. CONCLUSION
Chapitre 3
La planification
1 Introduction
Nous présentons dans ce chapitre une formalisation des principaux codages des
problèmes de planification classique qui peuvent être classés en deux grandes classes,
à savoir la planification dans l’espace d’états et la planification dans l’espace de plans,
inspirées des paradigmes classiques de résolution de problèmes de planification et
suite à une étude bibliographique détaillée des principaux travaux concernant la
planification automatique.
exécuteurs (systèmes robotiques ou humains) qui doivent agir dans un monde par-
ticulier pour atteindre un but préalablement défini. L’exécution est la réalisation
d’actions effectuée suivant les directives du plan. Elle vise à réaliser la prédiction
que constitue ce plan ; lorsqu’elle est conforme à ce qu’il indique, elle doit permettre
(en l’absence d’évènements imprévus et si la modélisation du monde est pertinente)
de faire évoluer l’univers de l’état initial vers un état satisfaisant le but [MRV08].
Un plan est élaboré par un planificateur. Par exemple, pour se rendre d’une pièce
à une autre, le plan est de se lever de sa chaise, de s’orienter vers la porte, puis de
marcher en réalisant un certain nombre de pas jusqu’à ce que l’on soit dans la pièce
à atteindre [Gab06].
3 Planification classique
Les algorithmes de planification peuvent être regroupés en deux grandes familles :
les algorithmes de planification dans un espace d’états (state space planning) et les
algorithmes de planification dans un espace de plans (plan space planning) [FN71].
Les algorithmes classiques les plus simples sont les algorithmes de recherche dans
un espace d’états. Ce sont des algorithmes de recherche dans lesquels l’espace de re-
cherche est un sous ensemble de l’espace d’états. Chaque nœud correspond à un état
du monde, chaque arc correspond à une transition d’état, et le plan correspond à
un chemin dans l’espace d’états.
4. Recherche dans STRIPS : L’un des plus grands problèmes des algorithmes
présentés précédemment est de savoir comment améliorer l’efficacité en réduisant
la taille de l’espace de recherche. L’algorithme STRIPS est une tentative de le
faire [FN71]. L’algorithme STRIPS fonctionne de la même manière que l’algo-
rithme de recherche par chaı̂nage arrière, son avantage réside dans sa capacité
à réduire l’espace de recherche. Cette optimisation est caractérisée par les deux
points suivants :
– à chaque appel récursif de l’algorithme STRIPS, les sous-buts qui doivent
être satisfaits sont les pré-conditions du dernier opérateur ajouté dans le
plan, ce qui a comme conséquence de réduire substantiellement le facteur de
branchement de l’algorithme ;
– si l’état courant satisfait toutes les pré-conditions d’un opérateur, alors
STRIPS marque l’opérateur. Ainsi, en cas d’échec, le retour en arrière se
fera à partir de cet opérateur.
64 3. PLANIFICATION CLASSIQUE
CHAPITRE 3. LA PLANIFICATION
Enfin, STRIPS réduit une grande partie de l’espace de recherche, mais il n’est
pas complet ni optimal [FN71].
(a) Principe général : L’algorithme de STRIPS fonctionne selon l’analyse
des fins et des moyens (ou Mean Ends Analysis) énoncée par Aristote :
on part des buts que l’on veut atteindre et on tente de trouver les moyens
qui peuvent y conduire. Cela produit de nouveaux buts que l’on tente de
résoudre et ainsi de suite jusqu’à ce que l’on tombe sur les hypothèses de
départ. Le plan est alors obtenu en cheminant sens inverse. En pratique
l’algorithme calcule la différence entre les états du monde qu’il considère.
Il considère des actions capables de réduire ces différences et les combine
pour construire le plan.
(b) Le langage PDDL (Planning Domain Definition Language) : Le
langage PDDL est une tentative pour standardiser les langages de des-
cription des domaines et des problèmes de planification. C’est un langage
créé en 1998 par Drew McDermott pour la compétition IPC-98 dans le
but de développer un seul langage de description des domaines de plani-
fication utilisé par tous les planificateurs de cette compétition.
Variante Description
PDDL + C’est une extension de PDDL2.1 (2002-2006) qui fournit un modèle plus
souple de changement continu grâce à l’utilisation de processus autonomes et
d’événements
NDDL (New Domain Definition Language) C’est la réponse de la NASA au PDDL à
partir de 2002. Sa représentation diffère de PDDL à plusieurs égards :
– elle utilise une représentation variable / valeur (chronologie / activités )
Plutôt que d’une logique propositionnelle / de premier ordre , et
– il n’y a pas de concept d’états ou d’actions, seulement d’intervalles (activités)
et de contraintes entre ces activités.
MAPL (Multi-Agent Planning Language) C’est une extension de PDDL2.1, vers l’an
2003, qui a introduit des variables d’état non propositionnelles (telles que n-
ary : vrai, faux, inconnu ou autre chose) et qui a introduit, également, des
opérateurs modaux (avant, après, etc.). Ainsi que des actions dont la durée
peut être déterminée dans l’exécution et une synchronisation de plan explicite
qui est réalisée par des actes locutoires de communication entre les agents.
OPT (Ontology with Polymorphic Types) C’est une extension de PDDL2.1 par Drew
McDermott entre 2003 et 2005 (avec quelques similitudes avec PDDL +). Il
s’agit d’une tentative de créer une notation générale pour créer des ontologies
, définies comme des cadres conceptuels formalisés pour la planification de
domaines sur lesquels les applications de planification doivent raisonner.
PPDDL (Probabilistic PDDL) C’est une extension de PDDL2.1 avec des effets pro-
babilistes (discrets, les distributions de probabilité générale sur les effets pos-
sibles d’une action), récompense les fluents (pour incrémenter ou décrémenter
la récompense totale d’un plan dans les effets des actions), les récompenses de
but (Récompensant une trajectoire d’état, qui intègre au moins un état-but), et
des fluents obtenus par rapport à l’objectif (ce qui est vrai, si la trajectoire des
états contient au moins un état-but). Finalement, ces modifications ont généré
PPDDL1.
APPL ( Abstract Plan Preparation Language) est une nouvelle variante de NDDL
apparue en 2006 dont l’objectif était de simplifier l’analyse formelle et la
spécification des problèmes de planification destinés à des applications critiques
pour la sécurité telles que la gestion de l’alimentation ou le rendez-vous automa-
tisé dans le futur engin équipé. APPL a utilisé les mêmes concepts que NDDL
avec l’extension des actions, et aussi d’autres concepts.
RDDL (Relational Dynamic influence Diagram Language) est le langage officiel du
domaine d’incertitude en 2011. Conceptuellement il est basé sur PPDDL1.0 et
PDDL3.0, mais en pratique , il est complètement différent syntaxiquement et
sémantiquement. L’introduction de l’observation partielle est l’un des change-
ments les plus importants dans RDDL par rapport à PPDDL1.0. Il permet une
description efficace des processus de décision de Markov (MDP) et des proces-
sus de décision Markov partiellement observables (POMDP) en représentant
tout (état-fluents, observations, actions, ...) avec des variables.
MA-PDDL (Multi Agent PDDL) C’est une extension modulaire de PDDL3.1 introduite en
2012 (soit une nouvelle exigence multi-agent) qui permet la planification par et
pour plusieurs agents. l’extension est compatible avec toutes les fonctionnalités
de PDDL3.1 et traite la plupart des problèmes de MAPL. Elle ajoute la possi-
bilité de distinguer les actions éventuellement différentes des différents agents
(c.-à-d. Des capacités différentes). De même, différents agents peuvent avoir des
objectifs et/ou des paramètres différents. Les conditions préalables des actions
peuvent maintenant se référer directement à des actions simultanées (p. Ex.
Les actions d’autres agents) et donc les actions avec des effets d’interaction
peuvent être représentées de manière générale et souple.
inconsistance potentielle (par exemple lorsque deux actions sont en conflit). Cette
approche obéit au paradigme de la décomposition de but, i.e., le problème initial (but
à atteindre) est décomposé en sous-problèmes plus simples (grâce à l’utilisation de
règles de décomposition) ; ceux-ci sont à nouveau décomposés, et ainsi de suite jus-
qu’à l’obtention de problèmes terminaux (tous solubles par des actions élémentaires).
Un espace de recherche plus élaboré où les nœuds sont des plans partiels [BW94],
les arcs sont des opérations de raffinement d’un plan partiel. La règle des raffinements
consiste à ajouter des actions au plan partiel pour accomplir une proposition ou à
ajouter des contraintes d’ordre entre les actions.
La planification partielle
La planification partielle peut être vue comme une recherche dans un espace
de plans d’ordres partiels. Au Initialement, l’algorithme de recherche est doté d’un
plan d’initialisation. Les états de l’algorithme de recherche sont des plans. Ensuite,
les moyens de raffinement sont appliqués sur le plan jusqu’à l’obtention d’un plan
complet permettant de résoudre le problème. Les actions dans cette recherche ne
sont pas des actions du domaine de planification appliquées dans les états, mais des
actions appliquées sur les plans comme : l’ajout d’une action au plan, l’ajout d’un
ordre entre deux actions, etc. Chaque plan a les quatre éléments cités ci-après. Les
deux premiers définissent les étapes du plan et les deux derniers servent à déterminer
comment les plans peuvent être étendus :
1. un ensemble d’actions qui constituent les étapes du plan. A l’initialisation, un
plan initial Contient deux actions a0 et a1 . L’action a0 n’a pas de pré-conditions
et a comme effet tous les littéraux de l’état initial. a1 n’a pas d’effets et a
comme pré-conditions tous les littéraux du but
2. un ensemble de contraintes d’ordre d’exécution binaire entre les actions de la
forme a < b. Initialement, a0 < a1 ;
3. un ensemble de liens causaux. Un lien causal défini entre deux actions a et
p
b dans le plan, est désigné par a →
− b. il est lu comme a accomplit p pour
p
b. Une action c ajoutée au plan est en conflit avec a →
− b si l’action c a (p)
comme effet et si c vient après a et avant b ;
4. un ensemble de pré-conditions ouvertes. Une pré-condition est ouverte si elle
n’est pas obtenue par une action du plan.
pour chaque situation consistante possible afin d’accomplir p par une action a. La
consistance est forcée par [Kum92] :
p
1. Le lien causal a →
− b et la contrainte d’ordre a < b sont ajoutés au plan. Si a
n’appartient pas au plan, alors il faut aussi ajouter a0 < a et a < a∞ ;
2. La résolution des conflits entre les nouveaux liens causaux et les actions du
plan d’une part ; et entre l’action a (si elle est nouvelle) et tous les liens causaux
p
d’autre part. Un conflit entre a → − b et c est résolu en forçant c de s’exécuter
à un moment en dehors de l’intervalle de protection, soit en ajoutant b < c ou
c < a. L’état successeur est ajouté si le résultat est un plan consistant ;
3. Le plan solution est trouvé si le plan ne contient pas de pré-conditions ouvertes.
4 Planification graphique
Blum et Furst [BF97] ont introduit les techniques de planification graphiques
dans un espace de recherche très puissant s’appuyant sur les deux types d’espace de
recherche présentées précédemment : planification dans l’espace d’états et planifi-
cation dans l’espace de plans. L’espace d’état fournit un plan comme une séquence
d’actions.
L’idée de Blum et Furst dans [BF97] était de construire un graphe qui est beau-
coup plus petit que le graphe de transition d’états. Le graphe de planification est
polynomial en espace et peut être construit d’une manière efficace pour certains
problèmes difficiles. L’inconvénient est que le graphe de planification contient des
états qui peuvent ne pas être atteints. Cet inconvénient est dû aux relations mu-
tex qui sont définies afin d’exprimer l’impossibilité de certaines combinaisons de
propositions ou d’actions [EF10].
5 Planification hiérarchique
La technique de planification hiérarchique (Hierarchical Task Network - HTN)
est une méthodologie d’intelligence artificielle pour la création des plans par la
décomposition des tâches. C’est un processus où le système de planification décompose
les tâches en sous-tâches, jusqu’à ce que des tâches primitives soient trouvées [NIK+ 03].
5. PLANIFICATION HIÉRARCHIQUE 69
CHAPITRE 3. LA PLANIFICATION
6 Planification distribuée
La planification distribuée peut être considérée simplement comme une spécialisation
de la résolution distribuée de problèmes, où le problème est résolu par un plan dis-
tribué. Cependant, une ambiguı̈té existe puisqu’on ne sait pas exactement ce qui est
distribué. En effet, il est possible que le plan soit distribué entre plusieurs systèmes
d’exécution. Ou alors, le processus de planification est distribué, qu’il soit ou non le
70 6. PLANIFICATION DISTRIBUÉE
CHAPITRE 3. LA PLANIFICATION
Lorsque les agents ont un but commun à atteindre, trois types de planification
distribuée sont distingués [Wei04] :
7 Avantages de la planification
Parmi les principaux avantages de la planification, nous pouvons citer :
– La représentation des actions et des buts afin de permettre une
sélection plus fine :
– États et buts : utilisation des prédicats et de la logique du premier ordre.
– Actions : description logique de pré-conditions et d’effets.
– Connexion directe entre état et actions : permet de guider et contraindre la
recherche au lieu de faire des expansions aveugles d’alternatives.
7. AVANTAGES DE LA PLANIFICATION 71
CHAPITRE 3. LA PLANIFICATION
Exemple : on peut décider d’acheter du lait sans savoir où en acheter, com-
ment s’y rendre et quoi faire après. Il n’y a pas nécessairement de lien entre
l’ordre de planification et l’ordre d’exécution.
8 Conclusion
Nous avons présenté dans ce chapitre les principaux concepts liés à la planifi-
cation ; avec description des principales classes, à savoir la planification classique
ou distribuée et présentation des différentes techniques pouvant être adoptées pour
chacune des deux classes.
Quel est le principe de cette composition de services Web ? Quel sera son ob-
jectif ? Et comment la réaliser ? Ce sont les principales questions auxquelles peut
répondre le chapitre suivant.
72 8. CONCLUSION
Chapitre 4
1 Introduction
La composition de services Web est le fait de grouper plusieurs services pour
répondre à un besoin donné. La nécessité de faire une composition est due au fait
que les nombreux services atomiques disponibles sur Internet ne peuvent pas tou-
jours satisfaire individuellement des requêtes spécifiques. Ces services ont besoin
d’être intégrés pour créer des services composites à valeur ajoutée.
Ce chapitre est consacré à la présentation d’un état de l’art sur les travaux liés
à la composition des services Web. Il est organisé de manière à présenter d’abord le
concept de composition : sa définition avec la présentation des différentes techniques
de composition, et nous passons ensuite, au recensement des principaux problèmes,
pouvant être présentés lors de l’adoption de l’une de ces techniques.
Le thème de la composition des services web a été abordé par plusieurs commu-
nautés scientifiques [Bou07, Gsc09, LV08, Che11, Cha07, MM08], nous allons essayer
d’analyser les différentes approches présentées, dans ce contexte, et nous concluons
ce chapitre par les limites que les travaux existants en composition de services n’ont
pas pu dépasser.
La composition des services web spécifie quels services ont besoin d’être invoqués,
dans quel ordre et comment gérer les exceptions des conditions. Par exemple, un re-
vendeur d’ordinateurs personnels peut offrir un service Web qui permet aux clients
de demander des devis et de commander des ordinateurs. Cependant, la mise en
œuvre de l’opération ”Commande” peut exiger l’invocation de plusieurs services
Web, y compris, par exemple, ceux fournis par les fabricants et les expéditeurs de
PC, pour les derniers prix et délais de livraison. Un service Web implanté en in-
voquant d’autres services Web s’appelle un service composite, tandis qu’un service
73
CHAPITRE 4. LA COMPOSITION DES SERVICES WEB
Il est à remarquer que le fait qu’un service Web soit basique ou composite n’est
pas pertinent du point de vue des clients car il ne s’agit que d’un problème de mise
en œuvre. En fait, ils sont tous des services Web et peuvent être décrits, découverts
et invoqués de la même manière.
A partir des travaux publiés dans le cadre de la composition des services Web
tels que ceux présentés dans [EF10, Bou07, PF09, LV08, DA07, Pel03, Cha07], nous
pouvons distinguer différentes classifications pour les techniques de composition des
services Web :
Dans une orchestration, le chef d’orchestre est donc le service dont les interac-
tions sont décrites. Celles-ci comprennent l’envoi et la réception de messages
à/de la part des partenaires sélectionnés. L’orchestration permet ainsi à un
3. TECHNIQUES DE COMPOSITION DES SERVICES WEB 75
CHAPITRE 4. LA COMPOSITION DES SERVICES WEB
service d’être enchaı̂né à d’autres d’une manière prédéfinie. Elle est ensuite
exécutée par des scripts d’orchestration qui décrivent les interactions entre les
applications en identifiant les messages, la logique et les séquences d’invoca-
tions. Le composant exécutant les scripts d’orchestration est appelé moteur
d’orchestration. Celui-ci agit comme une entité centralisée pour coordonner
les interactions entre les services.
Les recherches sur les services Web se focalise principalement sur la problématique
de composition, l’interopérabilité entre les services, et la découverte automatisée des
services composites.
Des efforts ont déjà été faits par des industriels et des recherches afin d’atteindre
ces objectifs. Deux outils importants peuvent être utilisés afin de composer les ser-
vices Web. Il s’agit de BPEL4WS et OWL-S. Ces deux outils ont été créés en se
basant sur les modèles basés sur l’activité. De cette façon, BPEL4WS fournit la base
pour spécifier manuellement des services Web composites. D’autre part, OWL-S est
plus ambitieux et fournit une description lisible par machine des services Web qui
permettront la découverte et la composition automatiques (Hull and Su 2004).
En effet, il existe d’autres modèles pour composer des services tels que : work-
flows, graphiques, réseaux de Petri et également des langages de programmation tels
que Java et C. La composition des services Web peut être plus difficile et plus longue
suite au modèle de composition adopté.
78 4. MODÈLES DE COMPOSITION DES SERVICES WEB
CHAPITRE 4. LA COMPOSITION DES SERVICES WEB
BPEL4WS est basé sur XML et sur les Workflows. Selon Andrews et al., ce
langage distingue les processus abstraits des processus exécutables [ACD+ 03] comme
suit :
En outre, le service Web composé est en fait un service abstrait. En fait, le fichier
de composition n’a que les appels de service. Dans OWL-S, chaque service faisant
partie de la composition a la même structure que celle composée.
utilisent la notion de but ( business goal ) pour formuler les besoins en services.
Les buts métier sont intéressants dans le cadre de la composition pour de nombreuses
raisons :
– Les besoins peuvent être élémentaires dont la satisfaction ne nécessite qu’un
seul service, comme ils peuvent être complexes nécessitant de nombreux ser-
vices avec un ordonnancement complexe.
– Les buts complexes peuvent être décomposés sur plusieurs niveaux pour être
réduits en un ensemble de buts plus simples. Cette réduction, appliquée aux
buts, permet d’exprimer des alternatives de décomposition de buts, où chaque
alternative peut être mieux adaptée à un certain contexte.
répondre aux requêtes utilisateurs par des plans de composition de services, de diag-
nostiquer en ligne l’état d’exécution du plan, et de le réparer automatiquement dans
le cas de détection de faute d’exécution.
Or, les utilisateurs peuvent avoir des critères d’évaluation qui leur sont propres,
voire même contredire les critères génériques, ce qui a fait l’objet des travaux de
P. Albers et O. Licchelli dans [AL07] qui se sont basé sur le prototype SPOC
[Cla06, CAH06] en ajoutant l’emploi des profils d’utilisateur afin d’améliorer les
résultats de ce système, et de présenter les solutions les plus adéquates à un utilisa-
teur donné. Cette approche a été validée sur un exemple de construction de bâtiment
basé sur une ontologie du marché public français.
Le modèle HSN proposé dans [BB09] est un modèle de composition qui permet
de corriger et de valider un service composé avant son exécution. L’éditeur permet la
composition progressive suivie par une vérification des contraintes de temps. Il per-
met à l’utilisateur de localiser et de corriger facilement d’éventuels conflits temporels
dans sa spécification. L’utilisateur peut exporter le fichier RSH pour une utilisation
future.
Imed Chouchani a proposé un outil fondé sur les algorithmes génétiques pour la
découverte et la composition de services web, le consommateur exprime le service
web désiré par un fichier de description WSDL, le système interroge un espace de
recherche contenant une collection de services Web et fournit le résultat sous forme
d’une liste de services possibles (population). Le critère de sélection d’un service est
sa valeur de similarité syntaxique avec le service cible. Les éléments de la population
résultat sont des services qui existent dans l’espace de recherche (découverte d’un
service approprié) ou qui ont été crées par la composition de services existants.
82 6. QUELQUES TRAVAUX SUR LA COMPOSITION DES SERVICES WEB
CHAPITRE 4. LA COMPOSITION DES SERVICES WEB
Pour trouver un service web particulier, il faut trouver les différentes opérations
le constituant, l’espace de recherche est formé donc par un ensemble d’opérations
et l’algorithme génétique tente à trouver une opération similaire à l’opération cible
[Cho10].
Philippe Ramadour et Myriam Fakhri ont présenté dans [RF11] une méthode
pour l’ingénierie de la composition de services, basée sur quatre niveaux d’abstrac-
tion qui permet d’organiser le processus d’ingénierie de la composition et de struc-
turer une application à base de services. Le niveau abstrait décrit une composition
sous forme de buts à réaliser, le niveau orchestré décrit une composition en termes
d’activités ordonnancées, le niveau exécutable décrit une composition sous la forme
de processus BPEL et le niveau trace décrit une composition en termes de services
invoqués réellement. En associant un but et un contexte à chaque composition, quel
que soit son niveau d’abstraction, les patrons permettent la découverte de compo-
sitions, leur réutilisation et leur adaptation. Des opérateurs ont été proposés pour
mettre en œuvre ces activités durant le processus de satisfaction d’un besoin.
L. Li, M. Rong and G. Zhang ont présenté dans [LRZ13] une approche de
sélection basée sur la QoS multidimensionnelle qui a introduit la QoS multidimen-
sionnelle pour décrire les propriétés QoS de la composition des services Web et
calcule la QoS de chaque dimension de la composition des services Web. Le résultat
le plus important selon cette recherche est la capacité d’extraire la composition
des services Web qui peut mieux répondre aux contraintes non fonctionnelles des
compositions de service Web qui peuvent satisfaire les exigences fonctionnelles des
utilisateurs.
Z. Zheng et al. Ont mené des évaluations sur la QoS observée par les utilisateurs
6. QUELQUES TRAVAUX SUR LA COMPOSITION DES SERVICES WEB 83
CHAPITRE 4. LA COMPOSITION DES SERVICES WEB
des services Web à partir d’emplacements distribués. Les utilisateurs de services ont
invoqué un grand nombre de services Web dans des environnements hétérogènes sur
des services Web réels. Ils ont présenté des résultats expérimentaux complets, et
publié des ensembles de données réutilisables [ZZL14].
De son coté, Amina Bekkouche a fait une étude comparative des différentes
approches de découverte et de composition des services Web qui l’a résumé dans le
tableau (4.5) avant de proposer à son tour un outil de composition de services Web
basé sur les algorithmes génétiques [Bek12].
Figure 4.5 – Tableau comparatif des travaux de découverte et composition de services Web [Bek12]
7 Conclusion
Nous avons essayé, via ce chapitre, de faire un petit tour d’horizon sur la compo-
sition des services Web. Pour cela, nous avons commencé par la définition de cette
composition et la présentation de ses principales techniques, et ce en faisant une
classification de ces techniques par rapport au niveau du degré d’automatisation, en
premier lieu et une autre classification par rapport à la disponibilité des services, en
second lieu.
Après avoir présenté quelques modèles de composition des services Web se basant
sur les ”Workflows”, la description sémantique des services ou même ceux se basant
sur les graphes, nous avons jugé très important de présenter quelques travaux de
recherches axés sur la recherche, la découverte et la composition des services Web
et ce, dans le but de cerner le domaine de la composition des services Web d’un
côté et de pouvoir positionner notre objectif relatif à la composition par rapport
aux travaux existants.
Les chapitres suivants ferons l’objet de la deuxième partie de notre thèse, présentant
le modèle que nous allons proposer.
86 7. CONCLUSION
Deuxième partie
87
Chapitre 5
Le modèle proposé
1 Introduction
Après avoir présenté un état de l’art sur les principaux concepts autours desquels
s’articulent notre thèse, dans la première partie de notre pièce écrite, tels que :
– celui des agents et des systèmes multi-agents,
– le concept de service Web ainsi que les principales technologies liées aux ar-
chitectures orientées service,
– la problématique de planification en intelligence artificielle et sa relation avec
les agents et les services Web,
– Le problème de la composition des services Web avec exhibition de quelques
travaux de recherche axés sur le concept de composition.
Nous allons essayé, via cette deuxième partie, de proposer une solution adéquate au
problème de composition. Il est à noter que les résultats obtenus par les chercheurs
adoptant une technique de composition de services Web dynamique tels que ceux de
Pellier et al dans [PF09], Yasmine Charif dans [Cha07], et Mohamed El Falou dans
[EF10, EFBMV10] étaient meilleurs par rapport à ceux obtenus par les équipes qui
ont adopté des techniques de composition statiques. Ce qui nous a encouragé à adop-
ter une technique de composition dynamique avec prise en considération de nouvelles
contraintes permettant d’améliorer les résultats qui ont été obtenus précédemment
d’un côté, et de remédier aux problèmes rencontrés lors de l’implémentation de ces
solutions, d’un autre côté.
2 Travaux de base
L’ensemble des services web disponibles peut être représenté par un graphe, dont
les nœuds représentent les attributs en entrée et en sortie ainsi que les services Web
et les arcs entre ces nœuds correspondent soient à des liens entre des attributs entrées
et un service Web ou des liens entre un service Web et ses attributs en sortie c.-à-d.
les résultats que le service produit après son exécution. Une composition de services
correspond à un sous-graphe de ce graphe des services Web disponibles.
Deux algorithmes ont été proposés par Mohamed El Falou [EF10], dans ce
contexte. L’idée de base consiste à extraire le meilleur plan local avec l’utilisation
d’une heuristique globale. Cette heuristique globale est basée sur une évaluation
locale du meilleur plan local permettant d’atteindre le but, et aussi sur une estima-
tion d’heuristique globale distribuée qui guide l’agent pour choisir son meilleur plan
local, en garantissant la complétude et l’optimalité de l’algorithme.
Pour pouvoir calculer cette heuristique globale, chaque service qui rejoint le
groupe d’agents des services Web doit calculer tous les liens entre ses services lo-
caux ainsi que tous les liens avec tous les autres services des autres agents.
Un agent calcule l’heuristique globale associée à un service s une seule fois pour
chaque requête, en chaı̂nage arrière de l’état but à l’état initial.
Ensuite, pour chaque service voisin sn d’un service colorié sc , sn est également
colorié à condition que tous ses arcs entrants sortent des services coloriés. En faisant
cela, nous allons obtenir le sous graphe exécutable de services, chaque service dans
ce sous-graphe est un service accessible et exécutable.
Afin de pouvoir répondre aux exigences des utilisateurs des services Web compo-
sites, le système doit prendre en considération toutes les caractéristiques spécifiées,
et ce afin de pouvoir extraire les principaux critères auxquels il doit répondre. Un
tel système doit prendre en compte le fait que la qualité de Service puisse avoir des
dimensions multiples, et le fait que la QoS des services composites est déterminée
en fonction de la qualité de service de ses services composant sous-jacents.
3 Notre contribution
Notre contribution est basée sur les différentes descriptions de qualification présentes
dans le registre UDDI pour la sélection des meilleurs services Web pouvant apparte-
90 2. TRAVAUX DE BASE
CHAPITRE 5. LE MODÈLE PROPOSÉ
nir à un service composite. Cette tâche sera attribuée à chaque agent lors du choix
de son meilleur plan local, tout en prenant en considération les différents qualificatifs
spécifiés par le client, lors de l’exécution de sa requête.
SWi = (P Ei , P Si ),
P Ei = {pei1 , pei2 , .., peim } tel que m est le nombre de ces paramètres d’entrée :
(m = Card(P Ei )) ,
P Si = {psi1 , psi2 , .., psik } tel que k est le nombre de ces paramètres de sortie :
(k = Card(P Si )),
LSij : est un ensemble de liens sémantiques entre deux services Web SWi et SWj
défini comme suit :
1 ssi∃psit ∈ P Si et psit ∈ P Ej
ls(SWi , SWj ) =
0 ssi∀pejt inP Ej et ∀psit 0 ∈ P Si ⇒ pejt 6= psit 0
f lsij : est une fonction qui permet de mesurer l’intensité du lien sémantique entre
deux services Web SWi et SWj définie comme suit :
Card(P Si 0)
f lsij =
Card(P Ej )
avec P Si 0 = {psit ∈ P Si et ∀t, psit ∈ P Ej } d’où :
Ci : est un vecteur des paramètres de qualité, Ci = (ci1 , ci2 , .., cik ) tel que k est
la dimension du vecteur Ci .
Le modèle que nous proposons est composé des deux classes des attributs de
qualité :
– CGen : est la classe des attributs génériques
– CSpe : est la classe des attributs spécifiques
Dans la classe des attributs génériques CGen , nous distinguons les attributs mesu-
rables des attributs non mesurables. Pour pouvoir distinguer ces deux types d’attri-
but, nous allons étendre la notation d’un attribut ci comme suit :
– cmi : est un attribut générique mesurable relatif à un service Web SWi
– cnm
i : est un attribut générique non mesurable relatif à un service Web SWi
92 3. NOTRE CONTRIBUTION
CHAPITRE 5. LE MODÈLE PROPOSÉ
Il est à noter que la plupart des attributs mesurables peuvent être décrits par
des paramètres liés à la performance, tels que :
Il y a des attributs de QdS qui ne sont pas mesurables, mais qui sont importants
pour les services web tels que :
3. NOTRE CONTRIBUTION 93
CHAPITRE 5. LE MODÈLE PROPOSÉ
Notre modèle consiste à formuler une requête client portant sur un ensemble
de paramètres et exigeant un certain nombre de contraintes. Ces contraintes seront
prises en considération par un agent intelligent de type BDI (Belief-Desire-Intenion)
AgentQueryAnalyzer, qui sera chargé de la gestion des préférences, de l’utilisateur,
qui forment ses croyances. Il sera chargé, également, de la synthèse de ses contraintes,
afin de pouvoir les classifier par type.
Le deuxième type d’agent dans notre architecture est l’AgentPlan qui sera chargé
de la composition des services Web impliqués dans notre processus, en essayant de
proposer une planification optimale, de point de vue temps
La découverte des différents services Web sera assurée par l’AgentDiscovry. C’est
un agent autonome capable de découvrir les différentes offres liées au service de-
mandé.
Un autre type d’agent sera utilisé dans notre modèle relativement à chaque ser-
vice impliqué pour choisir la meilleure offre et invoquer ce service, si nécessaire. Il
s’agit de l’AgentService.
Une collaboration entre plusieurs agents de type AgentService peut avoir lieu
pour essayer de fournir des plans partiels répondant à une partie de la requête,
représentant une réponse à un service composite partiel. Nous envisageons, dans
ce cas, la possibilité de détruire tous les AgentService impliqués dans la création
du plan partiel fourni par fusion de leurs plans locaux et la naissance d’un nouvel
AgentService avec attribution des rôles de tous les agents détruits. Cet agent pourra
ainsi collaborer avec l’AgentDiscovry et l’AgentPlan, pour rechercher le plan opti-
mal global.
– SW : un ensemble de services Web, SW = sw1 , sw2 , ... où chaque wsi est
décrit par un ensemble de paramètres d’entrée et de sortie wsi = (P E, P S)
comme suit :
– P E : est l’ensemble des paramètres d’entrée du service, P E = pe1 , pe2 , ... tel
que pei est un paramètre d’entrée. Exemple : pe1 = lieu, pe2 = date, pe3 =
heure, etc.
– P S : est l’ensemble des paramètres de sortie du service, P S = ps1, ps2, . . .
tel que psi est un paramètre de sortie. Exemple : ps1 = heure, ps2 =
date, ps3 = lieu, etc.
– M wsi : une matrice de description des liens sémantiques entre les différents
services wsi .
– F QoS : un ensemble de facteurs de qualité correspondants au service compo-
site. Exemple : durée de transport, prix du service transport, type transport
(taxi, voiture, bus, tram,...), tarif menu, type de menu, classe hôtel (*, **, ...),
type chambre (simple, double, ...), ...
– SW Ci : l’ensemble des services Web composites, décris par l’ensemble des ser-
vices composants. Cet ensemble de services composites peut être réduit à un
seul service composite dans le cas où nos contraintes sont définies par service.
Et il peut contenir jusqu’à N services composites dans le cas où nous choisis-
sons de définir des contraintes par personne.
Notre problème de planification doit définir les états initiaux des croyances des
agents, les opérateurs et méthodes qu’ils peuvent appliquer ainsi que le but qu’ils
doivent réaliser. Le but est représenté par un ensemble de propositions décrivant les
propriétés du monde qui doivent être vérifiées. Nous allons, dans ce cadre, essayer de
décrire l’architecture appropriée pour chaque type d’agent impliqué dans le modèle
proposé, le rôle assuré par chaque agent et les moyens de communication entre les
différents agents du système.
4. L’ARCHITECTURE DÉTAILLÉE DU MODÈLE 95
CHAPITRE 5. LE MODÈLE PROPOSÉ
C’est l’agent qui va aussi initier le processus de découverte des services Web liés
à la requête du client, et ce, en émettant, à l’AgentPlan, le résultat de cette analyse
adapté aux préférences des utilisateurs après la phase du traitement.
Cet agent est doté d’un module de raisonnement, lui permettant de traiter la
requête du client et d’un module de communication assurant son interaction avec
les autres agents.
Le module de communication :
il permet de gérer la communication et l’interaction de l’AgentQueryAnalyzer
avec les autres agents et ce par échange de messages standards.
Lorsque l’AgentPlan n’arrive pas à trouver une solution à la requête posée par
l’AgentQueryAnalyzer, il procédera donc à la décomposition de la tâche qu’il n’a pas
pu accomplir en sous tâches et chargera l’agentDiscovry de rechercher les services
Web correspondants.
L’AgentPlan est composé de quatre modules (voir figure 5.3 à la page 98).
Le module de raisonnement :
c’est la partie responsable de la définition du comportement de l’agent relati-
vement à ses interactions avec les autres agents ainsi qu’avec son environnement
constitué principalement de trois éléments essentiels qui sont :
1. L’ensemble des données transmises par l’AgentQueryAnalyzer à travers un
envoi de message ou par les autres agents (AgentDiscovry ou AgentService).
2. ses propres intentions et compétences.
3. ses connaissances.
Le module de données :
il sert de support des informations transmises par les autres agents.
Le module de communication :
il gère la communication et l’interaction avec les autres agents et qui sera assurée
par un échange de messages avec eux.
Le module de communication :
il permet de gérer la communication et l’interaction de l’AgentDiscovry avec les
autres agents par échange de messages standards contenant le résultat de l’ana-
lyse correspondant aux contraintes client, l’ensemble des services répondants à ces
contraintes et toute autre information échangée entre les agents de notre modèle.
L’algorithme utilisé pour la recherche des services Web est celui du Matchma-
king proposé dans [BCG07] et qui permet de calculer le degré de correspondance
entre les paramètres fonctionnels des services Web avec ceux réclamés par l’utilisa-
teur avec quatre principaux modes de comparaison : le mode Exact, le mode Plugin,
le mode Subsume et le mode Fail.
1. Le mode Exact : sélectionne une offre si elle correspond exactement à une
demande (demande = offre) c’est-à-dire les entrées et les sorties de la demande
sont équivalents aux entrées et sorties de l’offre (Matching exact).
2. Le mode Plug-In : retourne une offre si elle englobe une demande (de-
mande¡offre) c’est-à-dire les entrées de la demande englobe les entrées de l’offre
et les sorties de la demande sont englobées par les sorties de l’offre dans l’on-
tologie de domaine ( Matching inclusif).
3. Le mode Subsume : retourne une offre si elle est incluse dans une demande
(demande > of f re) (l’inverse du mode Plug-In) ( Matching partiel)
4. Le mode Fail : retourne faux, si aucune correspondance entre l’offre et la
demande (demande 6= of f re) (echec de Matching ). L’agent applique un
test sur ces entrées. Ensuite, nous allons attribuer un score pour chaque mode
de Matching :
– Exact (score=3),
4. L’ARCHITECTURE DÉTAILLÉE DU MODÈLE 99
CHAPITRE 5. LE MODÈLE PROPOSÉ
– PlugIn (score=2),
– Subsume (score=1) et
– Fail (score=0).
Supposons qu’il existe quatre services Web de voyage S1, S2, S3 et S4 publiés
sur le Web. Leurs paramètres fonctionnels (entrées, sorties) sont :
– S1 ayant les valeurs (Alger, Rabat, 20000, 19/07/2015).
– S2 ayant les valeurs (Oran, paris, 22000, 12/07/2015).
– S3 ayant les valeurs (Maroc, Tunisie, 23000, 14/07/2015).
– S4 ayant les valeurs (Algérie, France, 22000, 12/07/2015).
S1 :
– Oran à Alger, mode = Subsume, score = 1
– Paris à Rabat, mode = Fail, score = 0
– 20000 à 20000, mode = Exact, score = 3
– 12/07/2016 à 19/07/2016, mode = Fail, score = 0
Total = 4
S2 :
– Oran à Oran, mode = Exact, score = 3
– Paris à Paris, mode = Exact, score = 3
– 20000 à 22000, mode = Fail, score = 0
– 12/07/2016 à 12/07/2016, mode = Exact, score = 3
Total = 9
S3 :
– Oran à Morocco, mode = Fail, score = 0
– Paris à Tunisia, mode = Fail, score = 0
– 20000 à 24000, mode = Fail, score = 0
– 12/07/2016 à 12/07/2016, mode = Fail, score = 0
Total = 0
S4 :
– Oran à Algeria, mode = Plug-in, score = 2
– Paris à France, mode = Plug-In, score = 2
– 20000 à 22000, mode = Fail, score = 0
– 12/07/2016 à 12/07/2016, mode = exact, score = 3
Total = 7
Pour le Matching global nous obtiendrons :
– S1 : score = 6, pas mal
– S2 : score = 9 Meilleur
– S3 : score = 0, Pas bon
– S4 : score = 7 Bien
Le module de raisonnement :
Le module de communication :
RAgi : Ag × Ai → R
Cette fonction reflète le degré de satisfaction d’un agent Agi lors de l’exécution d’une
action aj .
Pour chaque plan partiel Pi fournit par un agent Agi , nous devons ajouter une
contrainte temporelle Cti , permettant de situer temporellement un plan par rapport
aux autres, dans le but de pouvoir les synchroniser entre eux, lors de la construction
du plan global.
– Au début de notre travail, nous allons supposer que les services Web existent
et que nous pouvons les invoquer à partir de leurs URL. Et nous essayerons
d’aborder la phase de recherche et d’invocation, une fois le problème de com-
position traité.
– Il est donc possible de les importer et de connaı̂tre leurs descriptions à partir
de leurs fichiers WSDL associés.
– Passage d’une description à base de fichier WSDL vers un modèle de descrip-
tion servant d’entrée pour notre modèle de composition.
– Définition des liens sémantiques entre les services composants.
– Modélisation de la composition des services avec prise en considération du
facteur QoS.
Essayons de simplifier le processus d’organisation d’une conférence et de le res-
treindre aux taches élémentaires suivantes :
6.2 Restauration
– Sous-traiter avec des services de restauration existants :
– Nécessitant de faire déplacer les conférenciers, donc étendre le service trans-
port pour assurer le transport des conférenciers entre les salles de conférences
et les restaurants.
– Assurer un service sur place, donc prévoir des salles proches des salles de
conférence pour assurer la restauration
– Assurer le service par l’organisme assurant la réservation des salles de conférence.
6.3 Hôtellerie
– Réservation de chambre d’hôtel
– Réservation des salles de conférence
– Étudier la possibilité d’assurer la restauration par les hôtels
Dans cet exemple, nous pouvons envisager deux types de contraintes à prendre
en considération :
1. Contraintes par service : dans ce type de contraintes, nous allons admettre
que tous les conférenciers seront traités de la même manière et que les seules
contraintes à prendre en considération sont celles qui peuvent être présentées
lors de la sélection des services offerts. A titre d’exemple, nous pouvons dire
que tous les conférenciers seront pris en charge dès leurs arrivées pour être
104 6. ILLUSTRATION À L’AIDE D’UN EXEMPLE : L’ORGANISATION D’UNE
CONFÉRENCE
CHAPITRE 5. LE MODÈLE PROPOSÉ
déplacés vers leurs hôtels, un service de transport leur sera assuré pour aller
de/vers leurs hôtels vers/de leurs salles de conférences et de même pour le
service de restauration.
Il est à noter, dans ce type de contraintes, que les facteurs de qualité sont
définis, d’une façon générale et de la même manière, par les organisateurs de
la conférence et qu’aucun cas particulier ne sera traité à part.
2. Contraintes par personne : ce type de contraintes impose la prise en
considération des préférences des conférenciers lors du choix des services à
offrir. C’est-à-dire que le conférencier sera impliqué, lors de la sélection des
services et là, il pourra définir ses contraintes pour le choix des différents ser-
vices offerts. Pour illustrer ce type de contraintes, nous pouvons nous baser sur
le cas où le conférencier préfère faire une réservation dans un hôtel spécifique
(5, 4, ... étoiles) ou qu’il préfère prendre un taxi ou louer une voiture pour se
déplacer. Et dans ce cas les facteurs de qualité seront définis de façon indivi-
duelle par les clients (conférenciers).
7 Conclusion
Nous avons proposé, dans ce chapitre, un modèle de composition des services
Web en se basant sur destechniques de planification et en utilisant une architecture
distribuée à base d’agents. La spécificité de notre modèle par rapport au modèle pro-
7. CONCLUSION 105
CHAPITRE 5. LE MODÈLE PROPOSÉ
106 7. CONCLUSION
Chapitre 6
Conception et implémentation
d’une ontologie du domaine de
voyage
1 Introduction
Une ontologie est une représentation partagée et consensuelle entre les collabo-
rateurs qui a pour but de se mettre d’accord sur un sujet particulier avec un objectif
commun. Le but est de définir un ensemble de connaissances dans un domaine donné.
Il existe plusieurs types d’ontologie et leurs applications sont diverses dans le monde
du développement. La création d’une ontologie a pour but de spécifier un vocabulaire
commun et faire usage de représentations et concepts partagés, afin de permettre
l’interopérabilité des documents et faciliter l’élaboration des connaissances.
Les ontologies sont des architectures de concepts, et non pas des listes orga-
nisées de termes. Les concepts, à la différence des termes, se caractérisent par des
définitions formelles. C’est ce caractère formel qui permet à l’information d’être ma-
nipulée par les machines.
2.2 Conceptualisation
Une fois que la majorité des connaissances soient acquises, nous devons les orga-
niser et les structurer en utilisant des représentations intermédiaires semi-formelles,
faciles à comprendre et indépendantes de tout langage d’implémentation.
Concept Description
Voyage décrit tout ce qui a rapport avec le concept de voyage
Hébergement décrit l’hébergement du client qui va réserver
Chambre d’hôtes décrit les chambres qui offrent un petit déjeuner
Hôtel décrit l’hôtel que le client veut réserver
Moyens transport décrit les moyens de transport choisis ou loués
Moto décrit le moyen de transport moto
Train décrit le moyen de transport Train
Bateau décrit le moyen de transport Bateau
Traversier décrit le moyen de transport Traversier
Avion décrit le moyen de transport Avion
Automobile décrit le moyen de transport Automobile
Info Voyage décrit toutes les informations concernant le voyage
Voyage train décrit les informations concernant le voyage par train
Voyage Avion décrit les informations concernant le voyage par Avion
Distance destination décrit la distance de la destination
Destination décrit toutes les informations de la destination
Continent décrit le continent
Trajet décrit tout ce qui concerne le trajet
Client décrit les informations du client
Équipement chambre décrit les informations sur les équipements de la chambre
La relation Est-un entre les classes signifie que, la classe C1 est une sous classe
de la classe C2, si et seulement si toute instance de la classe C1 est une instance de
la classe C2. La figure 6.1 représente les différentes classes de concepts construits.
Un concept universel Thing , qui généralise tous les concepts, racine de notre
hiérarchie de concepts, peut être utilisé pour former une seule hiérarchie globale,
afin d’éviter d’avoir des concepts isolés.
relation. La relation inverse d’une relation est aussi schématisée dans ce diagramme.
Le diagramme des relations binaires de notre ontologie de voyage est présenté dans
la figure 6.2.
114
NomClient le nom du client Client chaine de caractères 0..1
DateDépart la date du départ du client Trajet chaine de caractères 0..1
DateArrivée la date d’arrivée du client Trajet chaine de caractères 0..1
ArrivéeAéroport nom de l’aéroport d’arrivée InfoVoyage chaine de caractères 0..1
DépartAéroport nom de l’aéroport de départ InfoVoyage chaine de caractères 0..1
TempsArrivée temps d’arrivée InfoVoyage chaine de caractères 0..1
TempsDépart temps de départ InfoVoyage chaine de caractères 0..1
DOMAINE DE VOYAGE
2.3 Formalisation
Dans cette étape, nous utilisons le formalisme des logiques de description pour
formaliser le modèle conceptuel que nous avons obtenu dans l’étape de conceptuali-
sation. Cela revient à réaliser les étapes suivantes :
– Construction de la table (TBOX) :
– Définition des concepts de l’ontologie ;
– Définition des rôles de l’ontologie ;
– Construction de la table (ABOX)
Les applications développées avec Protégé sont employées dans la résolution des
problèmes et la prise de décision dans un domaine particulier. Protégé est aussi
une plate-forme extensible, grâce au système de plugins, qui permet de gérer des
contenus multimédias, interroger, évaluer et fusionner des ontologies, etc. L’outil
Protégé possède une interface utilisateur graphique (GUI) lui permettant de ma-
nipuler aisément tous les éléments d’une ontologie : classe, méta-classe, propriété,
3. IMPLÉMENTATION DE L’ONTOLOGIE DE VOYAGE SOUS PROTÉGÉ 115
CHAPITRE 6. CONCEPTION ET IMPLÉMENTATION D’UNE ONTOLOGIE DU
DOMAINE DE VOYAGE
instance, etc.
Protégé peut être utilisé dans n’importe quel domaine où les concepts peuvent
être modélisés en une hiérarchie des classes. Il permet, également, de créer et d’im-
porter des ontologies écrites dans les différents langages d’ontologies tel que : RDF-
Schéma, OWL, DAML, OIL, et autres. Cela est rendu possible grâce à l’utilisation
de plugins disponibles en téléchargement pour la plupart de ces langages.
3.2 Implémentation
Pour implémenter notre ontologie, nous avons commencer par la définition de
notre hiérarchie des classes dont un aperçu graphique d’une partie de cette hiérarchie
est présenté dans la figure 6.3 de la page 117.
Ensuite, nous sommes passer à la création des propriétés des classes (datatype-
Property) afin de définir, pour chaque classe, l’ensemble de ses caractéristiques avant
de passer à la phase de création des restrictions et celle de définition des attributs.
4 Conclusion
Notre principal objectif, dans ce chapitre, était de concevoir et d’implémenter
une ontologie du domaine de voyage afin de pouvoir l’exploiter, dans le cadre de la
recherche des services Web. Cette ontologie sera utilisée par l’AgentQueryAnalyzer,
décrit dans le chapitre précédent afin d’analyser la requête du client.
4. CONCLUSION 117
CHAPITRE 6. CONCEPTION ET IMPLÉMENTATION D’UNE ONTOLOGIE DU
DOMAINE DE VOYAGE
Les détails concernant cette phase d’analyse de requête ainsi que celle de la re-
cherche des services Web seront présentés dans le chapitre suivant dédié à l’implémentation
de quelques projets servant pour la validation du modèle proposé.
118 4. CONCLUSION
Chapitre 7
Implémentation du modèle et
validation
1 Introduction
Ce chapitre est consacré à la présentation des différents outils logiciels utilisés
dans la phase d’implémentation de toutes les applications développées dans le cadre
de notre projet ; et ce avant de passer à la description de chaque application, liée au
modèle que nous avons présenté dans le cinquième chapitre, de façon détaillée.
Ces différentes applications ont été développées dans le but de valider le modèle
proposé via un environnement constitué de plusieurs plateformes, telles que : des
plateformes de simulation et de conception de SMA comme NetLogo et Jade, la pla-
teforme J2EE (Java 2 Entreprise Edition), le serveur web Apache Tomcat et AXIS
pour les services Web et MySQL pour les modules des données.
2 Environnement de développement
L’ensemble des plateformes et outils que nous utilisé pour l’implémentation de
nos applications sont définis dans les sous-sections suivantes :
La plateforme JADE peut être répartie entre tous les types de machines (elle n’a
même pas besoin de partager le même système d’exploitation), la configuration peut
être contrôlée via une interface graphique à distance. Elle peut être modifiée, même
au temps d’exécution par le déplacement des agents d’une machine à une autre, tant
que de besoin. La seule exigence est le système Java Runtime version 1.4 ou plus 1 .
1. http ://jade.tilab.com/
2. Les spécifications FIPA 97 étaient les premières spécifications à publier par FIPA.
120 2. ENVIRONNEMENT DE DÉVELOPPEMENT
CHAPITRE 7. IMPLÉMENTATION DU MODÈLE ET VALIDATION
Le type de message est appelé ’acte de langage’. Cet acte décrit selon la théorie
de John Searle dans [Sea69] comme suit : Il existe plusieurs catégories de tels actes :
En pratique un message est identifié par son performatif, qui correspond à l’une
des catégories de Searle [Sea69]. Par exemple si le performatif d’un message est
’Inform’, ce message sera un acte de langage assertif. De même, le performatif ’Offer’
correspondra à un acte promissif, etc. Mais ceci reste inconvenante pour le reste de
l’ensemble des messages qui peuvent être des objets complexes ou des plans ou
des stratégies échangées. Dans JADE le langage de communication est FIPA-ACL
(Agent Communication Langage).
La classe ACLMessage représente les messages qui peuvent être échangés par les
agents, la communication de message se fait en mode asynchrone.
Lorsqu’un agent souhaite envoyer un message, il doit créer un nouvel objet ACL-
Message, compléter ses champs avec des valeurs appropriées et enfin appeler la
méthode send().
Tous les attributs de la classe ACLMessage peuvent être obtenus et modifiés par
les méthodes set/get(). Le contenu de message peut être aussi bien du texte que des
objets car la sérialisation java est supportée.
agents multi-threads peuvent être créés mais il n’existe pour l’heure actuelle aucun
support fournis par la plateforme (excepté la synchronisation de la file des messages
ACL).
(Java Server Pages), pages mélangeant code java et code HTML. Nous avons donc
choisi un serveur Apache Tomcat qui représente, a notre avis, une solution robuste et
ouverte. Ce serveur est classique, et il prend en charge les requêtes des utilisateurs.
Tomcat est lui même un serveur web (écrit en java) qui coopère avec le serveur
http apache capable de charger des objets java (les servlets) qui vont prendre en
charge certaines requêtes http et engendrer dynamiquement un document HTML
Constituant la réponse. Il représente aussi une plateforme pour le développement et
le déploiement d’applications Web et des services Web. Il inclut des outils pour la
configuration et la gestion, mais peut également être configuré en éditant des fichiers
de configuration XML. Tomcat peut donc s’exécuter via la JVM (Java Virtual Ma-
chine) sur n’importe quel système d’exploitation. La version que nous avons utilisé
pour implémenter notre application est Apache Tomcat 7.0.34.0.
2.4 AXIS
AXIS est l’acronyme d’Apache eXtensible Interaction System. C’est une nou-
velle implémentation de la spécification SOAP (Simple Object Access Protocol)
développé par la fondation Apache (The Apache Software Foundation), qui succède
à Apache SOAP. Les caractéristiques qui le mettent au dessus de son prédécesseur
est le fait qu’il est plus performant, plus modulaire et plus extensible. AXIS est à
la fois un environnement d’hébergement de services web, et un toolkit complet de
développement pour la création de services et l’accès à des services tiers.
dans notre contexte nous n’avons besoin que des descriptions WSDL des services
Web, nous avons préféré développer ces services Web dans le but de découvrir da-
vantage l’univers SMA et celui des services Web.
Comme les services Web sont gérés par des agents alors nous avons opté pour
une conception globale en combinant les deux environnements comme présenté dans
le diagramme de séquence de la figure 7.3.
Il est à noter que nous avons développé plusieurs projets, dans le but de valider
notre modèle. Mais nous nous sommes limitées à la présentation de deux projets
uniquement et ce afin de ne pas trop charger notre manuscrit par des exemples
variés et de domaines différents d’un côté et pour simplifier la compréhension du
principe de fonctionnement de notre modèle et ce en choisissant les deux projets les
plus représentant de notre modèle. En fait, nous avons divisé notre travail en deux
parties. La première consiste à implémenter :
– Une interface permettant la saisie de la requête du client en lui permettant de
de choisir entre deux modes de requête ; à savoir : le mode guidé et le mode
brut
– Un AgentQueryAnalyser permettant d’analyser la requête du client, en se
servant de l’ontologie du domaine implémenté dans la chapitre précédent
– Un AgentDiscovery permettant de rechercher les services Web répondants à la
requête du client
L’exemple sur lequel nous nous sommes basés pour valider notre travail est celui
de l’organisation d’un voyage. Un utilisateur qui souhaite faire un voyage à un en-
126 3. CONCEPTION ET MISE ŒUVRE DES PROJETS DE VALIDATION DU
MODÈLE
CHAPITRE 7. IMPLÉMENTATION DU MODÈLE ET VALIDATION
droit précis a surement besoin d’un ensemble de services pour son voyage tels que
le service de transport (avion), l’hôtellerie (réservation d’hôtel) et la restauration, à
des contraintes spécifiques telles que la date, la durée de son séjour, le prix à ne pas
dépasser, etc.
Une présentation détaillée de chacune des deux parties fera l’objet des sections
suivantes, en se basant sur l’exemple su-cité.
Implémentation de l’AgentQueryAnalyzer
1. Cas d’une requête guidée : Le client doit préciser les contraintes les plus
significatives pour son choix. A savoir, par exemple, la ville ou le pays de son
départ et de son arrivée, la date de départ et le prix comme indiqué dans la
figure 7.6.
Dans ce cas, l’AgentQueryAnalyzer récupère les mots clés pour les envoyer
directement à l’AgentDiscovry chargé d’appliquer l’algorithme de Matching
entre l’offre et la demande.
Implémentation de l’AgentDiscovry
L’AgentDiscovry est le deuxième agent que nous avons implémenté suivant l’ar-
chitecture présentée dans la figure 5.4 de la page 99 du chapitre 5. Son rôle principal
est de rechercher tous les services Web liés à l’ensemble des mots clés récupérés dans
notre application, de façon directe, de l’AgentQueryAnalyzer après avoir analysé la
requête du client et l’avoir transformé sous forme de mots clés.
Malgré que nous remarquons, dans notre architecture générale présentée dans
la figure 5.1 de la page 95 du chapitre 5, qu’il n’y a pas de contact direct entre
l’AgentQueryAnalyzer et l’agentDiscovry, nous avons exclu le rôle de l’AgentPlan,
de façon provisoire, pour nous focaliser, dans cette première partie, sur l’analyse de
la requête client et la recherche des services Web liés à cette dernière.
Les résultats correspondant aux différents types des entrées possibles sont présentés
dans la table 7.2.
Table 7.2 – Les résultats correspondant aux différents types d’entrées possibles
Dans cette phase et pour des raisons de simplification, nous avons exclu le rôle
de l’Agent Discovry pour réduire notre système à un AgentPlan chargé de la plani-
fication de la composition des services Web et un ensemble d’agents de type Agent-
Service assurant chacun un service particulier.
Implémentation de l’AgentPlan
L’AgentPlan est responsable de la planification de la composition des services
Web(hôtel. restaurant, vol). Il reçoit les critères fournis par l’AgentQueryAnalyzer
et communique avec les agents de type AgentService assurant chacun la recherche
et l’invocation des services correspondants (hôtel, restaurant, vol) tout en essayant
de fournir les meilleures plans locaux offerts à l’AgentPlan.
Dès que les agents de type AgentService retournent leurs résultats à l’AgentPlan, ce
dernier commence à faire la planification.
La planification à pour but d’étudier tous les cas possibles et d’analyser tous les
résultats afin d’atteindre le plan optimal. Le diagramme de la figure 7.9 indique le
processus de planification exécuté par l’AgentPlan.
Implémentation de l’AgentSevice
Plusieurs agents de type AgentService sont créés automatiquement, dans notre
application, et ce juste après la récupération des informations concernant ces services
et liées à la requête client.
Le rôle de chaque AgentService est de choisir parmi les services offerts sur le Web,
celui répondant aux exigences du client et offrant, ainsi, le meilleur plan local possible
3. CONCEPTION ET MISE ŒUVRE DES PROJETS DE VALIDATION DU 131
MODÈLE
CHAPITRE 7. IMPLÉMENTATION DU MODÈLE ET VALIDATION
pour le remettre à l’AgentPlan. Nous avons implémenté, dans ce cadre, les trois
agents suivants :
1. L’AgentServiceHôtel : chargé de fournir la meilleure offre d’hôtel, relative-
ment à notre requête,
4 Conclusion
Nous avons présenté dans ce chapitre les principaux outils logiciels utilisés pour
l’implémentation de notre modèle et nous avons essayé par la suite, de présenter
deux projets que nous avons essayé d’implémenter, dans le but de valider notre
modèle.
Malgré que nous nous sommes pas arriver à l’implémentation du modèle proposé
intégralement, nous tenons, quand même à estimer les résultats que nous avons
obtenus de très satisfaisants et nous confirmons que le passage à l’échelle est une
question de temps, vue la complexité du projet liée à la diversité des domaines
qu’il touche (agents, services Web, services Web sémantiques, ontologies, compo-
sition, planification et autres) d’un côté et son importance côté fonctionnel suite
au nombre de modules à interagir entre eux de diverses façons (interaction entre
agents, communication par échange de messages, extraction de mots clés, recherche
de services Web, invocation de services, ”Matchmaking”, interrogation d’ontologie,
raisonnement logique, exploration d’une base de connaissances, inférence et autres)
d’un autre côté.
132 4. CONCLUSION
Conclusion et perspectives
Pour cela, nous avons consacré la première partie de notre thèse, constituée de
quatre chapitres, à la présentation d’un état de l’art sur ces différents concepts, d’où
nous avons sacrifié le premier chapitre à la présentation des agents et des systèmes
multi-agents (SMA), leurs problématiques, leurs domaines d’utilisation et l’expo-
sition de quelques plateformes de conception et d’implémentation d’agents et de
systèmes multi-agents.
Les services Web ont trouvé leur part dans notre manuscrit via le deuxième
chapitre, dans lequel nous les avons défini ainsi que leurs différents types, leurs ca-
ractéristiques, leur architecture, leurs technologies de base. Et ce avant d’entamer
les problématiques de : publication, recherche, sélection et invocation, liées toutes à
ces services Web. Une autre problématique liée, également, aux services Web et que
nous ne pouvons négliger, dans cette thèse, est celle de la qualité de service (QdS)
que nous avons synthétisé à la fin de ce chapitre.
Après les agents, les systèmes multi-agents et les services Web, un état de l’art sur
la planification a pris sa place, dans le troisième chapitre pour définir la planification
en intelligence artificielle avant de présenter les différents modèles de planification
tels que :
– la planification classique
– la planification graphique
– la planification hiérarchique, et
– la la planification distribuée
Les avantages de la planification ont fait l’objet de la dernière section de ce chapitre.
133
CONCLUSION ET PERSPECTIVES
Se servir d’une ontologie existante dans n’importe quel domaine est possible bien
sûr. Mais, Pourquoi ne pas penser à prendre une nouvelle aventure pour implémenter
notre propre ontologie ? C’est pour cette raison que nous avons essayé, à nouveau,
de nous servir d’une méthodologie assez connue dans le domaine du Web sémantique
qui est la méthodologie ”METHENTOLOGIE” et de l’éditeur ”Protégé” pour conce-
voir et implémenter une ontologie du domaine de voyage, qui a fait l’objet de notre
sixième chapitre.
Il est évident que la valeur de notre travail ne peut être mesurée que si nous arri-
verons à valider notre modèle. Chose qui n’est pas vraiment facile, vue l’importance
du temps nécessaire pour la mise en œuvre du modèle proposé. Mais ce qui est cer-
tain, est que le passage à l’échelle n’est pour nous qu’une question de temps et que
malgré que nous n’avons pu concrétiser qu’une toute petite partie du modèle, qui a
fait l’objet du septième et dernier chapitre, cela, reste un défi qui pourra alimenter
nos futurs travaux de recherche.
Enfin, nous tenons à préciser que les différents agents du modèle proposé ont été
implémentés et qu’ils étaient testés avec des services Web que nous avons implémenté
nous même, faute de ne pas avoir assez de temps pour effectuer nos tests sur des
services Web réels. Malheureusement, les résultats obtenus, ne nous permettent pas
de les situer par rapport aux résultats existants, vu qu’il reste encore des modules
à développer afin d’assurer un passage à l’échelle.
Ce passage à l’échelle sera notre prochain objectif qui nous encouragera à tracer
de nouvelles perspectives telles que :
– l’intégration de nouveaux modules permettant à notre modèle de s’adapter
avec n’importe quel type de service Web,
– la recherche et la sélection de services Web existants dans le cadre de la com-
position,
– l’implémentation de la stratégie de planification décrite dans la section de la
définition formelle du processus de planification du cinquième chapitre,
– Implémentation d’un algorithme de planification assurant la composition au-
tomatique des services impliqués avec prise en considération du facteur QoS.
– passage d’une description à base de fichiers WSDL vers un modèle de descrip-
tion servant d’entrée pour notre modèle de composition.
[ABRL09] Nicolas Arni-Bloch, Jolita Ralyté, and Michel Léonard. Service dri-
ven information systems evolution : Handling integrity constraints
consistency. In IFIP Working Conference on The Practice of Enter-
prise Modeling, pages 191–206. Springer, 2009.
[ACD+ 03] T. Andrews, F. Curbera, H. Dholakia, Y. Goland, and J. Klein. Bu-
siness Process Execution Language for Web Services, 2003.
[ACKM04] Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju.
Web Services : Concepts, Architectures and Applications. 2197-9723.
Springer publishing, 2004.
[AHT+ 08] Zeina Azmeh, Marianne Huchard, Chouki Tibermacine, Christelle
Urtado, and Sylvain Vauttier. Wspab : A tool for automatic classi-
fication and selection of web services using formal concept analysis.
In ECOWS 2008 : 6th European Conference on Web Services, pages
31–40, Dublin, Ireland, 2008.
[AL07] P. Albers and O. Licchelli. Composition de services web personnalisés,
juillet 2007.
[AS04] S. Araban and L.S. Sterling. Measuring quality of service for contract
aware web services. In First Australian Workshop on Engineering
Service Oriented Systems, page 54–56, 2004.
[Bac14] Fayçal Bachtarzi. Une approche de composition des services Web
basée transformation de graphes. PhD thesis, Université Abdelhamid
Mehri Constantine 2, décembre 2014. Thèse de doctorat LMD.
[BB09] A. Belkheir and S. Bouyakoub. A hierarchical model for web ser-
vices composition. International Journal of Web Services Practices,
4(1) :44–50, 2009.
[BBB16] Karima Belmabrouk, Fatima Bendella, and Maroua Bouzid. Multi-
agent based model for web service composition. International Jour-
nal of Advanced Computer Science and Applications, IJACSA, 7(3),
march 2016.
[BBLB16] Nicolas Becu, Pierre Bommel, Christophe LePage, and Francois Bous-
quet. Cormas, une plateforme multi-agent pour concevoir collective-
ment des modèles et interagir avec les simulations. In Actes des 24ème
journées Journées Francophones sur les Systèmes Multi-Agents (JF-
SMA), Saint Martin du Vivier (Rouen), 2016. ISBN : 9782364935594.
[BBPL98] François Bousquet, Innocent Bakam, Hubert Proton, and Christophe
LePage. Cormas : Common-pool resources and multi-agent systems.
137
BIBLIOGRAPHIE
[BL03] Gilbert Babin and Michel Leblanc. Les web services et leur impact
sur le commerce b2b. Technical report, CIRANO Burgundy Reports,
2003.
[Bon90] Alan H. Bond. A computational model for organizations of coopera-
ting intelligent agents. SIGOIS Bull., 11(2-3) :21–30, March 1990.
[Bou07] Architecture multi-agents pour la composition automatique de web
services. AFIA2007, 2007.
[BSS17] Vangie Beal, Forrest Stroud, and Paul Shread. Webopedia, 2017.
[Online tech dictionary for IT professionals, educators and students.].
[BW94] A. Barrett and D. S. Weld. Partial-order planning : evaluating pos-
sible efficiency gains. Artificial Intelligence, 67(1), 1994.
[CAH06] Daniella Barreiro Claro, P. Albers, and J. Hao. Semantic Web Ser-
vices : Processes and Applications, chapter Chapter 8, Web Services
composition, pages 195–225. Springer, 2006.
[Cer02] Ethan Cerami. Web Services Essentials. O’Reilly edition, 2002.
[Cha07] Yasmine Charif. Chorégraphie dynamique de services basée sur la co-
ordination d’agents introspectifs. PhD thesis, LIP6, Université Pierre
et Marie Curie, Paris, décembre 2007.
[Che92] V. Chevrier. Coordination et structuration des échanges par
négociation dans les systèmes multi-agents. In Journée Systèmes
Multi-Agents PRC-GDR Intelligence Artificielle. Nancy, 1992.
[Che11] Chantal Cherifi. Classification et Composition de Services Web : Une
Perspective Réseaux Complexes. PhD thesis, Université de Corse -
PASCAL PAOLI, décembre 2011.
[Cho10] Imad Chouchani. Utilisation d’un algorithme génétique pour la com-
position de services web. Master’s thesis, Université du Quebec à
Montréal, Canada, mai 2010. Mémoire de maitrise au département
d’informatique.
[Cla06] Daniela Barreiro Claro. SPOC – Un canevas pour la composition
automatique de services web dédiés à la réalisation de devis. PhD
thesis, Ecole Doctorale d’Angers, Université d’Angers, octobre 2006.
[DA07] Helga Duarte-Amaya. Tcows : Canevas pour la composition des ser-
vices web avec propriétés transactionnelles. Thèse, laboratoire LIG,
Université Joseph Fourier, Université Joseph Fourrier - GrenobleI, no-
vembre 2007. Thèse préparée au sein du Laboratoire d’Informatique
de Grenoble - LIG, équipe MRIM - France.
[Dav80] R. Davis. Report on the workshop on distributed artificial intelli-
gence. In SIGART Newsletter, page 42–52, janvier 1980.
[DK01] Patrick Doherty and Jonas Kvarnström. Talplanner a temporal logic-
based planner. 22(3), 2001.
[DMJ+ 10] M. Driss, N. Moha, Y. Jamoussi, J-M. Jézéquel, and Hajjami
Ben Ghézala. A requirement-centric approach to web service mo-
deling, discovery and selection. In In Proceedings of the 8th Inter-
national Conference on Service Oriented Computing (ICSOC 2010),
San Francisco, USA, December 2010.
BIBLIOGRAPHIE 139
BIBLIOGRAPHIE
144 BIBLIOGRAPHIE