Java LanguageInvocation de méthode distante (RMI)


Remarques

RMI nécessite 3 composants: client, serveur et une interface distante partagée. L'interface distante partagée définit le contrat client-serveur en spécifiant les méthodes qu'un serveur doit implémenter. L'interface doit être visible pour le serveur afin qu'il puisse implémenter les méthodes; l'interface doit être visible pour le client afin qu'il connaisse les méthodes ("services") fournies par le serveur.
Tout objet implémentant une interface distante est destiné à jouer le rôle de serveur. En tant que telle, une relation client-serveur dans laquelle le serveur peut également invoquer des méthodes dans le client est en fait une relation serveur-serveur. Ceci est appelé callback puisque le serveur peut rappeler le "client". Dans cette optique, il est acceptable d'utiliser la désignation client pour les serveurs qui fonctionnent comme tels.

L'interface distante partagée est toute interface d'extension Remote . Un objet qui fonctionne comme un serveur subit ce qui suit:

  1. Implémente l'interface distante partagée, explicitement ou implicitement, en étendant UnicastRemoteObject qui implémente Remote .
  2. Exporté, soit implicitement s'il étend UnicastRemoteObject , soit explicitement en étant transmis à UnicastRemoteObject#exportObject .
  3. Lié à un registre, soit directement par le biais du Registry soit indirectement via Naming . Cela n'est nécessaire que pour établir la communication initiale, car d'autres tronçons peuvent être transmis directement via RMI.

Dans la configuration du projet, les projets client et serveur sont totalement indépendants, mais chacun spécifie un projet partagé dans son chemin de génération. Le projet partagé contient les interfaces distantes.

Invocation de méthode distante (RMI) Exemples Liés