Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Java Remote Method Invocation (RMI)
Par Achraf Gazdar
2
Plan Introduction Exemple d’un client-serveur d’Echo
Étapes de création de l’application : Serveur Client Compilation Exécution sur une même machine Exécution sur des machines différentes
3
Introduction Java RMI permet de créer des applications réseau où :
Le client et le serveur sont en Java Le client peut utiliser des objets situés sur le serveur comme s’ils étaient locaux La couche réseau devient transparente aux applications client/serveurs Application RMI : développement coté serveur + développement coté client
4
Exemple : Application « Echo »
msg1 Client Serveur [msg1]
5
Étape 1 : Application serveur (l’interface de l’objet serveur)
Un objet distant doit implémenter l’interface Remote de java.rmi Les méthodes distantes sont celles qui appartiennent à une interface dérivée de la classe Remote
6
Étape 2 : Application serveur (Écriture de l’objet serveur) I
Implémentation de l’interface distante précédente par une classe Cette classe doit dériver de UnicastRemoteObject qui permet l’invocation de méthodes distantes
7
Étape 2 : Application serveur (Écriture de l’objet serveur) II
Publication du service offert par le serveur dans le service annuaire Cet annuaire sera utiliser par les clients pour chercher les services du serveurs Publication à travers la méthode rebind de la classe Naming : Naming.rebind(String nom, Remote obj) nom : nom du service obj : objet serveur
8
Étape 2 : Application serveur (Écriture de l’objet serveur) III
9
Étape 3 : Application serveur (Compilation de la partie serveur)
Compilation du fichier interEcho.java de l’interface interEcho Compilation du fichier srvEcho.java de la classe srvEcho Obtention des .class : interEcho.class et srvEcho.class
10
Étape 4 : écriture du client I
On écrit un client à qui on passe en paramètre l’URL du serveur d’écho et qui : lit une ligne tapée au clavier l’envoie au serveur d’écho affiche la réponse que celui-ci envoie reboucle en 1 et s’arrête lorsque la ligne tapée est « fin »
11
Étape 4 : écriture du client II
Localisation du service par serveur=(interEcho) Naming.lookup(urlService); urlService : rmi://machine:port/nom_service
12
Étape 5 : Génération des .class nécessaires
Compilation du client et obtention du cltEcho.class Pour dialoguer avec le serveur le client a besoin d’une image du service serveur localement c’est le fichier de Stub Obtenu par : Exécution de la commande rmic srvEcho sur le serveur Obtention de deux fichiers : srvEcho_stub.class et srvEcho_Skel.class Copie de srvEcho_stub.class et de interEcho.class avec le client
13
Étape 5 : Génération des .class nécessaires (Résumé)
Côté serveur : interEcho.class srvEcho.class srvEcho_stub.class Côté client : cltEcho.class
14
Étape 6 : exécution de l’application sur une même machine
Préparatif : lancement du service d’annuaire start c:\borland\jbuilder\jdk15\bin\rmiregistry Lancement du serveur (à partir du répertoire du serveur) start c:\borland\jbuilder\jdk15\bin\java srvEcho Lancement du client : c:\borland\jbuilder\jdk15\bin\java cltEcho rmi://localhost/srvEcho
15
Exécution sur deux machines différentes
Client Linux : copier dans le même répertoire les .class suivants : cltEcho.class interEcho.class srvEcho_stub.class Serveur : dans le même répertoire il faut prévoir les .class suivants : srvEcho.class srvEcho_Skel.class
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.