Courtage sémantique de services de calcul

Courtage sémantique de services de calcul

Descriptions possibles et méthodes de comparaison associées

Différentes approches existent pour la description et le courtage de services. Une étude pour la réutilisation de code a été effectuée dans [MMM98]. Dans ce chapitre, nous reprendrons certaines des descriptions étudiées dans cet article, mais nous en décrirons également d’autres. En effet, cet article date de 1998 et de nouvelles techniques ont vu le jour depuis. Notamment, l’apparition des web services a fait naître de nouveaux besoins et de nouvelles solutions. Un web service est un composant réalisé dans un langage quelconque, déployé sur une plate-forme quelconque et enveloppé dans une couche standard exprimée en XML. Il peut être découvert et invoqué dynamiquement par d’autres services. Afin que cette découverte et cet appel soient réalisables, une description doit être ajoutée à ce web service. L’ensemble s’intègre dans le web sémantique. Cette description se fait initialement à l’aide de WSDL4 (Web Services Description Language) qui est une approche basée sur les signatures, et/ou RDF5 (Resource Description Framework) [LS99] et UDDI6 qui sont des approches par mots-clés. Pour pallier le manque de précision de ces descriptions, des ontologies ont été développées pour exprimer la signification des mots-clés et des relations 4http://www.w3.org/TR/wsdl 5http://www.w3.org/RDF/ 6http://www.uddi.org 4 Introduction qui les lient. DAML+OIL7 et OWL8 [MvH04] sont des langages utilisés pour décrire ces ontologies. Nous retrouvons cette approche par signature dans les approches classiques des langages de programmation, des composants, des types abstraits, des modules, … Cette information peut également être enrichie de mots-clés pour apporter une information complémentaire. Il existe d’autres descriptions plus formelles comme les spécifications algébriques, la logique de Hoare, qui permet d’exprimer la sémantique par des relations logiques entre les paramètres et les résultats. Nous nous intéresserons plus particulièrement à la description par spécifications algébriques, qui est celle que nous avons adoptée. Les différentes descriptions seront développées sur l’exemple suivant, où les lettres majuscules désignent des matrices et les lettres grecques des scalaires. Les services disponibles seront : – serv1(matrix A,matrix B) = A + B – serv2(matrix A,matrix B) = A ∗ B – serv3(matrix A,matrix B,matrix C,matrix D) = A ∗ B + C ∗ D – serv4(real α,matrix A) = α ∗ A 

Les signatures et isomorphismes de types

 Les caractéristiques des services les plus faciles à obtenir sont le nombre et le type des entrées (paramètres) et sorties (résultats). La plupart des langages de programmation proposent de définir les signatures des méthodes dans une interface. En Corba9 , par exemple, les interfaces sont exprimées en IDL10 (Interface Definition Language) et des mécanismes d’introspection d’interfaces (DII et DSI [GGM99]) permettent la découverte des signatures des services disponibles. La signature des services est une information importante que doit contenir la description d’un service. En effet, si le service est invoqué avec des types incompatibles avec la signature, il y aura une erreur. 

Technique de description 

 IDL (CORBA) En IDL, l’interface décrivant les services de notre exemple s’écrit de la façon suivante : matrix serv1(in matrix A, in matrix B) ; matrix serv2(in matrix A, in matrix B) ; matrix serv3(in matrix A, in matrix B, in matrix C, in matrix D) ; matrix serv4(in real alpha, in matrix A) .

 Technique de description : WSDL (Web Services) 

Dans le cas des web services, un fichier WSDL (Web Services Description Language) est utilisé pour décrire les types des paramètres d’entrée et de sortie. Le fichier suivant est un extrait du fichier WSDL engendré à l’aide d’Axis11 pour décrire les entrées et les sorties des services 1 et 2. Pour simplifier le fichier et ne pas avoir à gérer le mapping des données, les matrices ont été remplacées par des entiers. … Les noms des services et des paramètres sont présents dans des balises de la forme : Les types des paramètres sont présents dans des balises de la forme : … Le type de retour est présent dans une balise de la forme : 11http://ws.apache.org/axis/ 6 Introduction Les types possibles sont ceux définis à l’aide des balises « simpleType » et « complexType » de XSD (XML Schema Definition)

Technique de comparaison : Isomorphismes de type 

De nombreux travaux ont été réalisés pour trouver un nom de service dans une librairie à partir de la signature du service recherché. Citons par exemple [Rit89, RT89, ZW93]. Ces travaux soulignent l’importance de ne pas se limiter à une correspondance exacte des types. En effet, la fonctionnalité du service est la même si l’ordre des paramètres du service est permuté. Mais, il peut également être intéressant de proposer des services dont la signature se rapproche de celle recherchée sans être, pour autant, exactement identique. Dans le cas de systèmes polymorphes, il peut aussi être intéressant de renvoyer des signatures plus générales que la requête. Les travaux existants permettent par exemple de retrouver le service 4 à partir des recherches des signatures suivantes : – (real,matrix) → matrix – (matrix,real) → matrix – matrix → (real → matrix) – real → (matrix → matrix) – . . . Dans [ZW93], une procédure pour rechercher des modules représentés sous la forme d’un ensemble de services est proposée. Elle est, elle aussi, relaxée pour pouvoir trouver une sous partie du module. Dans [DPR05], les auteurs proposent de retrouver une interface dans le contexte d’un langage objet. Ils se placent donc dans le cadre de types récursifs avec sous-typage et d’un produit cartésien associatif et commutatif. Cette recherche des types isomorphes est réalisée à partir d’un ensemble figé d’équations sur les types. Des propriétés telles que la commutativité dans les paires pourront être décrites, mais si un nouveau type est ajouté (comme les triplets), l’intégralité de l’algorithme de comparaison doit être reconstruit

