Unterschied zwischen RPC und RMI

Inhaltsverzeichnis:

Unterschied zwischen RPC und RMI
Unterschied zwischen RPC und RMI

Video: Unterschied zwischen RPC und RMI

Video: Unterschied zwischen RPC und RMI
Video: Aktienarten einfach erklärt! (Vorzugsaktie, Stammaktie etc.) | Finanzlexikon 2024, Oktober
Anonim

RPC vs. RMI

Der grundlegende Unterschied zwischen RPC und RMI besteht darin, dass RPC ein Mechanismus ist, der den Aufruf einer Prozedur auf einem entfernten Computer ermöglicht, während RMI die Implementierung von RPC in Java ist. RPC ist sprachneutral, unterstützt jedoch nur die Übergabe primitiver Datentypen. Andererseits ist RMI auf Java beschränkt, erlaubt aber das Übergeben von Objekten. RPC folgt traditionellen prozeduralen Sprachkonstrukten, während RMI objektorientiertes Design unterstützt.

Was ist RPC?

RPC steht für Remote Procedure Call und ist eine Art der Kommunikation zwischen Prozessen. Dies ermöglicht das Aufrufen einer Funktion in einem anderen Prozess, der auf dem lokalen Computer oder einem entfernten Computer ausgeführt wird. Dieses Konzept entstand vor langer Zeit im Jahr 1980, aber die erste berühmte Implementierung wurde in Unix gesehen.

RPC umfasst mehrere Schritte. Der Client führt wie gewohnt einen Prozeduraufruf auf dem lokalen Computer durch. Das Modul namens Client Stub sammelt die Argumente und erstellt eine Nachricht und leitet sie an das Betriebssystem weiter. Das Betriebssystem führt einen Systemaufruf durch und sendet diese Nachricht an den Remote-Computer. Das Betriebssystem im Server sammelt die Nachricht und leitet sie an das Modul auf dem Server weiter, das als Server-Stub bezeichnet wird. Dann ruft server stub die Prozedur auf dem Server auf. Abschließend werden die Ergebnisse an den Client zurückgesendet.

Der Vorteil der Verwendung von RPC ist, dass es unabhängig von den Netzwerkdetails ist. Der Programmierer muss nur abstrakt spezifizieren, während das Betriebssystem sich um die internen Netzwerkdetails kümmert. Dies erleichtert also die Programmierung und lässt RPC trotz der physikalischen und Protokollunterschiede in jedem Netzwerk funktionieren. RPC-Implementierungen sind in allen gängigen Betriebssystemen wie Unix, Linux, Windows und OS X vorhanden. RPC ist im Allgemeinen sprachneutral, daher beschränkt es die Datentypen auf die primitivsten, da sie allen Sprachen gemeinsam sein müssen. Der Ansatz in RPC ist nicht objektorientiert, sondern ein traditioneller prozeduraler Mechanismus wie in C.

Unterschied zwischen RPC und RMI
Unterschied zwischen RPC und RMI
Unterschied zwischen RPC und RMI
Unterschied zwischen RPC und RMI

Was ist RMI?

RMI, was für Remote Method Invocation steht, ist eine API (Application Programming Interface), die RPC in Java implementiert, um die objektorientierte Natur zu unterstützen. Dies ermöglicht das Aufrufen von Java-Methoden auf einer anderen Java Virtual Machine, die sich auf demselben oder einem entfernten Computer befindet. Die Einschränkung von RMI besteht darin, dass nur Java-Methoden aufgerufen werden können, dies hat jedoch den Vorteil, dass Objekte als Argumente und Rückgabewerte übergeben werden können. Wenn man die Leistung betrachtet, ist RMI aufgrund der Einbeziehung von Bytecode auf der Java Virtual Machine langsamer als RPC, aber RMI ist sehr programmierfreundlich und sehr einfach zu verwenden.

RMI verwendet eingebaute Sicherheitsmechanismen in Java und bietet auch eine Socket-Factory, die die Verwendung von benutzerdefinierten Nicht-TCP-Transportschichtprotokollen ermöglicht. Darüber hinaus bietet RMI Methoden zum Umgehen von Firewalls. Die Schritte, die in RMI auftreten, ähneln denen von RPC. Die Implementierung von RMI kümmert sich um die internen Netzwerkdetails, wo sich der Programmierer nicht darum kümmern muss.

Was ist der Unterschied zwischen RPC und RMI?

• RPC ist sprachneutral, während RMI auf Java beschränkt ist.

• RPC ist wie in C prozedural, aber RMI ist objektorientiert.

• RPC unterstützt nur primitive Datentypen, während RMI die Übergabe von Objekten als Argumente und Rückgabewerte erlaubt. Bei der Verwendung von RPC muss der Programmierer alle zusammengesetzten Objekte in primitive Datentypen aufteilen.

• RMI ist einfach, diesen RPC zu programmieren.

• RMI ist langsamer als RPC, da RMI die Ausführung von Java-Bytecode beinh altet.

• RMI ermöglicht die Verwendung von Entwurfsmustern aufgrund der objektorientierten Natur, während RPC diese Fähigkeit nicht hat.

Zusammenfassung:

RPC vs. RMI

RPC ist ein sprachneutraler Mechanismus, der den Aufruf einer Prozedur auf einem entfernten Computer ermöglicht. Die sprachneutrale Funktion beschränkt jedoch die Datentypen, die als Argumente und Rückgabewerte übergeben werden, auf primitive Typen. RMI ist die Implementierung von RPC in Java und unterstützt auch die Objektübergabe, was das Leben des Programmierers erleichtert. Der Vorteil von RMI ist die objektorientierte Designunterstützung, aber die Beschränkung auf Java ist ein Nachteil.

Empfohlen: