0% ont trouvé ce document utile (0 vote)
4 vues6 pages

TP Rmi

Ce TP vise à implémenter un service RMI en Java, permettant à un client d'invoquer une méthode à distance sur un serveur. Les étapes incluent la définition d'une interface distante, l'implémentation de cette interface, la création d'un serveur et d'un client RMI, ainsi que l'exécution du registre RMI. Le document fournit également des explications sur les éléments de code utilisés dans le développement.

Transféré par

kouakouyaochirac
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues6 pages

TP Rmi

Ce TP vise à implémenter un service RMI en Java, permettant à un client d'invoquer une méthode à distance sur un serveur. Les étapes incluent la définition d'une interface distante, l'implémentation de cette interface, la création d'un serveur et d'un client RMI, ainsi que l'exécution du registre RMI. Le document fournit également des explications sur les éléments de code utilisés dans le développement.

Transféré par

kouakouyaochirac
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Implémentation d’un service RMI en Java

Ce TP consiste à créer une application Java permettant à un client d’invoquer


une méthode à distance sur un serveur. Nous allons suivre les étapes standards
de RMI.

1. Objectif du TP
• Comprendre le fonctionnement de RMI (Remote Method Invocation).
• Implémenter un service distribué simple (exemple : un service de calcul
d’âge).
• Manipuler le registre RMI (rmiregistry).
• Déployer un client et un serveur interagissant via RMI.

2. Étapes du développement
Nous allons réaliser les étapes suivantes :
1. Définir une interface distante
2. Implémenter l’interface distante dans une classe serveur
3. Générer le Stub (client) et Skeleton (serveur)
4. Créer un serveur RMI
5. Créer un client RMI
6. Lancer le registre RMI
7. Exécuter le serveur et le client

3. Développement du service RMI


Étape 1 : Définir l’interface distante
L’interface distante déclare les méthodes accessibles à distance. Elle doit :
• Étendre [Link].

Dr KIE Victoire 2024-2025 Page 1 sur 6


• Déclarer que ses méthodes peuvent lever une exception
RemoteException.
package rmi;
import [Link];
import [Link];

public interface CalculAge extends Remote {


int calculerAge(int anneeNaissance) throws RemoteException;
}

Étape 2 : Implémentation de l’interface distante


Le serveur implémente cette interface et étend UnicastRemoteObject.
package rmi;
import [Link];
import [Link];
import [Link];

public class CalculAgeImpl extends UnicastRemoteObject implements


CalculAge {

protected CalculAgeImpl() throws RemoteException {


super();
}

@Override
public int calculerAge(int anneeNaissance) throws RemoteException {
int anneeActuelle = [Link]().get([Link]);

Dr KIE Victoire 2024-2025 Page 2 sur 6


return anneeActuelle - anneeNaissance;
}
}

Étape 3 : Générer le Stub


On génère le stub et le squelette avec l’outil rmic.
rmic [Link]

Étape 4 : Création du serveur RMI


Le serveur RMI :
• Crée une instance de l’implémentation distante.
• L’enregistre dans le registre RMI.
package rmi;
import [Link];
import [Link];
import [Link];

public class Serveur {


public static void main(String[] args) {
try {
// Création de l'instance distante
CalculAgeImpl obj = new CalculAgeImpl();

// Démarrage du registre RMI (si non lancé séparément)


[Link](1099);

Dr KIE Victoire 2024-2025 Page 3 sur 6


// Enregistrement de l'objet dans le registre RMI
[Link]("rmi://localhost/CalculAgeService", obj);

[Link]("Serveur prêt...");
} catch (Exception e) {
[Link]();
}
}
}

Étape 5 : Création du client RMI


Le client RMI :
• Se connecte au registre RMI.
• Récupère une référence de l’objet distant.
• Appelle une méthode distante.
package rmi;
import [Link];

public class Client {


public static void main(String[] args) {
try {
// Recherche de l'objet distant
CalculAge stub = (CalculAge)
[Link]("rmi://localhost/CalculAgeService");

// Appel de la méthode distante

Dr KIE Victoire 2024-2025 Page 4 sur 6


int age = [Link](2000);
[Link]("Âge calculé : " + age + " ans");

} catch (Exception e) {
[Link]();
}
}
}

4. Exécution du TP
Étape 6 : Lancer le registre RMI
Avant d'exécuter les programmes, il faut démarrer le registre RMI avec :
rmiregistry 1099

Étape 7 : Démarrer le serveur


Dans un terminal :
java [Link]

Étape 8 : Exécuter le client


Dans un autre terminal :
java [Link]

5. Explication des éléments de code


1. [Link] : Interface mère des objets distants.
2. UnicastRemoteObject : Permet d’exporter un objet distant.
3. RemoteException : Indique un problème réseau possible.

Dr KIE Victoire 2024-2025 Page 5 sur 6


4. [Link]() : Permet de récupérer un objet distant via son URL.
5. [Link](1099) : Démarre un registre RMI local.
6. rmiregistry : Programme permettant d’associer un nom à un objet distant.

Dr KIE Victoire 2024-2025 Page 6 sur 6

Vous aimerez peut-être aussi