Formation Corba - J.M. Vanel Menu Graphic -- You will not be able to navigate this site with your graphics turned off.
© 2004 Jean-Marc Vanel
Envoyer un courrier :   Dernière mise à jour (Last update):
Sommaire:
Questionnaire avant formation

Les mises à jour récentes sont marquées dans ce style CSS "new" en fond vert.

Didacticiels

En Français :
En anglais:

Documentations

Implémentations

Un tableau comparatif de toutes les implémentations avec plein de critères :
http://www.puder.org/corba/matrix/

CORBA Product Profiles


 ( matrix )

Open source

GNOME  ORBit2
 http://orbit-resource.sourceforge.net/
Implementation: C;  bindings: C, C++, Python - spécificité : optimisé pour tourner sur une seule machine

 http://omniorb.sourceforge.net/ - http://www.uk.research.att.com/omniORB/index.html 17000 réf./google
Implementation: C++ ; bindings: C++, python; Adheres to the CORBA 2.6 specification
WhoIsUsingOmniorb - omniORB Wiki - très cool !

Se compile sans problèmes avec gcc 3.4.1 .


Mico

http://www.mico.org/ - 23000 réf. sur google - Implémentation: C++
J'ai fait (avec checkinstall) un RPM de MICO sur Fedora Core 1.A : mico-2.3.11.i386.rpm - mico--devel--2.3--patch-5.tar.bz2 04-Sep-2004 sur http://mico.org/snapshots/
searchable mailing list archive.

POA is updated to CORBA 2.5

Installation derniers développements Mico

gcc --version
gcc (GCC) 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)

# installe gnuarch ( http://gnuarch.org/ )
mkdir build
cd build
../src/configure --prefix /usr/local; make

# télécharge derniers développements Mico:
/usr/src/w/tla-1.2.1/build/tla/tla/tla register-archive \
kgardas@objectsecurity.com--local http://mico.org/~karel/local-mirror
/usr/src/w/tla-1.2.1/build/tla/tla/tla get \
kgardas@objectsecurity.com--local/mico--devel--2.3 mico

# installe JavaCUP : Rien A Signaler

# compile Mico
export CLASSPATH=/usr/src/w/java_cup:$CLASSPATH
./configure --prefix=/usr/local --with-qt=/ --with-gtk=/ --with-ssl=/ \
--enable-threads --enable-pthreads
make
J'ai dû ajouter :
using namespace std;
dans certains endroits pour pouvoir compiler.

Documentation

Nécessite paquetage latex2html. Il faut ajouter un Doxyfile à la racine.
make doc.ps html doxygen


The Community OpenORB
Implémentation: Java : 25 800 références sur google

OpenORB provides a Java implementation of the OMG CORBA 2.4.2 specification. Along with the ORB, the following OMG Services are provided:



JacORBThe free Java ORB
Implémentation: Java : 39 500 références sur google

TAO


TAO logo

http://www.cs.wustl.edu/~schmidt/TAO.html
Implémentation: C++
Interview about TAO and ACE of Douglas C. Schmidt

Compiler l'ORB ACE + TAO (ACE_wrappers)

D'abord suivre la recette dans ACE_wrappers/ACE-INSTALL.html le paragraphe "Compiling ACE with GNU g++", ce qui correspond aux commandes suivantes :

export ACE_ROOT=$PWD
echo '#include "ace/config-linux.h"' > $ACE_ROOT/ace/config.h
echo 'include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU' \
> $ACE_ROOT/include/makeinclude/platform_macros.GNU
export LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:$LD_LIBRARY_PATH
time make

Résultat de la course: environ 2000 secondes de compilation sur un 2.4GHz avec gcc 3.4.1 .

TAO est une implémentation Corba qui est construite par dessus ACE, qui est une bibliothèque plus générique. Donc ensuite il faut regarder la recette dans ACE_wrappers/TAO/TAO-INSTALL.html . Ceci correspond aux commandes suivantes :

cd $ACE_ROOT/apps/gperf
make
export TAO_ROOT=$ACE_ROOT/TAO
cd $TAO_ROOT
time make

Plus d'une heure de compilation.

Faire tourner les exemples de TAO

Les exemples de TAO sont décrits dans :

ACE_wrappers/TAO/examples/README

Choisissons l'exemple le plus simple:

ACE_wrappers/TAO/examples/POA/Default_Servant

Voici comment le faire tourner:

export LD_LIBRARY_PATH=/usr/src/w/ACE_wrappers/lib:$LD_LIBRARY_PATH
./server > ior.txt
./client -k ior.txt -m jmv


Implémentation commerciales

Orbix 2000

