Remote-Methodenaufruf (rmi)

Definition - Was bedeutet Remote Method Invocation (RMI)?

Remote Method Invocation (RMI) ist eine verteilte Objekttechnologie, die von Sun für die Programmiersprache Java entwickelt wurde. Es ist als Teil der zentralen Java Application Programming Interface (API) verfügbar, in der die Objektschnittstellen als Java-Schnittstellen definiert sind und die Objektserialisierung verwenden.

Mit RMI können Java-Methoden auf ein entferntes Objekt verweisen und Methoden des entfernten Objekts aufrufen. Das Remote-Objekt befindet sich möglicherweise auf einer anderen virtuellen Java-Maschine, demselben Host oder auf völlig anderen Hosts im Netzwerk. RMI marshals und unmarshals Methodenargumente durch Objektserialisierung und unterstützt das dynamische Herunterladen von Klassendateien über Netzwerke hinweg.

Technische.me erklärt Remote Method Invocation (RMI)

Der Remote-Methodenaufruf wurde erstmals in Java Development Kit (JDK) 1.1 eingeführt und wird häufig im verteilten Objekt-Computing verwendet. Es führt die objektorientierte Äquivalenz von Remoteprozeduraufrufen durch. RMI-Funktionen sind in einem java.rmi-Paket enthalten und bieten eine Funktion für verteilte Objekte für Java-basierte Anwendungen.

Die RMI-Architektur erweitert die Robustheit und Sicherheit der Java-Architektur auf die verteilte Computerwelt. Mit RMI kann der Code, der das Verhalten definiert und implementiert, auf verschiedenen virtuellen Java-Maschinen verbleiben. Remote-Dienste in RMI werden über eine Java-Schnittstelle codiert, wobei die Implementierung in einer Klasse codiert wird. In der ersten Klasse wird die Implementierung des Verhaltens auf dem Server ausgeführt. Die zweite Klasse wird auf dem Client ausgeführt und fungiert als Proxy für den Remotedienst.

Die RMI-Implementierung besteht aus drei abstrakten Schichten - der Stub- und Skeleton-Schicht, der Remote-Referenzschicht und der Transportschicht. Die Stummel- und Skelettschicht befindet sich direkt unter der Ansicht des Entwicklers. Stub- und Skeleton-Objekte werden verwendet, um eine Verbindung zwischen dem Client und dem Remote-Objekt herzustellen. Ein Stub leitet Methodenaufrufe vom Client an den Server weiter und weiß, wie über die Verbindung mit dem Stub kommuniziert wird. Daher fungiert es als Proxy, in dem sich die Remote-Objektimplementierung befindet. Die Referenz eines Clients auf das entfernte Objekt ist buchstäblich eine Referenz auf den lokalen Stub. Der Client enthält eine lokale Kopie des Stub-Objekts. Skelette enthalten Methoden, die Aufrufe an die Remote-Objektimplementierung senden.

Die Schritte zum Entwerfen einer RMI-Anwendung sind:

  1. Definieren Sie Remote-Schnittstellen und implementieren Sie Client- und Remote-Objekte.
  2. Kompilieren Sie die Quelle und generieren Sie Stubs und Skelette.
  3. Machen Sie die erforderlichen Klassennetzwerke zugänglich.
  4. Führen Sie die Anwendung.