Introduction

Architecture de RMI (Remote Method Invocation)

 

Architecture de RMI

L'architecture de RMI est schématisée ci-dessous :

Architecture RMI

Lorsqu'un objet instancié sur une machine cliente désire accèder à des méthodes d'un objet distant, il effectue les opérations suivantes :

  1. il localise l'objet distant grâce à un service de désignation : le registre RMI
  2. il obtient dynamiquement une image virtuelle de l'objet distant (appelée stub ou souche en français). Le stub possède exactement la même interface que l'objet distant.
  3. Le stub transforme l'appel de la méthode distante en une suite d'octets, c'est ce que l'on appelle la sérialisation, puis les transmet au serveur instanciant l'objet sous forme de flot de données. On dit que le stub "marshalise" les arguments de la méthode distante.
  4. Le squelette instancié sur le serveur "désérialise" les données envoyées par le stub (on dit qu'il les "démarshalise"), puis appelle la méthode en local
  5. Le squelette récupère les données renvoyées par la méthode (type de base, objet ou exception) puis les marshalise
  6. le stub démarshalise les données provenant du squelette et les transmet à l'objet faisant l'appel de méthode à distance

Mise en oeuvre de RMI

Pour créer une application avec RMI il suffit de procéder comme suit :

  1. définir la classe distante. Celle-ci doit dériver de java.rmi.server.UnicastRemoteObject (utilisant elle-même les classes Socket et SocketServer, permettant la communication par protocole TCP)
  2. définir l'interface pour la classe distante. Celle-ci doit implémenter l'interface java.rmi.Remote et déclarer les méthodes publiques globales de l'objet, c'est-à-dire les méthodes partageables. De plus ces méthodes doivent pouvoir lancer une exception de type java.rmi.RemoteException.
  3. créer les classes pour le stub et le squelette grâce à la commande rmic
  4. Lancer le registre RMI et lancer l'application serveur, c'est-à-dire instancier l'objet distant. Celui-ci lors de l'instanciation créera un lien avec le registre
  5. Créer un programme client capable d'accèder aux méthodes d'un objet sur le serveur grâce à la méthode Naming.lookup()
  6. Compiler l'application cliente
  7. Instancier le client


Dernière modification le mardi 14 octobre 2008 à 17:40:30.Ce document intitulé « Architecture de RMI (Remote Method Invocation) » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Meilleures réponses pour « Architecture de RMI (Remote Method Invocation) » dans :
Introduction à RMI (Remote Method Invocation) Voir Introduction à RMI RMI (Remote Method Invocation) est une API Java permettant de manipuler des objets distants (c'est-à-dire un objet instancié sur une autre machine virtuelle, éventuellement sur une autre machine du réseau) de manière...
Qu'est ce que l'architecture réseau ? VoirQu'est ce que l'architecture réseau ? Définition Si l'on s'appuie sur une définition concrète, c'est un édifice fonctionnel composé d'équipements de transmission, de logiciels et protocoles de communication et d'une d'infrastructure filaire ou...
Télécharger Microsoft UAA (Universal Audio Architecture) Bus driver VoirLa nouvelle architecture audio UAA est une architecture de pilote de classe conçue pour les solutions audio d'ordinateur personnel prises en charge par les systèmes d'exploitation Microsoft Windows. Un périphérique audio conforme à UAA est en...
Architecture des dispositifs de courants porteurs en ligne (CPL) VoirArchitecture en intérieur (Indoor) Les solutions CPL commercialisées à ce jour, de type Homeplug pour l'indoor, sont des solutions parfaites pour étendre le réseau local et partager l'accès Internet haut débit existant, notamment à la maison ou...
Réseaux - Architecture client/serveur à 3 niveaux VoirPrésentation de l'architecture à 2 niveaux L'architecture à deux niveaux (aussi appelée architecture 2-tier, tier signifiant rangée en anglais) caractérise les systèmes clients/serveurs pour lesquels le client demande une ressource et le serveur la...
Architecte de systèmes d'information VoirArchitecte de systèmes d'information L'architecte de systèmes d'information conçoit l'architecture du système d'information, c'est-à-dire qu'il conçoit les différentes briques du système d'information (SI) et leur imbrication et est chargé de leur...