M2 BD IA — BDED Exercice 1. Programme HelloWorld client

M2 BD IA — BDED
Semaine du 19/10 au 30/10/2009
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.
1. reprendre l’exemple Hello World vu en cours, construire l’interface IDL, impl´
ementer le serveur et rea-
liser un client (en C++), compiler chaque partie et ex´
ecuter serveur et client sur une mˆ
eme machine
(attention a prendre soin d’initialiser le POA au lieu ce BOA) ;
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 facon mixte : client java/serveur C++, client C++/serveur Java ;
5. tester plusieurs clients simultan´
es sur un mˆ
eme serveur.
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 dynamique.
Au moyen du service CosNaming de CORBA r´
ealiser une invocation dynamique avec un client en Java et un
serveur en C++.
Reprendre l’exercice sur les compte banquaire du TP sur Java RMI et implanter une solution avec le pattern
ObjectFactory en CORBA.
Exercice 4. Activation
Exp´
erimentez le m´
ecanisme d’activation et le ´
eventuellement 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’Object Broker. 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 et Linux Debian. Sous Linux et sous
Solaris la version 4.3 sont 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 machines SUN de la salle A105 (de pr´
ef´
erence Ultra 20).
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/
et sur le site de l’´
editeur du logiciel (http://web.progress.com/orbacus/documentation_432.html).
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 ou par
g++ pour utiliser le compilateur C++ GNU.
Eric Leclercq — D´
epartement IEM — http://ufrsciencestech.u-bourgogne.fr 1
Compilation avec OB 4.0 en C++ `a adapter pour la verison 4.3 :
export PATH=$PATH:/usr/local/OB-4.0.5/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/OB-4.0.5/lib
c++ -c -I. -I/usr/local/OB-4.0.5/include --no-implicit-templates \
-Wall -Wno-return-type Hello.cpp
c++ -c -I. -I/usr/local/OB-4.0.5/include --no-implicit-templates \
-Wall -Wno-return-type Hello_impl.cpp
c++ -c -I. -I/usr/local/OB-4.0.5/include --no-implicit-templates \
-Wall -Wno-return-type Hello_skel.cpp
c++ -c -I. -I/usr/local/OB-4.0.5/include --no-implicit-templates \
-Wall -Wno-return-type Server.cpp
c++ --no-implicit-templates -Wall -Wno-return-type -L/usr/local/OB-4.0.5/lib -o server \
Hello.o Hello_skel.o Hello_impl.o Server.o -lOB -lsocket -lnsl
c++ -c -I. -I/usr/local/OB-4.0.5/include --no-implicit-templates \
-Wall -Wno-return-type Client.cpp
c++ --no-implicit-templates -Wall -Wno-return-type -L/usr/local/OB-4.0.5/lib -o \
client Hello.o Client.o -lOB -lsocket -lnsl
Compilation avec OB 4.0 en Java :
La commande jidl --package hello Hello.idl permet de g´
en´
erer les fichiers dans un r´
epertoire
hello
Pour compiler le client et les fichier g´
en´
er´
es : javac *.java hello/*.java
Attention fixer la variable CLASSPATH et garder les variables PATH et LD LIBRARY PATH dans l’´
etat
pr´
ec´
edent c’est-`
a-dire comme si vous aviez effectu´
e un compilation en C++.
export CLASSPATH=$CLASSPATH:/usr/local/JOB-4.0.5/ob/lib
– D´
eposer tous les fichiers du client et du serveur dans le repertoire hello (qui contient les classes du
package). Pour lancer le client : java hello.Client
Dans le r´
epertoire /usr/local vous trouverez les anciens JDK
Eric Leclercq — D´
epartement IEM — http://ufrsciencestech.u-bourgogne.fr 2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !