Mini CORBA FAQ - questions fréquentes sur CORBA

révision: 4 janvier 2000

Ce document a été écrit pour répondre aux questions les plus fréquemment posées sur le forum CORBA de developpez.com. La plupart des réponses sont issues du forum CORBA de developpez.com, d'une traduction personnelle de la documentation de Visibroker et d'une traduction personnelle de la FAQ CORBA de Jim Watson, Lester Claudio et Rob Appelbaum.

Contacter l'auteur:
Sylvain BARTHELEMY
barth@tac-financial.com
Home Page: www.sylbarth.com

Qu'est ce que CORBA ?

CORBA est un standard d'objets distribués. CORBA permet à une application de demander à un objet distribué d'effectuer une opération et d'en obtenir le résultat. L'application communique avec l'objet qui effectue l'opération. C'est une fonctionnalité clients/serveur basique où un client envoie une requête à un serveur et le serveur répond au client. Les données peuvent passer du client au serveur et sont associées à une opération particulière sur un objet particulier. Les données sont ensuite retournées au client sous la forme d'une réponse.

Quels sont les principaux avantages de CORBA ?

  1. CORBA supporte plusieurs langages. CORBA supporte aussi un mélange de ces langages dans une même application distribuée.
  2. CORBA supporte à la fois la distribution et l'orientation objets.
  3. CORBA est un standard industriel. Celà crée une concurrence entre les différents vendeurs et assure ainsi que des implémentations de qualité existent. Le standard CORBA permet aussi au développeur de pouvoir compter sur un degré élevé de compatibilité entre les différentes implémentations (sans jamais être totalement portable).
  4. CORBA permet un dégré élevé d'interopérabilité. Celà permet d'assurer que des objets distribués construits sur différents produits CORBA pourront communiquer.
  5. Plus de 600 compagnies soutiennent CORBA.

Où trouver des infos sur CORBA ?

Les sites qui font référence pour CORBA sont bien sur les sites de l'OMG : et à partir de là tu trouveras à peu près tout ce qu'il te faut, y compris des pointeurs vers d'autres sites. La documentation de Visibroker est aussi très bien faite et assez générique. On peux y accéder librement sur

Il n'y a que très peu d'informations sur CORBA en Français, et c'est d'ailleurs une des raisons de l'existence d'une section et d'un forum CORBA sur developpez.com. Tu pourras par exemple consulter les liens suivants :

Quel langage utiliser pour développer en CORBA ?

Une des nombreux avantages de CORBA est qu'il supporte plusieurs langages et vous n'êtes pas forcé d'utiliser un langage en particulier.
L'OMG a standardisé le mapping IDL pour les langages suivants:
  1. C
  2. C++
  3. Smalltalk
  4. Java
  5. Ada
  6. Cobol
  7. un pont vers les langages basés sur COM (type Visual Basic)
mais des mapping "vendeurs" sont disponibles pour :
  1. Tcl
  2. PL/1
  3. LISP
  4. Python
  5. Perl
Dans la pratique, les langages les plus utilisés pour CORBA sont Java et C++. C++ est très puissant et particulièrement adapté au côté serveur, tandis que Java conviendra le plus souvent au côté client. Cependant, ceci n'est bien sur pas une règle et chaque cas devra être étudié avec soin.

Faut-il impérativement choisir entre CORBA et DCOM ?

Une application peut très bien utiliser CORBA et DCOM. Si DCOM est très bien adapté à Windows et permet de travailler sur des objets de type OLE automation, il faudra utiliser CORBA pour travailler sur des objets issus du monde Unix. C'est pour cette raison que l'OMG a défini des spécification pour les ponts CORBA/DCOM.

Comment une application Web peut-elle accéder à une objet CORBA ?

Il y a bien sur plusieurs façons d'accéder à un objet CORBA via une application Web.
  1. Les applets Java peuvent accéder à des objets CORBA directement via le protocole IIOP. L'ORB Java de Visibroker permet de développer ce genre d'applets.
  2. Une application totalement HTML peut accéder à des objets CORBA via des programmes CGI (qui serviront ainsi de passerelle). Les applications peuvent alors générer des pages HTML. Cette méthode à l'avantage de permettre une solution HTML totalement indépendante du browser.
  3. Certaines extension des serveurs web permettent aussi des accès CORBA. Nous pouvons notamment citer les servlet, les pages ASP, JSP ...
  4. Un plug-in pour browser peut être développé pour accéder à un objet CORBA via le protocole IIOP.
  5. Certains browser supportent directement le protocole IIOP et peuvent donc accéder à n'importe quel objet diffusé via IIOP.
A titre d'information, je mentionne ici le projet Circare qui, je trouve, fait une utilisation astucieuse de CORBA Script (langage de script permettant de faire du CORBA "simplement") via Web Corba Script. Web CORBA Script s'utilise à la manière de PHP (le code est interprété sur le serveur). A noter que ces travaux sont en OpenSource.

On peux trouver toutes les infos sur ce projet très intéressant à l'adresse suivante :
http://www.minoru-development.com/corbascript/reference.html#wcs
et des précision sur Web CorbaScript sur :
http://sourceforge.net/projects/wcs/
http://corbaweb.lifl.fr/CorbaScript/

Qu'est ce que l'interopérabilité dans CORBA ?

L'interopérabilité représente la possibilité pour deux composants, développés avec des outils différents et différents ORB de travailler ensemble. CORBA 2.0 à introduit l'interopérabilité avec le protocole GIOP (protocole général inter ORB) et sa version Internet IIOP (protocole internet inter ORB). Ainsi, un client utilisant un ORB A peut accéder à un objet sur un serveur utilisant un ORB B.

Comment définir un objet CORBA ?

Les objets CORBA sont définis comme des interfaces à l'aide du langage IDL.