• Aucun résultat trouvé

C'est sur ce modele de depart que l'on raisonne et l'on applique une phase qui vise a atteindre pour le groupe de l'emetteur et du recepteur le niveau E2 , soit en fait un seul monde possible

avec:

bite = bitr = Bit

Remarquons qu'aucune variable concernant l'identication des etats de connaissance visees par

l'algorithme n'appara^t dans l'identication des mondes possibles. En particulier, on ne manipule

pas un booleen qui contient l'information E

2

G

(Bit). Celle-ci va donc rester implicite relativement a

l'algorithme. Elle est etablie dans une preuve mais n'est pas accessible dans une dimension reexive

par programme.

5.1.3 Approche observationnelle

Une phase represente l'execution coordonnee d'un ensemble d'objets au sein d'un groupe. Nous

avons vu qu'elle correspond a une action globale denotee par deux predicats epistemiques. Cette

description est avant tout une demarche de specication. On peut s'interesser a la facon dont

l'execution de cette specication va ^etre observee.

Nous avons vu au paragraphe 3.1 que l'etat global d'un systeme au sens de Chandy et Lamport,

est associe a la notion de coupe coherente. Celle-ci a pour but d'identier parmi tous les n

-uplets d'etats locaux des objets du systeme, ceux qui correspondent a des situations qui ont

ete eectivement observees. Les coupes coherentes, appelees egalement etats globaux coherents,

peuvent ^etre organisees en treillis. Elles permettent de reconstituer toutes les observations possibles

d'une execution donnee. Les etats globaux coherents appartenant a toutes les observations possibles

d'une execution sont dits inevitables. Ces etats sont plus importants que les autres puisqu'on est

s^ur qu'ils seront observes dans tous les cas.

P1 P3 P2 S2 S3 S4 S1

Fig.

5.1 {Observation d'une execution et etats globaux inevitables

Les etats inevitables permettent donc de decouper un treillis d'etats globaux coherents en

blocs. Chaque bloc situe en aval d'un etat inevitable s'execute avant le bloc situe en amont. Par

exemple, le treillis de la gure 5.1 comporte quatre etats inevitables: S

1

, S

2

, S

3

et S

4

. On est

s^ur que tous les chemins possibles entre S

1

et S

2

sont avant tous ceux entre S

2

et S

3

(de m^eme

pour S

2

;S

3

et S

3

;S

4

). Dans notre approche, les niveaux de connaissance denotant une action

globale correspondent a des etats globaux inevitables. En eet, si ce n'etait pas le cas, certaines

observations pourraient ne pas capturer l'etat veriant ce niveau de connaissance. On ne serait

pas alors en mesure de determiner si l'action globale a ete executee ou non.

Neanmoins, la propriete d'etat inevitable ne caracterise que partiellement les niveaux de

connaissance d'une phase. En eet, le treillis des etats globaux coherents de Chandy et Lamport

ne represente pas le modele d'accessibilite complet d'une specication. Il ne traduit que l'ensemble

des observations possibles pour une seule execution. Or, plusieurs executions sont possibles a partir

d'une m^eme specication. En eet, certaines actions, comme par exemple des conditionnellesif

then elsea un niveau global, entra^nent des developpements alternatifs du treillis. En construisant

le graphe d'accessibilite associe a la specication, on obtient alors avec plusieurs treillis possibles.

On caracterise ainsi un niveau de connaissance par une classe d'equivalence d'etats inevitables.

Chaque etat de cette classe appartient a un treillis particulier. An d'^etre exhaustif, il faudrait

donc ajouter aux treillis (comme par exemple celui de la gure 5.1) des axes supplementaires

repre-sentant toutes les executions possibles. Neanmoins, comme il n'est pas evident d'ajouter des axes

a un graphique en trois dimensions represente en perspective, nous nous contentons, en general,

de ne presenter qu'une treillis parmi tous ceux possibles.

5.1.4 Specialisation

La gure 5.2 reprend le programme de niveau groupe du protocole de transmission de bit

comprenant les phases Transmettre et Acquitter (Cf. paragraphe 4.5.3). Deux types de phases

peuvent ^etre denis : soit la phase entra^ne une elevation de la connaissance de groupe, soit elle

revoque un certain nombre de connaissances.

Le premier cas est le plus courant. Les actions globales associees a la phase permettent aux

objets, au travers d'operations locales et d'operations d'interactions, d'acquerir un certain nombre

d'informations. Par exemple, la phase Transmettrede la gure 5.2 fait passer le groupe d'un etat

de connaissance instanciee (S

G

) de la variableBit a un niveau de connaissance de tous de niveau

2 (E

2

G

). D'un point de vue quantitatif il y a donc bien une elevation de la connaissance de groupe.

Le second type de phase revoque une partie de la connaissance acquise par le groupe. Cette

situation se rencontre entre autres, des que l'on recommence un algorithme termine. Ainsi le

programmede la gure 5.2 peut ^etre insere dans une boucle innie an de recommencer le processus

de transmission des que l'acquittement a ete eectue (Cf. gure 5.3). Cela revient a ajouter une

transition entre les etats S

3

et S

1

de l'automate. On constate alors que l'on passe d'un etat ou la

variableBit est connue de tous a un etat ou sa valeur n'est plus connue que de l'emetteur. Cette

phase revoque donc une partie de la connaissance liee a la variableBit. On pourrait arguer que,

bien que pour des facilites d'ecriture, un seul et m^eme identicateurBitest utilise, il n'y a aucun

rapport entre les valeurs transmises d'un cycle a l'autre. Les cycles peuvent donc ^etre numerotes

de facon a creer des numeros d'epoque, et on peut transformer la variable binaireBiten un tableau

(Cf. gure 5.4). De cette facon, a chaque debut de cycle, la connaissance du bit d'indicen reste

instanciee tandis que les n

,

1 precedents bits sont toujours connus de tous. Neanmoins, cette

tentative de transformation des phases revoquant la connaissance en phases standards se heurte

a un nouveau probleme: la taille du tableau de bits ne peut ^etre innie. Au bout d'un nombre

ni de cycles, son contenu doit ^etre purge, ce qui entra^ne la destruction de donnees anterieures.

Il n'est donc, en pratique, pas possible de se passer des phases revoquant la connaissance.

5.1.5 Composition

Les phases d'une application distribuees peuvent ^etre composees de nombreuses facons. Elles

peuvent ^etre executees en sequence les unes apres les autres, elles peuvent ^etre executees

concur-remment les unes par rapport aux autres, ou elles peuvent ^etre organisees en commandes gardees.

5.1.5.1 Sequence

La composition sequentielle impose un encha^nement strict des phases les unes apres les autres.

Elle est notee par un point-virgule. Chaque phase se traduit par des actions locales sur chaque objet

du groupe. Toutes ces actions locales ne commencent, ni ne nissent forcement, a un m^eme instant

global. La coordination de groupe impose que, sur chaque objet, l'action locale correspondant a

la phase k est executee apres celle correspondant a la phase k

,

1 et avant celle correspondant a

la phase k + 1.

5.1.5.2 Constructeur de parallelisme

La composition parallele permet d'executer concurremment plusieurs phases au sein d'un

groupe. Elle est notee a l'aide des instructions co begin/co end. Les dierentes actions de groupe

group vars

Bit:boolean replicated on G

begin

Transmettre;

Acquitter

end

S1 S2 S3 Transmettre Acquitter SG(Bit) EG(Bit) EG2(Bit)

Fig.

5.2 {Phase d'elevation de la connaissance

group vars

Bit:boolean replicated onG

begin