• Aucun résultat trouvé

Analyse formelle de compatibilit´ e

ensemble d’automates support´es par UPPAAL. Ces automates pr´eservent la s´emantique que nous consid´erons dans les protocoles de conversations temporis´ees asynchrones. D´efinition 9 (Protocole de conversations transform´e )

L’automate temporis´e Q support´e par UPPAAL, r´esultant du processus de transformation, est d´efini par le tuple (S, s0, sf, cu, R, X, V M, T, Inv) tel que :

– S est l’ensemble des ´etats, – s0 est l’´etat initial,

– sf est l’´etat final, – cu un canal urgent,

– R est l’ensemble des variables de messages, – X est l’ensemble des horloges,

– V M est l’ensemble des contraintes sur les variables de messages,

– T est l’ensemble de transition tel que T ⊆ S × OP (R) × V M × Ψ(X) × 2X × S qui sp´ecifie que lors du d´eclenchement d’une transition, on effectue une op´eration OP (on incr´emente la variable de messages par un r + + : correspond `a un message envoy´e, d´ecr´ementation de la variable par un r − − : correspond `a un message consomm´e), une contrainte sur les variables V M (si OP(R)=r–, V M = r > 0, sinon V M = ∅), une contrainte temporelle, et l’ensemble des horloges `a r´einitialiser). – Inv : S → Ψ(X) associe un invariant aux ´etats

Figure 4.17 montre les automates temporis´es r´esultant du processus d’abstraction des protocoles de conversations des services Web introduits dans la section 1.3.

Apr`es avoir pr´esent´e les ´etapes de transformation, dans ce qui suit, nous pr´esentons la d´emarche formelle que nous proposons pour caract´eriser l’interop´erabilit´e que peuvent mener un ensemble de services Web dans une chor´egraphie.

4.4 Analyse formelle de compatibilit´e