Table des matières

1 Introduction
1.1 La problématique
1.2 Descriptions possibles et méthodes de comparaison associées
1.2.1 Les signatures et isomorphismes de types
1.2.2 Exploitation de mots-clés
1.2.3 Web sémantique : les ontologies
1.2.4 Les spécifications formelles en génie logiciel
1.2.5 Synthèse
1.3 Les projets existants
1.3.1 Domaines applicatifs spécifiques
1.3.2 Les projets génériques
1.4 Conclusion
2 Formalisation du problème
2.1 Les spécifications algébriques
2.1.1 Définitions
2.1.2 Les langages de spécifications algébriques
2.1.3 Comparaison grâce à la réécriture
2.1.4 Unification, filtrage, unification équationnelle et filtrage équationnel
2.2 Représentation du domaine, des services et de la requête
2.2.1 Le domaine
2.2.2 Les services
2.2.3 La requête
2.3 Description de l’ensemble des services réalisables
2.4 Description de l’ensemble des solutions
2.5 Propriétés des suites de transformations
3 Le courtage basé sur le filtrage équationnel
3.1 Le système d’inférence de Gallier et Snyder
3.2 Autres travaux sur l’unification équationnelle
3.3 L’algorithme basé sur le filtrage équationnel
3.3.1 Le principe de base
3.3.2 Preuve de la correction
3.3.3 Discussion sur la complétude
3.3.4 Traitement des équations
3.4 Exemples
3.5 Réalisation
3.5.1 L’algorithme
3.5.2 Traitement des équations
3.5.3 Construction des solutions
3.5.4 Options
3.6 Un algorithme parallèle et incrémental
3.6.1 Un algorithme parallèle
3.6.2 Un algorithme incrémental
3.7 Le typage
3.7.1 Les choix
3.7.2 La réalisation
3.8 Les limites de cette approche
4 Un algorithme optimisé
4.1 Résolution du problème de base : une requête et un service
4.1.1 Arbre de décomposition
4.1.2 Les formes résolues et la solution associée
4.1.3 Exemples
4.2 Étude d’un cas simple : V ar(e1) = V ar(e2)
4.2.1 Preuve de la correction
4.2.2 Preuve de la complétude
4.3 Extension à V ar(e1) ⊂ V ar(e2)
4.4 Étude d’un cas intermédiaire
4.4.1 Preuve de la correction
4.4.2 Discussion de la complétude
4.5 Étude du cas général
4.5.1 Preuve de la correction
4.5.2 Discussion de la complétude
4.6 Traitement des équations
4.7 Complexité
4.7.1 Sans composition
4.7.2 Avec composition
4.7.3 Bilan
4.8 Implantation de l’algorithme
4.8.1 Le principe de base
4.8.2 Options
4.9 Un mode incrémental ?
4.10 Typage
4.10.1 Impact sur l’algorithme
4.10.2 Réalisation
4.11 Interaction entre domaines
4.11.1 Contraintes sur les domaines
4.11.2 Gestion du multi-domaines
4.11.3 Impacts sur l’algorithme
4.12 Conclusion
5 Application à des domaines particuliers
5.1 Saisie du problème : l’interface web
5.1.1 Les domaines
5.1.2 Les bibliothèques
5.1.3 Les requêtes
5.1.4 Exécution
5.2 L’algèbre linéaire
5.2.1 Pourquoi ce domaine ?
5.2.2 Formalisation du domaine
5.2.3 Les bibliothèques
5.2.4 Des exemples
5.2.5 Conclusion
5.3 L’optimisation
5.3.1 Formalisation du domaine
5.3.2 Les bibliothèques
5.3.3 Exemples
5.3.4 Conclusion
5.4 Interaction entre l’algèbre linéaire et l’optimisation
5.4.1 L’intersection des domaines
5.4.2 Un exemple : Machines à Vecteurs Supports
5.5 Conclusion
6 Conclusion et Perspectives
6.1 Bilan
6.2 Perspectives
6.2.1 Finalisation des preuves de complétude du second algorithme .
6.2.2 Améliorations des performances de l’algorithme
6.2.3 Intégration dans des intergiciels
6.2.4 Intégration au projet TLSE
6.2.5 Participation au projet LEGO
6.2.6 Manipulation de documents XML
6.2.7 Enrichissement de la description des services
A Fichiers XML
A.1 Domaine
A.2 Bibliothèque
A.3 Requête
B Formalisation de l’algèbre linéaire
B.1 Les types
B.2 Les opérateurs
B.3 Les équations
B.4 Le BLAS
B.4.1 Niveau 1
B.4.2 Niveau 2
B.4.3 Niveau 3
C Optimisation
C.1 Les types
C.2 Les opérateurs
C.3 Les équations
C.4 La boîte à outils Matlab
C.5 E04 – NAG

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *