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 VIII – Mise en pratique<br />
Par rapport à l’application AADL, nous émettons moitié moins de communications ; en effet,<br />
chaque communication est un couple requête/réponse alors que les communications AADL sont<br />
unidirectionnelles.<br />
Une grande partie du code du client est consacrée à <strong>la</strong> mise en p<strong>la</strong>ce de l’ORB ; <strong>la</strong> partie<br />
applicative elle-même est re<strong>la</strong>tivement restreinte en comparaison.<br />
Nous exécutons le client et le serveur sur <strong>la</strong> même machine, afin de limiter les perturbations<br />
liées à une éventuelle activité sur <strong>la</strong> réseau. Ce choix de déploiement se fait à l’exécution du client<br />
et du serveur, en fournissant l’IOR du serveur au client.<br />
VIII-2.2.2 Application CORBA basée sur <strong>des</strong> métho<strong>des</strong> oneway<br />
L’utilisation de métho<strong>des</strong> oneway nous permet de mettre en p<strong>la</strong>ce un mécanisme de passage<br />
de messages. Nous pouvons alors adopter une architecture semb<strong>la</strong>ble à celle utilisée <strong>pour</strong> l’application<br />
AADL, basée sur trois nœuds.<br />
La <strong>des</strong>cription <strong>des</strong> interfaces <strong>des</strong> nœuds en IDL est représentée sur le listing VIII.8.<br />
1 interface Addition {<br />
2 oneway void Add (in long Mesg);<br />
3 };<br />
Listing VIII.8 – Interfaces de l’application-témoin basée sur <strong>des</strong> métho<strong>des</strong> oneway CORBA<br />
Le code <strong>des</strong> deux nœuds applicatifs est comparable à l’imp<strong>la</strong>ntation que nous avons réalisée<br />
<strong>pour</strong> l’application AADL ; il est représenté sur le listing VIII.9.<br />
1 with Ada.Text_IO;<br />
2 with CORBA;<br />
3 with CORBA.ORB;<br />
4 with Ada.Calendar;<br />
5<br />
6 with Addition.Skel;<br />
7 pragma Warnings (Off, Addition.Skel);<br />
8 -- No entity from Echo.Skel is referenced.<br />
9<br />
10 package body Addition.Impl is<br />
11<br />
12 myadd : Addition.Ref;<br />
13 Date_Start, Date_End : Ada.Calendar.Time;<br />
14 E<strong>la</strong>psed_Time : Duration;<br />
15<br />
16 procedure Add<br />
17 (Self : access Object;<br />
18 Mesg : in CORBA.Long)<br />
19 is<br />
20 use CORBA;<br />
21 use Ada.Calendar;<br />
22 pragma Warnings (Off);<br />
23 pragma Unreferenced (Self);<br />
24 pragma Warnings (On);<br />
25<br />
26 E<strong>la</strong>psed_Time : Duration;<br />
27 begin<br />
28 if Mesg = 1 then<br />
c○ 2007 Thomas Vergnaud 163