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.
II-2.2.2 CORBA<br />
<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 />
Les principes de RPC ont été étendus à <strong>la</strong> programmation orientée objet, notamment à travers<br />
les spécifications de CORBA [Vinoski, 1993]. CORBA (Common Object Request Broker Architecture)<br />
est un ensemble de spécifications issus <strong>des</strong> travaux de l’OMG (Object Management Group)<br />
qui reprend les mêmes principes de souche et de squelette que RPC, ainsi que l’utilisation d’un<br />
<strong>la</strong>ngage de <strong>des</strong>cription <strong>des</strong> interfaces (IDL, Interface Description Language).<br />
1 interface Calcul {<br />
2 short addition (in short a, in short b);<br />
3 };<br />
Listing II.2 – <strong>des</strong>cription IDL d’une application<br />
Le listing II.2 illustre <strong>la</strong> déc<strong>la</strong>ration d’un objet réparti offrant une méthode permettant d’effectuer<br />
<strong>des</strong> additions. Nous voyons que l’approche d’IDL est re<strong>la</strong>tivement proche de celle de RPCL ;<br />
l’interface remp<strong>la</strong>ce le programme, <strong>la</strong> notion de version disparaît et les aspects orientés objets sont<br />
ajoutés. Par rapport à RPCL, IDL supprime l’obligation d’associer un nombre aux métho<strong>des</strong> ; il<br />
permet également de définir <strong>des</strong> métho<strong>des</strong> ayant plusieurs paramètres.<br />
Dans sa conception, CORBA ambitionne de fournir une solution standard <strong>pour</strong> <strong>la</strong> mise en<br />
p<strong>la</strong>ce de <strong>systèmes</strong> <strong>répartis</strong>. Contrairement à RPC, qui se focalise sur le <strong>la</strong>ngage C, CORBA vise<br />
donc à faciliter l’interopérabilité entre <strong>des</strong> nœuds applicatifs imp<strong>la</strong>ntés dans <strong>des</strong> <strong>la</strong>ngages de programmation<br />
différents. Pour ce<strong>la</strong>, CORBA définit <strong>des</strong> règles de transformation entre IDL et les<br />
<strong>la</strong>ngages d’imp<strong>la</strong>ntation tels que Java, C++, Ada, Python. . .afin d’intégrer un <strong>la</strong>rge éventail d’applications.<br />
L’exploitation d’IDL rejoint néanmoins celle de RPCL : <strong>la</strong> <strong>des</strong>cription <strong>des</strong> interfaces<br />
est transformée en un ensemble de souches et de squelettes.<br />
Un intergiciel CORBA prend en charge <strong>la</strong> localisation <strong>des</strong> nœuds de l’application. À son <strong>la</strong>ncement,<br />
un serveur enregistre auprès de l’ORB les objets qu’il met à <strong>la</strong> disposition <strong>des</strong> clients. Pour<br />
chaque objet, l’ORB crée une référence que le serveur doit faire parvenir aux clients. Une référence<br />
rassemble toutes les informations nécessaires <strong>pour</strong> l’identification d’un objet : emp<strong>la</strong>cement<br />
du nœud sur le réseau, identificateur de l’objet sur ce nœud, etc.<br />
Les références peuvent être transmises aux clients sous forme de chaîne de caractères. CORBA<br />
définit principalement deux codages de références : les IOR (Interoperable Object Reference) permettent<br />
de coder une référence sous forme d’une chaîne de caractère opaque ; les CorbaLoc fournissent<br />
une fonctionnalité équivalente avec une présentation simi<strong>la</strong>ire aux URL. Il est nécessaire<br />
de fournir au client l’IOR ou <strong>la</strong> CorbaLoc de l’objet serveur ; l’ORB du client peut alors établir <strong>la</strong><br />
communication avec l’ORB du serveur.<br />
Les spécifications CORBA définissent également un service de nommage (CosNaming). Un tel<br />
service correspond à un objet rassemb<strong>la</strong>nt les références <strong>des</strong> différents objets du système réparti.<br />
Chaque entité du système doit donc disposer de l’IOR du service de nommage ; elle s’adressera<br />
ensuite à ce service <strong>pour</strong> déc<strong>la</strong>rer ses objets serveurs ou demander <strong>la</strong> référence d’un objet dont elle<br />
connaît le nom.<br />
Dans un cas comme dans l’autre, <strong>la</strong> localisation <strong>des</strong> nœuds n’est connue qu’au moment de<br />
l’exécution, et n’est donc pas consignée dans <strong>la</strong> <strong>des</strong>cription IDL. L’intervention de l’utilisateur est<br />
donc nécessaire.<br />
Les spécifications initiales de CORBA visaient <strong>la</strong> mise en p<strong>la</strong>ce de <strong>systèmes</strong> d’information.<br />
Plusieurs sous-spécifications de CORBA ont été définies afin de répondre à <strong>des</strong> domaines d’application<br />
particuliers ayant <strong>des</strong> contraintes spécifiques, comme les <strong>systèmes</strong> <strong>embarqués</strong> (Minimum<br />
CORBA) ou <strong>temps</strong>-<strong>réel</strong> (RT-CORBA). . .<br />
10 c○ 2007 Thomas Vergnaud