• Aucun résultat trouvé

4.3 Causalit´ e dans les syst` emes distribu´ es

4.3.3 Relations de causalit´ e entre flux

Dans les sous-sections pr´ec´edentes, nous venons de faire un survol du mod`ele ´ev´enementiel classique d’un syst`eme r´eparti et du concept de causalit´e. Dans cette section, nous pr´esentons un mod`ele pour des calculs r´epartis `a base de flux propos´e par Grigoras en [Gri03]. Ce mod`ele caract´erise les relations en terme de causalit´e.

Mod´elisation de l’ordonnancement de flux Un flux S est caract´eris´e par son contenuC(S) et par

les d´efilements du flux sur le site d’´emission et sur les sites de r´eception de la diffusion. La notion de d´efilement r (stream run) est une occurrence du flux S sur un site en ´emission ou en r´eception. `A tout d´efilement r, sont associ´es :

– un ´ev´enement de d´ebut r.b, – un ´ev´enement de fin r.e,

P1 P2 P3 s2.e s1.b s1.e s2.b s2 s1

Fig. 4.21 – Causalit´e et flux

Relations causales entre flux Des relations de type causal peuvent ˆetre d´efinies entre les flux `a partir

de la causalit´e existant entre les diff´erents d´efilements composant les flux. Plus pr´ecis´ement, une rela- tion causale entre d´efilements existe si et seulement s’il existe une relation causale entre les ´ev´enements de d´ebut et/ou de fin de leurs d´efilements d’´emission. Une premi`ere possibilit´e consiste donc `a abs- traire un flux S selon une approche ´ev´enementielle. Un d´efilement s du flux S est repr´esent´e par les paires d’´ev´enements (s.b, s.e) dans laquelle s.b est l’´ev´enement de d´ebut de d´efilement du flux et s.e est l’´ev´enement de fin de d´efilement.

Par exemple, dans la figure 4.21, il existe une relation de causalit´e entre les ´ev´enements d’´emission de d´ebut (respectivement de fin) des d´efilements s1 et s2 :

s1.b≺ s2.b ∧ s1.e≺ s2.e

Pour d´efinir une pr´ec´edence entre deux d´efilements f1et f2de flux distincts, il doit exister au moins une relation de pr´ec´edence entre les ´ev´enements de d´ebut de ces flux. Ce type de pr´ec´edence est appel´ee pr´ec´edence initiale, not´ee et d´efinie par :

r1 r2 ≡ r1.b≺ r2.b

Toutes les autres relations de pr´ec´edence impliquent cette pr´ec´edence initiale. Celles-ci correspondent aux diff´erentes possibilit´es de relations causales entre l’´ev´enement de d´ebut du flux s2et les ´ev´enements de fin des flux s1et s2. Intuitivement, les relations aR b (a et b ´etant des d´efilements) ont la signification suivante :

– pr´ec´edence initiale (initial precedence) : le d´efilement a commence avant b, rien d’autre n’est connu sur la suite ;

