Was ist Remote Method Invocation in Java?



In diesem Artikel zu RMI in Java erfahren Sie anhand eines praktischen Beispiels, wie Sie die Schnittstelle zum Aufrufen von Remotemethoden zwischen Client und Server implementieren.

Fernmethodenaufruf ist ein Weg, den ein Programmierer nutzt und seine Entwicklungsumgebung aus der Ferne. Es geht nur darum, wie die Objekte auf verschiedenen Computern interagieren in einem verteilten Netzwerk. In diesem Artikel zum Remote-Methodenaufruf in Java werde ich Ihnen erklären, wie Sie eine RMI-Anwendung für Client und Server erstellen.

Die folgenden Themen werden in diesem Artikel behandelt:





Lass uns anfangen!

Was ist RMI in Java?

Das RMI (Remote Method Invocation) ist eine API, die einen Mechanismus zum Erstellen einer verteilten Anwendung in bereitstellt . Mit dem RMI kann ein Objekt Methoden für ein Objekt aufrufen, das in einem anderen ausgeführt wird . Der Remote Method Invocation ermöglicht die Remotekommunikation zwischen den Anwendungen mithilfe von zwei Objekten Stummel und Skelett .



Stub und Skelett verstehen

Das Stub-Objekt auf dem Client-Computer erstellt einen Informationsblock und sendet diese Informationen an den Server. Der Block besteht aus:

  • Eine Kennung des zu verwendenden Remote-Objekts
  • Methodenname, der aufgerufen werden soll
  • Parameter zur Remote-JVM

Stub and Skeleton - RMI in Java - EdurekaSkelettobjekt

Das Skelettobjekt leitet die Anforderung vom Stub-Objekt an das entfernte Objekt weiter. Es führt die folgenden Aufgaben aus:



  • Es ruft die gewünschte Methode für das auf dem Server vorhandene reale Objekt auf.

  • Es leitet die vom Stub-Objekt empfangenen Parameter an die Methode weiter.

Lassen Sie uns weiter gehen und sehen, wie Sie eine RMI-Anwendung erstellen

Schritte zum Erstellen einer RMI-Anwendung

Die folgenden Schritte helfen Ihnen beim Erstellen einer RMI-Anwendung:

  1. Fernbedienung definieren Schnittstelle
  2. Implementierung der Remote-Schnittstelle
  3. Stub und Skelett erstellen Objekte aus der Implementierungsklasse mit RMIC (RMI-Complier)
  4. Starten Sie die RMI-Registrierung
  5. Erstellen Sie das Serveranwendungsprogramm und führen Sie es aus
  6. Erstellen Sie das Client-Anwendungsprogramm und führen Sie es aus

Kommen wir nun zu den Details dieser Schritte.

Schritt 1: Definieren einer Remote-Schnittstelle

Das erste, was wir tun müssen, ist eine zu erstellen Schnittstelle . Hier finden Sie eine Beschreibung der Methoden, die von Remoteclients aufgerufen werden können. Diese Schnittstelle sollte die Remote-Schnittstelle erweitern und der Methodenprototyp innerhalb der Schnittstelle sollte die RemoteException auslösen.

// Erstellen einer Suchschnittstelle import java.rmi. * Öffentliche Schnittstelle Suche erweitert Remote {// Deklarieren des Methodenprototyps public String Query (String search) löst RemoteException aus}

Schritt 2: Implementierung der Remote-Schnittstelle

Der nächste Schritt ist die Implementierung der Remote-Schnittstelle. Um die Remote-Schnittstelle zu implementieren, sollte sich die Klasse auf die erstrecken UnicastRemoteObject-Klasse des Pakets java.rmi . Auch eine Standardeinstellung Baumeister muss erstellt werden, um die zu werfen java.rmi.RemoteException von seinem übergeordneten Konstruktor.

// Java-Programm zum Implementieren der Suchschnittstelle import java.rmi. * Import java.rmi.server. * Öffentliche Klasse SearchQuery erweitert UnicastRemoteObject implementiert Search {// Standardkonstruktor zum Auslösen von RemoteException von seinem übergeordneten Konstruktor SearchQuery () löst RemoteException {super ( )} // Implementierung der Abfrageoberfläche public String query (String search) löst RemoteException aus {String result if (search.equals ('Reflection in Java')) result = 'true' else result = 'false' return result}}

Schritt 3: Erstellen von Stub- und Skeleton-Objekten aus der Implementierungsklasse mit rmic

Das RMIC-Tool wird verwendet, um den RMI-Compiler aufzurufen, der die Stub- und Skeleton-Objekte erstellt. Sein Prototyp ist der RMIC-Klassenname.

Ansible vs Chef vs Marionette

SCHRITT 4: Starten Sie die RMIregistry
Sie müssen den Registrierungsdienst starten, indem Sie den Befehl an der Eingabeaufforderung RMIregistry starten eingeben

SCHRITT 5: Erstellen Sie das Serveranwendungsprogramm und führen Sie es aus
Der nächste Schritt besteht darin, das Serveranwendungsprogramm zu erstellen und an einer separaten Eingabeaufforderung auszuführen.

  • Das Serverprogramm verwendet die createRegistry Methode der LocateRegistry-Klasse zum Erstellen einer Rmiregistry innerhalb der Server-JVM mit der als Argument übergebenen Portnummer.

  • Die Rebind-Methode der Naming-Klasse wird verwendet, um das Remote-Objekt an den neuen Namen zu binden.

// Programm für Serveranwendung importieren java.rmi. * java.rmi.registry importieren. * öffentliche Klasse SearchServer {public static void main (String args []) {try {// Objekt der Schnittstellenimplementierungsklasse Search obj = erstellen new SearchQuery () // rmiregistry innerhalb der Server-JVM mit // Portnummer 1900 LocateRegistry.createRegistry (1900) & ltp style = 'Textausrichtung: Rechtfertigung' & gt // Bindet das entfernte Objekt unter dem Namen // edureka Naming.rebind ( 'rmi: // localhost: 1900' + '/ edureka', obj)} catch (Ausnahme ae) {System.out.println (ae)}}}

Schritt 6: Erstellen Sie das Client-Anwendungsprogramm und führen Sie es aus
Der letzte Schritt besteht darin, das Clientanwendungsprogramm zu erstellen und an einer separaten Eingabeaufforderung auszuführen. Die Suchmethode der Naming-Klasse wird verwendet, um die Referenz des Stub-Objekts abzurufen

Das oben genannte Client- und Serverprogramm wird auf demselben Computer ausgeführt. Aus diesem Grund wird localhost verwendet. Um von einem anderen Computer aus auf das Remote-Objekt zugreifen zu können, muss localhost durch die IP-Adresse ersetzt werden, unter der sich das Remote-Objekt befindet.

Das bringt uns zum Ende des RMI in Artikel. Ich hoffe, Sie fanden es informativ und haben Ihnen geholfen, die Grundlagen zu verstehen.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen. Neben diesen Fragen zu Java-Interviews haben wir einen Lehrplan entwickelt, der für Studenten und Fachleute gedacht ist, die eine sein möchten Java Entwickler. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Artikels „RMI in Java“ und wir werden uns so schnell wie möglich bei Ihnen melden.