TP 3 Rmi
TP 3 Rmi
TP 3 Rmi
TP N°3 : Invocation des méthodes sur des objets distants avec java RMI
Objectifs du TP :
L'objectif de ce TP est de permettre à des applications clientes (s'exécutant localement)
d'invoquer des méthodes sur des objets distants, c'est-à-dire localisés dans une autre
application (dans une autre JVM de la même machine physique ou sur une autre machine
accessible via un réseau).
Principes généraux
Le but de RMI est de permettre l'appel, l'exécution et le renvoi du résultat d'une méthode
exécutée dans une machine virtuelle différente de celle de l'objet l'appelant. Cette machine
virtuelle peut être sur une machine différente pourvu qu'elle soit accessible par le réseau.
L'objet (le serveur) qui propose l'appel de ses méthodes par des objets distants doit offrir :
Page 1/5
Exercice 1 :
Copier puis tester sur même machine et deux machines distantes le programme RMI vu en cours. Ce
programme est constitué des fichiers suivants :
import java.rmi.*;
import java.rmi.*;
import java.rmi.server.*;
/* le constructeur */
/* l’implémentation de la méthode */
Page 2/5
HelloServer.java : coté serveur, programme qui instancie un objet implétant les
opérations qui seront appelées à distance par les clients
import java.rmi.*;
import java.rmi.registry.LocateRegistry;
public class HelloServer {
} catch (Exception e) {
System.out.println ("Erreur serveur : " + e) ; }
}
}
HelloClient.java : coté client, programme qui appelle les opérations sur l'objet
distant
import java.rmi.*;
public class HelloClient {
} catch (Exception e) {
System.out.println ("Erreur client : " + e) ; }
}
}
Page 3/5
Exercice 2 :
Développer une application client serveur RMI dans laquelle le serveur offre les services
distants suivant au client :
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Date;
Exercice 3 :
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 en banque.
De verser un montant sur un compte
Retirer un montant d’un compte
Fixer un découvert.
float getSolde();
void verser(float mt);
void retirer(float mt);
float getDecouvert();
1. Ecrire une interface CompteInterface dérivant de Remote qui déclare les méthodes distantes.
2. Ecrire une classe CompteImpl qui implémente les méthodes de l’interface
CompteInterface.
3. Ecrire une classe ServeurBanque qui gère la partie serveur de notre application répartie.
4. Ecrire une classe ClientBanque qui gère la partie client de notre application répartie.
5. Lancer et tester l’application répartie.
Page 4/5
Exercice 4 :
On souhaite créer une application java qui permet de gérer un stock de produits.
La classe produit est défini par les attributs suivants :
Un numéro de type entier
La désignation du produit de type chaîne de caractères
Le prix du produit de type réel
La quantité en stock de type entier.
Travail demandé :
1) Créer les classes Produit.
2) Créer l’interface InterfStock déclarant les méthodes à implémenter. Les méthodes sont :
getProduits qui retourne les produits en stock
getProduit qui retourne un produit donné par son numéro
montantProduit qui retourne le montant d’un produit en stock (prix*quantité)
totalProduits qui retourne le montant total des produits en stock.
3) Créer une classe ImplStock qui implémente l’interface InterfStock contenant une liste
permettant de stocker les produits.
4) Générer le stub.
5) Créer une application Serveur.
6) Créer une application Client.
Déployer l’application.
Page 5/5