• Aucun résultat trouvé

La vérification de la correction de la reconfiguration dynamique du modèle ComSA

historique, concepts et techniques

7.3 La correction de la reconfiguration dynamique du mo-

7.3.2 La vérification de la correction de la reconfiguration dynamique du modèle ComSA

Dans le graphe obtenu App˜ c = (Comp∪ {pauseC}Conn, ˜DlTl˜ ) où ˜Dl et ˜Tl sont les ensembles des liens obtenus en appliquant l’algorithme 3 sur le graphe d’ap-plication App = (Comp

Conn, Dl

Tl)et où le connecteur c est enlevé. Les autres résultats de l’algorithme 3 sont notés UConnApp˜ c, PCompApp˜ c and RDlApp˜ c. De plus, un port appartenant à ˜Appc est appelé port affamé s’il est un port d’une relation d’in-cidence appartenant à RDlApp˜ c ou s’il est un port d’un connecteur connecté à une relation d’incidence de RDlApp˜ c.

PauseC f f p3d c1 r1 r2 r3

I

1 s c2 an r1 r2

I

2 f f pos en r1 r2

S

2 av act pos en f′′′ r1 r2

S

3 p3d c1 c2 an r1 r2 r3 av act1 act2

S

1 av act pos en r1 r2 r3 r4

V

rffff 1 f f f f

S

4 i o nbG2 i i i i o o o o b bB1 i o bB4 i o nbG7 i o nbG3 i o nbB2 i o nbG4 i o nbG5 iiii o o o o nbbB3 i o nbG6 i i i o o o nbG8 i i i i o o o o sFFF1 i i i i o o o o sFFF2 i o nbG1 i i i i o o o o b bB2

Figure 7.4 – La région de sécurité impactée par la suppression du connecteur nbG8de la figure 6.15.

Maintenant, nous allons prouver que toutes les relations d’incidence de l’ensemble RDlApp˜

c sont arrêtées dans le graphe ˜Appc et que cet arrêt ne causera pas d’overflow et n’empêchera pas d’autres relations d’incidence de s’exécuter.

Lemme 4 Soient App= (CompConn, DlTl)et c le connecteur à enlever en modifiant App. Soit xp un port d’une relation d’incidence de RDlApp˜ c et yq un port d’une relation d’incidence n’appartenant pas à RDlApp˜ c. Tout chemin de données dans App˜ c à partir de yq jusqu’à xp passe par zo où z ∈ UConnApp˜ c et typez ∈ {nbGreedy, bGreedy} et tout chemin de données dans ˜Appc à partir de xp jusqu’à yq passe par zi où z ∈ UConnApp˜

c et typez ∈ {nbGreedy, nbBu f f er}.

Démonstration. Les deux parties du lemme 4 sont des conséquences directes de l’algo-rithme 3. En effet, tout port x′p′ tel qu’il existe un chemin de données, à partir de x′p′

jusqu’à xp, qui ne passe pas par un connecteur Greedy est donc un port affamé et toutes les relations d’incidence sont impliquées dans RDlApp˜ c. Symétriquement, tout port x′p′

tel qu’il existe un chemin de données, à partir de xpjusqu’à x′p′, qui ne passe pas par un connecteur non bloquant est un port affamé, cela conduit à la même conclusion.

En conséquence, les relations d’incidence arrêtées de RDlApp˜

c ne produisent pas d’overflow. En effet, puisque toutes les données entrantes de la partie en cours d’exécu-tion de l’applicad’exécu-tion entrent par un connecteur Greedy pour arrêter cette partie, tous les messages non utilisés seront simplement jetés. De même, les relations d’incidence arrê-tées de RDlApp˜

c ne provoquent pas la famine des autres relations d’incidence puisque les données venant de RDlApp˜

c passent par un connecteur non bloquant ce qui signi-fie que les consommateurs de ces données recevront des messages vides lorsque le producteur est arrêté. Enfin, nous devons prouver que tous les éléments de RDlApp˜ c seront effectivement arrêtés au niveau de ˜Appc.

Lemme 5 Soient App= (CompConn, DlTl)et c le connecteur à enlever en modifiant App. Alors, toutes les relations d’incidence de RDlApp˜

cseront arrêtées.

