Conception et réalisation d'un syst`eme d'instrumentation ... - CoDE
Conception et réalisation d'un syst`eme d'instrumentation ... - CoDE
Conception et réalisation d'un syst`eme d'instrumentation ... - CoDE
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.2. ARCHITECTURE<br />
vant servir de base à la <strong>réalisation</strong> concrète du système distribué, aussi bien client que<br />
serveur. De plus, IDL masque complètement les processus de communication entre obj<strong>et</strong>s,<br />
rendant ainsi le développement de l’architecture client-serveur totalement transparente. Il<br />
s’agit donc ici de définir ce que l’obj<strong>et</strong> est à même de proposer comme service en le situant<br />
dans une hiérarchie de services ainsi qu’en énumérant les méthodes qu’il m<strong>et</strong> à disposition.<br />
L’exemple suivant présente une définition réalisé au moyen de IDL. Il s’agit ici de créer un<br />
module, semblable à la notion de package en Java, contenant un obj<strong>et</strong> ”Amm<strong>et</strong>er” <strong>et</strong> un<br />
obj<strong>et</strong> ”Voltm<strong>et</strong>er”. Chacun de ces obj<strong>et</strong>s implante des méthodes qui seront accessibles via<br />
le Stub généré par les outils de compilation spécifique à chaque langage.<br />
module TestModule –<br />
interface Ammm<strong>et</strong>er<br />
–<br />
void res<strong>et</strong>();<br />
float g<strong>et</strong>Current();<br />
˝;<br />
interface Voltm<strong>et</strong>er<br />
–<br />
void res<strong>et</strong>();<br />
float g<strong>et</strong>Voltage();<br />
˝;<br />
˝;<br />
Il est important ici de noter c<strong>et</strong>te structure fortement hiérarchisée de packages disposés<br />
selon un arbre. C<strong>et</strong> élément sera fondamental dans la comparaison que nous offrons de<br />
CORBA vs. JINI dans le chapitre 5.<br />
Le langage IDL propose également un mécanisme d’héritage entre <strong>et</strong> depuis les interfaces.<br />
C<strong>et</strong> héritage peut être simple, multiple ou répété. La notion d’héritage répété a été<br />
introduite en raison de la possibilité d’implanter un héritage multiple tout en respectant la<br />
contrainte de non répétition des noms. C<strong>et</strong>te contrainte spécifie qu’au sein d’un même module,<br />
la surcharge – c’est-à-dire définir plusieurs méthodes dont la signature est différente<br />
mais dont le nom est identique – est interdite.<br />
2.2.2 l’ORB <strong>et</strong> l’IIOP<br />
L’ORB est le composant central de la répartition des obj<strong>et</strong>s sur le bus CORBA. Il assure<br />
le transport des requêtes entre les clients <strong>et</strong> les serveurs ou, pour être plus précis, entre les<br />
stubs des clients <strong>et</strong> les implantations correspondantes présentes dans les skel<strong>et</strong>on des obj<strong>et</strong>s<br />
serveurs. Il s’agit d’un middleware qui se déploie entre la couche application proprement<br />
dite où vivent les obj<strong>et</strong>s <strong>et</strong> le système d’exploitation qui gère les fonctionnalités réseau du<br />
23