Qu'est-ce que l'invocation de méthode à distance en Java?



Cet article sur RMI en Java vous expliquera comment implémenter une interface d'appel de méthode à distance sur Client et Serveur avec un exemple pratique.

Invocation de méthode à distance est une façon dont un programmeur utilise et son environnement de développement à distance. Tout dépend de la façon dont le objets sur différents ordinateurs interagissent dans un réseau distribué. Dans cet article sur l'invocation de méthode à distance en Java, je vais vous expliquer comment créer une application RMI entre client et serveur.

Les sujets ci-dessous sont traités dans cet article:





Commençons!

Qu'est-ce que RMI en Java?

La RMI (Remote Method Invocation) est une API qui fournit un mécanisme pour créer une application distribuée dans . La RMI permet à un objet d'appeler des méthodes sur un objet s'exécutant dans un autre . L'appel de méthode à distance fournit une communication à distance entre les applications à l'aide de deux objets bout et squelette .



Comprendre le stub et le squelette

L'objet stub sur la machine cliente crée un bloc d'informations et envoie ces informations au serveur. Le bloc se compose de:

  • Un identifiant de l'objet distant à utiliser
  • Nom de la méthode à invoquer
  • Paramètres de la JVM distante

Stub and Skeleton - RMI en Java - EdurekaObjet squelette

L'objet squelette transmet la demande de l'objet stub à l'objet distant. Il effectue les tâches suivantes:



  • Il appelle la méthode souhaitée sur l'objet réel présent sur le serveur.

  • Il transmet les paramètres reçus de l'objet stub à la méthode.

Avec cela, allons plus loin et voyez comment créer une application RMI

Étapes pour créer une application RMI

Les étapes ci-dessous vous aident à créer une application RMI:

  1. Définition d'une télécommande interface
  2. Implémentation de l'interface distante
  3. Création d'un stub et d'un squelette objets à partir de la classe d'implémentation utilisant RMIC (RMI complier)
  4. Démarrez le registre RMI
  5. Créer et exécuter le programme d'application serveur
  6. Créer et exécuter le programme d'application client

Passons maintenant aux détails de ces étapes.

Étape 1: Définition d'une interface distante

La première chose que nous devons faire est de créer un interface . Cela fournira une description des méthodes qui peuvent être appelées par les clients distants. Cette interface doit étendre l'interface Remote et le prototype de méthode au sein de l'interface doit lancer RemoteException.

// Création d'une interface de recherche import java.rmi. * Interface publique La recherche étend Remote {// La déclaration du prototype de méthode public String Query (String search) lève RemoteException}

Étape 2: Implémentation de l'interface à distance

L'étape suivante consiste à implémenter l'interface distante. Afin d'implémenter l'interface distante, la classe doit s'étendre au UnicastRemoteObject, classe du package java.rmi . Aussi, une valeur par défaut constructeur doit être créé pour lancer le java.rmi.RemoteException à partir de son constructeur parent.

algorithmes et structures de données en java
// Programme Java pour implémenter l'interface de recherche import java.rmi. * Import java.rmi.server. * Classe publique SearchQuery étend UnicastRemoteObject implémente Search {// Le constructeur par défaut pour lancer RemoteException depuis son constructeur parent SearchQuery () lance RemoteException {super ( )} // Implémentation de l'interface de requête public String query (String search) jette RemoteException {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Étape 3: Création d'objets Stub et Skeleton à partir de la classe d'implémentation à l'aide de rmic

L'outil RMIC est utilisé pour appeler le compilateur RMI qui crée les objets Stub et Skeleton. Son prototype est le nom de classe RMIC.

ÉTAPE 4: Démarrez le RMIregistry
Vous devez démarrer le service de registre en exécutant la commande à l'invite de commande start RMIregistry

ÉTAPE 5: créer et exécuter le programme d'application serveur
L'étape suivante consiste à créer le programme d'application serveur et à l'exécuter sur une invite de commande distincte.

  • Le programme serveur utilise le createRegistry méthode de la classe LocateRegistry pour créer rmiregistry dans la JVM du serveur avec le numéro de port passé en argument.

  • La méthode rebind de la classe Naming est utilisée pour lier l'objet distant au nouveau nom.

// programme pour l'application serveur import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// Crée un objet de la classe d'implémentation d'interface Search obj = new SearchQuery () // rmiregistry dans la JVM serveur avec // numéro de port 1900 LocateRegistry.createRegistry (1900) & ltp style = 'text-align: justify' & gt // Lie l'objet distant par le nom // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Exception ae) {System.out.println (ae)}}}

Étape 6: créer et exécuter le programme d'application client
La dernière étape consiste à créer le programme d'application client et à l'exécuter sur une invite de commande distincte. La méthode de recherche de la classe Naming est utilisée pour obtenir la référence de l'objet Stub

Le programme client et serveur ci-dessus est exécuté sur la même machine et c'est pourquoi localhost est utilisé. Afin d'accéder à l'objet distant depuis une autre machine, localhost doit être remplacé par l'adresse IP où l'objet distant est présent.

Cela nous amène donc à la fin du RMI en article. J'espère que vous l'avez trouvé informatif et vous avez aidé à comprendre les principes fondamentaux.

Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Nous sommes là pour vous aider à chaque étape de votre voyage, pour devenir une autre question d'entrevue java, nous proposons un programme conçu pour les étudiants et les professionnels qui souhaitent devenir un Java Développeur. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate & Spring.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de cet article «RMI en Java» et nous vous répondrons dans les plus brefs délais.