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 ...
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