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