Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

RMI - Introduction

RMI - Remote method invocation RMI - Introduction Encyclopédie


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 transparente pour l'utilisateur, c'est-à-dire de la même façon que si l'objet était sur la machine virtuelle (JVM) de la machine locale.

Ainsi un serveur permet à un client d'invoquer des méthodes à distance sur un objet qu'il instancie. Deux machines virtuelles sont donc nécessaires (une sur le serveur et une sur le client) et l'ensemble des communications se fait en Java.

On dit généralement que RMI est une solution "tout Java", contrairement à la norme Corba de l'OMG (Object Management Group) permettant de manipuler des objets à distance avec n'importe quel langage. Corba est toutefois beaucoup plus compliqué à mettre en oeuvre, c'est la raison pour laquelle de nombreux développeurs se tournent généralement vers RMI.

Structure des couches RMI

Les connexions et les transferts de données dans RMI sont effectués par Java sur TCP/IP grâce à un protocole propriétaire (JRMP, Java Remote Method Protocol) sur le port 1099.
A partir de Java 2 version 1.3, les communications entre client et serveur s'effectuent grâce au protocole RMI-IIOP (Internet Inter-Orb Protocol), un protocole normalisé par l'OMG (Object Management Group) et utilisé dans l'architecture CORBA.

La transmission de données se fait à travers un système de couches, basées sur le modèle OSI afin de garantir une interopérabilité entre les programmes et les versions de Java.

structure des couches RMI

  • Le stub (traduisez souche) et le skeleton (traduisez squelette), respectivement sur le client et le serveur, assurent la conversion des communications avec l'objet distant.
  • La couche de référence (RRL, remote Reference Layer) est chargé du système de localisation afin de fournir un moyen aux objets d'obtenir une référence à l'objet distant. Elle est assurée par le package java.rmi.Naming. On l'appelle généralement registre RMI car elle référence les objets.
  • La couche de transport permet d'écouter les appels entrants ainsi que d'établir les connexions et le transport des données sur le réseau par l'intermédiaire du protocole TCP. Les packages java.net.Socket et java.net.SocketServer assurent implicitement cette fonction.

Ainsi, une application client-serveur basé sur RMI met ainsi en oeuvre trois composantes :

  • une application cliente implémentant le stub
  • une application serveur implémentant le skeleton (squelette)
  • une application médiatrice (le registre RMI) servie par un processus tiers (rmiregistry)

Discussions pertinentes trouvées dans le forum

03/05 15h34 rmi java problème RMI en java Développement 12/01 15h19->kij_823
28/05 11h12 java rmi parametrage rmi [Java][RMI] Problème parametrage RMI Développement 04/08 20h11->jeanmyrio7
04/03 17h54 securite java rmi corba firewalls La securite en Java/RMI, CORBA, firewalls Windows 08/03 11h29->Samir4
21/03 10h22 rmi multi clients RMI multi-clients ? Développement 21/03 11h00->choubaka4
04/10 17h23 j2me rmi optional package rmi op J2ME RMI Optional package (RMI OP) Développement 14/02 18h37->Diawari4
14/03 14h50 différences rmi corba Différences entre RMI et Corba ? Développement 14/03 15h24->Radia2
29/06 22h44 rmi java RMI et Java Développement 30/06 04h51->Fred2
02/01 17h24 mise place service rmi pb mise en place service RMI Développement 03/01 16h49->Peguinette1
15/04 22h12 rmi frozen RMI FROZEN Développement 15/04 22h48->Rémy1
19/04 20h49 ava rmi stubs J ava RMI et stubs ... Développement 19/04 21h25->zagor51
Discussion fermée Problème résolu rmi Plus de discussions sur « rmi »

Ce document intitulé « RMI - Introduction » issu de l'encyclopédie informatique 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.
 
RMI - Introduction