Interprétation d’une politique de contrôle d’accès ASTD par des processus BPEL
La structure et le format de données
Les processus BPEL correspondant à chacune des structures ASTD communiquent par des requêtes et des réponses SOAP qui utilisent des formats d’encodage de spécifications ASTD et leur état courant. En plus de contenir ces informations, les messages 138 SOAP contiennent suivant les besoins : – l’environnement courant au contexte de la requête d’autorisation ; – la requête d’autorisation elle-même.
Document XML d’une spécification ASTD
La politique contrôle d’accès dynamique modélisée avec le langage ASTD est encodée dans un document XML pour pouvoir être utilisée par le filtre pour les décisions d’autorisation. Le métamodèle du langage ASTD sur lequel cet encodage repose est brièvement présenté à la section 1.1. Ce modèle est défini par le schéma XSD du fichier ASTD.xsd dont le contenu est listé dans le programme A.1 à l’annexe A. L’élément XML Specification est l’élément racine du document XML. Il est un type complexe anonyme qui contient une suite non vide de structures ASTD, comme le montre la figure 6.6. La suite non vide est introduite dans le type complexe de la spécification par une séquence de références à un groupe XML qui otype complexe (initiales ct) qui contient une séquence (initiales seq). Cette dernière contient à son tour un groupe XSD (initiales gr), tout cela sous la forme de balises XSD imbriquées. Les principaux éléments XML pour les structures ASTD sont montrés dans la figure 6.7. Le schéma XSD définit le type complexe (élément complexType) abstrait tASTDBase qui sert de base à la définition des types complexes des diment XML Automaton (respectivement Sequence et Call) hérite directement du type abstrait tASTDBase. Le type tSequence en particulier n’hérite pas de tBinaryOperator puisque le langage ASTD désigne par first et second les sousstructures de la séquence, au lieu de left et right. L’élément XML Automaton (respectivement Sequence et Call) encode la structure ASTD automate (respectivement séquence et appel). La figure 6.8 est un exemple d’une structure ASTD choix quantifié. Il contient une sous-structure ASTD garde, qui elle comporte une sous-structure automate. Le programme 6.1 illustre l’encodage XML de la spécification de la figure 6.8. Les lignes 1 et 54 de ce programme correspondent respectivement à l’ouverture et à la fermeture des balises de l’élément XML QChoice qui encode la structure ASTD choix quantifié. En particulier, la ligne 1 contient les attributs a:Name et a:X qui encodent respectivement le nom de la structure et le nom de la variable quantifiée. Entre ces lignes d’ouverture et fermeture de l’élément QChoice, les lignes 5 et 12, qui correspondent à l’ouverture et à la fermeture des balises de l’élément XML a:T, encodent le type des valeurs de la variable de quantification de la structure ASTD. Ce type est représenté comme une énumération XSD des valeurs clerk et ho des rôles possibles (dans la spécification de la figure 6.8 Roles = {clerk,ho}). Le sous-élément XML a:B (lignes 13 à 53) contiennent la sous-structure ASTD du choix quantifié qui est une garde. Le procédé d’encodage continue ainsi de façon récursive aux lignes 14 à 52.