Compte tenu deslimitationsduprototypepré édent,jeproposei iunprototype qui génère les ompositions de façon automatique et adaptative. Je ommen e par présentersonprin ipe,puisjemontresonimplémentationpournirsuruneévaluation informellesouslaformed'unedis ussion.
Cetteméthodede ompositiondynamiques'inspiredesméthodesdeplani ation. Pourrépondreàunerequêtedel'utilisateur,elleutiliselades riptiondesentréesetdes sortiesdesservi esWebpour onstruireungraphe,quisymboliselestransformations possiblesdedonnées,oùlesnoeudsdugraphesontlesétatsdumondeetlestransitions sontlesa tions,àlamanièrede[44℄.Ensuite,unprogrammeénumèreles heminsdans egraphequirelientunétatinitialreprésentantlesentrées,fourniesparl'utilisateur, et un état nal, représentant les sorties souhaitées par l'utilisateur. Finalement, le moteur trie les hemins suivant un ritère de qualité prédéni, puis déduit de es hemins, des ompositions qu'il peut ensuite exé uter. La méthode ommen e par exé uterle hemindemeilleure qualité,puisvérielerésultat obtenu. Si lerésultat est satisfaisant, alorsle programme renvoie lerésultat àl'utilisateur, sinon il essaie d'exé uterla ompositionsuivante.Dans etteméthodelerésultatdela omposition sera onsidéré omme satisfaisant lorsqu'il omportera tous les éléments souhaités parl'utilisateur.Parexemple,sil'utilisateurdemandeunelisted'é lairement,alorsla ompositionestvalidéedèslorsque ettelisteestprésente,quelquesoitson ontenu. Le résultat de la omposition suivante est ombiné ave le résultat de l'exé ution pré édente; lerésultat ainsi obtenu est ànouveauanalysépourdéterminer s'il faut
d'états
ontinuerl'améliorationourenvoyerlerésultatàl'utilisateur.
La première se tion explique la représentation des servi es Web, puis elle des étatsdumonde, ainsi quela onstru tiondugraphe dedépendan e des états.Nous dé rivons ensuitel'algorithme qui génèrel'ensemble desséquen es d'a tionséquiva- lentes.Puis,jeprésenteles ritèresdequalitéainsiquelaméthodedetridesséquen es d'a tions.Enn,jedonnelaméthoded'unionetd'évaluationdesrésultatsd'exé ution des ompositions.
4.2.1 Représentation des servi es Web
Chaque servi e Web est dé rit omme une a tion fournissant un ensemble de paramètresdetypesprédénis àpartird'unautre ensemble deparamètresdetypes prédénis.Soit
T
l'ensemble des types de paramètrespossiblesetF
l'ensemble des identiants de servi es Web, alors un servi e Web est déni par le tuple(F, ti, tf)
appartenantàF× P(T) × P(T)
, aveti
représentantlespré- onditionsde l'a tion ettf
étantlespost- onditions.Le hoixde ettereprésentationestliéauWSDL[110℄quidénitlesservi esWeb defaçonstandardentermed'entréesetdesorties.Cha unedespartiesdesentréeset dessortiesduservi eWebesttypée.
4.2.2 Abstra tion de l'environnement
Laméthodedénitlesétatsdumonde ommel'uniondestypesdesdonnéesfour- nies ou attendues par l'utilisateur. Soit
T
l'ensemble de tous les types de données possibles,alorsl'ensembleS
appartientàP(T )
.Chaque typed'unmême étatrepré- senteunedonnéepossibleàobtenirdans etétat.Parexemple,unétat omposédes typesgéopoint et période indique queles donnéesatteignables sontobligatoirement de esdeuxtypes.4.2.3 Constru tion du graphe de dépendan e
Pour onstruire le graphe de dépendan e, haque des ription de servi es Web est analysée pour réer l'ensemble des relations
R
reliant les états. Comme nous l'avonsvuenplani ationdansle hapitre2,lesrelationsappartiennentàS × A × S
. Pour déterminer l'existen e d'une relation, il faut vérier les pré- onditions et les post- onditions. Les pré- onditions sont respe tées lorsque les types d'entrée d'un servi eWebsontin lus dansl'état ourant.Lespost- onditionssontréaliséeslorsque lenouvelétatest égal àl'ensemble destypesde sortie.Autrementdit, pour haque tuple(f, si, sf)
appartenantàF× S × S
,laméthodevériequelespré- onditionset lespost- onditionssontréalisées,puis réeunar danslegraphedesétatsreliantsi
etsf
représentantlatransformationquepeutréaliserleservi eWebf
.Parexemple, unservi e Webqui onvertit une températurede CelsiusàFarenheit est représenté parunar qui relielesnoeudstempératureenCelsius àtempératureenFarenheit.4.2.4 Génération des séquen es d'a tions équivalentes
Legrapheestdon onstituédenoeuds,représentantlesensemblesdeparamètres typéspossiblesetd'ar sreprésentantlesa tionspossiblespourpasserd'unensemble àunautre.
Chaque hemindanslegraphereprésenteune ompositionobéissantàdes ontraintes fon tionnellesné essaires.Néanmoins,sebaseruniquementsur es heminsn'estpas e a eetnotreméthodeutiliselarequêtedel'utilisateurpourneséle tionnerqueles heminsintéressantsvis-à-visde ette requête.Pour efaire, laméthode her heles noeudsdanslegraphereprésentantlesdonnéespouvantêtrefourniesparlarequête. Puis,ellere her helesnoeudspouvantfournirlesdonnéessouhaitéesparl'utilisateur. Enn,laméthode her heles heminssansbou lereliant esnoeuds.Un heminsans bou leestun heminpassantauplusunefoisdansunar donné.
Ilexiste,pourtrouver es hemins,desalgorithmesquiterminentetsont omplets. Unalgorithme ompletdansnotre asestunalgorithmequitrouvetouteslessolutions existantes.Ilestformalisépar:pourtout
X
,siX
estun heminsansbou leetvalide, alorsl'algorithmetrouveX
ommesolution.Je présenteunde esalgorithmesdans lase tionsuivante.Algorithmedegénérationdetouteslesséquen esd'a tionséquivalentes Il existedeuxfaçonsstandardsdedé rirelesgraphes.Lapremièreestunereprésentation baséesurdestableauxetlase ondeestbaséesurlalisted'adja en e[100℄.
Pour réaliser mon algorithme de re her he de hemin, j'ai hoisi de représenter ungraphe pardeslistesd'adja en e. Cettereprésentationliste,pour haquenoeud, les noeuds adja ents, autrement dit, les noeuds a essiblesdire tement par un ar . Un graphe
g
est don représenté parlalisteV
desesnoeuds. Chaque noeudv ∈ V
omportelalistedesar se ∈ Adj(v)
menantàsesnoeudsadja ents.Chaquear peut êtremarquéàl'aided'unefon tionmark(g, e)
etdémarquéàl'aidedeunmark(g, e)
. L'étatdelamarquepeutêtrelugrâ eàis
_mark(g, v)
retournantvraisiv
estmarqué et fauxsinon.L'algorithme suivant génère la liste
P
de tous les hemins entre un sommet de départvbegin
et un sommetd'arrivéevend
. Pour ela, partantdevbegin
, il onsidère touslesar sdesalisted'adja en e.Pour ha undesar sde etteliste,ilva her her tous les hemins reliant le noeud d'arrivée de l'ar àvend
sans réutiliser l'ar .Ces hemins sont ensuite on aténés ave l'ar ourantde manièreà générerl'ensemble detousles heminspassantpar etar .Cettegénérationestfaitedemanièreré ursive.P
:ensemblede hemins;p
: hemin;vbegin
:noeud;vend
:noeud;denefollow(
v
,p
,P
)(marquelenoeudpourneplusyrepasser) mark(
v
);(ajoutelenoeud ourantau hemin)
p
.push(v
);(pourtouslesnoeudsadja entsdunoeud ourant) forea h
i
in Adj(v
):(silenoeudadja entest eluidenalorsonajoute
le heminàlalistedes hemins,sinononpoursuitlare her he) if
i == vend
thenp
.push(i
);d'états
p
.pop(i
); else(silenoeudadja entn'estpasmarquéalorsonpoursuitla re her he,sinononabandonne e hemin)
if notis_mark(
i
)then follow(i
,p
.P
); endifendif endfor
(onanila her hepourlenoeud ourant)
p
.pop(v
)(iln'estplusmarqué) unmark(
v
)enddef
follow(
vbegin
,p
,P
); returnP
;Une fois l'algorithme terminé, nous disposons de l'ensemble des hemins sans bou le qui relientles entréesfournies aux sorties souhaitées. Ilfaut ensuite onver- tir es heminsdansunlangagede omposition.Pour eprototype, elangageestle mêmeque eluiduprototypepré édent4.1etutilisedon uniquementlesséquen eset lesassignations.Jemontreraidansl'exempleennde hapitre ommentsonttraduits es heminsen omposition.
4.2.5 Critère de qualité des hemins
Une fois les ompositions possiblesétablies,il faut lestrier parordre dequalité. Nousdevonsdon dénirun ritèredequalité permettant etri.
Lanotiondequalité dedonnéesesttrèssubje tiveet dépendparfoisdesbesoins, ommenousl'avonsvudansle hapitre2.Dansmon as,j'airetenuun ritèresimple, qui est une valeurde qualité ompriseentre
0
et1
. Plus ette valeur est pro he de1
,plusla ompositionest debonnequalité.Un on epteurde servi esWebattribue à ha und'eux une valeurde qualité deservi e entre0
et1
. Je dénisle ritèrede qualitéd'une omposition ommeleproduitdesqualitésde ha undesservi esWeb quila omposent.Les ompositionspeuventalorsêtretriéesparordredé roissantde qualité.4.2.6 Validation des résultats
Une fois les ompositions triées, nous exé utons la première et nous devons la valider.Lavalidation estréaliséeen omparantlestypesdesdonnéesobtenuesaprès l'exé ution de la omposition et les types des données souhaitées par l'utilisateur. Lorsquel'ensemble destypessouhaitésest in lusdansl'ensembledestypesdesdon- néesdurésultat,alorsla ompositionestvalidée.Parexemple,sil'utilisateursouhaite obtenirune listed'é lairement,et quele résultatobtenu aprèsexé ution dela om- position est une listede températuresalors le résultat est invalide. En revan he, si le résultat obtenu omporte une liste de température et une liste d'é lairement, le résultat est validé. Cetteméthodene prend pasen ompte le ontenu des données, elle ompareuniquementlestypesdesdonnées.
4.2.7 Union des résultats
Dansle asoùla ompositionn'estpasvalidée,la ompositionsuivanteestexé u- téeetsonrésultatfusionnéave lapré édente.Dans eprototype,l'unionestréalisée simplement par le rempla ement de l'an ien résultat parle nouveau. Ce i peut ne pas être onsidéré omme une union à proprement parler, mais elle est lairement susantepouranalysernotreméthode.
4.2.8 Dis ussion
Fa ilitédemiseenoeuvre delaméthode Cetteappro hefournituneméthode raisonnablementfa ilepour ombinerlesservi esWeb,puisquelatradu tiondesdes- riptionsstandardsdesentrées/sorties(expriméesenWSDL)enpré-/post- onditions estsimple.
Une forte abstra tion Elle s'appuie sur le fait que les ensembles des types dé- rivant les messagesd'entrées et lesmessages de sortiesd'un servi eWeb sont une abstra tionde equ'ilréalise.Autrementdit,lesentréesetlessortiesduservi eWeb représententd'une ertainefaçon equeréalisele servi eWeb.Cettereprésentation n'estpas omplète,ellene omportepas,parexemple,lesattributsnon-fon tionnels (par exemple, le nom de l'algorithme utilisé), ou en ore la manière dont vont être utilisées les données d'entrée. Parexemple, deux servi es Web ee tuant la même transformationdedonnéesdanslegraphe,peuventenréalitéfaireappelàdesopéra- tionsdiérentes.Unservi eWebquiadditionneaetb,etunservi eWebqui al ule a fois b, ne peuvent être diéren iés ar ils ont les mêmes pré-/post- onditions qui sontbaséespourlaméthodesurlestypesdesentrées/sorties.Onremarqueégalement que la des riptiondes pré- onditions et post- onditions aun impa t important sur les ompositionsqu'ilserapossibledefaireainsiqueleurjustesse.Pluslades ription des pré-/post- onditionsest pré ise, pluslaproportion de ompositions validessera grande.En ontre-partie,des ompositionsvalidesserontéliminées,etvi e-versa,plus lesdes riptions sontgrossières et peudétaillées, plusla proportion de ompositions fausses qui serontgénérées seragrande. Parexemple,prenons deux servi esWeb le premier,nomméF,s'appliquantsurunentiernatureletdonnantenrésultatunentier naturel, et lese ond,nommé G,s'appliquant sur unentierpositif et fournissanten sortieunentiernaturel.Sil'on hoisitdedé rire es2servi esWebgrossièrementen ignorantl'existen edesentierspositifs,alorsFetGsontdé rits delamêmemanière etlasortiedeFpeutêtreutiliséeenentréedeG.Dans ertains as ette omposition est invalide, néanmoins elle reste validelorsque la sortie de F est positive. Dans le as de des riptions grossières, 'est-à-dire i i très abstraites par rapport à la fon - tionnalitédesservi esWeb,onadon réédes ompositionsfaussessanséliminerde ompositionsvalides.Parailleurs,sion hoisitdedé riredefaçonrigoureuse esdeux fon tionsalorsGnepeutplusêtreappliquéesurlerésultatdeFetonéliminetoutes les ompositionsdeFetdeGoùlessortiesdeFsontpositives.Dans e asonaune des riptionplusdétaillée,maisqui éliminedes ompositionsvalides.
Des algorithmes alternatifs Etant donné que l'ensemble des ar s est dénom- brable, l'ensemble des états l'est aussi (leur nombre étant au maximum deux fois supérieuraunombred'a tions).Ce problèmeestdon solvablepardesméthodesde plani ation lassiques.Ilestdon tout àfaitpossibled'utiliser desméthodesissues
de la plani ation. Pour ela, il faudrait traduireles des riptions des servi es Web dansdeslangagesutiliséspourlaplani ationtelquePDDL [38℄.Parailleurs,pour trouverunen haînementd'a tionspossibles,l'algorithmedeDijkstrapeutêtreutilisé. Néanmoins,dans esdeux as,l'undesprin ipauxbesoinsexprimésparlesmétéo- rologuesétantla omplétiondesrésultats,l'obtentiondel'unique omposition,fournie parlesméthodesdeplani ation lassiquesouparl'algorithmedeDijkstra,n'estpas satisfaisante.Nousdevonsdon générerplusieursen haînementsd'a tionséquivalents andepouvoiree tuerl'uniondesrésultatsdeleurexé utionpouratteindreunbon niveaude omplétion desdonnées.
Limite de notre appro he Cette appro hen'est pas apable d'utiliser onjoin- tementdeux servi esWeb pour al uler lesentréesd'un troisième ompte tenu que les hemins d'un graphe sont purement séquentiels. Un moyen pour ontourner e manque de parallélismeinhérentauxgraphes est de réerdes servi esWeb virtuels qui représentent l'exé ution parallèle de plusieurs servi es. Cette exé ution on ur- rente est représentée par une transition qui aurait pour entrée l'union des entrées desservi esWeb utiliséset poursortiel'uniondessortiesde esservi esWeb.Cette amélioration s'a ompagne d'un a roissement exponentiel du nombre des états et destransitionsdugraphe(
2
n
,où
n
estlenombredeservi esWeb).Avantage denotreméthodede omposition Ceprototypeprésentel'avantage de prendre en onsidérationde nouveaux servi esWeb ontrairement àla méthode de ompositionstatiquepré édente.