Dans la section pr´ec´edente, nous avons montr´e la n´ecessit´e et l’importance d’une ap-proche formelle d’analyse de compatibilit´e de services Web. Dans la suite de cette section, nous pr´esentons les primitives qui, en se basant sur le mod`ele r´esultant du processus de transformation, permettent de classer le type d’interop´erabilit´e que peuvent mener un ensemble de services Web.

L'état initial Décrémentation des variables Incrémentation des variables Un invariant Le canal urgent: urgent broadcast chan cv;

L'état final

Figure 4.17 – Les automates temporis´es support´es par UPPAAL r´esultants du processus de transformation

4.4. Analyse formelle de compatibilit´e Nous distinguons cinq classes de compatibilit´e : (1) compatibilit´e totale parfaite, (2) compatibilit´e totale non-parfaite, (3) compatibilit´e partielle parfaite, (4) compatibilit´e par-tielle non-parfaite et (5) incompatibilit´e totale.

4.4.1 Compatibilit´e totale parfaite

En g´en´eral, un ensemble de services Web est dit totalement et parfaitement compatible, si lors de la collaboration des services, aucun blocage ne peut apparaˆıtre. En outre, puisque les services Web sont de nature asynchrone, i.e., l’envoi et la r´eception des messages ne sont pas synchronis´es, alors pour que les services soient totalement et parfaitement compatibles, on doit v´erifier que tous les messages sortants sont consomm´es. Comme mentionn´e dans la section 4.2, les blocages peuvent survenir pour des raisons li´es aux aspects temporis´es et non-temporis´es des services Web.

En r´ecapitulant, un ensemble de services Web temporis´es asynchrones est dit totale-ment et parfaitetotale-ment compatible si tous les messages entrants peuvent ˆetre consomm´es (aucun blocage temporis´e ou non-temporis´e ne surgit) et en mˆeme temps, tous les mes-sages sortants peuvent ˆetre tous consomm´es (pas de messages suppl´ementaires).

Formellement, ceci revient `a v´erifier que tous les services atteignent leurs ´etats finaux et que, lorsque les services atteignent leurs ´etats finaux, la valeur de toutes les variables de messages doit ˆetre ´egale `a z´ero. En effet, la valeur des variables repr´esente le nombre d’occurrences du message envoy´e. Quand un message est envoy´e (resp. consomm´ee), la variable correspondante est incr´ement´ee (resp. d´ecr´ement´ee).

Soient P1, . . ., Pn, n services et R1, . . . , Rn l’ensemble des variables de messages. L’en-semble des services est dit totalement et parfaitement compatible si la formule CTL sui-vante est v´erifi´ee.

AF P1.f inal ∧ . . . ∧ Pn.f inal ∧

AG (P1.f inal ∧ . . . ∧ Pn.f inal ⇒ AF r1 == 0 ∧ . . . ∧ rm == 0) tel que ri ∈ {R1, . . . Ri, . . . , Rn}

(4.1)

En d’autres termes, la formule 4.1, sp´ecifie que tous les chemins de chaque service m`enent vers l’´etat ’final ’ et en mˆeme temps, quand les services atteignent leur ´etat final, la valeur de toutes les variables de messages est ´egale `a z´ero.

Exemple 10 Les services SP, SM, et SEM introduits dans la section 1.3 sont dits tota-lement et parfaitement compatibles si

AF SP.f inal ∧ SM.f inal ∧ SEM.f inal∧

AG (SP.final ∧ SM.final ∧ SEM.final ⇒ AF notificationdisponibilite==0 ∧ examen==0 ∧ examenpermis==0 ∧ cartehandicape==0∧ examenconduire==0 ∧ formulaire==0 ∧ demandecartehandicape==0 ∧ formulairepermis==0 ∧ demandepermis==0 ∧ notification2==0 ∧ notification1==0 ∧ notification3==0 ∧ demandeattestation1==0 ∧ notification4==0 ∧ demandecartehadicape==0 ∧ demandeattestationdomicile==0∧ demandeexamenmedical==0∧ formulairearemplir==0 ∧ demandebourse==0 ∧ notification6==0

∧ notification5==0 ∧ envoyerattestation==0 ∧ envoiResultat==0 ∧

demandeetatcivil==0 ∧ envoirapport==0 ∧ formulairemedicalaremplir==0 ∧ propositionDatesRDV==0 ∧ formulairemedical==0 ∧ confirmationRDV==0 ∧ demandeexamen==0 ∧ attestation==0∧ annulation==0 ∧ notification==0)

4.4.2 Compatibilit´e totale non-parfaite

Quand les services Web peuvent collaborer ensemble sans blocage mais durant leurs interactions, des messages produits ne sont pas consomm´es, alors on dit que ces services sont totalement mais non-parfaitement compatibles.

Formellement, un ensemble de services Web est dit totalement mais non-parfaitement compatible si tous les chemins de chaque service m`enent vers l’´etat final mais en mˆeme temps, il existe au moins une variable de messages dont la valeur est sup´erieure `a z´ero. Ceci est sp´ecifi´e par la formule CTL suivante :

AF P1.f inal ∧ . . . ∧ Pn.f inal ∧

EF(P1.f inal ∧ . . . ∧ Pn.f inal ⇒ r1 > 0 ∨ . . . ∨ rn> 0) where ri ∈ {R1, . . . Ri, . . . , Rn}

(4.2)

Exemple 11 Les services SP, SM and SEM introduits dans la section 1.3 sont dits to-talement mais non-parfaitement compatibles si :

4.4. Analyse formelle de compatibilit´e AFSP.f inal ∧ SM.f inal ∧ SEM.f inal∧

EF(SP.f inal∧SM.f inal∧SEM.f inal ⇒ notificationdisponibilite>0 ∨ examen>0 ∨ examenpermis>0 ∨ cartehandicape>0∨ examenconduire>0 ∨ formulaire>0 ∨ demandecartehandicape>0 ∨ formulairepermis>0 ∨ demandepermis>0 ∨ no-tification2>0 ∨ notification1>0 ∨ notification3>0 ∨ demandeattestation1>0 ∨ no-tification4==0 ∨ demandecartehadicape>0 ∨ demandeattestationdomicile>0∨ demandeexamenmedical>0∨ formulairearemplir>0 ∨ demandebourse>0 ∨ notification6>0 ∨ notification5>0 ∨ envoyerattestation>0 ∨ envoiResultat>0 ∨ demandeetatcivil>0 ∨ envoirapport>0 ∨ formulairemedicalaremplir>0 ∨ propositionDatesRDV>0 ∨ formulairemedical>0 ∨ confirmationRDV>0 ∨ demandeexamen>0 ∨ attestation>0 ∨ annulation>0 ∨ notification>0)

4.4.3 Compatibilit´e partielle non-parfaite

Etant donn´ee l’h´et´erog´en´eit´e des services Web, dans une chor´egraphie, les services peuvent mener des conversations incorrectes. Une conversation ´echou´ee, ou appel´ee in-correcte, est une conversation dans laquelle il y a au moins un service qui reste bloqu´e en attente d’un message qu’il ne peut pas recevoir ou envoyer. Les services Web dans une chor´egraphie sont dits incompatibles d`es lors que l’ensemble des conversations ´echang´ees contient au moins une conversation incorrecte.

