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.

<strong>Modélisation</strong> <strong>des</strong> <strong>systèmes</strong> <strong>temps</strong>-<strong>réel</strong> <strong>répartis</strong> <strong>embarqués</strong><br />

Un appel de sous-programme distant se manifeste par une connexion d’accès à sous-programme<br />

entre deux threads. Si les deux threads appartiennent au même processus, le générateur de code est<br />

susceptible de procéder à <strong>des</strong> optimisations, de façon à ne pas faire appel aux couches du réseau.<br />

Du point de vue de <strong>la</strong> modélisation, ce cas ne constitue cependant pas une situation particulière.<br />

Notons qu’un sous-programme instancié au sein d’un processus et connecté à un accès requis<br />

à sous-programme d’un thread de ce processus ne constitue pas un appel distant ; le thread appelle<br />

simplement le sous-programme local.<br />

IV-5.3.3 Objets distants<br />

AADL ne permet pas de modéliser <strong>des</strong> objets à proprement parler, dans <strong>la</strong> mesure où <strong>des</strong><br />

notions telles que <strong>la</strong> surcharge et l’héritage n’existent pas. Notamment, l’extension de composant<br />

permet seulement de réutiliser <strong>des</strong> déc<strong>la</strong>rations de façon statique ; l’extension d’un composant ne<br />

peut pas instancié en lieu et p<strong>la</strong>ce du composant étendu. Il n’est pas non plus possible de créer<br />

dynamiquement <strong>des</strong> composants, comme on peut le faire avec <strong>des</strong> <strong>systèmes</strong> comme CORBA.<br />

Il est néanmoins possible de décrire <strong>des</strong> objets « statiques » comme étant un ensemble de sousprogrammes<br />

fournis par un composant de donnée. Le composant de donnée peut lui-même être<br />

accessible à partir de sous-programmes exécutés par d’autres threads ; il fait partie <strong>des</strong> éléments<br />

d’interface fournis par le thread serveur.<br />

Spécification IV.4 (Objets <strong>répartis</strong>)<br />

Les objets <strong>répartis</strong> sont modélisés par <strong>des</strong> composants de donnée dont l’accès est fourni<br />

en interface d’un thread. Ces composants de donnée fournissent eux-même un accès à<br />

<strong>des</strong> sous-programmes, qui constituent les métho<strong>des</strong> de l’objet.<br />

Les objets distants en AADL correspondent en fait à <strong>des</strong> sous-programmes distants associés à<br />

un composant de donnée. Le listing IV.12 illustre un exemple de manipu<strong>la</strong>tion d’objet réparti en<br />

AADL.<br />

1 subprogram a_method<br />

2 features<br />

3 a : in parameter;<br />

4 b : out parameter;<br />

5 end a_method;<br />

6<br />

7 data a_c<strong>la</strong>ss<br />

8 features<br />

9 method1 : subprogram a_method;<br />

10 end a_c<strong>la</strong>ss;<br />

11<br />

12 thread a_server<br />

13 features<br />

14 object_stub : provi<strong>des</strong> data access a_c<strong>la</strong>ss;<br />

15 properties<br />

16 dispatch_protocol => aperiodic;<br />

17 end a_server;<br />

18<br />

19 thread implementation a_server.impl<br />

20 subcomponents<br />

21 object : data a_c<strong>la</strong>ss;<br />

22 connections<br />

68 c○ 2007 Thomas Vergnaud

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

Saved successfully!

Ooh no, something went wrong!