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 V – Génération du code <strong>pour</strong> l’enveloppe applicative<br />

Règle V.8 (Signature <strong>des</strong> imp<strong>la</strong>ntations comportementales)<br />

La procédure fournie par l’utilisateur doit toujours avoir <strong>la</strong> signature suivante :<br />

– un premier paramètre en entrée/sortie appelé data, de type _data, qui reçoit une structure de donnée contenant les éventuelles références <strong>des</strong><br />

procédures <strong>des</strong> séquences d’appel, ainsi que les variables locales et les variables issues<br />

<strong>des</strong> connexions AADL ;<br />

– les différents paramètres du sous-programme AADL.<br />

Le type de données _data est généré par le traducteur <strong>pour</strong> chaque<br />

sous-programme AADL encapsu<strong>la</strong>nt une <strong>des</strong>cription comportementale. Du fait que « data » est<br />

un mot-clé AADL, nous pouvons l’utiliser en ayant l’assurance qu’il ne correspond pas à un nom<br />

de paramètre utilisé dans <strong>la</strong> modélisation.<br />

V-2.4 Gestion <strong>des</strong> entités distantes<br />

Les évolutions de syntaxe que nous avons proposées au chapitre IV permettent <strong>la</strong> modélisation<br />

de sous-programmes et d’objets <strong>répartis</strong>. Dans cette section nous traitons ces cas. Nous montrons<br />

notamment que les aspects <strong>répartis</strong> de l’application relève exclusivement de <strong>la</strong> <strong>des</strong>cription AADL ;<br />

ils n’ont aucun impact sur <strong>la</strong> définition <strong>des</strong> <strong>des</strong>cription comportementales.<br />

V-2.4.1 Traduction <strong>des</strong> appels de sous-programmes distants<br />

Dans <strong>la</strong> section précédente, nous avons traité le cas <strong>des</strong> sous-programmes locaux. Un appel<br />

vers un accès à un sous-programme instancié dans le processus local ne pose aucune difficulté de<br />

traduction. Un appel à un sous-programme distant est représenté en AADL par un appel à un accès<br />

à sous-programme qui est instancié dans un autre processus.<br />

Le passage de message, matérialisé par les ports AADL, permet une stricte séparation entre les<br />

deux parties de l’application AADL, l’interface avec l’intergiciel contrô<strong>la</strong>nt l’exécution de l’enveloppe<br />

sans que celle-ci aie une quelconque visibilité sur l’exécutif. L’appel de sous-programme<br />

implique en revanche un appel à l’interface avec l’intergiciel de <strong>la</strong> part de l’enveloppe applicative.<br />

Un appel à un accès à un sous-programme instancié dans un autre processus doit donc donner<br />

lieu à <strong>la</strong> génération d’un couple de souche et de squelette, de <strong>la</strong> même façon que <strong>pour</strong> les approches<br />

RPC ou CORBA.<br />

Le traducteur doit donc substituer au sous-programme instancié à distance un sous-programme<br />

local, qui sera fourni par l’interface avec l’intergiciel. Ce sous-programme joue le rôle de souche ;<br />

le squelette correspondant, généré au niveau du nœud distant, appellera le sous-programme effectivement<br />

instancié.<br />

Ce processus de génération de souche et de squelette est seulement paramétrée par <strong>des</strong> éléments<br />

de <strong>la</strong> <strong>des</strong>cription AADL – les processus dans lesquels sont instanciés les sous-programmes.<br />

Les <strong>des</strong>criptions comportementales n’ont aucune visibilité sur <strong>la</strong> localisation effective <strong>des</strong> sousprogrammes,<br />

et ne sont donc pas affectées.<br />

V-2.4.2 Traduction <strong>des</strong> objets <strong>répartis</strong><br />

Dans le cadre de ces travaux, nous ne considérons les objets <strong>répartis</strong> que sous <strong>la</strong> forme d’appel<br />

à <strong>des</strong> sous-programmes fournis par <strong>des</strong> composants de donnée instanciés dans <strong>des</strong> processus<br />

distants.<br />

c○ 2007 Thomas Vergnaud 85

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

Saved successfully!

Ooh no, something went wrong!