Introduction
Dénition de Middleware (rappel).
RMI : Remote Method Invocation
République Algérienne Démocratique et Populaire
Université 20 Août 1955 Skikda
Faculté de Sciences
Département d'Informatique
MASTER 2 ISD
CONCEPTION DES SYSTÈMES COOPÉRATIFS
RMI: REMOTE METHOD INVOCATION
Dr. BOULAICHE Mehdi, Maitre de conférences.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction
Dénition de Middleware (rappel).
RMI : Remote Method Invocation
Plan de Présentation 2
1 Introduction
2 Dénition de Middleware (rappel).
Dénitions
3 RMI : Remote Method Invocation
Généralités
Fonctionnement
RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction
Dénition de Middleware (rappel).
RMI : Remote Method Invocation
Introduction 3
Une application à objets répartis utilise des objets qui résident sur
des machines distinctes d'un réseau, ces objets sont sollicités par
des appels de méthodes distantes. Etant donné le point de vue du
programme appelant de telles méthodes, les objets auxquels elles
s'appliquent sont appelés objets distants.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction
Dénition de Middleware (rappel). Dénitions
RMI : Remote Method Invocation
Middleware 4
Dénition
Une architecture middleware (intergiciel) est une couche de logiciel
(réparti) au-dessus du système d'exploitation mais au-dessous de
l'application destinée à masquer l'hétérogénéité des machines et des
systèmes, la répartition des traitements et données, et fournir une
interface aux applications (modèle de programmation + API).
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Généralités 5
1 Les RMI permettent de créer un objet et de le rendre accessible
aux autres machines, pour lesquelles il devient un objet distant.
2 Sur l'une de ces machines clientes, une application Java peut
alors récupérer localement une représentation de l'objet
distant, appelé stub.
3 Elle utilise alors ce stub comme elle utiliserait l'objet distant
s'il était local sur la machine client.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Fonctionnement 6
1 L'implantation des RMI est basée sur les notions de stub
(souche) et de skeleton (squelette).
2 Du côté client, le stub simule l'objet distant.
3 Du côté serveur, Le skeleton simule un appel local et engendre
l'exécution de la méthode sur l'objet.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Fonctionnement 7
Un intergiciel qui réalise ces fonctions est un courtier d'objets
répartis (en anglais Object Request Broker, ou ORB).
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 8
L'implémentation avec les RMI d'une application comprenant un
objet distant se décompose en six étapes :
1 Dénition d'une interface pour l'objet distant
2 Implantation de cette interface.
3 Génération des classes stub et skeleton de l'objet distant.
4 Exposition de l'objet distant dans un serveur d'objets.
5 Publication de l'existence de cet objet exposé dans un serveur
de noms.
6 Appel à distance des méthodes de l'objet.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 9
Etape 1
Dénition d'une interface pour l'objet distant
Dans cette étape, il s'agit de dénir une interface pour l'objet
distant représentant l'ensemble des méthodes, via lesquelles un
objet distant pourra être manipulé. Cette interface devra être
connue des deux côtés (client et serveur).
Pour que l'objet soit accessible à distance, cette interface doit
hériter de l'interface [Link]
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 10
Etape 2
Imlémentation de cette interface.
L'implémentation de l'interface est la classe de l'objet à installer et
à exposer sur la machine serveur pour accepter les appels de
méthodes distantes provenant de la machine cliente.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 11
Etape 3
Génération des classes stub et skeleton de l'objet distant.
En utilisant la commande rmic, les deux classes stub et skeleton
peuvent être générées à partir de la classe implémentant l'interface.
L'exécution de cette commande génère deux chiers,
NomeClasseS [Link]
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 12
Etape 4
Exposition de l'objet distant dans un serveur d'objets
Plusieurs solutions permettent d'exposer un objet mais la plus
simple consiste à appeler la méthode statique exportObject() de la
classe UnicastRemoteObject. Cette méthode accepte en paramètre
un objet implantant l'interface Remote.
Pour faire connaître le nouvel objet exposé, ce dernier peut alors
être publié dans un serveur de noms. Pour cela, la méthode statique
rebind() de la classe Naming est utilisée. Elle prend en paramètre
un nom et la référence de l'objet exposé à lui associer.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 13
Etape 5
Publication de l'existence de cet objet exposé dans un serveur de
noms.
La commande rmiregistry lance un serveur de noms destiné aux
RMI ; celui-ci doit être démarré sur la même machine que le
programme eectuant l'exposition.
Par défaut, ce serveur est attaché au port TCP 1099. Il est possible
de l'attacher à un autre port en passant la valeur du port en
argument à la commande rmiregistry :
Exemple : rmiregistry 10000
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
Implémentation 14
Etape 6
Appel à distance des méthodes de l'objet.
Pour utiliser l'objet distant, l'application cliente commence par
récupérer un objet (stub), correspondant à l'objet distant, via le
serveur de noms qui se trouve sur la machine serveur. Pour cela, la
méthode statique lookup() de la classe Naming est utilisée. Cette
méthode retourne un objet de la classe Remote.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 15
Dans cette exemple, on va implanter une classe java qui fait appel
à une méthode distante résidant dans une machine serveur ayant
l'adresse IP [Link]. Cette méthode accepte en paramètres
deux entiers et retourne la somme de ces deux entiers. Le serveur
de noms écoute sur le port numéro 10000. L'objet de la méthode
distante sera exposé sous le nom Addition .
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 16
Etape 1
Dénition d'une interface pour l'objet distant
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 17
Etape 2
Imlémentation de cette interface.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 18
Etape 3
Génération des classes stub et skeleton de l'objet distant.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 19
Etape 4
Exposition de l'objet distant dans un serveur d'objets
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 20
Etape 5
Publication de l'existence de cet objet exposé dans un serveur de
noms.
>rmiregistry 10000
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 21
Etape 6
Appel à distance des méthodes de l'objet.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple 22
Remarque
les classes dans chaque site sont
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple avec nouvelles versions de Java 23
Etape 1
Dénition d'une interface pour l'objet distant
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple avec nouvelles versions de Java 24
Etape 2
Imlémentation de cette interface.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple avec nouvelles versions de Java 25
Etape 3
Exposition de l'objet distant dans un serveur d'objets
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation
Introduction Généralités
Dénition de Middleware (rappel). Fonctionnement
RMI : Remote Method Invocation RMI : Exemple
RMI : Exemple avec nouvelles versions de Java
RMI : Exemple avec nouvelles versions de Java 26
Etape 4
Appel à distance des méthodes de l'objet.
Dr. BOULAICHE Mehdi RMI: Remote Method Invocation