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 />
11 Request : in parameter Ipao::Request;<br />
12 Buffer : requires data access Buffer;<br />
13 end Add_Request;<br />
14<br />
15 subprogram Exec_Request<br />
16 features<br />
17 Buffer : requires data access Buffer;<br />
18 end Exec_Request;<br />
19 end Ipao::Activation;<br />
VI-3.4.7 Exécution<br />
Listing VI.8 – <strong>Modélisation</strong> du service d’activation<br />
Dans l’architecture schizophrène, le service d’exécution s’occupe d’attribuer une tâche (thread<br />
système) au sous-programme applicatif approprié. La tâche utilisée peut être soit une tâche prêtée<br />
temporairement à l’intergiciel par l’application, soit une tâche propre à l’intergiciel.<br />
Dans le cas d’une modélisation en AADL, toutes les ressources d’exécutions sont connues<br />
au moment de générer l’intergiciel ; le service d’exécution n’a donc pas de traduction à proprement<br />
parler en terme de composant AADL, et nous pouvons considérer qu’il est confondu avec le<br />
service d’activation.<br />
VI-3.4.8 Le µBroker<br />
Les services sont coordonnés par un composant central [Hugues, 2005] appelé µBroker, qui<br />
gère les threads supportant l’exécution <strong>des</strong> services de communication. L’utilisation d’un intergiciel<br />
de bas niveau revient donc à modéliser les services en AADL tandis que l’exécutif en lui-même<br />
correspond à l’imp<strong>la</strong>ntation du µBroker.<br />
Le µBroker coordonne l’exécution <strong>des</strong> différents services. Il s’agit donc essentiellement d’une<br />
machine à état. En conséquence, il est modélisé par un sous-programme pouvant appeler les différents<br />
sous-programmes <strong>des</strong> services schizophrènes. Ce sous-programme a accès à un composant<br />
de donnée AADL qui stocke l’état du µBroker.<br />
Les services à coordonner dépendent de <strong>la</strong> nature <strong>des</strong> requêtes à prendre en charge. Deux cas<br />
doivent être considérés : une requête venant d’une entité locale ou du réseau. La réception d’une<br />
requête à partir du réseau s’effectue en deux phases : d’abord <strong>la</strong> réception de <strong>la</strong> requête et ensuite<br />
son traitement par le service de liaison. Pour une requête émise par une entité locale, il n’y a qu’une<br />
seule phase, qui est l’invocation du service de liaison. Les requêtes issues d’une entité locale sont<br />
modélisées par <strong>des</strong> séquences d’appel dont l’origine est située dans les entités applicatives.<br />
L’imp<strong>la</strong>ntation du sous-programme du µBroker décrit les différentes séquences d’appels possibles.<br />
Le listing VI.9 illustre une imp<strong>la</strong>ntation générique du µBroker <strong>pour</strong> un nœud applicatif de<br />
serveur, n’ayant qu’une seule personnalité protoco<strong>la</strong>ire.<br />
1 package Ipao:Mubroker<br />
2 public<br />
3 data Mubroker_State<br />
4 end Mubroker_State;<br />
5<br />
6 subprogram Mubroker<br />
7 features<br />
c○ 2007 Thomas Vergnaud 115