– pr´ec´edence couvrante initiale (mid-starting precedence) : le d´efilement b commence pendant a (apr`es le d´ebut et avant la fin de a) ;

– pr´ec´edence faible (weak precedence) : a est toujours un peu en avance sur b ; – pr´ec´edence inclusive (inclusive precedence) : b est inclus dans a ;

– pr´ec´edence forte (strong precedence) : a est int´egralement avant b ;

– pr´ec´edence couvrante (overlapping precedence) : a est partiellement avant b et ils se recouvrent partiellement.

Comme toutes les relations d´efinies contiennent au moins la pr´ec´edence initiale, toutes les relations possibles entre deux flux ne sont pas d´efinies. Par exemple, nous n’introduisons pas de relation pour deux flux tels que r1.b r2.b et r1.b≺ r2.e (la fin de s2est causalement d´ependante du d´ebut de s1, sans que leurs d´ebuts ne soient li´es). Nous pensons que de telles relations ne sont pas significatives pour des applications multim´edia r´eparties.

Contrˆole de la d´elivrance des flux Comme pour les protocoles ordonn´es de transmission de mes-

sages, il s’agit de contrˆoler l’ordre de d´efilement des flux re¸cus par un site pour d´etecter et/ou corriger les fautes de causalit´e. En effet, les d´efilements de flux re¸cus par un site fix´e ont pour origine des d´efilements issus de sites ´emetteurs quelconques mais li´es ´eventuellement par les relations de pr´ec´edence que nous avons d´efinies.

Les horloges vectorielles (ou horloges de Mattern) [MF89] permettent de capturer la relation de causalit´e entre ´ev´enements. Toute relation de pr´ec´edence causale entre flux peut ainsi ˆetre contrˆol´ee en datant les ´ev´enements de d´ebut et de fin d’´emission du d´efilement par des horloges de Mattern. Sur chaque site de diffusion, il est alors possible de calculer la relation entre deux flux en comparant les dates des ´ev´enements d’´emission transmises dans les premiers et derniers messages des deux flux.

I2 I2a I2b I1 Receiver 2 Receiver 1 Sender

Fig. 4.22 – Jonction tardive d’un r´ecepteur

Dans le cas de la diffusion intra-groupe (toutes les communications sont des diffusions sur le mˆeme ensemble de destinataires), les horloges vectorielles suffisent pour assurer le contrˆole d’une relation, c’est- `

a-dire r´eordonner les messages pour qu’une relation de pr´ec´edence particuli`ere soit obtenue. Dans le cas de communications arbitraires, il est n´ecessaire de faire appel `a des horloges matricielles [CDK94].

Flux et intervalles Les flux peuvent ˆetre repr´esent´es aussi comme des intervalles. Dans [All83],

Allen propose une alg`ebre des intervalles qui repose sur un ordre total. Cette repr´esentation diff`ere fondamentalement de celle propos´ee en [Gri03] qui est bas´ee sur le temps causal (ordre partiel des ´

ev´enements/d´efilements). Si nous r´ealisons une projection du temps causal sur le temps lin´eaire (ordre total des ´ev´enements/d´efilements), nous n’avons plus une repr´esentation exacte de la causalit´e car cette projection introduit artificiellement des d´ependances causales entre des flux ind´ependants. En termes d’´ev´enements, nous pouvons faire une distinction similaire entre les horloges de Lamport et les horloges vectorielles (Fidge-Mattern).

Au lieu de caract´eriser les flux `a partir de leurs ´ev´enements de d´ebut et de fin de d´efilement (approche ´

ev´enementielle), il est donc possible de caract´eriser les flux sous la forme des intervalles de temps durant lesquels les d´efilements ont lieu. La diffusion b d’un flux est caract´eris´ee par :

– d’une part, l’intervalle d´efini par le d´efilement d’´emission ¯bs ;

– d’autre part, les intervalles d´efinis par les d´efilements de r´eception ¯br sur les sites cibles de la diffusion.

Chaque d´efilement r ´etant repr´esent´e par son intervalle ¯r, il est alors possible de red´efinir les relations de pr´ec´edence entre d´efilements en terme de relation de pr´ec´edence entre intervalles. Cette red´efinition en terme d’intervalles permet l’utilisation des algorithmes classiquement utilis´es pour raisonner sur les intervalles. Nous rappelons le fait qu’il ne faut pas confondre les intervalles d’Allen, qui sont d´efinis sur un ordre total (connu comme temps lin´eaire), et les d´efilements, qui sont d´efinis sur un ordre partiel (temps causal).

Vers un d´ecoupage de flux en intervalles

La repr´esentation d’un flux par l’(les) intervalle(s) d´efini(s) par les d´efilements permet de raisonner sur la causalit´e relative de plusieurs flux. Par contre, elle est probablement trop grossi`ere pour certaines applications multim´edia. En effet, un flux multim´edia peut ˆetre de longue dur´ee (un film par exemple) et l’information que l’on pourra d´eriver manque de finesse. Par ailleurs, la repr´esentation avec un unique intervalle ne permet pas de capturer la dynamique d’une application o`u des participants arrivent ou partent en cours de diffusion du flux. Consid´erons la figure 4.22 o`u le r´ecepteur 1 se joint tardivement `

a la r´eception du flux diffus´e. Alors qu’il est difficile de donner une relation pr´ecise entre I1 et I2 (I1 est li´e `a un sous-segment de l’intervalle auquel est li´e I2), il peut ˆetre utile de pouvoir d´ecomposer I2 en deux intervalles, tels que I1 et I2b sont l’image du mˆeme sous-intervalle de l’´emetteur.

