Vous êtes sur la page 1sur 2

Java RMI

TP 5

Pour ce TP, nous allons dvelopper des applications distribues sur le rseau en utilisant RMI. Les serveurs et
les clients seront excuts sur la machine sur laquelle vous travaillez.
Exercice 1 :
Pour cet exercice, commencez par rcuprer le dossier Hello.
1. Compiler et testez votre programme.
2. Prciser dans votre compte-rendu quelles sont les commandes taper pour cela, ainsi que si elles
doivent avoir lieu cot serveur ou cote client.
3. Regarder et comprendre le code. Quel est le rle de chaque fichier ?
4. Que se passe-t-il si plusieurs d'entre vous lancent le serveur sur la mme machine ? Comment rsoudre
le problme ?
5. Quelle est la difference entre Naming.bind() et Naming.rebind() ? Quel problme peut-on rencontrer
avec Naming.bind() ?
6. Est-il possible d'enregistrer un serveur sur un registry distant ? pourquoi ?
Exercice 2 :
Lobjectif de cet exercice est dcrire un programme qui permet de calculer sur le serveur la fonction
fibonnacci.
Vous pouvez exploiter linterface ci-dessous :
package fibonaacci;
import java.rmi.*;
public interface Serveur extends Remote
{
public int fibonnaci(int rang) throws RemoteException;
}
1. Ecrire la classe ServeurImpl.java et Client.java qui contiennent respectivement limplmentation du
serveur et la demande du client (par exemple fibonnaci (5)).
Exercice 3 :
Ecrire une application qui permet de mmoriser les rsultats acadmiques d'un ensemble d'tudiants.
Lapplication est constitue de deux interfaces : Etudiant.java et Promotion.java.
L'interface Etudiant.java donne accs aux donnes associes un tudiant : c'est dire son nom, son prnom,
son numro d'tudiant ainsi qu'un ensemble de notes. Chaque tudiant passe plusieurs preuves. Chaque
preuve donne lieu une note. Chaque note est associe un coefficient. Un coefficient est une donne de
type double dont la valeur est comprise entre 0 et 1. La somme des coefficients de toutes les preuves d'un

tudiant doit tre gale 1. Ces diffrentes preuves sont stockes dans un ensemble d'instance de la
classe Epreuve_avec_coeff.java. L'interface Etudiant.java propose trois mthodes :

ajouter_une_epreuve: qui permet d'ajouter une preuve un tudiant. Une preuve est constitue d'un
nom (ex: "Ecrit de math"), d'une note et d'un coefficient indiquant le poids de l'preuve dans la
moyenne gnrale de l'tudiant.
afficher_liste_des_epreuves: qui renvoie au client une chaine de caraactre contenant la liste des
preuves associes l'tudiant. Cette chaine de caractres est donc construite par le serveur afin d'tre
affiche par le client l'utilisateur
calculer_la_moyenne: qui calcule la moyenne gnrale de toutes les preuves d'un tudiant
conformment aux coefficients de chaque preuve.

L'interface Promotion.java permet:

De crer un nouvel tudiant (mthodeajouter_un_etudiant).


De rechercher un tudiant prcdemment enregistr (mthoderechercher_un_etudiant). Grce la
rfrence d'objet ainsi rcupre, le client peut alors demander le calcul de la moyenne gnrale de
l'tudiant.
De calculer la moyenne gnrale de toute la promotion (mthode calculer_moyenne_de_la_promotion).

Proposer un serveur ainsi qu'une classe d'implmentation pour chacune des interfaces accessibles
distance.
2. Proposer un client qui dclare plusieurs tudiants ayant passs plusieurs preuves. Puis, tester votre
solution en affichant les preuves, la moyenne de chaque tudiant ainsi que la moyenne gnrale de la
promotion.
1.