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

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

Saved successfully!

Ooh no, something went wrong!