• Aucun résultat trouvé

VI.1 Notion de qualité de service

VI.2.2 Qualité de service garantie et attendue

Dans le paragraphe précédent, nous avons défini des briques individuelles, les ressources, ainsi que les informations entrantes et sortantes ; il est donc naturel de connecter à présent les différentes ressources, ce qui est fait en connectant les services entrants et les services sortants. Cette connexion pourrait se faire de plusieurs manières, par exemple de la façon traditionnelle en parlant de qualité de service reçue par un système et de qualité de service produit, puis en disant que sur un lien de communication entre les ressources ces deux qualités sont égales. Ceci est le cas dans des langages centrés sur les signaux tels qu’Altarica ou Simulink. Cependant, nous avons choisi une autre approche inspirée par la notion de contrat ([Mey92] [SJ13]) : nous nous intéressons à la propagation d’une défaillance dans un système en l’envisageant comme la rupture d’un contrat. Plus précisément, un lien entre deux ressources représente un contrat liant deux services : le fournisseur s’engage à fournir un service avec une certaine qualité et le client attend un service avec une certaine qualité. Ceci est rendu possible par le fait que les qualités de service sont construites autour d’un ordre total. Pour un même lien entre deux ressources (liant deux services), nous avons donc trois qualités de service : celle qu’on espère fournir, celle qui est réellement fournie et celle qu’on s’attend à recevoir ; le contrat est respecté lorsque la qualité fournie réellement est supérieure ou égale à la qualité qu’on s’attend à recevoir (Figure 23 page 131).

Pour formaliser cette notion, nous définissons d’un côté la qualité de service garantie, qui est une qualité de service minimale que s’engage à fournir la ressource (bien qu’elle puisse fournir une qualité plus grande, voire plus faible comme nous le verrons), ainsi qu’une qualité de service attendue de l’autre côté. Ces qualités dépendent uniquement du mode de la ressource : il est par exemple possible d’imaginer des modes "économie d’énergie", où une ressource attend en entrée une qualité de service sur l’énergie qui est plus faible qu’en mode nominal, mais où elle fournit des services (par exemple un service GPS) avec une qualité garantie plus faible.

1 2 3 4 5 6 3 2 4 3 1 2 5 3 3 1 2 3 3 5 2 Qualité de service garantie Qualité de service attendue

F i g u r e 23 – Modèle GMD : la qualité de service est un contrat entre les services sortants et les services entrants.

Définition 32 (Qualité de service garantie et attendue)

Soit une ressource i ∈ Eressource, soit un mode de cette ressource m ∈ Mi,

m(in) :→ QS et m(out) :→ QS sont respectivement les qualités de service attendue et les qualités de service garanties lorsqu’une ressource i est dans le mode m. Une ressource reçoit des services en entrée, chacun avec une qualité attendue, et produit des services en sortie avec une qualité garantie.

On note qs|i la qualité réelle du service s directement fournie par i.

Nous pouvons donc voir qu’une première étape de la construction d’un système est de faire cor-respondre les contrats : pour chacun des liens entre les services, il faut que les qualités de service garanties soient plus grandes que les qualités de service attendues ; ceci peut par exemple être effectué en sélectionnant les modes appropriés pour chaque ressource - ou en changeant l’architecture.

Cependant, la qualité de service réelle des services peut varier : elle dépend à la fois du mode courant de la ressource et de la qualité des services entrants. En vérité, au regard des définitions précédentes, il n’est pas nécessaire de connaître précisément la valeur de la qualité de service réelle, puisqu’il suffit de savoir si elle respecte ou non la qualité de service garantie. Pour un mode fixé, la qualité de service réelle n’a donc que deux valeurs possibles : soit elle est égale à la qualité de service garantie lorsque tout va bien, soit elle est égale à la valeur minimale ; on ne cherche donc pas à calculer à quel point elle est plus grande que la qualité de service garantie lorsque tout va bien, ni à calculer à quel point elle est en dessous de la qualité garantie lorsque quelque chose n’est pas correct.

