• Aucun résultat trouvé

3.4 Synthèse

4.1.2 Modèle conceptuel

Le modèle conceptuel est présenté via le méta-modèle CSLA et la grammaire associée (en AnnexeA). Un exemple complet est déroulé en Section4.1.4.

i) Méta-modèle CSLA

Le méta-modèle (Figure4.1) présente le modèle conceptuel du langage. Un contrat est spécifié concrètement sous forme d’une instance de la classe SLA. Cette dernière est

composée de : la durée de validité du contrat, des parties impliquées et d’un template CSLA.

Figure4.1 – Méta-modèle CSLA a) Validité

La durée de validité d’un contrat (Validity) est définie par la date d’entrée en vigueur et la date de fin. Cette dernière peut être modifiée conformément aux conditions de résiliation (Termination).

Figure4.2 – Validité b) Parties

La section Parties décrit les parties impliquées dans le contrat. Elle inclut les parties signataires (ou primaires) ainsi que les parties de support (tier de confiance). Deux parties signataires sont impliquées dans le contrat selon leurs rôles : le fournisseur de service et le client. Nous distinguons un autre rôle à savoir le support. Généralement, ce rôle est attribué au fournisseur de service mais parfois au client ou les deux. Par exemple, avec EC2 d’Amazon, le client doit prouver que son service a été indisponible en capturant lui-même la panne et en la documentant en conséquence, avant d’envoyer la preuve à Amazon, le tout dans un délai de 30 jours après l’occurrence de la panne1. Le support peut être également assigné à un ou plusieurs tiers de confiance.

La description de la partie résume les propriétés qui sont communes et indépen-dantes de leur rôle particulier à savoir le nom, et les éléments de contact comme illustré dans la Figure4.3.

1http ://aws.amazon.com/fr/ec2-sla/

Figure4.3 – Les parties c) Template

Le template CSLA est un patron (modèle) du contrat. Il est généré avec des para-mètres prédéfinis pour s’assurer que les garanties de QdS proposés sont réalistes et réalisables. Une illustration de chacun des concepts est donnée dans la Section4.1.4. Il est composé de cinq éléments : la définition des services, les paramètres, les garanties, le billing et la terminaison.

Figure4.4 – Définition des services

La définition des services : CSLA formalise le SLA pour n’importe quel service XaaS. La version actuelle supporte les services suivants : SaaS, PaaS et IaaS.

Cepen-dant, CSLA est facilement extensible en ajoutant des types dérivés de la classeService (voir Figure4.4). L’originalité de CSLA au niveau définition de service est la dégrada-tion de foncdégrada-tionnalité (Mode). Un service (en particulier SaaS et PaaS) peut avoir un ou plusieurs modes de fonctionnement. Par exemple, un fournisseur SaaS peut propo-ser un propo-service d’informatique décisionnelle (Business Intelligence) avec deux modes : affichage 3D comme mode normale et affichage 2D comme mode dégradé.

L’intérêt majeur de la dégradation de fonctionnalité est de pouvoir être utilisé dans des politiques de dimensionnement du fournisseur de service pour faire face à des pics de charge de courte durée ou encore pour absorber le temps d’initialisation non négligeable des instances. Le fournisseur de service peut, alors, mieux planifier ses res-sources mais sans importuner le client. En effet, le prix de service sera ajusté en fonction des modes selon une stratégie gagnant-gagnant. Un tel rapport fonctionnalité-prix doit être à la fois attrayant pour le client final et rentable pour le fournisseur SaaS. Dans CSLA, nous proposons clairement de contractualiser le pourcentage d’utilisation de ce mode par une métrique (cf. Section4.1.4).

Un service (SaaS ou PaaS) est défini comme un ensemble de produits (solutions logicielles) alors qu’un service IaaS regroupe des instances. CSLA template reconnait deux types d’instances virtuelles : calcul et stockage. Nous modélisons les ressources via le standard OCCI. Ce choix est justifié par la capacité de ce standard de répondre aux différents types de ressources. Il propose une définition de haut niveau. Une ressource est dérivée en trois types : réseau, stockage et calcul. Le réseau est identifié par un label et un vlan. Le stockage est défini par la taille de stockage. Le calcul est spécifié principalement par l’architecture, la vitesse du processeur, le nombre de cœurs et la taille mémoire. Une instance de calcul est une image plus les trois ressources (réseau, stockage et calcul). Une image est composée d’un ensemble de packages. Sinon, une instance de stockage est réduite à une ressource de stockage. Chaque service est immatriculé par un identifiant et un prix. Le prix d’une instance dépend des ressources mais aussi du type et de la taille des données transférées depuis et vers les ressources allouées.

