• Aucun résultat trouvé

UnCN P-Graphe compact (cCN P) repr´esente un probl`eme li´e `a la r´epartition des ressources sous

son point de vue logique. L’instanciation d’un cCN P en un CN P-Graphe CN P repr´esentant la r´ealit´e

physique de ce probl`eme se fait d’une part en utilisant les labels des sommets de cCN P pour cr´eer

les sommets deCN P, et d’autres part en ´evaluant les fonctions distance de cCN P pour lab´eliser les

arcs deCN P.

Nous avons d´efini le concept de fonction distance comme une fonction de coˆut. Cette derni`ere est donc la fonction qui permet d’attribuer une valeur r´eelle que nous appelons distance4 aux arcs de

5.4 Mod´elisation des fonctions distance 73

CN P en vue d’une exploitation par des algorithmes. Pour ce faire, il convient d’int´egrer d’une part

les information de surveillance de la plateforme, lesquelles ont ´et´e mod´elis´ees sous forme d’un graphe

CN , et d’autre par les propri´et´es de l’interaction logique entre les entit´es logicielle, lesquelles ont ´et´e

mod´elis´ees en tant que valeurs T P S.

Avec la d´eclaration des m´etriques de performance, des m´etriques s´emantiques, des m´etriques compos´ees et des propri´et´es de tˆache, l’utilisateur poss`ede tous les outils de base pour d´efinir ais´ement des fonctions distances refl´etant les aspects qu’il compte optimiser. Plus formellement :

efinition II.13 Fonction Distance La fonction distance utilis´ee pour lab´eliser l’arc (V s, V d)∈ cE d’un CN P-Graphe compact est not´ee :

dfV s,V d ∈ FT P SR o`uFR

T P S d´esigne l’ensemble des fonctions de tp1×. . .×tpndansR. Ces fonctions peuvent contenir

des m´etriques de performance et s´emantiques de M , des m´etriques compos´ees de CM et des propri´et´es de tˆache de T P S.

Par convention, les valeurs des fonctions distance tendent vers 0 lorsque l’aspect ´evalu´e tend vers la perfection, puisque les distances sont consid´er´ees comme des coˆuts et que les algorithmes tendent g´en´eralement `a les minimiser.

De plus, les m´etriques chaˆınes deS ne peuvent ˆetre utilis´ees qu’incluses dans des tests (voir Section 5.4.2).

Un exemple tr`es simple est la mod´elisation des coˆuts de transfert impliqu´es dans l’adaptation d’un fichier : un fournisseur provider envoie une fichier de taille size `a un service d’adaptation converter qui renvoie un fichier de taille size/2 `a un client :

⎧ ⎪ ⎨ ⎪ ⎩ T P S ={< size >}

df S ={dfprovider,converter(size) = DT Cprovider,converter(size),

dfconverter,client(size) = DT Cconverter,client(size/2)}

Veuillez noter que, dans la suite, l’ensemble des fonctions distance df S n’est pas stipul´e car nous ne pr´esentons pas ici desCN P-Graphes compacts, mais seulement des exemples de T P S et de fonctions

distance, ind´ependamment de tout probl`eme logique. C’est d’ailleurs une des garanties de souplesse de notre approche : la mod´elisation de la logique des probl`emes est d´ecorr´el´es de la mod´elisation des coˆuts impliqu´es dans ce probl`emes. Ces deux mod´elisations peuvent donc ˆetre modifi´ees et r´eutilis´ees ind´ependamment, y compris par des acteurs diff´erents. Ceci sera discut´e Section 5.5.

5.4.1 Evaluation des fonctions distance´

Afin d’attribuer les labels aux arcs d’unCN P-Graphe, il convient d’´evaluer les fonctions distances

Le label de l’arc (V s.hs, V d.hd)∈ V s × V d est calcul´e en instanciant dfV s,V d.

efinition II.14 Instanciation des fonctions distances

L’instanciation de dfV s,V d pour l’arc (V s.hs, V d.hd)∈ V s × V d est not´ee : dfV s.hs,V d.hs: tp1× . . . × tpn→ R

Par exemple, les instanciations des fonctions distance montr´ees pr´ec´edemment sont :

dfprovider.hs,converter.hd(size) = DT Chs,hd(size)

dfconverter.hs,client.hd(size) = DT Chs,hd(size/2)

Le label d’un arc (V s.hs, V d.hd)∈ V s × V d est not´e d(V s.hs, V d.hd) et correspond `a l’´evaluation

de dfV s.hs,V d.hd en tenant compte des valeurs effectives des variables d´eclar´ee dans T P S.

Cette ´evaluation peut se faire selon deux modes distincts : pour les probl`emes `a court terme et ceux `a long terme.

´

Evaluation pour les probl`emes `a court terme

Pour les probl`emes `a court terme, tels qu’une s´election ou une composition de ressources pour une ex´ecution imm´ediate, la derni`ere observation des m´etriques sera utilis´ee ainsi que les valeurs d´eclar´ee des propri´et´es de tˆache.