Avant de prouver le lemme 5, nous allons donner une condition suffisante pour montrer qu’un réseau sCFN n’est pas vivant. Cette condition est présentée sous forme de la définition 35 et du théorème 4.

Définition 35 Soit S un sCFN. Une place p de S est appelée place décroissante si elle est une place source ou une place de sortie d’une seule transition décroissante. Une transition t de S est appelée transition décroissante si au moins une de ses places d’entrée est une place décroissante. Dans le sCFN de la figure 6.2, P1est une place source donc une place décroissante. t1 est une transition décroissante puisque la place P1est une place source. Ainsi, P2est une place décroissante car c’est une place de sortie de t1. La transition t2est donc une transition décroissante et P3est une place décroissante selon la définition 35.

Le théorème 4 affirme que les transitions décroissantes peuvent ne pas être toujours vivantes. Par conséquent, toutes ces transitions vont mourir.

Théorème 4 Soient S un sCFN et M un marquage de S. Alors, toutes les transitions dé-croissantes peuvent être appliquées qu’un nombre limité de fois.

Pour démontrer ce théorème, nous allons construire un ordre sur les places dé-croissantes basé sur leurs dépendances comme suit :

— L0= {p|pest une place source}

— Li+1 = {p|pest une place décroissante, p∈L0∪ · · · ∪Li et ∃t ∈ Tet p ∈ Li tel quep, t ∈ Aett, p ∈A}

Dans le sCFN de la figure 6.2(a), L0 = {P1}, L1 = {P2} et L3 = {P3} et Li = ∅ quand i>3.

pro-fondeur tel que Ldepth(S) = ∅et Ldepth(S)−1 =∅. Si L0 = ∅, depth(S)est 0. La profon-deur de sCFN de la figure 6.2(a) est 4.

Avant de prouver le théorème 4, nous allons présenter les remarques suivantes : 1. Par définition, des nouveaux jetons peuvent arriver dans une place décroissante

seulement en appliquant une transition décroissante ; 2. L’ensemble 

i0Li est exactement l’ensemble des places décroissantes par construction ;

3. Par construction aussi, pour chaque transition décroissante t, au moins une de ses places décroissantes d’entrée a un rang strictement inférieur à toutes les places décroissantes de sortie de t.

Finalement, la démonstration du théorème 4 utilise la notion de rang pour définir un ordre lexicographique sur un tuple de nombres entiers naturels. Ainsi, nous dé-finissons d’abord le tuple FM(S) = k0, . . . , kn pour un marquage M du sCFN S où ki = ΣpLi|p|M. Alors, si nous considérons l’ordre< dans les tuples, nous prouvons que pour chaque marquage M, le franchissement de la transition décroissante t donne un marquage M tel que FM(S) <FM(S).

Démonstration. (du théorème 4) Soient S un sCFN et M un marquage tel que la tran-sition t est franchie. Nous considérons le marquage obtenu M à l’aide du franchisse-ment de la transition t.

— Si t n’est pas une transition décroissante, nous avons FM(S) ≤ FM(S)puisque, depuis la première remarque ci-dessus, une telle transition n’ajoute pas de nou-veaux jetons dans les places décroissantes ;

— Si t est une transition décroissante, nous avons FM(S) < FM(S). En effet, à partir de la troisième remarque ci-dessus, comme t est une transition décrois-sante et au moins une de ses places d’entrée a un rang i strictement inférieur au rang d’une place de sortie de t. Cela signifie que FM(S) = k0, . . . , kn et FM(S)k

0, . . . , k

n tel que kj =k

j pour j<iet ki > k

i, donc, FM(S) >FM(S). Puisqu’il n’y a pas une séquence infinie décroissante de tuples de nombres natu-rels, les transitions décroissantes ne peuvent être appliquées qu’un nombre fini de fois, donc ces transitions ne sont pas vivantes.

Démonstration. (du lemme 5) Soit r ∈ RDlApp˜ c, soit C le composant possédant la rela-tion d’incidence r.

Si RIin(r) = ∅, alors le port s de C est connecté avec le composant pauseC. Le sCFNC(pauseC), c-à-d la modélisation du composant pauseC en sCFN, est réduit à une seule place nommée Ppause. Dans le sCFN(App˜

c) la place Ppause représentant pauseC est une place source, ainsi la transition tsde C est une transition décroissante car Ppause appartient à l’ensemble de ses places d’entrée. Alors, la place Ps de C est une place décroissante. Toutes les transitions de sCFNC(C) ont Ps comme place d’entrée, elles sont toutes des transitions décroissantes ainsi que les places représentant les ports de sortie.

