• Aucun résultat trouvé

Les patterns pr´esent´es pr´ec´edemment sont basiques et ne permettent de prendre en charge, qu’une seule propri´et´e `a respecter lors de la migration. De ce fait, ils ne permettent de r´ealiser que des strat´egies de migration simples. Cependant, dans les processus m´etiers r´eels, les strat´egies de migration sont plus complexes et peuvent int´egrer plusieurs contraintes en mˆeme temps. Ainsi, des patterns plus ´elabor´es et plus riches sont n´ecessaires, afin de pouvoir g´erer plusieurs types de contraintes dans le cadre d’une mˆeme strat´egie de migration.

Pour rem´edier `a cette limitation, nous proposons une technique de composition des patterns de migration de base. Cette technique est fond´ee sur la combinaison des patterns pr´ec´edents, de fa¸con `a pouvoir traiter plusieurs contraintes `a la fois. Plus concr`etement, la composition est r´ealis´ee en articulant les patterns de base par les connecteurs logiques classiques (conjonction, disjonction, . . . ), et elle permet de mettre en œuvre des strat´egies de migration plus sophistiqu´ees [161].

Pour montrer l’importance de cet aspect, trois cas de composition de patterns sont expos´es ci-apr`es.

6.5.1

Pattern imposant plusieurs obligations pass´ees

La composition du pattern de migration PM5 avec le pattern PM3, en utilisant l’op´erateur de conjonction, peut ˆetre d´efinie comme suit :

(δe, qs)

Extend ((δ,qs),(β,qt0),λe)∧Subst ((δ,qs),(β,qt0),(αe:α0e))

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→ (βe, q0t) (11)

o`u αe, α0e et λe sont des expressions de chemins.

Cette strat´egie de migration, nomm´ee S1, est obtenue par la conjonction des pat- terns PM5 et PM3. Elle int`egre, `a la fois, la s´emantique du pattern PM5 et celle du pattern PM3. Ainsi, la sp´ecification pr´ec´edente d´efinie une nouvelle strat´egie qui permet de migrer les instances actives qui v´erifient, en mˆeme temps, le pattern PM5 et le pattern PM3.

Exemple 6.9 Consid´erons le protocole Retraite de la figure 5.1 et sa nouvelle ver- sion NRetraite montr´ee dans la figure 6.1. Comme, il a ´et´e expliqu´e pr´ec´edemment, les activit´es CC, NR et VE ont ´et´e supprim´ees. Il en est de mˆeme pour l’´etat V´erifi- cation Termin´ee. En plus, la nouvelle activit´e VS a ´et´e ajout´ee (les changements sont mises en ´evidence dans la figure 6.1 avec des pointill´es).

Consid´erons maintenant une instanciation de la sp´ecification de l’´equation (11) avec les param`etres suivants : δe = v.N R, βe = v0, αe = CC.v.V E, α0e = v.V S

et λe = V S. Cette instantiation d´efinie une nouvelle strat´egie de migration, dont la

s´emantique est d´ecrite ci-apr`es.

La port´ee de la strat´egie S1 est d´efinie par l’expression de chemins δe = v.N R et

inclue toutes les instances de l’ancien protocole ayant des historiques d’ex´ecution qui se terminent par l’activit´e N R (i.e., les ´el´ements de δe(Retraite), avec δe = v.N R).

Conform´ement `a la figure 5.1, toutes ces instances sont `a l’´etat Rejet de l’ancien protocole, mais avec diff´erents historiques possibles.

CHAPITRE 6. FORMALISATION DES PATTERNS DE MIGRATION

Comme il apparait dans la sp´ecification de la strat´egie, l’expression de chemin βe = v0 n’exige pas de contraintes particuli`eres sur le chemin d’ex´ecution t´emoin.