Dans le cas d’applications multim´edia, il est peut-ˆetre suffisant de consid´erer qu’un flux est constitu´e d’une suite d’intervalles, la granularit´e de ce d´ecoupage ´etant li´ee `a la pr´ecision n´ecessaire `a l’application. Le d´ecoupage en intervalles permet un raisonnement causal entre flux `a travers les relations de pr´ec´edence bas´ees sur les ´ev´enements de d´ebut et de la fin, associ´ees cette fois-ci `a chaque intervalle. La figure 4.23 d´epeint notre approche pour deux flux envoy´es depuis A et B : les points en gras issus du d´ecoupage repr´esentent les unit´es d’acc`es choisies pour capturer la causalit´e des flux.

Le degr´e de coh´erence des d´efilements peut ˆetre ajust´e en choisissant convenablement la granularit´e du d´ecoupage. La causalit´e des flux telle que d´efinie en [Gri03] et la causalit´e ´ev´enementielle classique

vue comme l’ensemble des d´ependances causales entre tous les messages ´echang´es deviennent ainsi les deux cas limites de notre approche de d´ecoupage :

– (intervalle) granularit´e = (dur´ee du) message⇒ coh´erence compl`ete. – (intervalle) granularit´e = (dur´ee du) flux⇒ coh´erence faible.

A video.start video.end audio.start video audio audio.end B C video audio

Fig. 4.23 – Causalit´e des flux d´ecrite par un d´ecoupage en intervalles

Cette approche par intervalle capture et assure le respect des d´ependances causales entre les points causaux (les bornes d’un intervalle) choisis `a l’int´erieur de chaque flux. Reste alors la question suivante : quel ordre de d´elivrance doit on respecter pour les messages `a l’int´erieur d’un intervalle ? Une pr´esentation coh´erente d’un sous-flux (intervalle) multim´edia doit garantir le respect de l’ordre d’´emission (FIFO) des unit´es d’acc`es. Pour r´esumer, nous sp´ecifions la coh´erence des flux `a travers le respect de l’ordre CAUSAL entre les points ”fronti`eres” des intervalles ainsi que le respect de l’ordre FIFO au sein de chaque intervalle. Nous remarquons que les messages correspondant aux points causaux sont doublement contraints par rapport aux autres messages :

– ils doivent ˆetre d´elivr´es causalement vis-`a-vis des autres points causaux ;

– ils doivent ˆetre d´elivr´es dans l’ordre FIFO vis-`a-vis des autres messages appartenant au mˆeme intervalle.

Nous voyons ainsi que la d´elivrance d’un point causal est soumise au respect de deux ordres partiels : FIFO et CAUSAL. De mani`ere g´en´erale, on peut ˆetre entraˆın´e `a r´epondre `a la question suivante : si un message doit respecter plusieurs ordres, quand est-ce qu’on peut le d´elivrer ? Nous devons alors disposer d’un m´ecanisme de coordination de plusieurs ordres partiels assurant la d´elivrance d’un message lorsque tous les ordres auxquels il est soumis sont respect´es. Un tel m´ecanisme est fourni par les communications multimodales.