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

RMI - Architecture

RMI - Architecture Encyclopédie


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

Discussions pertinentes trouvées dans le forum

08/08 11h42 architecture systéme information architecture de systéme d'information Windows 08/08 21h17->sebsauvage13
25/11 22h02 logiciel dessiner architecture réseau Logiciel pr dessiner une architecture réseau Réseaux 26/11 03h22->indigene5
21/02 09h11 architecture 3 tier Architecture 3-tier Développement 21/02 13h30->blux5
08/08 22h06 quelle architecture materielle choisir QUELLE ARCHITECTURE MATERIELLE CHOISIR Linux/Unix 09/08 14h26->francis5
12/02 14h47 architecture mémoire dual channel Architecture mémoire Dual Channel Matériel (hardware) 13/02 21h37->Steeeve2
19/11 15h27 installation soft architecture 3d Help pour installation Soft architecture 3D Windows 19/11 15h42->avuitton2
04/12 14h32 architecture 64 bits linux Architecture 64 bits et Linux ? Linux/Unix 04/12 16h40->denligne1
23/05 15h37 architecture pki Architecture PKI Windows 15/01 19h18->Regis5915
10/01 12h56 architecture client serveur Architecture client/serveur Réseaux 19/03 09h43->hdl11
29/01 19h18 architecture pentium ii iii Architecture pentium II ou III Matériel (hardware) 31/01 10h22->mr_poussy9
Discussion fermée Problème résolu architecture rmi Plus de discussions sur « architecture rmi »

Ce document intitulé « RMI - Architecture » 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.