• Aucun résultat trouvé

Un modèle Promela des processus workow

Vérication de processus workow par Model Checking

4.3 Un modèle Promela des processus workow

Dans ce travail, nous présentons une méthode, basée sur SPIN model checker, pour la vérication des propriétés de cohérence d'un workow net. Avant d'interroger SPIN, une

préparation du modèle à vérier est nécessaire et se fait en deux étapes. La première étape consiste à traduire le WF-net en langage Promela. Dans la deuxième étape, les propriétés sont exprimées par des formules LTL (Logique Temporelle Linéaire). La première étape fait l'objet de la section en cours alors que la deuxième étape fera l'objet de la section 4.4. Une méthode de modélisation des réseaux de Petri avec le langage Promela a été intro-duite par Holzmann dans [61, 62]. Dans cette méthode, un réseau de Petri est représenté par un processus unique. La représentation du réseau de Petri donnée dans [61, 62] a été réécrite dans [121] représentant l'ensemble des places P par un tableau de |P| éléments plutôt que|P|variables.

La spécication Promela d'un réseau de Petri donnée dans [61] ne décrit que le mar-quage des places et ne prend pas en compte le nombre de tirs des transitions. Toutefois, il est nécessaire d'enregistrer le nombre de franchissement de chaque transition, tout en progressant dans l'exécution du processus. Ces informations seront utilisées lors de la vé-rication des critères de cohérence.

Dans le reste de cette section, nous présentons une spécication du workow net en language Promela.

Le comportement d'un WF-net peut être décrit en termes d'états du système et de leur évolution. Un marquage est initialisé àMi et il est modié en fonction de la règle de tran-sition qui suit : Une trantran-sitiontest franchissable si chaque place d'entrée detest marquée. En outre, une transition franchissablet peut être franchie ou pas. Un franchissement det

enlève un jeton de chaque place d'entréep∈tet ajoute un jeton à chaque place de sortie de t.

Le comportement dynamique d'un processus peut être décrit en Promela dans le pro-cessus init. Ainsi, le mot-clé init est utilisé pour déclarer le comportement du processus qui est actif à l'état initial du système. Dans ce processus, nous proposons de décrire l'exé-cution des tâches par une boucle do dans laquelle chaque ligne spécie un franchissement d'une transition (i.e. une exécution d'une tâche). Par conséquent, chaque ligne décrit les instructions à exécuter pour assurer le franchissement de la transition : enlèvement des jetons des places d'entrée et production des jetons dans les places de sortie. La séquence de ces instructions relatives à un franchissement d'une transition doit être exécutée comme une unité atomique, sans entrelacement avec d'autres processus, et donc nous précédons la séquence des instructions du franchissement par atomic.

Nous proposons de présenter la spécication Promela d'un WF-net en BNF (Backus Naur Form) dans laquelle< P rocess > est l'axiome (symbole initial) :

4.3. UN MODÈLE PROMELA DES PROCESSUS WORKFLOW < P rocess > ::= init { < Initial_M arking > do < F irings > od }

< F irings > ::= < F iring > < F irings > < F iring > ::= :: atomic {

< Enabled_T k > → < F ire_T k >

}

Notons que dans la dernière ligne< Enabled_T k >→< F ire_T k >,< Enabled_T k >

est une condition et < F ire_T k > est une action qui va être exécutée si et seulement si

< Enabled_T k > est vraie. L'exécution de la boucle do continue d'une façon non déter-ministe dans une branche dont la condition est vraie.

Pour simplier la spécication Promela d'un net, nous proposons de décrire le WF-net en termes de marquage des places et de nombre de tirs des transitions. Par conséquent, nous utilisons les conventions suivantes :

Les places sont représentées par un tableauP Lde variables de typesbytede longueur égale au nombre de places. Ce tableau contient initialement zéro dans chaque élément. Les transitions sont modélisées par un tableauT Rde variables de types byte

(initia-lisées à zéro) dont la longueur est égale au nombre de transitions.

Les concepts reliés au comportement dynamique d'un processus workow sont traduits dans la description Promela du WF-net correspondant comme suit : Le tir d'une transition consiste d'une part en la décrémentation de 1 de la valeur correspondante à chaque place

p∈tdans le tableauP L (destruction de jetons) et d'autre part en l'incrémentation de1

des éléments deP Lcorrespondant aux places de sortie (p∈t) (c'est ce qui correspond à la production de jetons). De plus, ce tir detva être enregistré en augmentant de1 l'élément de T Rcorrespondant à la transition t.

Ces modications sont assurées par les macrosf ire,addi,ide1àSetremovej,jallant de1 àK,K etS sont respectivement le nombre maximum de places d'entrée possibles et le nombre maximum de places de sortie possibles.

Pour franchir une transitiontqui aI places d'entrée etJplaces de sortie, nous appelons ces macros avec les arguments appropriés :

1. removeI(p1, p2, .., pI) détruit un jeton de chaque place d'entrée. Ce macro vérie si ces places d'entrée sont marquées (P L[indice_de_pj] > 0, 1 ≤ j ≤ I) et une fois cette condition est satisfaite, il enlève un jeton de chacun de ses paramètres.

2. f ire(t) incrémente l'élément correspondant àtdansT R.

3. Et nalement addJ(p1, p2, .., pJ) crée un jeton dans chacune des places passées en arguments de ce macro.

Ainsi, en utilisant ces macros, la séquence atomique< Enabled_T k >→< F ire_T k >

removeN(P L[I1], P L[I2], .., P L[IN]) −> f ire(T R[indice_de_T k]);

addM(P L[O1], P L[O2], .., P L[OM])

Dans cette spécication Promela d'un franchissement d'une transition T k, nous avons noté parN le nombre des places d'entrées deT ket parM le nombre de ses places de sortie. Nous avons aussi supposé que les indices des places d'entrées dans P Lsont I1, I2, .., IN et les indices des places de sortie sontO1, O2, .., OM.

Cette description Promela d'un WF-net et son comportement est illustrée par un exemple.

La description Promela du WF-net de la gure 4.2 est présentée dans la gure 4.3.

Figure 4.2 Un exemple de WF-net

4.4 Formulation des propriétés de cohérence d'un WF-net en