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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

avec elle. Ainsi, un objet de liaison est un subrogé de l’entité <strong>réel</strong>le, qui prend en charge le transfert<br />

<strong>des</strong> invocations.<br />

Dans le cadre de PolyORB, lorsque <strong>la</strong> référence renvoie à une entité locale au nœud, l’objet<br />

de liaison est l’entité encapsu<strong>la</strong>nt le code de l’utilisateur. Lorsque <strong>la</strong> référence pointe vers un<br />

objet distant, l’objet de liaison regroupe l’ensemble <strong>des</strong> mécanismes permettant le dialogue avec<br />

l’objet distant : pile protoco<strong>la</strong>ire, fonction de représentation, connexion, etc. La fonction de liaison<br />

nécessite alors plusieurs fabriques d’objets, et une fonction de choix sélectionner <strong>la</strong> fabrique<br />

appropriée. Cette fonction de choix utilise <strong>des</strong> informations de configuration et de contexte <strong>pour</strong><br />

choisir un mécanisme.<br />

Dans le cadre de <strong>la</strong> modélisation en AADL de l’intergiciel, le service de liaison permet d’orienter<br />

les requêtes vers <strong>la</strong> couche applicative ou protoco<strong>la</strong>ire adéquate, selon <strong>la</strong> référence transportée<br />

par <strong>la</strong> requête. Afin de permettre <strong>la</strong> mise en p<strong>la</strong>ce de politiques d’ordonnancement <strong>des</strong> requêtes,<br />

il est nécessaire de découpler <strong>la</strong> réception <strong>des</strong> requêtes par le service de liaison de leur traitement<br />

effectif. Pour ce<strong>la</strong>, nous modélisons le service de liaison par trois composants principaux :<br />

– un composant de donnée représentant une file d’attente ;<br />

– un sous-programme prenant en charge l’insertion <strong>des</strong> requêtes dans <strong>la</strong> file d’attente ;<br />

– un sous-programme extrayant les requêtes de <strong>la</strong> file <strong>pour</strong> les traiter.<br />

Les dimensions de <strong>la</strong> file d’attente sont fixées à <strong>la</strong> construction de l’intergiciel, en fonction<br />

du nombre d’entités à prendre en charge et de <strong>la</strong> politique d’ordonnancement. Le composant de<br />

donnée AADL correspondant peut donc avoir <strong>la</strong> sémantique d’un tableau. Ce composant est partagé<br />

entre les différents threads AADL du nœud local ; le service de liaison consiste en effet en un<br />

aiguil<strong>la</strong>ge commun entre les différentes entités, c’est-à-dire entre les différents threads AADL.<br />

Le sous-programme d’insertion prend une requête en paramètre et nécessite un accès à <strong>la</strong> file<br />

d’attente afin de l’y insérer. Son imp<strong>la</strong>ntation ne change pas d’une configuration d’intergiciel à<br />

une autre.<br />

L’imp<strong>la</strong>ntation du sous-programme de traitement dépend en revanche de <strong>la</strong> configuration de<br />

l’intergiciel. Le sous-programme possède autant de séquences d’appel que de personnalités définies<br />

dans l’intergiciel. Il doit avoir un accès aux composants de donnée du service d’adressage,<br />

afin de déterminer si <strong>la</strong> requête s’adresse à une entité locale ou non. Le code source de son imp<strong>la</strong>ntation<br />

extrait l’identité de l’entité <strong>des</strong>tinataire de <strong>la</strong> requête, décide si l’entité est locale ou distante<br />

et exécute <strong>la</strong> séquence d’appel correspondante.<br />

Pour les requêtes qui sont orientées vers une personnalité protoco<strong>la</strong>ire, le service de liaison<br />

doit également fournir un modèle AADL du subrogé correspondant. Les subrogés sont <strong>des</strong> sousprogrammes<br />

qui correspondent à chaque élément d’interface de l’entité AADL distante (c’est-àdire<br />

du thread distant). Le subrogé coordonne les services de transport et de protocole.<br />

Le listing VI.4 représente <strong>la</strong> définition <strong>des</strong> composants constituant le service de liaison. Nous<br />

n’en présentons que les interfaces ; <strong>la</strong> définition exacte de ces composants doit être construite par<br />

extension de ces composants de base, afin de préserver l’imp<strong>la</strong>ntation du tampon et de composant<br />

de donnée modélisant les requêtes.<br />

1 package Ipao::Bind<br />

2 public<br />

3 data Buffer<br />

4 properties<br />

5 Language_Support::Data_Format => Array;<br />

6 Language_Support::Data_Type => c<strong>la</strong>ssifier (Ipao::Request);<br />

7 end Buffer;<br />

8<br />

9 subprogram Add_Request<br />

c○ 2007 Thomas Vergnaud 111

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

Saved successfully!

Ooh no, something went wrong!