Formellement, un ensemble de services Web n’est pas totalement compatible, s’il existe au moins un chemin qui ne m`ene pas vers l’´etat final. Cela peut ˆetre sp´ecifi´e par la formule CTL suivante.

EG ¬P1.f inal ∨ . . . ∨ EG ¬Pn.f inal∨ (4.3)

En d’autres termes, la formule 4.3, sp´ecifie qu’il existe au moins un chemin d’un service pour lequel l’´etat final n’est pas accessible.

Dans une chor´egraphie, les services Web peuvent mener correctement des conversations et d’un autre cot´e, ils peuvent en ´echouer d’autres. Ce cas de figure est d´esign´e par compatibilit´e partielle.

Dans cette section, nous d´efinissons particuli`erement la classe de compatibilit´e par-tielle non-parfaite. Cette classe est attribu´ee `a l’ensemble de services Web partiellement

compatibles qui, lors de leur interaction, il y a au moins une conversation correcte du-rant laquelle au moins un message produit n’est pas consomm´e. Formellement, cela est ´

equivalent `a dire qu’il existe au moins un chemin via lequel tous les services atteignent leur ´etat final et en mˆeme temps quand ils atteignent leur ´etat final, il y a au moins une variable de messages dont la valeur est sup´erieure `a z´ero. Ceci est sp´ecifi´e par la formule CTL suivante :

EFP1.f inal ∧ . . . ∧ Pn.f inal ∧

EF(P1.f inal ∧ . . . ∧ Pn.f inal ⇒ r1 > 0 ∧ . . . ∧ rm > 0) where ri ∈ {R1, . . . Ri, . . . , Rn}

(4.4)

Formellement, un ensemble de services Web est dit partiellement mais non-parfaitement compatible si les formule 4.3 et 4.4 sont v´erifi´ees.

Exemple 12 Les services SP, SM and SEM sont dits partiellement mais non-parfaitement compatibles si :

EG ¬SP.f inal∨ EG ¬SM.f inal∨ EG ¬SEM.f inal∧ EFSP.f inal ∧ SM.f inal ∧ SEM.f inal∧

EF (SP.f inal∧SM.f inal∧SEM.f inal ⇒ notificationdisponibilite>0 ∨ examen>0 ∨ examenpermis>0 ∨ cartehandicape>0∨ examenconduire>0 ∨ formulaire>0 ∨ demandecartehandicape>0 ∨ formulairepermis>0 ∨ demandepermis>0 ∨ no-tification2>0 ∨ notification1>0 ∨ notification3>0 ∨ demandeattestation1>0 ∨ no-tification4==0 ∨ demandecartehadicape>0 ∨ demandeattestationdomicile>0∨ demandeexamenmedical>0∨ formulairearemplir>0 ∨ demandebourse>0 ∨ notification6>0 ∨ notification5>0 ∨ envoyerattestation>0 ∨ envoiResultat>0 ∨ demandeetatcivil>0 ∨ envoirapport>0 ∨ formulairemedicalaremplir>0 ∨ propositionDatesRDV>0 ∨ formulairemedical>0 ∨ confirmationRDV>0 ∨ demandeexamen>0 ∨ attestation>0 ∨ annulation>0 ∨ notification>0)

4.4.4 Compatibilit´e partielle parfaite

Cette classe de compatiblit´e caract´erise le fait qu’un ensemble de services Web n’est pas totalement compatible mais en mˆeme temps, les services peuvent mener correctement des conversations, et dans ces conversations tous les messages produits sont consomm´es.

4.4. Analyse formelle de compatibilit´e Formellement, un ensemble de services Web peut mener correctement des conversations tel que tous les messages produits durant cette conversation sont consomm´es, revient `a v´erifier qu’il existe des chemins via lesquels tous les services atteignent leur ´etat final et en mˆeme temps quand ils atteignent leur ´etat final, la valeur de toutes les variables est ´egale `a z´ero. Ceci est sp´ecifi´e par la formule CTL suivante :

EF P1.f inal ∧ . . . ∧ Pn.f inal ∧

EF (P1.f inal ∧ . . . ∧ Pn.f inal ⇒ r1 == 0 ∧ . . . ∧ rm == 0) where ri ∈ {R1, . . . Ri, . . . , Rn}

(4.5)

L’ensemble de services Web, dont leur protocoles de conversations ne v´erifient pas la formule 4.4 (i.e., la compatibilit´e partielle et non-parfaite n’est pas v´erifi´ee) et en mˆeme temps v´erifient les formules 4.3 et 4.5, sont dit partiellement et parfaitement compatibles. Exemple 13 Les services SP, SM and SEM sont dits partiellement et parfaitement com-patibles si la formule pr´esent´ee dans l’exemple 12 n’est pas v´erifi´ee et la formule suivante est v´erifi´ee :

EG ¬SP.f inal∨ EG ¬SM.f inal∨ EG¬SEM.f inal∧ EF SP.f inal ∧ SM.f inal ∧ SEM.f inal∧

EF (SP.f inal ∧ SM.f inal ∧ SEM.f inal∧ ⇒ notificationdisponibilite==0 ∧ exa-men==0 ∧ examenpermis==0 ∧ cartehandicape==0 ∧ examenconduire==0 ∧ formulaire==0 ∧ demandecartehandicape==0 ∧ formulairepermis==0 ∧ demandepermis==0 ∧ notification2==0 ∧ notification1==0 ∧ notification3==0 ∧ demandeattestation1==0 ∧ notification4==0 ∧ demandecartehadicape==0 ∧ demandeattestationdomicile==0∧ demandeexamenmedical==0∧ formulairearemplir==0 ∧ demandebourse==0 ∧ notification6==0

∧ notification5==0 ∧ envoyerattestation==0 ∧ envoiResultat==0 ∧

demandeetatcivil==0 ∧ envoirapport==0 ∧ formulairemedicalaremplir==0 ∧ propositionDatesRDV==0 ∧ formulairemedical==0 ∧ confirmationRDV==0 ∧ demandeexamen==0 ∧ attestation==0∧ annulation==0 ∧ notification==0)

4.4.5 Incompatibilit´e totale

L’h´et´erog´en´eit´e des services Web peut avoir un impact sur l’interop´erabilit´e au sein d’une chor´egraphie. Cet impact peut ˆetre partiel, comme pr´esent´e dans la section pr´ec´ e-dente, ou totale. Dans le cas d’un impact total, les services Web correspondant ne peuvent

mener correctement aucune conversation. Ainsi, quand l’ensemble de services Web n’est ni totalement ni partiellement compatible, nous disons qu’il est totalement incompatible.

Formellement, un ensemble de services est totalement incompatible, si tous les chemins des protocoles de conversations ne m`enent pas `a l’´etat final comme sp´ecifi´e par la formule CTL suivante :

AG ¬ P1.f inal ∧ . . . ∧ AG ¬ Pn.f inal (4.6)

Exemple 14 SP, SM, et SEM sont dits compl`etement incompatibles si :

AG ¬P S.f inal∧ AG ¬M S.f inal∧ AG ¬M ES.f inal (4.7)