04.07.2013 Views

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapitre VI – Construction et configuration de l’interface avec l’intergiciel d’exécution<br />

thread AADL donne donc lieu à <strong>la</strong> création d’une référence dans le cœur de l’intergiciel (qui<br />

correspond par exemple à une IOR dans le cas d’un ORB).<br />

Lorsque l’intergiciel reçoit une requête <strong>des</strong>tinée à cette référence, il <strong>la</strong> transmet à l’entité servante<br />

correspondante (1). Les données de <strong>la</strong> requête sont extraites et transmises à un tampon mémoire<br />

(2). Le tampon mémoire gère les données associées à chaque élément d’interface et prend en<br />

charge les politiques associées aux éventuelles files d’attente – <strong>pour</strong> les ports d’événement/donnée<br />

ou les sous-programmes d’interface.<br />

Si <strong>la</strong> requête correspond à un port d’événement/donnée ou à un sous-programme fourni en<br />

interface, le servant appelle le contrôleur de l’application (3) ; sinon le traitement s’arrête. Dans le<br />

cas d’un thread AADL périodique, un échéancier appelle le contrôleur (3).<br />

Lorsque le contrôleur est appelé, il récupère toutes les données <strong>des</strong> ports, ou les données<br />

associées à l’appel du sous-programme fourni en interface (4). L’enveloppe applicative AADL qui<br />

correspond à <strong>la</strong> séquence d’appel du thread AADL est ensuite appelée (5) par le contrôleur avec<br />

les données correspondantes.<br />

Les éventuelles données retournée (6) par <strong>la</strong> séquence d’appel – c’est-à-dire les paramètres de<br />

sortie du sous-programme fourni en interface ou les ports de sortie du thread AADL, selon le cas<br />

– sont ensuite récupérées (7). Dans le cas d’un sous-programme fourni en interface, les données<br />

sont intégrées dans <strong>la</strong> réponse à <strong>la</strong> requête et envoyées vers le client initial. Dans le cas de ports<br />

de données ou événement/donnée, elles sont intégrées dans de nouvelles requêtes et envoyées aux<br />

entités AADL <strong>des</strong>tinataires.<br />

VI-2.2 Application à l’intergiciel PolyORB<br />

PolyORB permet de produire un intergiciel adapté prenant en compte différents modèles de<br />

répartition et offrant une grande <strong>la</strong>titude de configuration [Vergnaud et al., 2004]. De récents travaux<br />

ont consisté à rationaliser son architecture afin de faciliter son intégration dans <strong>des</strong> <strong>systèmes</strong><br />

<strong>répartis</strong> <strong>temps</strong>-<strong>réel</strong> [Hugues, 2005]. Il constitue par conséquent une bonne solution <strong>pour</strong> <strong>la</strong> mise<br />

en p<strong>la</strong>ce d’un intergiciel d’exécution <strong>pour</strong> une application AADL.<br />

VI-2.2.1 Organisation de PolyORB<br />

PolyORB est une imp<strong>la</strong>ntation de l’architecture d’intergiciel dite « schizophrène » [Pautet,<br />

2001]. Cette architecture est structurée en trois couches : neutre, applicative et protoco<strong>la</strong>ire.<br />

La couche neutre constitue un cœur d’intergiciel mettant en p<strong>la</strong>ce <strong>des</strong> mécanismes génériques<br />

<strong>pour</strong> le traitement <strong>des</strong> données. Elle fournit un ensemble de services de communication canoniques,<br />

qui ne sont pas rattachés à un modèle de répartition particulier. La couche applicative effectue<br />

<strong>la</strong> traduction <strong>des</strong> requêtes entre <strong>la</strong> sémantique de l’application et les représentations neutres<br />

correspondantes. La couche protoco<strong>la</strong>ire imp<strong>la</strong>nte les fonctions re<strong>la</strong>tives aux communications avec<br />

les autres nœuds. L’organisation <strong>des</strong> trois couches est représentée sur <strong>la</strong> figure VI.2.<br />

Plusieurs personnalités applicatives ou protoco<strong>la</strong>ires peuvent être utilisées simultanément au<br />

sein d’une instance donnée d’un intergiciel schizophrène. Ces différentes personnalités interagissent<br />

alors par l’intermédiaire de <strong>la</strong> couche neutre. Il est ainsi possible d’utiliser plusieurs personnalités<br />

protoco<strong>la</strong>ires afin d’insérer le nœud applicatif au sein d’un système réparti constitué de<br />

nœuds hétérogènes, ou de déployer sur un même nœud plusieurs entités applicatives conçues <strong>pour</strong><br />

<strong>des</strong> spécifications d’intergiciel différentes.<br />

La structure de <strong>la</strong> couche neutre forme un intergiciel neutre configurable, basé sur un ensemble<br />

de services fondamentaux [Quinot, 2003] dont <strong>la</strong> combinaison permet de traiter les communica-<br />

c○ 2007 Thomas Vergnaud 103

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!