Les RMI («Remote Method invocation») de Java

Références

On pourra consulter au préalable les rappels sur al création des threads en Java.

Livre

Java et Internet : concepts et programmation
N. Bedon, E. Duris, R. Forax et G. Roussel
Vuibert Informatique

«Tutorial» en ligne


Consultation du tutoriel «RMI» de A. Wollrath et J. Waldo.


Objectif et principes généraux

Objectif

Il s'agit de permettre à des applications clientes (s'exécutant localement) d'invoquer des méthodes sur des objets distants, c'est-à-dire localisés dans une autre application (dans une autre JVM de la même machine physique ou sur une autre machine accessible via Internet) communément appelée serveur.

Principes généraux

Le «package» java.rmi et ses sous-packages (java.rmi.server, et java.rmi.dgc) contiennent la définition de classes et d'outils permettant l'implantation et l'utilisation d'objets distants.
Le mécanisme proposé permet à une application s'exécutant sur une machine M1 de créer un objet et de le rendre accessible à d'autres applications: cette application (et la machine M1) joue donc le rôle de serveur.
Les autres applications manipulant un tel objet sont des clients. Pour manipuler un objet distant, un client récupère sur sa machine une représentation de l'objet appelé talon/souche (stub): ce talon implante l'interface de l'objet distant et c'est via ce talon que le client pourra invoquer des méthodes sur l'objet distant. Une telle invocation sera tranmise au serveur (le protocole TCP est utilisé) afin d'en réaliser l'exécution.
Du côté du serveur un skeleton/squelette a en charge la réception des invocations distantes, de leur réalisation et de l'envoi des résultats.



Les différentes étapes à suivre

Spécifier l'interface de l'objet

Il s'agit donc de spécifier sous la forme d'une interface java l'ensemble des méthodes qui pourront être invoquées sur l'objet.
Cette interface sera connue à la fois du côté du client et du côté du serveur.
Détails

Implanter l'interface du côté serveur

Cette implantation, sous forme d'une classe, permettra l'instanciation d'objets sur lesquelles des méthodes seront invocables à distance par des clients.
Détails

Générer le talon et le squelette de l'objet distant

Détails

Définir l'objet (l'exposer) afin de le rendre visible aux clients

C'est le premier rôle de l'application serveur. Un second est de faire connaitre l'existence de l'objet par l'intermédiaire d'un service de nommage.
Détails

Réaliser les appels distants au travers d'applications clientes

Détails



Dernière mise à jour : 7 juin 2005

Valid XHTML 1.0! Valid CSS!