Figure4.5 – Les paramètres

Les paramètres : Les paramètres offrent un moyen pour définir des variables qui sont utilisées dans d’autres sections du contrat. Ils sont utilisés pour factoriser les variables du contrat. Comme illustré dans la Figure4.5, elles font références à un

élé-ment particulier tel que : une métrique, un monitoring ou un calendrier. Une métrique est définie par un identifiant, une description et une unité. Un monitoring précise la nature d’évaluation d’une métrique à savoir : la statistique (moyenne, maximum, mini-mum,...), la fenêtre d’évaluation et la fréquence de la collecte de valeurs. Un calendrier délimite une période de monitoring spécifique pendant la durée de validité de contrat.

Garanties: Les garanties présentent le noyau du contrat. Une garantie est définie dans un contexte (scope, exigences).

Unscopeborne la portée d’une garantie. Il définit l’ensemble des services impliqués.

Figure4.6 – Le scope

Les exigences (Requirements) présentent les spécifications indispensables pour le bon fonctionnement des services impliqués. Une spécification peut être obligatoire ou op-tionnelle. Elle décrit un ou plusieurs éléments techniques préalables à remplir comme la version d’un navigateur par exemple.

Figure4.7 – Les exigences

Les termes de garanties détaillent les objectifs de niveau de service (SLO) du contrat.

Un terme de garantie est une composition des termes ou objectifs via des opérateurs tels queAndetOr. La Figure4.8illustre les termes de garanties.

Un objectif (SLO) est défini par une contrainte à satisfaire pour une circonstance par-ticulière. Cette circonstance est représentée par une pré-condition. Une contrainte est une expression composée d’une métrique, un comparateur et un seuil. Cette contrainte a une priorité (priority) pour refléter les préférences du client. Nous introduisons la dégradation de QdSdans le contrat SLA via les propriétésfuzzinessValue, fuzzinessPer-centageet confidence. Un objectif doit être garanti selon un calendrier pendant la durée de validité de contrat avec un pourcentage de confiance. La confiance (confidence) est

Figure4.8 – Les termes de garanties

le rapport (cas adéquats/ nombre de cas) (cf. Section 4.1.3). Parmi les cas adéquats, un pourcentage (fuzzinessPercentage) des requêtes peut utiliser une marge d’erreur à savoir la fuzzinessValue. L’avantage direct de cette dégradation de QdS est la capacité d’absorber les pics imprévisibles tout en maintenant un certain degré de QdS.

Avec telle proposition, le fournisseur de service peut affiner ses stratégies mais sans importuner le client car ce dernier sera facturé via un modèle économique avancé (cf.

Section 4.1.3). Ce modèle harmonise les pénalités avec la dégradation de QdS afin de fournir un bon rapport qualité-prix qui est la fois attrayant pour le client final et ren-table pour le fournisseur SaaS.

Figure4.9 – Les Pénalités

CSLA gère finement les violations comme la montre la Figure 4.9. Les pénalités sont des moyens de récompenser le client pour tolérer des violations. Une pénalité est définie par une constante ou une fonction. La procédure indique l’acteur responsable de la détection de violation ainsi que la méthode et la période de notification.

Figure4.10 – Le billing

Le billing: La facturation suit deux types : un forfait oupay as you go. Le prix du service dépend des modes de fonctionnement,confidence, fuzziness, et pénalités. Dans le cadre de notre travail, nous focalisons l’accent sur le billingpay as you go.

La terminaison: Un contrat peut être terminé naturellement selon la date de fin ou suite à l’exécution d’une résiliation conformément à la sectionTermination. CSLA offre la possibilité de formaliser des clauses de terminaison. Une terminaison est caractérisée par l’initiateur, le type de résiliation, la méthode de notification et les frais associés.

Figure4.11 – La terminaison

ii) Grammaire CSLA

La grammaire CSLA présente la syntaxe abstraite du langage. Nous avons joint en annexe Ala spécification du langage CSLA avec un schéma XML qui donne une vue plus détaillée sur la grammaire CSLA.