M2 BD IA — BDED
Semaine du 17/10 au 28/10/2011
TP 2 •Les objets distribu´es CORBA
Exercice 1. Programme HelloWorld client serveur
Le but de cet exercice est de tester les capacit´
es multi-langages et multi-plate-formes de CORBA avec l’im-
plementation Orbacus (anciennement Object Broker) de Progress Software dont le code est accessible mais qui
n’est pas un logiciel libre.
1. Reprendre l’exemple simpliste Hello World vu en cours, construire l’interface IDL, impl´
ementer le ser-
veur et r´
ealiser un client (en C++), compiler chaque partie et ex´
ecuter serveur et client sur une mˆ
eme
machine.
2. R´
ep´
eter l’ex´
ecution en utilisant deux stations diff´
erentes.
3. impl´
ementer un client et un serveur en Java et tester l’ex´
ecution du client et du serveur Java.
4. Ex´
ecuter de fac¸on mixte sur des architectures diff´
erentes (OS et processeur) : client Java/serveur C++,
client C++/serveur Java.
5. Tester plusieurs clients simultan´
es sur un mˆ
eme serveur. Comment r´
esoudre les probl`
emes de concur-
rence ´
eventuel ?
Exercice 2. Mesure du temps d’invocations de m´
ethodes `
a distance
On d´
esire comparer le temps d’invocation de m´
ethodes dans une application client serveur lorsque le client
et le serveur sont sur la mˆ
eme machine puis, lorsque le client et le serveur utilisent deux machines diff´
erentes.
Pour effectuer cette mesure on lancera 1000 fois l’invocation d’une m´
ethode depuis un client vers le serveur.
On mesurera le temps de ces 1000 invocations. La m´
ethode du serveur peut se contenter d’incr´
ementer un
compteur.
Reprendre le mˆ
eme type de programme et mesure le temps d’acheminement avec JavaRMI.
Exercice 3. Invocation dynamique
Les exemples d´
evelopp´
es jusqu’`
a pr´
esent utilisent exclusivement le m´
ecanisme d’invocation statique. Au
moyen du service CosNaming de CORBA r´
ealiser une invocation dynamique avec un client en Java et un
serveur en C++.
Exercice 4. Activation et ObjectFactory
Exp´
erimentez le m´
ecanisme d’activation et le principe t´
el´
echargement de r´
ef´
erences via un serveur web.
Les fonctions n´
ecessaire `
a la r´
ealisation du programme sont d´
ecrites dans le chapitre 7 du manuel de r´
ef´
erence
d’Orbacus. Comment r´
ealiser le pattern ObjectFactory en Java ? Comparez les m´
ecanismes propos´
es avec ceux
de Java RMI.
Exercice 5. Pont RMI-CORBA
Il est possible depuis Java RMI d’invoquer des objets CORBA. D´
ecrire et tester sur un exemple simple le
m´
ecanisme propos´
e par Java.
Indications et recommandations :
Object Broker (Orbacus) peut fonctionner sur les machines SUN Solaris (SPARC et x86) et Linux Debian
6 ainsi que sous Linux Gentoo. Sous Linux et sous Solaris la version 4.3.4 est install´
ee dans le r´
epertoire
/usr/local.
Vous utiliserez le serveur kundera pour ex´
ecuter la partie Linux. Les programmes pour Solaris peuvent
tourner sur les serveurs SUN.
Suivant la machine il faut faire attention `
a mettre a jour les variables PATH,JAVA HOME,LD LIBRARY PATH,
pour d´
esigner le r´
epertoire d’installation d’Orbacus.
Les documentations sont accessibles sur le serveur depinfo http://depinfo.u-bourgogne.fr/docs/.
Reprenez les exemples d´
evelopp´
es en cours dans la documentation sp´
ecifique `
a la version 4.
La commande c++ est g´
en´
erique, la remplacer par CC pour utiliser le compilateur C++ constructeur (celui
de SUN) ou par g++ pour utiliser le compilateur C++ GNU. Sur les machines solaris, utiliser le compilateur
constructeur.
Compilation avec 4.3.4 en C/C++ :
Eric Leclercq — D´
epartement IEM — http://ufrsciencestech.u-bourgogne.fr 1