La strat´egie S1 pourra, alors, migrer les instances qui sont `a l’´etat Rejet de l’ancien protocole vers l’´etat Rejet du nouveau protocole NRetraite, mais doit g´en´erer dif- f´erents chemins d’ex´ecution t´emoins, en fonction des historiques des instances. Le pattern d’extension PM5 sera appliqu´e aux instances de l’ancien protocole qui ont ex´e- cut´e l’activit´e N R `a partir de l’´etat V´erification Termin´ee. Ces instances ont un histo- rique d’ex´ecution δ1 = ID.V I.N R, et elles auront comme chemin d’ex´ecution t´emoin β1 = ID.V I.V S.N R. Ce chemin t´emoin est obtenu par l’extension de δ1 avec l’acti- vit´e V S. A signaler que, V S est intuitivement conforme avec l’expression αe0 = v.V S du pattern. En plus, le chemin d’ex´ecution r´esultant β1 est un chemin d’ex´ecution du nouveau protocole qui conduit `a l’´etat Rejet.

Par contre, les instances `a l’´etat Rejet qui ont transit´e par l’´etat statut Deman- deur V´erifi´e auront diff´erents types d’historiques d’ex´ecutions qui d´ependent du nombre d’ex´ecution de la boucle CIC sur l’´etat Carri`ere Reconstitu´ee, par exemples : δ2 = ID.V I.CC.V E.N R pour les instances qui n’ont pas ex´ecut´e l’activit´e CIC, δ3 = ID.V I.CC.CIC.V E.N R, pour les instances ayant ex´ecut´e CIC une seule fois, ou encore δ4 = ID.V I.CC.CIC.CIC.V E.N R pour les instances qui ont ex´ecut´e l’acti- vit´e CIC deux fois, . . ..

Lors de l’application du pattern de substitution PM3, chaque instance aura un chemin d’ex´ecution t´emoin sp´ecifique, qui sera obtenu par une substitution ad´equate. Par exemples :

− l’historique d’ex´ecution δ2 = ID.V I.CC.V E.N R conduit au chemin d’ex´ecu- tion t´emoin β2 = ID.V I.V S.N R, obtenu en rempla¸cant par V S le sous-chemin CC.V E (conforme avec αe = CC.v.V E, quand v prend comme valeur le chemin

vide ).

− l’historique d’ex´ecution δ3 = ID.V I.CC.CIC.V E.N R conduit au chemin d’ex´e- cution t´emoin β3 = ID.V I.CIC.V S.N R, obtenu en rempla¸cant le sous-chemin CC.CIC.V E par CIC.V S, qui est une s´equence conforme avec α0e = v.V S (la variable v est ´egal `a CIC). Le sous-chemin CC.CIC.V E est une sequence qui satisfait αe = CC.v.V E (la variable v prend la valeur CIC).

− l’historique d’ex´ecution δ4 = ID.V I.CC.CIC.CIC.V E.N R conduit au chemin d’ex´ecution t´emoin β4 = ID.V I.CIC.CIC.V S.N R, obtenu en rempla¸cant le

