Une approche orientée agent pour la composition sémantique des services web Hadjila fethallah (1), Chikh Mohammed amine (2) (1) Université de Abou Bekr Belkaid Tlemcen f_hadjila @mail.univ-tlemcen.dz (2) Université de Abou Bekr Belkaid Tlemcen mea_chikh@univ-tlemcen.dz Résumé La composition des services web devient de plus en plus incontournable, de nouveaux outils tels que les ontologies vont aider, à satisfaire les besoins qui concernent la recherche et la combinaison sémantique des services web. L objectif de cet article est de fournir une solution basée sur les agents cognitifs. L approche proposée repose sur la coopération d un ensemble agents qui permettrons d utiliser les capacités sémantiques des services notés IOPE (inputs, outputs, preconditions, effects) en vu, de les mettre en correspondance avec les concepts de la requête de l utilisateur. Mots Clés Composition de services, services web, systèmes multiagents, AI plannig, web sémantique, ontologies 1 Introduction Les services web peuvent être définis comme des applications modulaires, auto descriptibles, auto contenues, et accessibles à travers l internet (Curbera et al 2001). Un ensemble de standards ont été défini tels que WSDL, UDDI, SOAP (Curbera et al, 2002) afin de permettre la description, la découverte, et l invocation des services (respectivement). Dans un environnement ouvert et dynamique, tel que internet, Il est évident qu une composition à la demande sera très préférable, en plus il sera judicieux de prendre en charge la sémantique durant le matching des services, afin de minimiser les fausses réponses, et d améliorer la qualité globale des résultats. Pour résoudre ces problèmes, différents efforts ont été dépensés dans la littérature (Dustdar, Schreiner, 2005), ces approches différent par leur degré d automatisation (manuelles, 186
Une approche orientée agent pour la composition sémantique des services web interactives, automatiques), par leur prise en charge de la sémantique (basées sur les ontologies ou non), et par leur caractère dynamique vs statique, ie est ce que le plan de service est créé à priori ou bien durant l exécution du système. Pour gérer toutes ces difficultés notre solution a été basée sur les systèmes multiagents (SMA), en effet l approche proposée va combiner les avantages de l I.A.D (Bond, Gasser, 88), et des systèmes experts (systèmes à base de règles). Le SMA cognitif développé est constitué d un agent client qui initie le processus de composition, en émettant une requête basée sur les IOPE d un agent médiateur faisant le lien entre les agents fournisseurs et le client, d un ou plusieurs agents fournisseurs de services qui réalisent l inférence sémantique des plans et les retransmettent au médiateur. L approche suggérée est illustrée par un ensemble d algorithmes, et par une étude de cas sur les services de réservation de voyages. Le reste de l article est structuré comme suit : La deuxième section introduit la notion d agents et de SMA. La troisième section présente le standard owls utilisé partiellement dans l approche. La quatrième section présente l approche développée avec un exemple d application, La cinquième section présente un survol sur les travaux effectués dans la composition de services. Et enfin la sixième section conclut sur les perspectives de notre travail. 2 Arrière plan sur les agents: l'intelligence artificielle distribuée (IAD) s'intéresse à des comportements intelligents qui résultent de l'activité coopérative de plusieurs agents.suite à la distribution de l'expertise sur un ensemble de composants qui communiquent pour atteindre un objectif global ou résoudre un problème, il est nécessaire de diviser le problème en sous-problèmes et de les affecter à chaque composant (agent) du système. 2.1 Agent intelligent Plusieurs définitions ont été proposées pour éclaircir la notion d agent, on présente par la suite la plus importante. 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 communiquer 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 (Ferber, 95). De même on peut dire qu un système multi-agent est un système distribué composé d un ensemble d agents. Contrairement aux systèmes d IA, qui simulent dans une certaine mesure les capacités du raisonnement humain, les SMA sont conçus et implantés idéalement comme un 187
ensemble d agents interagissant, le plus souvent, selon des modes de coopération, de concurrence ou de coexistence (Chaib, 94), (Chaib, 96), (Moulin, Chaib, 96). Dans cet article, nous utilisons, un type particulier d agents appelé agent cognitif, ces derniers sont caractérisés par un niveau symbolique de la représentation des connaissances et par des notions mentales. Les agents cognitifs possèdent une représentation partielle de l'environnement, des buts explicites, ils sont capables de planifier leur comportement, mémoriser leurs actions passées, communiquer avec le monde extérieur. 3 Owls (ontology web language service): Owls (Dean et al, 2004) fournit une description de haut niveau des services web (voir la figure 1). Cette ontologie de haut niveau indique qu une ressource est liée à un service, à son tour le service est constitué d un profile, d un service model et d un service grounding. En bref, le profile indique ce que fait le service, le service model décrit le comment : les étapes qui composent le service et le flot de control, et le service grounding décrit la manière d accéder au service. Ces trois concepts sont conçus pour donner une vue globale sur les capacités du service. Ressource Provides Présents Service Profile Service Service Grounding Supports Described by Service Model Figure 1 : Ontologie de Haut Niveau d OWLS 3.1 Service Profile Le «profile» (Dean et al, 2004) décrit ce que fait le service. Un système recherchant un service examinerait la première fois le «profile» pour voir si le service fournit ce qui est nécessaire. Le «profile» contient les informations suivantes: Le nom du service, les contacts et la description qui sont communément appelés propriétés non fonctionnelles. La description de fonctionnalité "IOPE" (inputs, outputs, preconditions, effects). Une classification selon une taxonomie industrielle et une description de qualité. 188
Une approche orientée agent pour la composition sémantique des services web Le nom de service peut être employé comme identification, alors que les descriptions de contact et de service sont du texte destiné spécialement pour des humains. La description de fonctionnalité permet au «profile» d'exposer les entrées, les sorties, les effets et les conditions préalables du service. En fin, le «profile» contient aussi de l'information sur la classification de service dans les diverses taxonomies, et quelques attributs pour décrire la qualité des services. 3.2 Service Model Le modèle de service (Dean et al, 2004), décrit le fonctionnement interne du service en terme de processus. Cette partie décrit la transformation entreprise par le service à travers Les données (les entrées et les sorties) et la transformation d'état (les préconditions et les effets.) Le modèle de service prévoit des primitives pour exprimer les différents types de processus, et des relations de contrôle. Plus précisément owls prévoie les types suivants : Processus Atomique, Processus Composé, et Processus Simple. Le processus atomique est exécutable dans une seule étape. Il représente le plus petit module qui sert à la création des autres processus, et il ne contient pas de sous processus en interne. Le processus composé : signifie que le processus peut être composé de sous-processus. Un ensemble de constructeurs est utilisé pour spécifier le flot de control et le flot de données tels que la séquence, les primitives de choix, de split (parallélisme). Un processus simple n'est pas exécutable (ou invocable). Il fournit une vue abstraite d'un processus ou d'un a ensemble de processus composés. 3.3 Service Grounding Le grounding décrit l accès au service (Dean et al, 2004). Il permet de spécifier les protocoles de transport et les formats de message. Le «profile» et le modèle de service sont considérés comme des représentations abstraites du service. Le rôle du grounding est de transformer ces représentations abstraites en une forme concrète qui peut être employée pour l'interaction. OWLS repose sur WSDL pour spécifier l interaction des services. Ainsi WSDL peut être considéré comme une couche basse utilisée dans owls. 4 Approche proposée : 4.2 Introduction : Pour résoudre le problème de composition sémantique nous prenons comme exemple d application le domaine de réservation de voyages, on suppose qu on a un ensemble de services de réservation qui présentent les mêmes structures d entées et de sorties, la différence entre eux réside dans les contraintes d utilisation (pré conditions / effets) On note que notre approche a utilisé une ontologie associée au domaine de voyages touristiques (pour décrire tous les termes techniques du domaine). 189
Figure 2 : exemple d un service de réservation Dans cet exemple nous avons comme contraintes : Ville_depart_service = Ville_depart_requete_client Ville_arrivée_service = Ville_arrivée_requete_client Date_depart_service Date_depart_requete_client (on gère uniquement l heure) Date_arrivée_service Date_arrivée_requete_client (on gère uniquement l heure) Top Opération Réserver Annuler Reserver_Vol Resever_Train Reserver_Bus Figure 3 : une partie de l ontologie de domaine 4.2 Introduction : La figure 4 montre l architecture du SMA qui réalise la composition sémantique des services. Recherche d agents fournisseurs répondant à la requête Médiateur Les agents fournisseurs sont déjà inscrits chez le médiateur le mediateurs Client Fournisseur 2 Redistribution de la Requête (input, output, classe d opération, contraintes) Fournisseur 1 Fournisseur 3 190
Une approche orientée agent pour la composition sémantique des services web Figure 4 : Architecture Distribuée pour la Composition Sémantique des Services Web Nous distinguons trois types d agents : L agent client : c est l agent qui va initier la composition, en émettant au médiateur, une requête constituée d entrées, de sorties, d une classe d opération (de service), et de contraintes (sur les entrées/sorties) + une référence sur l ontologie de domaine à utiliser (par exemple l ontologie des voyages touristiques). L agent médiateur : il connaît au préalable la localisation des agents fournisseurs ainsi que leur ontologie de domaine, son rôle est de redistribuer la requête aux agents fournisseurs concernés (qui ont le même domaine ontologique), et de récupérer les réponses (services offerts) avant de les envoyer au client. Les agents fournisseurs : ces agents réalisent la composition sémantique proprement dite. Chacun d entre eux dispose d une base de règles qui décrit la sémantique des services web publiés, (voir la page suivante). en plus, ils disposent d une ontologie de domaine pour permettre l inférence sémantique (cad l existence des liens de subsomption). L algorithme de composition essaye de chercher les matchings directs (services atomiques) et les matchings indirects (les plans de services). Il contient deux étapes : la création des plans et le processus de matching. 1- Pour la création des services web composites, l algorithme cherche à combiner les services deux à deux (s il n y a pas de voyage direct entre deux points alors il faut composer plusieurs services). Les services composites doivent avoir des entrées compatibles à celles de la requête client. Cette partie est détaillée dans la procédure créer_plan( ) 2-Le processus de matching matching( ) ) : doit vérifier les points suivants (voir la procédure nommée La classe de l opération (service) doit être compatible (selon l ontologie) avec celle de la requête. Par exemple si on cherche un mécanisme de transport routier alors tous les services de réservation de bus doivent être pris en compte. Les entrées et les sorties du service doivent être compatibles avec celles de la requête client ie, il doit y avoir des liens de subsomption entre le couple (entrées, sorties) de la requête et les couples (entrées, sorties) des services. Nous avons déjà développé cette partie de matching dans un travail antérieur (hadjila, malki, 2006) Les contraintes de la requête doivent être satisfaites par les conditions associées aux services (ville départ, ville arrivée, date départ, date arrivée) Au bout de cette phase de composition, les agents fournisseurs transmettent les résultats (services atomiques ou composites) au médiateur, qui s en charge de les cumuler et de les envoyer au client. 191
Enfin l agent client pourra visualiser les résultats, et invoquer éventuellement les services. Une formalisation typique d un service appartenant à la base de connaissance B.C d un agent fournisseur est donnée ci-dessous : Soit le service s1 constitué d une seule opération atomique p1. Le troisième argument indique les constituants de p1 (dans cet exemple p1 est atomique). Composants_service (s1, p1, [p1]). Le prédicat suivant montre la classe de l opération p1 Instance (p1, reservation_bus ). Les deux prédicats suivants indiquent les entrées et les sorties du service. Entrées (s1, p1, [ nom, num_carte_credit, ville_depart, date_depart, ville_arrivée, date_arrivée ]). Sorties (s1, p1, [ message de confirmation / infirmation ]). Les deux prédicats suivants indiquent les contraintes associées aux entrées Ville_depart (s1, p1, v1 ). // La ville de départ se nomme v1. Ville_arrivée (s1, p1, v2 ). // La ville d arrivée se nomme v2. Ce prédicat indique l entrée UDDI (le binding template) associée au service (s1,p1) Reference_UDDI (s1, p1, xxx). Le reste indique les contraintes sur l heure de départ (8 H ) et l heure d arrivée (10 H ). Pour simplifier l exemple, nous n avons pas considéré l année, le mois et le jour. On a supposé que tous les services sont quotidiens et que la durée d un service composite ne dépasse le jour. Date_depart (s1, p1, Année, Mois, Jour, Heure) Heure <= 8. Date_arrivée (s1, p1, Année, Mois, Jour, Heure) Heure >= 10. On donne par la suite le code natif de la composition proposée. Composition (classe_requete, entrées_requete, sorties_requete, ville_depart_requete, date_depart _requete, ville_arrivée _requête, date_arrivée _requete) { Résultat : ensemble de triplets (nom service, nom opération, référence(s)_uddi) repeter Créer_plan (classe_requete, entrées_requete, ville_depart_requete, date_depart _requete) ; Jusqu à la saturation de la B.C // saturer la base de connaissance. Résultat = matching (classe_requete, entrées_requete, sorties_requete, ville_depart_requete, 192
Une approche orientée agent pour la composition sémantique des services web date_depart _requete, ville_arrivée _requête, date_arrivée _requete) ; visualiser (Résultat) ; } Créer_plan (classe_requete, entrées_requete, ville_depart_requete, date_depart _requete) { } 1. rechercher un service (Si, Pi) compatible avec les entrées et les contraintes de la requête (ie tous les arguments de créer_plan).// utilisation de l ontologie. 2. rechercher un autre service (Sj, Pj) composable avec (Si, Pi) ie : a. ville arrivée de (Si, Pi) = ville départ de (Sj, Pj) b. heure arrivée de (Si, Pi) <= heure départ de (Sj, Pj) c. Pj est équivalent à classe_requete (ou une sous classe de classe_requete). 3. si l étape 2 a réussi alors ajouter le service composite (S,P,[Pi, Pj])à la B.C (s il n existe pas déjà), avec ses nouvelles informations. matching (classe_requete, entrées_requete, sorties_requete, ville_depart_requete, date_depart _requete, ville_arrivée _requête, date_arrivée _requete) : type de retour {(nom service, nom opération, référence(s)_uddi)} {Vérifier les points suivants : } 1. La classe du service doit etre subsemée par classe_requete 2. il y a des liens de subsomption (généralisation) entre le couple (entrées_requete, sorties_requete) d une part et leurs homologues dans la B.C 3. les contraintes associées aux entrées/ sorties du service ie : a. ville_depart_requete = ville_depart_service b. date_depart _requete <= date_depart _service c. ville_arrivée _requête = ville_arrivée _service d. date_arrivée _requete >= date_arrivée _service 5 travaux reliés : Différents efforts ont été dépensés pour le support de la composition des services, nous citons en premier lieu le standard industriel (BPEL4WS) (BEA, IBM, 2003). Ce langage a remplacé WSFL (Web services Flow Language) d IBM et XLANG de Microsoft. BPEL4WS fournit une spécification formelle des processus métiers (business processes) ainsi que les protocoles d interaction inter processus. Il étend le modèle du WSDL pour définir des processus composés d une multitude de services web. Ces processus sont généralement désignés comme workflows ou orchestration de services. Cependant on reproche au BPEL4WS son caractère statique et syntaxique (Dustdar, Schreiner, 2005), cad que nous ne pouvons pas exprimer des orchestrations dynamiques (à la demande) et que ne nous pouvons pas exprimer la sémantique des messages et des activités du workflow. (paolucci et al 2002) augmente les capacités d UDDI, en proposant une solution basée sur Damls (une version antérieure d owls), il utilise uniquement les entrées/sorties pour réaliser un matching à base de test de subsomption, (Gonzalez-Castillo et al, 2002), (Li, horrocks, 2003) 193
étendent l architecture de (paolucci et al, 2002) en ajoutant des améliorations, surtout dans la flexibilité de l algorithme de matching (par exemple en ajoutant d autres niveaux de correspondance).(mecella et al 2001) utilise les attributs syntaxiques (nombre de paramètres, types de paramètres ) pour vérifier la compossibilité de deux services, (Heuvel et al, 2001) définit des règles de composabilité pour comparer les catégories des services et les messages d I/O. (medjahed et al, 2003) présente une approche très intéressante, plus précisément il définit un ensemble de critères de composition, relevant de la syntaxe, la sémantique statique, la sémantique dynamique, et la qualité d opération. Chaque ensemble est constitué d un groupe de sous critères auxquels on associe des règles de composablité, ces derniers vont mesurer le degré d appariement entre la requête et le service. (Roman et al 2004) fournit un autre système de modélisation des services web sémantiques (une sorte de méta ontologie). Il est basé sur la médiation et le découplage des éléments du modèle. Il tend à résoudre tous les problèmes des services web sémantiques (y compris la composition). Mais il est encore en stade de recherche. (Guitton J,Humbert F, 2006) et (Bourdon, 2007) proposent une coopération multi agent pour planifier la composition, dans ce modèle les agents représentent les services et sont chargés de proposer et de coordonner leurs compétences afin de réaliser une tâche soumise par l utilisateur. Cette approche s articule sur le modèle théorique de la synthèse dialectique de plans proposé par (Pellier 2005) : les agents échangent des propositions sous la forme de conjectures afin de co-construire un plan solution. Ce modèle est constitué de trois phases : (1) la création du domaine de planification de chaque agent, ie traduction du la description owls en un langage adapté au planificateur. (2) le raffinement des conjectures proposées et (3) la communication entre les agents, i.e., la soumission d une proposition aux autres agents. (Bourdon, 2007) transforme ensuite le plan découvert en description exécutable de service web composite, et enfin, il détermine la QoS du service composite, en fonction des ontologies utilisées. 6 Conclusion Dans ce papier nous avons présenté un système multiagent pour la composition dynamique des services web sémantiques. Nous avons montré un protocole d interaction qui regroupe trois types d agents : l agent client, l agent médiateur, et les agents fournisseurs. Ces derniers ont la grande responsabilité dans l approche proposée, en effet, ils permettent de réaliser une correspondance basée sur le test de subsomption, entre la requête du client et les capacités sémantiques des services notées IOPE. En plus ils permettent de composer les services deux à deux en vu de produire des matching indirects. L architecture proposée présente beaucoup de souplesse, en matière d ajout, de retrait, de modification d agents fournisseurs. Nous avons présenté aussi un survol sur les approches proposées dans littérature. Comme perspectives à ce travail nous suggérons d autres critères de composition (voir (Mejahad,2003), de plus nous suggérons aussi une phase de sélection flexible qui classe les résultats selon leur degré de préférence. Références 194
Une approche orientée agent pour la composition sémantique des services web BEA, IBM, Microsoft (2003) Business Process Execution Language for Web Services (BPEL4WS). http://xml.coverpages.org/bpel4ws.html Bond. A and Gasser. L. (1988). Readings in Distributed Artificial Intelligence. San Mateo, California, Morgan Kaufman Publishers. Bourdon J., (2007) Multi-agent systems for the automatic composition of semantic web services in dynamic environments, Master s thesis, Ecole Nationale Superieure des Mines Saint- Etienne. Chaib-draa. B(1996). Interaction between agents in routine, familiar and unfamiliar situations. International Journal of Intelligent and Cooperative Information Systems, 1(5):7-20. Chaib-draa. B (1994). Distributed Artificial Intelligence : An overview. In A. Ken, J. G. Williams, C. M. Hall, and R.Kent, editors, Encyclopedia Of Computer Science And Technology, volume 31, pages 215-243. Marcel Dekker, Inc. Chinnici, R., Gudgin, M., Moreau, J. and Weerawarana, S. (2003) Web Services Description Language (WSDL) Version 1.2 ", W3C Working Draft, Available at http://www.w3.org/tr/2003/wd-wsdl12-20030124/ Curbera. F, M. Duftler, R. Khalaf, W. Nagy, N. Mukhi, and S. Weerawarana. (2002) Unraveling the Web Services Web: An Introduction to SOAP, WSDL, and UDDI. IEEE Internet Computing, 6(2). Curbera. F, Nagy. W, and Weerawarana. S. (2001 ): Web Services: Why and How. Workshop on Object-Oriented Web Services OOPSLA, Tampa, Florida, USA. Dean. M, (ed). (2004). OWL-S: Semantic Markup for Web Services. Version 1.0, Dustdar, S. and Schreiner, W. (2005) A survey on web services composition, Int. J. Web and Grid Services, Vol. 1, No. 1, pp.1 30. Ferber. J. (1995) Les systèmes multi-agents: Vers une intelligence collective.. InterEditions, Gonzalez-Castillo. J. Trastour, D, and Bartolini. C. (2002). Description Logics for Matchmaking of Services. In Workshop on Applications of Description Logics ADL. Vienna, Austria. Guitton J., F Humbert., (2006) Planification multi-agent pour la composition dynamique de services Web thèse de Master, Universit e Joseph Fourier Grenoble 1. Hadjila. F, M. Malki, (2006) Les services web sémantiques: Une approche de découverte basée sur les agents CIIA Saida, Algérie. Heuvel JVD, Yang J, Papazoglou MP (2001) Service representation, discovery and composition for E-marketplaces.In: Proceedings of the CoopIS conference, Trento, Italy, pp 270 284 Li. L and Horrocks. I. (2003). A Software Framework for Matchmaking Based on Semantic Web Technology. In Proc. of the Twelfth International World Wide Web Conference (WWW 195
2003), pages 331-339, ACM. Mecella M, Pernici B, Craca P (2001) Compatibility of eservices in a cooperative multiplatform environment.in: Proceedings of the 2nd VLDB TES workshop, Rome pp 44 57 Medjahed. B., Bouguettaya. A., and Elmagarmid. A.K. (2003): Composing Web Services on the Semantic Web. The VLDB Journal The International Journal on Very Large Data Bases, Volume 12 Issue 4. Moulin.B and Chaib-draa. B. ( 1996).An overview of distributed artificial intelligence. In G. M. P. O'Hare and N. R. Jennings, editors, Foundations of Distributed AI, pages 3-54. John Wiley & Sons : Chichester, England, Paolucci. M., Kawamura. T., Payne. T.R., and Sycara. K. (2002): Semantic Matching of Web Services Capabilities. In Proc. of the First International Semantic Web Conference (ISWC2002). Sardinia (Italy). Pellier. D (2005) Modeledialectique pour la synthese des plans Phd thesis UJF- grenoble Roman. D Keller. U, Lausen, H. (2004) : WSMO Web Service Modeling Ontology (WSMO), DERI Working Draft, http://www.wsmo.org/ 2004/d2/v0.1/20040214/. 196