d(V s.hs, V d.hd) = dfV s.hs,V d.hd(v1, . . . , vn)

Par exemple :

T P S< size = 100Mo >

dfprovider,converter(size) = DT Cprovider,converter(size)

permettra de lab´eliser les arcs (provider.hs, converter.hd)∈ provider × converter par : d(provider.hs, converter.hd) = DT Chs,hd(100M o)

´

Evaluation pour les probl`emes `a long terme

Pour les probl`emes `a long terme, tels qu’un placement de ressource, la pr´ediction des m´etriques sera utilis´ee ainsi que l’int´egration des valeurs des propri´et´es de tˆache en fonction des d´eclaration relatives `a leur distribution :

5.4 Mod´elisation des fonctions distance 75 d(V d.hs, V d.hd) = ub1 lb1 . . . ubn lbn n k=1 distribk(tpk)  × dfV s.hs,V d.hs(tp1, . . . tpn)  dtp1. . . dtpn Par exemple :

T P S< size, log, 10Mo, 1Go, 100Mo >

dfprovider,converter(size) = DT Cprovider,converter(size)

permettra de lab´eliser les arcs (provider.hs, converter.hd) ∈ provider × converter par : d(provider.hs, converter.hd) = 1Go 10M o  log(size)× DT C hs,hd(size) dsize

Le calcul de cette int´egrale sera d´etaill´e Section 7.2.4.

5.4.2 Exemples de propri´et´es de tˆache et de fonctions distance

Afin de mieux fixer les id´ees, voici quelques exemples classiques de propri´et´es de tˆache et de fonctions distance.

Transfert d’une donn´ee d’une source vers une destination pour minimiser le temps de

transfert

Dans le cas d’un transfert de donn´ee et lorsqu’on ne s’int´eresse qu’aux performances, la seule propri´et´e de tˆache est la taille des donn´ees transf´er´ees, not´ee dataSize. La donn´ee ´etant transf´er´ee de la source vers la destination, on peut utiliser directement la m´etrique compos´ee DataT ransf erCost comme suit :

T P S< dataSize >

dfV s,V d(dataSize) = DT CV s,V d(dataSize)

Transfert d’une donn´ee d’une source vers une destination pour optimiser l’´equilibrage

de l’espace disque

Lorsqu’on s’int´eresse `a l’´equilibrage des charges pour stocker une donn´ee, on utilise les m´etriques

f reeDiskSpace et diskSpace pour calculer le pourcentage d’espace libre. Les arcs vers les hˆotes ne disposant pas assez d’espace sont lab´elis´es avec la valeur infinie, les autres avec l’inverse de l’espace disque disponible. Ainsi, les hˆotes pr´esentant le pourcentage d’espace disque libre le plus ´elev´e seront destination des arcs les plus courts :

⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ T P S < dataSize > dfV s,V d(dataSize) = ⎧ ⎨ ⎩ f reeDiskSpaceV d− dataSize

diskSpaceV d si f reeDiskSpaceV d > dataSize

sinon

Transfert d’un fichier d’une source vers une destination pour minimiser le temps de

transfert et la fraˆıcheur, `a partir de son identifiant

Il est possible de prendre en compte plusieurs aspects dans une mˆeme distance. Par exemple, lors de la r´ecup´eration d’un fichier d´esign´e par l’identifiant f ileId, on peut vouloir s´electionner les r´eplicas en fonction des temps de transfert, mais en privil´egiant les versions les plus r´ecentes. On combine alors la m´etrique compos´ee DataT ransf erCost et la m´etrique s´emantique f reshness, consid´er´ee ici comme un malus arbitraire : lorsque l’indice de fraˆıcheur est au plus bas (0), la distance est doubl´ee.

T P S< fileId >

dfV s,V d(f ileId) = DT CV d,V s(f ileSize(f ileId))∗ (2 − freshness(fileId, V d))

On peut ´egalement consid´erer la fraˆıcheur comme m´etrique principale et le coˆut du transfert comme un modificateur de celle-ci, si le besoin en est.

Invocation d’un service par une source sur une destination pour minimiser le temps d’ex´ecution

L’invocation d’un service comporte trois parties : l’envoi du client vers le service des donn´ees `a traiter de taille input, leur traitement n´ecessitant nCycles op´erations ´el´ementaires de CPU, puis le retour des r´esultats de taille output du service vers le client. Il faut donc combiner les m´etriques compos´ees DataT ransf erCost pour les transferts aller et retour et ComputationT askCost pour le traitement par le service :

T P S⊇ {< input >, < nCycles >, < output >}

dfV s,V d(input, nCycles, output) = DT CV s,V d(input) + CT CV d(nCycles) + DT CV d,V s(output)

Invocation d’un service par une source sur une destination en s´electionnant un type

d’architecture