Description des jeux d’essai
Les jeux d’essai visent à évaluer les deux implémentations du filtre. Les données d’essai comportent des spécifications ASTD et pour chacune d’elles des séquences d’actions à tester ainsi que les résultats prédéterminés afin de les comparer avec les résultats obtenus lors de l’expérience. Ces données d’essai sont rassemblées dans un fichier qui respecte le format XML décrit dans le programme 7.1. Les lignes 3 à 5 contiennent une spécification ASTD et les lignes 6 à 16 incluent ses séquences d’actions (TestCase) imbriquées dans la balise TestSuite. Chaque séquence commence avec l’action Init (opération d’initialisation du filtre) et termine avec l’action Stop Programme 7.1 – Fichier des données d’essai (opération d’arrêt du filtre). Les autres actions possibles sont Event (opération de demande d’autorisation pour un événement) et les actions Commit/Rollback. Dans le cas de l’action Event (ligne 9), l’élément XML comporte le nom de l’événement et ses paramètres (le cas échéant) ainsi que la valeur de retour attendue pour la demande d’autorisation (granted ou denied). À la ligne 10, l’action Commit est utilisée avec les valeurs booléennes attendues des variables de débogage IsFinal et IsCompleted. L’action Rollback, qui n’est pas illustrée dans cet exemple, utilise aussi les même variables de débogage. À partir du fichier de données d’essai, trois groupes de fichiers sont créés : le groupe de fichiers relatif à la méthode de transformation, le groupe de fichiers relatif à la méthode d’interprétation et le groupe de fichiers projet de l’outil d’exécution des tests et des fichiers de scripts pour piloter l’exécution des jeux d’essai et générer les statistiques.
L’algorithme de transformation détaillé au chapitre 5 est implémenté dans un programme écrit en OCaml 1 et dans un ensemble de feuilles de style XSL. Puisque les résultats attendus de la transformation sont i) des processus BPEL, ii) le document d’interfaces WSDL et iii) les fichiers de déploiement pour le moteur d’exécution ODE, l’utilisation d’un processeur XSLT et de feuilles de style XSL semble appropriée car 1. Site Web du langage OCaml : caml.inria.fr/ocaml 162 7.1. Description des jeux d’essai Spécifications ASTD + Séquences d’actions OCaml Structures XML pour BPEL Structures XML pour BPEL Structures XML pour BPEL xsl Processus BPEL Processus BPEL Processus BPEL Structures XML pour WSDL xsl Fichier d’interface WSDL Structures XML pour ODE xsl Fichier de déploiement ODE Fichiers de calcul XSL Fichiers de calcul XSL Fichiers de calcul XSL Processeur XSLT Filtre Figure 7.1 – Création du filtre de contrôle d’accès tous ces fichiers sont dans un format XML. Le rôle du programme OCaml est de diriger la transformation en extrayant les spécifications ASTD du fichier de données d’essai. Une fois une spécification extraite, le programme la réorganise en fonction de la sortie attendue (respectivement les processus BPEL, le document d’interfaces WSDL et le fichier de déploiement) et traite ces nouveaux documents XML à l’aide du processeur XSLT et de la feuille de style correspondante (respectivement Process.xsl, FilterProcessInterface.xsl et Deploy.xsl). Ce traitement est illustré à la figure 7.1 et il est répété pour chaque spécification ASTD du fichier de données d’essai.
Le nombre de documents XML (désigné par d) générés par le programme OCaml est fonction de la spécification ASTD : d = 1+nombre de structures appel, fermeture de Kleene et synchronisation quantifiée. Ce nombre est également le nombre de processus BPEL créés. Chaque groupe de fichiers créés pour le filtre est enregistré dans un dossier correspondant à la spécification ASTD transformée. 163 Chapitre 7. Expérimentation Spécifications ASTD + Séquences d’actions xsl Processeur XSLT Spécifications ASTD Figure 7.2 – Extraction des spécifications du filtre de contrôle d’accès Dans le cas de la méthode d’interprétation décrite au chapitre 6, les fichiers de processus ne sont pas à créer parce qu’ils constituent l’interpréteur. Cependant, les spécifications ASTD sont extraites du fichier de données d’essai et rassemblées dans un fichier XML pour être interprétées par le filtre. L’action Init d’une séquence d’actions indique, par la valeur de son paramètre PId, laquelle des spécifications sera testée.
L’extraction des spécifications se fait par un processeur XSLT et une feuille XSL appropriée, comme illustrée à la figure 7.2. Les séquences d’actions exécutées sont concrètement des appels de services Web. Ces appels sont des messages SOAP envoyés par un outil approprié de test des services Web. L’outil choisi pour notre expérience est soapUI 2.
Environnements de test
Les tests sont réalisés sur le réseau local de la Faculté des sciences de l’Université de Sherbrooke. Ils sont exécutés sur deux machines dans une configuration client-serveur. La machine serveur est celle sur laquelle s’exécute le moteur d’exécution ODE3. Il s’agit d’une machine virtuelle Linux dont les caractéristiques matérielles et logicielles sont indiquées dans le tableau 7.1. La machine client exécute le programme soapUI.