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.

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

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

Saved successfully!

Ooh no, something went wrong!