• Aucun résultat trouvé

L’ajout de temps dans les composants permet l’introduction de propriétés temporelles

utili-sables lors de l’assemblage de composants. L’ajout se fait dans le comportement et les contrats

des composants. Une approche à base de motifs est utilisée, chacun représentant une propriété

temporelle. Les motifs permettent de définir de façon abstraite la propriété désirée. Ces motifs

sont ensuite traduis dans le formalisme correspondant afin d’être utilisables lors de la

composi-tion des composants. L’utilisacomposi-tion de motifs permet à l’architecte d’ajouter les propriétés

tem-porelles sans avoir à écrire des formules de logiques temtem-porelles ou manipuler les automates

temporisés. Elle permet aussi un ajout identique pour un même type de propriétés et n’est pas

dépendant de la façon de faire d’un architecte. Les propriétés temporelles sont ensuite vérifiées

lors de l’assemblage de composants. Ceci est possible car les informations temporelles ne sont

pas uniquement syntaxiques mais sont fondées sur des formalismes avec une sémantique bien

définie, les automates temporisés et TCTL.

Une fois l’application validée par l’architecte, l’application a un comportement temporel

qui est le comportement attendu de l’application. L’application est développée puis

exécu-tée. Lors de l’exécution, il faut s’assurer que le comportement spécifié est bien respecté. Afin

d’effectuer cette vérification, nous utilisons le comportement temporel attendu pour générer

automatiquement un moniteur de qualité de service grâce à une transformation de modèles.

Chapitre 3

De la spécification à la réalisation

Une fois la spécification définie par l’architecte, les informations sont données aux

pro-grammeurs afin d’obtenir l’implantation du système. La qualité de service définie lors la

spé-cification doit être vérifiée lors de l’exécution du système afin de vérifier si elle est correcte.

Pour la vérifier, un système de monitorat peut être mis en place afin de surveiller l’exécution.

Cette instrumentation peut se faire de façon manuelle par un programmeur ou être générée

à partir des spécifications. Une instrumentation manuelle est souvent source d’erreurs et ne

peut pas toujours être effectuée car les fonctionnalités sont prioritaires. Une instrumentation

générée permet de fournir une surveillance sans ou avec peu d’interventions manuelles. Cette

génération est effectuée à partir des résultats de la spécification.

Ce chapitre présente la génération d’un moniteur de qualité de service pour le temps à

par-tir du comportement temporel d’une application à composants. La vérification des propriétés

de temps lors de l’exécution de l’application n’est pas toujours aisée avec les langages

utili-sés pour l’implantation. Vérifier le temps implique l’ajout par le programmeur de tests dans

le code ou d’un module spécifique pour cette vérification. Notre approche consiste à effectuer

cette incorporation de la vérification de façon automatique et indépendante du code développé.

Ceci permet une bonne séparation entre le code et les propriétés de qualité de service de temps.

Nous utilisons l’automate temporisé complet de l’application comme base du moniteur. Pour

réaliser le moniteur nous avons choisi une plate-forme permettant une gestion du temps

simpli-fié. Le langage Giotto permet une abstraction de temps. Ce chapitre présente la réalisation de

ce moniteur de qualité de service. Le moniteur est obtenu par une transformation de modèles

conformes au modèle des automates temporisés vers des modèles conforme au

méta-modèle de Giotto. Le moniteur est ensuite généré à partir du résultat de la transformation.

Nous présentons dans un premier temps l’objectif du moniteur à l’exécution. Dans un second

temps, nous présentons la spécification utilisée pour la génération. Nous comparons les deux

algorithmes et dans quels cas utiliser l’un ou l’autre. Enfin, nous présentons les algorithmes de

transformation.

52 De la spécification à la réalisation

3.1 Objectif de la réalisation d’un moniteur

La vérification de la qualité de service à l’exécution permet de savoir si les spécifications

sont bien respectées. Mais intégrer la vérification manuellement par le programmeur n’est pas

aisée car elle n’est pas toujours compatible avec les fonctionnalités de l’application. L’objectif

du moniteur est de notifier l’utilisateur ou le manageur de qualité de service que les propriétés

de temps sont respectées. Pour cela, nous devons identifier dans le comportement temporel à

quels moments il peut être violé. Le moniteur vérifiera à l’exécution que les messages sont bien

émis conformément aux propriétés. Nous souhaitons donc générer un moniteur permettant de

surveiller si les propriétés de qualité de service de temps sont correctes à l’exécution. Pour cela,

nous utilisons le comportement temporel des composants défini lors de la phase de spécification

afin d’obtenir le moniteur.

La Figure 3.1 présente le processus de génération du moniteur à partir de la spécification.

La spécification est un PIM qui est est transformé dans un PSM, le moniteur de qualité de

service.

Timed Automaton of Component Timed Automaton of Component Timed Automaton of Component Automate temporisé de composant Automate temporisé de l’application Moniteur en Giotto Transformation Composition de composants Implémentation de l’application Développement traditionnel Surveille

Spécification Réalisation Exécution

FIG. 3.1 – De la spécification à la réalisation.

Les composants notifient le moniteur grâce à un ensemble de fichiers intermédiaires. Le

moniteur vérifiera l’occurrence des messages en appelant des opérations de ces fichiers. La

Fi-gure 3.2 présente la communication entre Giotto, les composants et l’utilisateur. La vérification

des fichiers intermédiaires s’effectuent à l’aide desdrivers.

Plusieurs types de moniteurs peuvent être générés selon le lieu d’utilisation de la

vérifica-tion. Un seul moniteur peut être généré pour surveiller l’ensemble de l’application ou plusieurs

moniteurs si l’on veut surveiller des composants/composites particuliers. Dans tous les cas,

le processus de génération produit le moniteur ou les moniteurs à partir du comportement du

composite de plus haut niveau que l’on souhaite surveiller.

Spécification de l’application 53

Moniteur

en Giotto

Composants

Utilisateur

Fichiers

intermédiaires

Notifient de l’arrivée

des messages

Notifie

Vérifie l’arrivée des

messages

FIG. 3.2 – Communication à l’exécution.

Documents relatifs