Vous êtes sur la page 1sur 4

Institut Supérieur d’Informatique de Mahdia Année universitaire : 2023-2024

Matière : Développement d’applications réparties Enseignante : Leïla Bayoudhi


Auditoire : LCS-GLSI3

TP N° 6 : CORBA
Common Object Request Broker Architecture
Objectif :
● Pouvoir implémenter des communications client-serveur via le middleware CORBA.
Environnement :
● JDK > 1.5 (de préférence une version <= 1.8) tout en configurant aussi JRE
convenablement.
● Eclipse IDE for Java developers.
● Télécharger le plugin Corba en cliquant sur le menu Help > Install New Software > Add
(Name = Corba et Location = http://eclipsecorba.sourceforge.net/update_unstable).
● Vérifier la variable d’environnement PATH.
● Créez un répertoire qui porte comme nom :
votre_nom_LCSGLSI3_DepAppReparties_CORBA situé dans votre espace de travail
des TPs.
● Déposez votre travail sous forme PDF dans l’ENT.
Ressource :
● Consultez le cours Développement d’applications réparties : séances 08&09 (23-30/11)
Exercice : Service banque
Partie 1 : L’objectif de cette partie est de comprendre le fonctionnement du middleware CORBA.
Créez une application distribuée CORBA qui permet de créer un objet distant CORBA relatif au
compte bancaire. Dans cet exemple, on va se limiter à la méthode conversion.
Partie 2 : L’objectif de cette partie est de se familiariser avec le développement IDL.
Enoncé : Etendre l’application développée dans Partie 1
Le but de cette extension est de créer une application répartie permettant de gérer des comptes
bancaires, en utilisant le middleware CORBA.
Le compte est défini par son code et son solde.
Un serveur gérera tous les comptes bancaires et permettra à des clients de se connecter et
d’effectuer les opérations suivantes en testant méthode par méthode :
– Créer un compte avec une somme initiale.
– Verser une somme d’argent sur un compte
– Retirer une somme d’argent d’un compte
– Consulter un compte sachant le code.
– Consulter une liste de comptes.
– Convertir un montant d’euro européen vers le dinar tunisien.

Page 1 sur 4
Institut Supérieur d’Informatique de Mahdia Année universitaire : 2023-2024
TP N° 06 : CORBA Auditoire : LCS-GLSI3

Travail demandé
N.B. Importez les paquetages nécessaires et ajoutez les exceptions appropriées au fur et à mesure
du développement.
1. Démarrez le programme Eclipse en vous référant à votre répertoire crée qui sera considéré
comme votre espace de travail.
2. Écrivez le code java correspondant à la partie Serveur
a) Créez un nouveau Projet Java en acceptant les réglages proposés par défaut sous le nom
TP6_CorbaBanque_Server.
b) Ecrire l'interface du service en IDL. Par une clique droite sur le répertoire src, créez le
fichier IDL "Banque.idl". Ce fichier déclare les éléments suivants :
i. Un module nommé corbaBanque (représente un package dans java).
ii. Une structure (struct) Compte qui déclare les attributs d’un compte à savoir :
– Le code de type long équivalent de int en java et
– Le solde de type float.
iii. Un alias (typedef) tabComptes qui définit le type tabComptes représentant le type d’un
tableau de comptes.
iv. L’interface de l’objet distant nommé « IBanqueRemote » qui déclare les méthodes
abstraites suivantes :
– creerCompte : qui possède un paramètre « cpte » de type Compte en entrée.
– verser : qui possède deux paramètres en entrée : « code » de type long et « mt » de
type float.
– retirer : qui possède deux paramètres en entrée : « code » de type long et « mt » de
type float.
– getCompte : qui retourne un objet de type Compte sachant son code.
– getComptes : qui retourne un tableau de comptes.
– conversion : qui retourne un double et possède un paramètre « mt » de type float en
entrée.
c) Compilation IDL : Pour compiler Banque.idl, Vous avez deux options :
• Par ligne de commande. Pour ce faire
i. cmd
ii. cd [chemin_du_répertoire_src_du_projet]
iii. idlj -fall -v Banque.idl
• En utilisant Eclipse. Pour ce faire :
iv. Cliquez sur le menu Run > External Tools > External Tools Configurations…
v. Cliquez avec le bouton droit sur « Program » dans le panneau de gauche puis
choisissez « New Configuration » ;
vi. Dans le panneau de droite, tapez CompilationIDL comme nom ;
vii. Cliquez sur « Browse File System… » sous « Location : » puis allez chercher le
programme idlj.exe qui se trouve dans le répertoire bin du JDK (Dans mon cas
Location = C:\Program Files\Java\jdk1.8.0_311\bin\idlj.exe);
Page 2 sur 4
Institut Supérieur d’Informatique de Mahdia Année universitaire : 2023-2024
TP N° 06 : CORBA Auditoire : LCS-GLSI3