Nous allons traiter le cas où la relation d’incidence r n’a pas de ports d’entrée. Si

∃Ci ∈ RIin(r)qui n’est pas connecté, alors la place représentant Ci dans sCFNG(App˜ c)

est une place source et toutes les transitions qui ont cette place comme place d’entrée sont des transitions décroissantes.

Si ∃Ci ∈ RIin(r)et c ∈Conn tel quec′o, Ci ∈ Dl˜ et typec =sFIFO, en se basant sur l’algorithme 3 nous savons que c ∈ UConnApp˜ c ce qui signifie que le port s de c

est non connecté, ainsi, la place Ps qui représente s dans sCFNG(App˜

c)est une place source. Donc, la transition tout (et tssi elle existe) est une transition décroissante, voir les figures 6.7, 6.8 et 6.9 qui montrent que la place Po est une place décroissante. La transition tCi est alors une transition décroissante aussi bien que la place PCi.

Si tous les ports d’entrée de r sont connectés avec des connecteurs sFIFO, nous ne pouvons pas conclure directement. Cependant nous remarquons que si∃Ci ∈ RIin(r)

tel que PCi est une place décroissante, alors, nous pouvons tirer la même conclusion que dans les deux cas précédents. En appliquant les deux algorithmes 3 et 4, nous savons qu’il n’existe pas de cycle dans ˜Appc qui utilise uniquement des composants et connecteurs sFIFO, ce qui signifie que pour chaque port d’entrée Ci de C il existe un chemin qui commence par un composant qui correspond à l’un des quatre cas précédents. Donc, la place correspondante au port d’entrée Ci de ce composant est une place décroissante.

Nous avons prouvé que toutes les transitions qui représentent les éléments de RDlApp˜ cdans sCFNG(App˜

c)sont décroissantes. En effet et en se basant sur le théorème 4, ces transitions peuvent être appliquées seulement un nombre fini de fois ce qui signifie qu’elles vont être arrêtées.

L’absence d’overflow est prouvé par le lemme 4. Par conséquent, l’algorithme 3 permet de réaliser une reconfiguration dynamique basée sur les comportements, re-présentés par les relations d’incidence , guidés par les données et la coordination exo-gène d’une application ComSA. Cet algorithme met en pause la partie impactée par la modification de l’architecture de l’application pour minimiser le nombre des services arrêtés fournis par les différents composants et évite l’arrêt complet de l’application.

7.4 conclusion

Dans ce chapitre, nous avons proposé une technique de reconfiguration pour les applications ComSA basée sur la coordination exogène favorisée par le modèle ComSA. Cette technique isole la partie de l’application impactée par la reconfiguration par rapport aux autres parties non impactées. Étant donné que des schémas de com-munication du modèle ComSA contiennent des buffers, des débordements peuvent apparaître lors d’une reconfiguration si les composants récepteurs consommant les données de ces buffers ne sont pas opérationnels. Dans le but de détecter ces dé-bordements, nous avons proposé une reconfiguration persistante et préventive de ce problème de buffers.

La reconfiguration des applications de visualisation scientifique interactives pro-posée est appliquée quand par exemple un utilisateur souhaite ajouter ou supprimer un composant selon ses besoins. Alors, notre approche garantit une reconfiguration correcte et sécurisée, c-à-d l’application ne s’arrête pas complètement pendant la re-configuration et fonctionnera correctement après l’application des résultats de notre travail concernant la détection de blocages et la vivacité présentées dans le chapitre 6. Nous avons présenté des algorithmes pour mettre en œuvre les différents aspects du fonctionnement de la reconfiguration des applications ComSA.

Tout les aspects concernant le modèle ComSA notamment (1) la présentation de ses différents éléments présentés dans le chapitre 5, (2) la modélisation des applications ComSA basée sur les réseaux FIFO colorés stricts et la détection de blocages présentées dans le chapitre 6, (3) la reconfiguration dynamique présentée dans ce chapitre, seront illustrés et expérimentés dans le chapitre suivant.

No amount of experimentation can ever prove me right ; a single experiment can prove me wrong.

Albert EINSTEIN