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
2G
(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
3et S
4. On est
s^ur que tous les chemins possibles entre S
1et S
2sont avant tous ceux entre S
2et S
3(de m^eme
pour S
2;S
3et 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
2G
). 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
3et S
1de 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
Dans le document
Conception d'algorithmes répartis et de protocoles réseaux en approche objet
(Page 128-131)