Vous êtes sur la page 1sur 4

Faculté des Sciences de Sfax Année universitaire 

: 2021-2022
Matière : Développement d’applications réparties Responsable du cours : Corinne ZAYANI
Auditoire : LSI3 Enseignante des TPs : Leïla BAYOUDHI

TP N° 5 : Invocation des méthodes sur des objets


distants avec java RMI
Objectifs :
● Pouvoir implémenter des communications client-serveur via les Remote Method
Invocation (RMI) de Java.
Environnement :
● JDK>1.5
● Eclipse IDE for Java developers
● Créez un répertoire qui porte comme le nom : votre nom_LSI3_DepAppReparties
● Déposez votre travail compressé dans l’ENT.
Ressource :
● Consultez le cours Développement d’applications réparties : séance 7 (04/11)
Exercice 1 : Service de multiplication
Enoncé
Développez une application client-serveur RMI dans laquelle le serveur offre le service de
multiplication de deux nombres.
Travail demandé
1. Démarrez le programme Eclipse en se plaçant dans votre répertoire créé.
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
ProjCalcul_Server.
b) Par une clique droite sur le répertoire src, créez le package : "rmiService", dans lequel on
crée une Interface qui porte le nom : "ICalcul" et qui dérive de l’interface « Remote ».
Cette interface définit que la méthode de multiplication suivante :
double mul (double a, double b)
c) Dans le même package, créez la classe CalculImpl qui dérive de la classe
UnicastRemoteObject et qui implémente l’interface ICalcul. La classe créée implémente
la méthode mul(double,double).
d) Par une clique droite sur le répertoire src, créez le package : "rmiServer", dans lequel
vous êtes demandés de créer une classe qui porte le nom : "CalculServer" et cochez
« public static void main() ». L’application CalculServer doit :
i. activer l’annuaire RMIRegistry
ii. Créer une instance de la classe CalculImpl.
iii. Publier la référence de cet objet dans l’annuaire (RMIRegistry).
3. Écrivez le code java correspondant à la partie Client.
1
Faculté des Sciences de Sfax Année universitaire : 2021-2022
TP N° 05 : RMI Auditoire : LSI3

a) Créez un nouveau Projet Java en acceptant les réglages proposés par défaut sous le nom
ProjCalcul_Client.
b) Exporter le package rmiService du projet ProjCalcul_Server et ne sélectionnez que
l’interface ICalcul (la classe CalculImpl doit être désélectionnée) dans un fichier jar. Ce
fichier jar porte le nom CalculClient.jar. Enregistrez-le dans votre espace de travail.
c) Importer ce jar dans le projet ProjCalcul_Client dans le « Classpath » de ce projet.
d) Par une clique droite sur le répertoire src, créez le package : "rmiClient", dans lequel on
crée une classe qui porte le nom : "CalculClient" et cochez « public static void main() ».
L’application CalculClient doit :
i. Chercher la référence vers l’objet distant ICalcul dans l’annuaire (RMI registry).
ii. Invoquer la méthode mul(34, 55) via cette référence.
N.B. Importez les packages nécessaires et ajoutez les exceptions appropriées.
4. Lancez le serveur puis le client.
Exercice 2 : Service calculatrice
Enoncé
Développez une application client-serveur RMI dans laquelle le serveur offre le service
d’addition, multiplication, soustraction ou division de deux nombres.
Travail demandé
Pour répondre à l’énoncé, étendez les deux projets développés lors du premier exercice en
modifiant les trois fichiers suivants :
1. ICalcul.java : interface définissant les méthodes appelables à distance
double add(long a, long b)
double sous(long a, double b)
double mul(double a, double b)
double div(double a, double b)
2. CalculImpl.java : classe implémentant les méthodes mentionnées ci-dessus.
3. CalculClient.java coté client, programme qui
a) Cherche la référence vers l’objet distant dans l’annuaire (RMI registry).
b) Fait l’appel d’une méthode à distance via cette référence. Cette méthode sera appelée
selon le nom de l’opération soit add, sous, mul ou bien div.
Exercice 3 : Service banque
Enoncé
Le but de cet exercice est de créer une application répartie permettant de gérer des comptes
bancaires.
Le compte est défini par son code, son solde et sa date de création.

2
Faculté des Sciences de Sfax Année universitaire : 2021-2022
TP N° 05 : RMI Auditoire : LSI3

Un serveur gérera tous les comptes bancaires et permettra à des clients de se connecter et
d’effectuer les opérations suivantes :
– Créer un compte avec une somme initiale.
– Consulter un compte sachant le code.
– Consulter une liste de comptes.
– Convertir un montant d’euro en dinare.
Travail demandé
1. Démarrez le programme Eclipse en vous référant à votre répertoire crée.
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
ProjBanque_Server.
b) Par une clique droite sur le répertoire src, créez le package : "metier", dans lequel on
crée une classe sérializable qui porte le nom : "Compte".
c) Par une clique droite sur le répertoire src, créez le package : "rmiService", dans lequel on
crée une Interface qui porte le nom : IBanque". Cette interface définit les méthodes
suivantes :
void creerCompte(Compte c)
Compte consulterCompte (int code)
String getInfoCompte(int code)
Vector<Compte> getComptes()
double convertirMontant(double mt)
d) Dans le même package, créez la classe BanqueImpl et qui implémente l’interface
IBanque
e) Par une clique droite sur le répertoire src, créez le package : "rmiServer", dans lequel
vous êtes demandés de créer une classe qui porte le nom : BanqueServer" et cochez
« public static void main() ».
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
ProjBanque_Client.
b) Exporter les packages rmiService du projet ProjBanque_Server et sélectionnez
l’interface IBanque ainsi que la classe Compte (la classe BnqueImpl doit être
désélectionnée) dans un fichier jar. Ce fichier jar porte le nom banqueClient.jar.
Enregistrez-le dans votre espace de travail.
c) Importer ce jar dans le projet ProjBanque_Client dans le « Classpath » de ce projet. Pour
ce faire : Faites un clic droite sur ce projet> Properties> Java build path> Libraries>
Classpath > Add External Jars..> Parcourir le fichier jar crée> Apply and Close.
d) Par une clique droite sur le répertoire src, créez le package : "rmiClient", dans lequel on
crée une classe qui porte le nom : "BanqueClient".

3
Faculté des Sciences de Sfax Année universitaire : 2021-2022
TP N° 05 : RMI Auditoire : LSI3

N.B. Importez les packages nécessaires et ajoutez les exceptions appropriées.


4. Lancez le serveur puis le client.
Exercice 4 : Bonus 
Etendez l’application Banque pour pouvoir ajouter et retirer une somme d’un compte donné.

Vous aimerez peut-être aussi