La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Java Remote Method Invocation

Présentations similaires


Présentation au sujet: "Java Remote Method Invocation"— Transcription de la présentation:

1 Java Remote Method Invocation
Mehrez Boulares, Nour Ben Yahia ISI Kef

2 Introduction JAVA et les objets distribués.
Mise en place d’outils facilitant la distribution d’objets et leur utilisation dans le cadre d’architecture Client/Serveur : RMI. Extension de la notion de programmation réseau avec les sockets UDP et TCP. RMI est un système d’objets distribués constitué uniquement d’objets JAVA. RMI est une API (Application Programming Interface) intégrée à JAVA depuis la version 1.1. PUT THE NAME OF YOUR COMPANY HERE

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 PUT THE NAME OF YOUR COMPANY HERE

4 Étapes d’un appel de méthode distante
PUT THE NAME OF YOUR COMPANY HERE

5 Développer une application avec RMI : Mise en œuvre
Définir une interface distante (Xyy.java). Créer une classe implémentant cette interface (XyyImpl.java). Compiler cette classe (javac XyyImpl.java). Créer une application serveur (XyyServer.java). Compiler l’application serveur. Créer les classes stub et skeleton à l’aide de rmic XyyImpl_Stub.java et XyyImpl_Skel.java (Skel n’existe pas pour les versions >1.2). Démarrage du registre avec rmiregistry. Lancer le serveur pour la création d’objets et leur enregistrement dans rmiregistry. Créer une classe cliente qui appelle des méthodes distantes de l’objet distribué (XyyClient.java). Compiler cette classe et la lancer. PUT THE NAME OF YOUR COMPANY HERE

6 Exemple : Application « Echo »
msg1 Client Serveur [msg1] PUT THE NAME OF YOUR COMPANY HERE

7 É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 PUT THE NAME OF YOUR COMPANY HERE

8 É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 PUT THE NAME OF YOUR COMPANY HERE

9 É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 PUT THE NAME OF YOUR COMPANY HERE

10 Étape 2 : Application serveur (Écriture de l’objet serveur) III
PUT THE NAME OF YOUR COMPANY HERE

11 É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 PUT THE NAME OF YOUR COMPANY HERE

12 É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 » PUT THE NAME OF YOUR COMPANY HERE

13 Étape 4 : écriture du client II
Localisation du service par serveur=(interEcho) Naming.lookup(urlService); urlService : rmi://machine:port/nom_service PUT THE NAME OF YOUR COMPANY HERE

14 É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 PUT THE NAME OF YOUR COMPANY HERE

15 É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 PUT THE NAME OF YOUR COMPANY HERE

16 Étape 6 : exécution de l’application sur une même machine
Préparatif : lancement du service d’annuaire start rmiregistry Lancement du serveur (à partir du répertoire du serveur) start java srvEcho Lancement du client : java cltEcho rmi://localhost/srvEcho PUT THE NAME OF YOUR COMPANY HERE

17 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 PUT THE NAME OF YOUR COMPANY HERE


Télécharger ppt "Java Remote Method Invocation"

Présentations similaires


Annonces Google