• Aucun résultat trouvé

Le DSLA Manager est le composant permettant la gestion des accords de niveau de

service, depuis leur création jusqu’à leur terminaison. Il est donc responsable :

• de la création des accords,

• de leur conservation,

• de leur suivi et de l’évaluation du respect des objectifs de niveau de service (SLO)

concernant les interruptions,

• et de leur terminaison de manière coordonnée afin que chaque partie, même

absente, soit avertie.

Le schéma ci-dessous (Figure 46) représente le DSLA Manager. Ce gestionnaire

composite est constitué d’un moniteur de niveau de service (DSLM) et d’un composant

prenant en charge les négociations. Il est également fournisseur de deux services donnant

accès à ses fonctionnalités listées au-dessus (négociation, accès aux accords passés, …).

DSLA Manager

DSLA Manager

DSLM

DSLM

Negotiator

Negotiator

DisruptionsLog Service DSLA Negotiation Service •addOffer •removeOffer •negotiate DSLA Negotiation Service •addOffer •removeOffer •negotiate DSLA Admin Service •getAgreements •terminate •confirmTermination DSLA Admin Service •getAgreements •terminate •confirmTermination

VI.3.1 Contenu d’un DSLA

Les accords de niveau de services gérés par le DSLA Manager ont une forme qui découle

directement de l’analyse faite dans l’état de l’art. Le SLA (i.e., DSLA) se découpe en trois

parties : les informations générales (nom, ID, description, service concerné), le contexte

(dates de validité et parties impliquées) et les termes (principalement les objectifs de

niveau de service).

Les SLOs sont de la forme décrite dans le chapitre précédent. Ils sont exprimés par un

nom, une description, une valeur, une unité, une relation d’ordre en gardant une

possibilité d’extension (ensembles de clés-valeurs) pour des informations telles que la

précision de la mesure (marge d’erreur) ou les conditions de validité du SLO. Nous nous

intéressons essentiellement aux critères de QdS caractéristiques de la disponibilité des

services intermittents. Néanmoins d’autres objectifs peuvent être décrits via des paires

clé-valeur. En revanche le système actuel ne fournit pas les mécanismes de mesure

d’autres SLOs.

Par défaut la partie obligée est le fournisseur de service, nous ne proposons pas ici de

résoudre le cas de l’intermittence des consommateurs qui nécessiterait une réflexion plus

poussée sur la mesure de cette intermittence, sur les concepts de sessions et de contrôle

d’admission. Néanmoins cette voie est présentée plus en détails dans les perspectives de

cette thèse (chapitre IX.1).

VI.3.2 Négociation et établissement d’un SLA

Le DSLA Manager prend aussi en charge la négociation et donc la création d’un accord

de niveau de service. L’accord se construit à partir des capacités et besoins des parties. En

pratique le prestataire (ou plus rarement le consommateur [Andrieux et al 2004]) propose

une offre servant de base à la négociation. Nous avons décidé de suivre ce mode de

fonctionnement. Le schéma d’interaction Figure 47 montre les différentes étapes du

processus de négociation entre un consommateur et un fournisseur de service.

Les fournisseurs de service publient une proposition d’accord en même temps que leur

service. Les consommateurs en plus de trouver le service requis doivent alors confronter

leurs besoins aux capacités (et vice versa) des fournisseurs découverts, activement ou

passivement lorsque c’est possible, ceci afin de fixer les termes de l’accord (i.e., les SLOs).

Cette offre est elle-même en quelque sorte tolérante aux interruptions puisqu’elle reste

active même si le fournisseur est indisponible. Elle est automatiquement retirée par le

gestionnaire de SLAs lorsque le fournisseur ne respecte plus ses SLOs. Toutefois ce

dernier n’est pas mis sur liste noire et pourra proposer une autre offre ultérieurement.

Le service de négociation proposé par le DSLA Manager est fourni par un composant

dédié à la gestion de la négociation. Il permet à un fournisseur d’enregistrer (ou retirer)