sous-chemin CC.CIC.CIC.V E (conforme avec αe = CC.v.V E quand v prend

la valeur CIC.CIC) par CIC.CIC.V S (conforme avec α0e = v.V S lorsque v

est ´egal `a CIC.CIC), − . . .

Il est observ´e que les chemins d’ex´ecution t´emoins obtenus (β2, β3,β4, . . .), cor- respondent `a des chemins d’ex´ecution du nouveau protocole NRetraite qui conduisent tous `a l’´etat Rejet.

6.5.2

Pattern imposant des obligations pass´ees et futures

Apr`es l’application des changements aux sp´ecifications d’un protocole de service, les contraintes d’obligation peuvent ˆetre revues de mani`ere `a maintenir la coh´erence globale des contrats expos´es par le protocole. L’objectif et de faire migrer les instances

CHAPITRE 6. FORMALISATION DES PATTERNS DE MIGRATION

actives, tout en prenant en compte les ex´ecutions pass´ees, aussi bien que celles `a venir. Cette action peut ˆetre r´ealis´ee en composant les patterns pr´ec´edents d’obligations pass´ees et futures.

A titre d’exemple, le pattern de substitution de sous-chemin PM3, imposant des obligations sur les ex´ecutions pass´ees, peut ˆetre combin´e avec le pattern garantissant des obligations lors des interactions futures PF2. Cette composition conduit `a un nouveau pattern compos´e (P M 3 ∧ P F 2), dont la s´emantique int`egre, simultan´ement, celle de PM3 et celle de PF2. Ainsi, le nouveau pattern obtenu assure une strat´egie de migration lors de la substitution d’un sous-chemin, en imposant en mˆeme temps l’ex´ecution d’une s´equence obligatoire d’activit´es dans le futur. Plus formellement : Si α ∈ αe(P) est le sous-chemin `a substituer par le sous-chemin α0 ∈ α0e(P

0) et si

λ ∈ λe(P0) est la s´equence obligatoire d’activit´es `a ex´ecuter dans le futur, alors le

pattern compos´e est exprim´e par : (δe, qs)

Subst ((δ,qs),(β,q0t),αe:αe0) ∧ Obligatoire ((δ,qs),(β,qt0),λe)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−→ (βe, qt0). (12)

La s´emantique v´ehicul´ee par le nouveau pattern est interpr´et´ee comme suit :

Le pr´edicat : Subst ((δ, qs), (β, q0t), αe: αe0) ∧ Obligatoire ((δ, qs), (β, qt0), λe) est ´evalu´e `a

Vrai si : ∃ δ0, δ1, δ00, δ01 | (δ = δ0αδ1, β = δ0α0δ1) ∧ (∀w ∈ L(C

SP0(P0, qt0)), w = δ00λδ01). L’application de la strat´egie v´ehicul´ee par le pattern compos´e de l’´equation (12) permet de g´erer la migration d’une instance active i, ayant commenc´e son interac- tion dan l’ancien protocole et qui a ex´ecut´e un historique δ ∈ δe(P). Cette strat´egie

stipule qu’un sous-chemin (δ = a.b.c, par exemple) est remplac´e par un autre sous- chemin δ0 = d.e.f , `a condition qu’une s´equence particuli`ere d’activit´es (par exemple : γ=Valider.Payer) soit, obligatoirement, invoqu´ee lors des interactions futures des ins- tances transf´er´ees vers le nouveau protocole.

6.5.3

Exemple d’une strat´egie combinant plusieurs patterns

La strat´egie S2, sp´ecifi´ee ci-apr`es en utilisant les op´erateurs logiques de conjonction et disjonction, illustre la composition des trois patterns de base PI1, PM1 et PM3. Elle permet d’appliquer une strat´egie de migration plus ´elabor´ee qui int`egre plusieurs types de contraintes `a la fois. (δe, qs) Condition1∧[Condition2∨Condition3] −−−−−−−−−−−−−−−−−−−−−→ (βe, q0t) (13) o`u : Condition1 = Interdit-P ((δ, qs), (β, qt0), γe) Condition2 = Strict ((δ, qs), (β, qt0), −), Condition3 = Subst ((δ, qs), (β, qt0), αe : α0e),

Les param`etres de la strat´egie sont : δe = v, β = v0, γe = N R, αe = CC.v.V E? et

αe0 = v.V S.

La strat´egie S2 exploite le pr´edicat Interdit-P du pattern PI1 (Condition1), avec le param`etre γe = N R, pour s´electionner uniquement les instances qui n’ont pas en-

core ex´ecut´e l’activit´e N R. Ainsi, cette strat´egie exclue du processus de migration les instances qui sont `a l’´etat Rejet de l’ancien protocole Retraite. En plus, la strat´egie S2 exige qu’une instance ayant un historique d’ex´ecution δ, doit ˆetre transf´er´ee vers un

CHAPITRE 6. FORMALISATION DES PATTERNS DE MIGRATION

´

etat q0tdu nouveau protocole NRetraite qui soit atteignable par un chemin d’ex´ecution t´emoin β obtenu, soit par l’application du pr´edicat Strict du pattern PM1 (Condi- tion2), exigeant que β = α, ou par l’application du pr´edicat Subst du pattern PM3 (Condition3), avec les param`etres αe = CC.v.V E? et α0e = v.V S.

Le tableau 6.1 montre des exemples d’instances du protocole Retraite, avec leurs ´

etats et leurs historiques, respectives. L’application de la strat´egie S2 aux instances permettra de les convertir en des instances du protocole ´evolu´e NRetraite. Les infor- mations associ´ees `a l’application de cette strat´egie sont donn´ees en sp´ecifiant pour chaque instance, le chemin d’ex´ecution t´emoin et l’´etat de migration cible.

Les deux premi`eres lignes du tableau 6.1 correspondent `a des instances qui sont migr´ees en utilisant le pr´edicat Strict, alors que les lignes restantes correspondent `a des instances qui sont migr´ees par le biais du pr´edicat Subst.

Ancien Protocole (Retraite) Nouveau Protocol (NRetraite)

Etat Source Chemin d’ex´ecution

historique

Chemin d’ex´ecution

t´emoin

Etat Cible

Demandeur Identifi´e ID ID Demandeur Identifi´e

V´erification Termi- n´ee

ID.V I ID.V I Carri`ere Reconsti-

tu´ee Carri`ere Reconsti-

tu´ee ID.V I.CC ID.V I.CC.CIC ID.V I.CC.CIC.CIC . . . ID.V I.V S ID.V I.CIC.V S ID.V I.CIC.CIC.V S . . . Statut Demandeur V´erifi´e Statut Demandeur V´erifi´e ID.V I.CC.V E ID.V I.CC.CIC.V E ID.V I.CC.CIC.CIC.V E . . . ID.V I.V S ID.V I.CIC.V S ID.V I.CIC.CIC.V S . . . Statut Demandeur V´erifi´e

Demande Compl`ete ID.V I.CC.V E.EDR

ID.V I.CC.CIC.V E.EDR . . .

ID.V I.V S.EDR ID.V I.CIC.V S.EDR . . .

Demande Compl`ete

. . . .

Table 6.1 – Exemples de migration d’instances avec la strat´egie S2

A noter que d’autres types de composition de patterns peuvent ˆetre examin´es. Par exemple, la combinaison du pattern d’obligations futures (activit´es obligatoires : PF2) avec le pattern d’interdictions pass´ees (activit´es interdites PI1) conduira `a un nouveau pattern qui exprime l’ex´ecution conditionnelle d’une s´equence d’activit´es (si une s´equence d’activit´es n’a pas ´et´e ex´ecut´ee dans le pass´ee, alors une autre s´equence d’activit´es est obligatoire dans le futur ).

Avant de clˆoturer cette section, il est important de signaler que les strat´egies de migration peuvent ˆetre appliqu´ees d’une mani`ere s´equentielle. Par exemple, une nou- velle strat´egie de migration S peut ˆetre d´efinie en tant que s´equence de strat´egies S1 ;S2 ; o`u S1 est la strat´egie d´ecrite pr´ec´edemment (cf. sous section 6.5.1) et S2 est la strat´egie d´ecrite ci-dessus. Dans ce contexte, les instances du protocole Retraite qui sont `a l’´etat Rejet seront migr´ees en premier lieu conform´ement `a la strat´egie S1, apr`es les instances restantes seront migr´ees conform´ement `a la strat´egie S2.

CHAPITRE 6. FORMALISATION DES PATTERNS DE MIGRATION