Orbix 2000 ne semble pas marcher sur une RedHat récente; sur le site seule RedHat 7.3 est mentionnée.

Release Notes 
Start by reading the Release Notes for late-breaking release information and bugs fixed in this release. Also available as PDF.

./asp
# .......
export IT_LICENSE_FILE=$HOME/contrats/corba/Orbix_licenses.txt
/home/jmv/home0/install2/orbix6.1/asp/6.1/bin/itconfigure

Base port: 3075

jmv@protea:/home/jmv/home0/install2/orbix6.1# cat etc/log/sample-domain_2004_Mar_18_11_17_49.log
COPY RESOURCES /home/jmv/home0/install2/orbix6.1/asp/6.1/templates/etc/admin TO /mnt/home0/home/jmv/install2/orbix6.1/etc/domains/sample-domain
COPY RESOURCES /home/jmv/home0/install2/orbix6.1/asp/6.1/templates/etc/log4j TO /mnt/home0/home/jmv/install2/orbix6.1/etc/domains/sample-domain
STARTING TO PREPARE: iona_services.management
ERROR: java.lang.NoClassDefFoundError: com/baltimore/jcrypto/provider/JCRYPTO
ERROR: at java.lang.Class.forName0(Native Method)
ERROR: at java.lang.Class.forName(Class.java:141)
ERROR: at com.iona.corba.atli2.tls.PerORBStateImpl.register_providers(Unknown Source)
...
ERROR: ERROR: exception occurred during prepare: IDL:omg.org/CORBA/INITIALIZE:1.0: minor = 0x0, completion status = NO
FAILED TO PREPARE: service exited with value: 129
jmv@protea:/home/jmv/home0/install2/orbix6.1# history
30 ./asp
31 export IT_LICENSE_FILE=$HOME/contrats/corba/Orbix_licenses.txt
32 /home/jmv/home0/install2/orbix6.1/asp/6.1/bin/itconfigure

Outils


CORBA Tools

Le scanner de ports nmap

Télécharger depuis http://www.insecure.org/nmap/nmap_download.html les deux rpm, puis installer ainsi :
rpm -Uvh nmap*.rpm

Utilisations

K Finite Element Method This is a client/server/CORBA software aiming at solving partial differential equations.The server provides the solver while the client provides the input data and the handling of the output using a graphic library, vtk.

Fudaa Fudaa is an Object Oriented and Distributed Integration Platform For Scientific Codes. This platform,written in Java/Corba, gives all the tools needed to build a communication interface and a graphic user interface for scientific codes.

Free Market A package for perfoming technical analysis on stock market data consisting of data and indicator servers communicating through corba to clients for gui charting, etc. Real time streaming quotes and an EasyLanguage compatible indicator server included.

Exemples

La page de Michi Henning contient les sources des exemples de son livre "Advanced CORBA® Programming with C++", qui date malheureusement de 1999.


Echo avec OmniORB (C++)

Echo tout en un

Expliqué au chapitre 2 The Basics de "The omniORB User's Guide".
  1. "compiler" l'IDL :
    omniidl -bcxx echo.idl
    cxx indique le binding C++
  2. En suivant le "User's Guide" créer les fichiers:
    Echo_i.h  Echo_i.cc Echo_client.h Echo_client.cc  client_server.cc

    Ajouter là où il faut :
    #include "echo.hh"
    #include "Echo_i.h"
    #include <iostream>
    using namespace std;

  3. export LD_LIBRARY_PATH=/usr/local/lib
  4. Créer l'exécutable avec :
    g++ -lomniORB4 -lomnithread -lomniDynamic4 -lomniCodeSets4 -lCOS4 -lCOSDynamic4 *.cc
  5. ./a.out
    Réponse attendue:
    I said,"Hello!". The Object said,"Hello!"

echo avec serveur de noms

Lancer le serveur de nommage (Naming service) :
export LD_LIBRARY_PATH=/usr/local/lib
mkdir ~/OMNINAMES_LOGDIR
/usr/local/bin/omniNames -start -logdir  ~/OMNINAMES_LOGDIR

La deuxième fois enlever --start
Configuration de omniORB :
cp /home/jmv/src/omniORB-4.0.3/sample.cfg /etc/omniORB.cfg

Ajouter cette ligne dans /etc/omniORB.cfg :
InitRef = NameService=corbaname::192.168.0.7

Lancer client

Lancer serveur

Exercices

lien local vers Exercices

Compléments

C++

[PDF] Objets distribués - Corba - Code Mobile
CORBA, C++ and Linux
XX_var : smart pointers C++
_this() This function returns an object reference for the target object

Java

Initialisation: fixer l'implémentation Corba: voir la Javadoc: ORB

Questions