une proposition de SLA au moment de la publication (ou du retrait) de son service, et à un

consommateur de négocier une offre publiée. La négociation peut porter aussi bien sur les

SLOs spécifiques aux interruptions de service que sur d’autres paramètres de qualité de

service. Cependant, nous avons choisi de procéder par simple comparaison des valeurs

des paramètres de qualité de service, ce qui fait que le composant de négociation reste du

niveau de la simple sélection. Pour qu’un accord soit conclu entre un consommateur et un

fournisseur de service, il est également nécessaire que l’ensemble des besoins du

consommateur soit un sous-ensemble de l’offre du fournisseur. Ce service de négociation

pourra être raffiné par la suite pour supporter des protocoles plus complexes, mais ce

n’est pas le but de cette thèse.

Consumer DSLA Manager ServiceRegistry Provider

1 : registerService() 2 : addOffer() 3 : notifiyArrival 4 : negotiate() 5 : OK 6 : useService() 7 : useService 8 : unregisterService() 9 : notifyDeparture 10 : removeOffer()

Figure 47. Diagramme de séquence UML du processus de négociation

VI.3.3 Suivi de la conformité

L’évaluation du respect des objectifs de niveau de service, et donc de la conformité à

l’accord, est un des rôles du SLM (Service Level Management). Dans notre cas, elle est

gérée par un composant appelé DSLM dont la tâche est de comparer les mesures faites par

les sondes et de déclencher des actions lorsque ces mesures ne sont plus en accord avec les

termes du SLA.

Le DSLM utilise le service du DisruptionsLogger comme sonde de mesure des

interruptions de service. Lorsqu’un SLA entre en application, le DSLM fait appel au

DisruptionsLogger pour surveiller un fournisseur. Il y enregistre un objet servant

(DisruptionsListener, cf. Figure 45) qui est ensuite notifié en cas d’interruption et de

retour via deux méthodes de rappel. Quand une interruption survient, le DSLM

programme selon un mécanisme de chien de garde (watchdog) un rapport de violation à

l’instant tt correspond à l’échéance la plus proche dans le temps : le temps restant

avant le dépassement de la durée maximum d’interruption, ou celui du seuil des durées

d’interruptions cumulées. Si le prestataire est de retour avant l’échéance alors la tache est

simplement annulée. Un mécanisme similaire est utilisé au retour d’un service afin

d’évaluer le troisième critère, c’est-à-dire le temps minimum de fonctionnement.

A la création d’un accord, le DSLA Manager crée une instance du composant DSLM

chargé de la supervision du SLA. Cette instance est alors identifiée dans la partie de

l’accord relative au contexte comme partie chargée de la supervision.

En tant qu’évaluateur de conformité, le DSLM est responsable du maintien de l’état de

l’accord qu’il surveille. Il peut transmettre une violation de clause au DSLA Manager afin

que ce dernier invalide l’accord et selon la politique de recours choisie y mette fin en

conséquence.

Enfin le DSLM, qui supervise le respect des SLOs et rapporte les violations de clauses,

applique les pénalités et déclenche les politiques de recours. Ici, nous ne souhaitons pas

couvrir un ensemble conséquent de pénalités (cf. chapitre III.2.3.3). Seule la mise sur liste

noire (blacklisting) a été validée dans l’implémentation et les expériences. Elle est

déléguée au conteneur gérant les liaisons de services.

VI.3.4 Terminaison

N’importe quelle partie peut mettre fin à un accord. Que ce soit la partie tierce chargée

de la supervision (SLM), le consommateur ou le fournisseur du service. Seulement les

autres parties doivent alors être averties de la terminaison afin de pouvoir réagir en

conséquence. Par exemple, un consommateur averti pourra alors librement changer de

prestataire, ou un fournisseur pourra facturer son service au consommateur ayant rompu

l’accord, voire appliquer les pénalités définies par le contrat. Enfin le gestionnaire de

niveau de service pourra arrêter son activité de supervision une fois l’accord terminé.