viii. Cliquez sur « Browse Workspace… » sous « Working Directory : » puis allez
chercher le répertoire src de votre projet ;
ix. Sous « Arguments : » tapez : « -fall –v Banque.idl ».
x. Cliquez ensuite sur « Apply », puis sur « Run » ensuite sur votre_projet > refresh.
Vous aurez un package « corbaBanque » qui contient entre autres :
▪ _IBanqueRemoteStub.java : Souche (STUB)
▪ IBanqueRemoteOperations.java : Interface Java déclarant les méthodes
distantes (définies dans l’interface IDL) ; ce fichier est partagé par la souche et
le skeleton.
▪ IbanqueRemote.java : Interface java de l’objet distant. Cette interface hérite de :
– IBanqueRemoteOperations,
– org.omg.CORBA.Object,
– org.omg.CORBA.portable.IDLEntity
▪ IBanqueRemoteHelper.java utile pour le transtypage des références des objets
CORBA vers leurs propres types à travers la méthode narrow.
▪ IBanqueRemoteHolder.java : : classe utilitaire pour la gestion des inout.
▪ IbanqueRemotePOA.java : représente le skeleton du serveur.
▪ Compte.java classe qui Implante IDLEntity qui hérite de Serializable
d) Implémentation de l’objet distant (servant). Par une clique droite sur le répertoire src, créez
le package service contenant la classe BanqueImpl et qui hérite de IBanqueRemotePOA.
Implémentez les méthodes définies dans l’interface IBanqueRemoreOperations, à
savoir :
● void creerCompte (corbaBanque.Compte cpte);
● void verser (int code, float mnt);
● void retirer (int code, float mnt);
● corbaBanque.Compte getCompte (int code);
● corbaBanque.Compte[] getComptes ();
● double conversion (float mt);
e) Par une clique droite sur le répertoire src,
i. Créez le fichier jndi.properties qui contient les deux lignes suivantes :
java.naming.factory.initial = com.sun.jndi.cosnaming.CNCtxFactory
java.naming.provider.url = iiop://localhost:900
ii. Créez le package : "corbaServer", dans lequel vous êtes demandés de créer une classe
qui porte le nom : BanqueServer" et cochez « public static void main() ». Cette classe
doit :
a) Initialiser l’ORB
b) Initialiser l'adaptateur d'objets. Pour ce faire, il faut récupérer une référence sur le
RootPOA et activer le POAManager
c) Configurer l’annuaire JNDI
d) Créer un servant de l’objet distribué et enregistrer de sa référence pour la rendre
disponible dans l’ORB.
e) Mettre l’ORB en attente de requêtes des clients
Page 3 sur 4
Institut Supérieur d’Informatique de Mahdia Année universitaire : 2023-2024
TP N° 06 : CORBA Auditoire : LCS-GLSI3

3. Écrivez le code java correspondant à la partie Client


a) Créez un nouveau Projet Java en acceptant les réglages proposés par défaut sous le nom
TP6_CorbaBanque_Client.
b) Copiez les fichiers Banque.idl et jndi.properties dans le répertoire
TP6_CorbaBanque_Client/src
c) Compilez de nouveau le fichier Banque.idl dans le projet client de la même façon que 2/c).
d) Développez le client. Par une clique droite sur le répertoire src, créez le package :
"corbaClient", dans lequel vous êtes demandés de créer une classe qui porte le nom :
BanqueClient" et cochez « public static void main() ». Cette classe doit :
i. Récupérer les propriétés de l’annuaire JNDI.
ii. Récupérer la référence de l'objet à utiliser.
iii. Convertir la référence vers le type de l'objet à utiliser (IbanqueRemote) ce qui permet
de créer le stub.
iv. Appeler ses méthodes à distance à travers le stub.
4. Exécution de l'application : Pour exécuter l’application, il faut suivre les étapes suivantes :
a) Lancez l’annuaire. Vous avez deux options :
• Par ligne de commande. Pour ce faire :
i. Placez-vous dans le dossier du projet du serveur,
ii. Tapez la commande tnameserv.ou bien Start tnameserv
• En utilisant Eclipse. Pour ce faire :
iii. Cliquer sur le menu Run > External Tools > External Tools Configurations…
iv. Cliquez avec le bouton droit sur « Program » dans le panneau de gauche puis
choisissez « New Configuration » ;
v. Dans le panneau de droite tapez tnserv comme nom ;
vi. Cliquez sur « Browse File System… » sous « Location : » puis allez chercher le
programme tnameserv qui se trouve dans le répertoire bin du JDK (par exemple
dans C:\Program Files\Java\jdk1.8.0_311\bin\);
vii. Cliquez sur « Browse Workspace… » sous « Working Directory : » puis allez
chercher le répertoire src ou bin de votre projet serveur.
b) Lancez le serveur.
c) Lancez le client.

Page 4 sur 4

Vous aimerez peut-être aussi