Introduction à CORBA – Master Informatique 1ère année – Z. Mammeri – UPS 2
Bus CORBA
S
uelette
Application
Serveur
Codée en Java
Souche
Application
Client
Codée en C++
S
uelette
Application
Serveur
Codée en
SmallTalk
Souche
Application
Serveur
Codée en C++
Souche
Application
Client
Codée en C
Figure 2. Hétérogénéité avec CORBA
Un des avantages les plus importants de la spécification CORBA est de faciliter le développement des
applications distribuées en évitant au développeur des difficultés concernant les mécanismes de
communication, la location des applications, les clients et serveurs, le protocole de communication à utiliser
ou le format de message à utiliser.
Dans CORBA, le client est l’entité qui veut exécuter une opération sur l’objet. L’implémentation d’objet
est le code qui implémente l’objet. L’ORB gère tous les mécanismes nécessaires pour trouver
l’implémentation de l’objet demandé. L’ORB a pour fonction de préparer l’implémentation d’objet afin de
recevoir la requête et de communiquer les données qui la constituent.
1.2. Déroulement de requête sous CORBA
Le client n’a pas besoin de connaître :
- la localisation de l’objet invoqué,
- le langage avec lequel a été programmé l’objet,
- le système d’exploitation sur lequel est implanté l’objet,
- la façon dont l’objet est implanté par le serveur.
Le client doit connaître seulement l’interface d’accès à l’objet et la référence de l’objet.
Les interactions entre les applications sont matérialisées par des invocations, à distance ou en local, des
méthodes (ou opérations) des objets.
La notion de client/serveur intervient uniquement lors de l’utilisation d’un objet. Une même application peut
être tantôt client tantôt serveur.
Pour pouvoir faire une requête, le client peut utiliser l’interface d’invocation dynamique ou un stub (souche)
produit pendant la compilation d’un script IDL. L’implémentation de l’objet et le client peuvent dialoguer
avec l’ORB à travers les interfaces de l’ORB.
L’implémentation de l’objet peut recevoir les requêtes, soit par les squelettes générés par IDL, soit par les
squelettes dynamiques, mais elle peut aussi dialoguer avec l’ORB à travers l’adaptateur d’objets.
Les interfaces pour les objets peuvent être définies de deux façons :
• Statique : en utilisant le langage de définition d’interfaces (IDL). Le langage IDL permet de définir
les opérations sur les objets et les paramètres des opérations.
• Dynamique : où les interfaces peuvent être stockées dans un dépôt d’interfaces. Les composantes
des interfaces sont représentées comme objets afin de permettre leur accès pendant l’exécution.