Lorsqu’au moins l’une des qualités de service réelles qs d’un service s est strictement inférieure à l’une des qualités de service attendues qs<sm(in)i (s), on dit alors que la ressource i est inconsistante ; il y a rupture du contrat entre les deux services. La ressource i ne peut alors fournir aucun de ses services produits avec la qualité garantie (Figure 24 page 132). En conséquence, par convention, la qualité réelle de chacun des services produits par la ressource i est fixée à la valeur minimale de la qualité de service :

Définition 33 (Première règle de mise à jour : inconsistance) ∀i ∈ Eressource,∃s ∈ Si(in), qs<sm(in)i (s)

∀s0 ∈ Si(out), qs0|i= min(Qs0)

Par opposition, si tous les services entrants ont la qualité attendue, une ressource i fournira tous ses services avec la qualité garantie.

Définition 34 (Seconde règle de mise à jour : consistance) ∀i ∈ Eressource,∀s ∈ Si(in), qssm(in)i (s)

∀s0 ∈ Si(out), qs0|i= m(out)

i (s0)

Pour évaluer quelle qualité de service une ressource reçoit pour un service donné, nous souhaitons intuitivement dire qu’elle sélectionne la meilleure source disponible pour ce service : pour un service donné, la qualité réelle est obtenue à partir du maximum de toutes les qualités produites, en considérant

CHAPITRE VI. GESTION DES MODES DÉGRADÉS 1 2 3 4 5 6 3 2 4 1 2 5 3 3 1 2 3 3 5 2 [Défaillant] [nominal] [nominal] [nominal] [nominal] [nominal] 0 0< 0 3 1< Inconsistant

F i g u r e 24 – Modèle GMD : suite à un changement de mode, certains contrats peuvent être rompus, ce qui change plusieurs qualités de service mais ne change pas les modes des autres ressources. toutes les ressources fournissant ce service. Ainsi, lorsque plusieurs ressources produisent un même service, ceci suppose que la première opération réalisée dans chaque ressource recevant ce service est de sélectionner la source appropriée.

Définition 35 (Troisième règle de mise à jour : consolidation) ∀i ∈ Eressource, ∀s ∈ Si(in), qs = maxi∈Eressource(qs|i)

Si aucune ressource ne fournit le service s, la qualité de service de s est fixée au minimum de la qualité de service.

On peut prouver facilement que ces règles de mise à jour convergent lorsqu’elles sont itérées sur un système : en construisant un vecteur contenant toutes les qualités de service réelles, ce vecteur est décroissant à chaque mise à jour (en fonction de l’ordre total déterminé par la combinaison des ordres totaux sur les qualités de service). Associé au fait que si le vecteur après mise à jour est identique au vecteur avant mise à jour, alors il restera identique après l’application de chacune des règles de mise à jour, ceci prouve la convergence de la mise à jour.

Cependant, l’état final n’est pas unique : il dépend à la fois du système et de l’état initial, c’est-à-dire de la valeur des qualités de service avant le début de l’algorithme de mise à jour. Pour résoudre ce problème, nous définissons le processus de mise à jour suivant (les modes mi de chaque ressource i étant fixés) :

Algorithm 11:Mise à jour de la qualité de service

1 Fixer toutes les qualités de service réelles qs à leur valeur maximale max(Qs) ;

2 while l’un des qs a changé do

3 Appliquer les règles de mise à jour 1 à 3 ;

L’unicité de la limite peut alors être prouvée, puisque l’état final ne dépend pas de l’ordre dans lequel les ressources sont mises à jour, ni de l’ordre dans lequel les règles sont appliquées.

Théorème 8 (Unicité de la limite de convergence)

L’algorithme de mise à jour (Algorithme 11 page 132) converge vers une valeur unique pour toutes les qualités de service, pour un ensemble de modes fixé pour toutes les ressources ; cette limite est indépendante de l’ordre d’application des règles et de l’ordre de mise à jour des ressources dans l’algorithme.

