2. Invoquer une méthode d’un objet distant
•objetDistant.methode();
Passer un Objet Distant en paramètre à
une méthode locale ou distante
• resultat=objetLocal.methode(objetDistant);
• resultat=objetDistant.methode(autreobjetDistant);
3.
4. Client Serveur
Objet Distant
Attributs
Méthodes
Skeleton
Port = xxx
Naming Service : IP et Port
Stub
Port = xxx
Nom Objet Distant Ref Objet distant
Objet 1 Ref1 : IP/PORT/@m
Objet 2 Ref2 : IP/PORT/@m
1. Créer L’objet distant
2. Publier la
référence de
l’objet
3. Récupérer
la référence
de l’objet
4. Créer le
stub
5. Connexion
7. Appel
10. Résultat
7. Appel
11. Résultat
8. Appel 9. Résultat
5.
6. (1) Créer les interfaces des objets distants
(2) Créer les implémentation des objets distants
(3) Créer le serveur RMI - générer le skeleton
(4) Créer le client RMI - générer le stub
(5) Déploiement Lancement
• Lancer l’annuaire RMIREGISTRY
• Lancer le serveur
• Lancer le client
7. • Doit Hériter de la classe Remote :
extends Remote
• Les méthodes doivent lever l’exception :
RemoteException :
throws RemoteException
• Les Objets utilisés doivent être sérializable.
8. • Doivent hériter de la classe :
UnicastRemoteObject
extends UnicastRemoteObject
• Doivent implémenter l’interface définit
précédement Redéfinir tous les méthodes
• Posséder un constructeur sans ou avec
paramètres, permettant de lever l’exception :
RemoteException.
9. • Démarrer le service de nom (rmiregistry) :
LocateRegistry.createRegistry(1099)
;
• Instancier l’objet distant :
NomClasse noj = new NomClasse();
• Publier le référence de cette objet dans
l’annuaire :
Naming.rebind("rmi://NomServeur:109
9/NOBJ",noj);
10. • Créer le stub : Lire les référence de l’objet
distant dans l’annuaire :
<NomIntface> NomStub =
(<NomIntface>)
Naming.lookup("rmi://NomServeur:10
99/NOBJ");
• Appeler les méthodes de l’objet distant via le
stub :
NomStub.NomMethode()