Démonstration : En effet, si une séquence finie d’application de règle Seq mène à une limite donnée L (c’est-à-dire un ensemble de qualités de service, tel que l’application de toute nouvelle règle ne change aucune valeur), alors on peut montrer que l’ajout de toute nouvelle application de règle à n’importe quel endroit de Seq conserve toujours la même limite : par récurrence, soit Seq une séquence finie composé de σ1, . . . , σi, . . . , σn où chaque σ est l’application d’une règle 1,2 ou 3 sur une seule ressource ; l’ajout

de toute opération σ juste après σi est supposé par hypothèse ne pas changer la limite ; alors puisque σi est l’application de la règle 1, 2 ou 3 sur une ressource ou un service, σi et σ sont commutatifs de façon triviale dans les cas suivants :

– σi est une règle 1 (inconsistance) ou 2 (consistance) et σ est une règle 1 ou 2 ou n’impacte aucun des services entrants de la ressource concernée, et réciproquement σi n’impacte aucun des services sortants de la ressource concernée par σ.

– ou inversement σi est une règle 3 (consolidation) et σ est aussi une règle 3, ou n’impacte aucun des services sortants de la ressource concernée, et réciproquement.

Il reste donc deux cas (avec les conditions réciproques pour σ) à étudier : si σi est une règle 1 ou 2 sur une ressource i et que σ est une règle 3 sur une ressource j ayant un effet sur au moins l’une des qualités de service entrants de la ressource concernée, alors c’est que σi dégrade l’une de ces qualités de service, ce qui peut potentiellement déclencher les conditions nécessaires aux règles 1 ou 2, dégradant une ou plusieurs qualités de service sortants de i. Notons Q l’ensemble de ces qualités de service. Or, par hypothèse l’ajout de σ&σi juste après σi ne change pas la limite. En appelant Q0 les qualités de service de la limite, nous pouvons donc établir que toute qualité de service de Q est supérieure ou égale à la valeur de la qualité de service correspondante dans Q0 : l’application de σ avant σi n’a donc pas dégradé les qualités de service plus bas que ce qu’elles auraient été baissées sans cet ajout, ce qui montre donc que la commutation de σ et σi n’a eu aucun effet sur la limite.

Avec un raisonnement similaire, nous pouvons montrer la récurrence sur le cas où σi est une règle 3 et que σ est une règle 1 ou 2. Comme la condition initiale de récurrence est vraie puisque la limite est inchangée par toute nouvelle opération, ceci montre la récurrence dans le cas général.

Alors, si Seq1 est une séquence menant à une limite L1 et Seq2 est une séquence menant à une limite L2, la séquence Seq1&Seq2 mène à la limite L1 puisque l’ajout de Seq2 après Seq1 ne change pas la limite, mais mène aussi à la limite L2, puisque l’ajout de toute opération à la séquence Seq2ne modifie pas la limite. Ceci montre que L1 = L2, ce qui prouve l’unicité de la limite de convergence de l’algorithme.

Il est important de noter que ce résultat vient du fait que notre définition des relations entre les services entrants et les services sortants est particulièrement restrictive : dans la plupart des langages de modélisation, les données entrantes et sortantes sont liées par des équations plus complexes, permettant une plus grande expressivité mais ayant le défaut supplémentaire de permettre des états indéterminés. C’est par exemple le cas d’un composant dont la sortie out serait out = (1 − in), où in serait une entrée connectée directement à la sortie ; un algorithme de mise à jour ne s’arrêterait donc jamais (si out et in ne peuvent prendre pour valeur que 0 ou 1), puisqu’il assignerait successivement des valeurs 0 puis 1 à l’entrée et la sortie, un peu comme un composant qui clignoterait en permanence.

Notre modèle n’est pas confronté à ce problème, mais avec la limitation ajoutée qu’il n’est pas possible d’exprimer certaines relations entre les entrées et sorties du système ; cependant, la gestion de la qualité de service est un problème sensiblement différent de la gestion des signaux circulant dans un système : il est sensé dans le contexte de la qualité de service d’imposer que la diminution d’une donnée d’entrée n’implique jamais l’augmentation d’une donnée de sortie. Dans le cas contraire, ceci signifierait en effet que la baisse de qualité d’un service fourni a un effet bénéfique sur d’autres qualités de service, ce qui n’est vraisemblablement pas le cas.