RPC-Protokoll (Remote Procedure Call) in einem verteilten System
⚡ Intelligente Zusammenfassung
Remote Procedure Call (RPC) ist ein Interprozesskommunikationsprotokoll, das es einem Programm ermöglicht, eine Prozedur in einem anderen Adressraum oder auf einer anderen Maschine auszuführen und dabei Netzwerkdetails hinter einem gewöhnlichen lokalen Funktionsaufruf in verteilten Client-Server-Systemen zu verbergen.
Was ist RPC?
Remoteprozeduraufruf (RPC) ist ein Interprozesskommunikation Eine Technik, die in Client-Server-Anwendungen verwendet wird. RPC steht für Remote Procedure Call (Fernaufruf einer Prozedur). RPC-Mechanismen kommen zum Einsatz, wenn ein Computerprogramm eine Prozedur oder Subroutine in einem anderen Adressraum ausführt. Dies geschieht durch einen normalen Prozeduraufruf, ohne dass der Programmierer die Details der Ferninteraktion explizit codieren muss.
Dieser Prozeduraufruf verwaltet auch die Transportprotokolle auf niedriger Ebene, wie UDP und TCP/IP, um die Nachrichtendaten zwischen den Programmen zu übertragen.
Arten von RPC
Drei Arten von RPC sind:
- Rückruf-RPC
- Broadcast-RPC
- RPC im Batch-Modus
Rückruf-RPC
Diese Art von RPC ermöglicht ein Peer-to-Peer-Paradigma (P2P) zwischen den beteiligten Prozessen. Sie hilft einem Prozess, sowohl als Client als auch als Server zu fungieren.
Funktionen von Callback RPC:
- Behebt Probleme, die von der Ferne verarbeitet werden und bei denen es sich um interaktive Anwendungen handelt.
- Übermittelt dem Server das Client-Handle.
- Der Callback führt zu einer Wartezeit für den Clientprozess.
- Verwaltet Callback-Deadlocks.
- Es ermöglicht ein Peer-to-Peer-Paradigma zwischen den beteiligten Prozessen.
Broadcast-RPC
Broadcast-RPC ist eine Client-Anfrage, die im Netzwerk verbreitet und von allen Servern verarbeitet wird, die über die entsprechende Methode zur Verarbeitung dieser Anfrage verfügen.
Funktionen von Broadcast RPC:
- Ermöglicht es Ihnen festzulegen, dass die Anforderungsnachricht des Clients per Broadcast gesendet werden muss.
- Sie können Broadcast-Ports deklarieren.
- Es trägt dazu bei, die Belastung des physischen Netzwerks zu reduzieren.
RPC im Batch-Modus
Der Batch-Modus von RPC hilft dabei, einzelne RPC-Anfragen in einem Übertragungspuffer auf Clientseite zu speichern und sie dann als einen Batch über das Netzwerk an den Server zu senden.
Funktionen des Batch-Modus-RPC:
- Dadurch wird der Aufwand für das Senden einer Anfrage minimiert, da die Anfragen in einem Batch über das Netzwerk an den Server gesendet werden.
- Diese Art von RPC-Protokoll ist nur für Anwendungen effizient, die eine geringere Aufrufrate benötigen.
- Es benötigt ein zuverlässiges Übertragungsprotokoll.
RPC Architektur
Die RPC-Architektur besteht hauptsächlich aus fünf Programmkomponenten:
- Kunden
- Client-Stub
- RPC-Laufzeit
- Server-Stub
- Server
RPC Architektur
Wie funktioniert RPC?
Während des RPC-Prozesses finden folgende Schritte statt:
Schritt 1) Der Client, der Client-Stub und eine Instanz der RPC-Laufzeitumgebung werden auf dem Client-Rechner ausgeführt.
Schritt 2) Der Client startet einen Client-Stub-Prozess, indem er Parameter auf übliche Weise übergibt. Der Client-Stub wird im eigenen Adressraum des Clients gespeichert. Er fordert außerdem die lokale RPC-Laufzeitumgebung auf, die Anfrage an den Server-Stub zu senden.
Schritt 3) In dieser Phase greift der Benutzer über einen regulären lokalen Prozeduraufruf auf RPC zu. Die RPC-Laufzeitumgebung verwaltet die Übertragung von Nachrichten zwischen Client und Server über das Netzwerk. Sie übernimmt außerdem die Weiterleitung, Bestätigung, das Routing und die Verschlüsselung.
Schritt 4) Nach Abschluss der Serverprozedur kehrt die Ausführung zum Server-Stub zurück, der die Rückgabewerte in eine Nachricht verpackt (marshalisiert). Der Server-Stub sendet die Nachricht dann an die Transportschicht zurück.
Schritt 5) In diesem Schritt sendet die Transportschicht die Ergebnisnachricht zurück an die Client-Transportschicht, die die Nachricht an den Client-Stub zurückgibt.
Schritt 6) In dieser Phase demarshalt (entpackt) der Client-Stub die Rückgabeparameter im resultierenden Paket, und die Ausführung kehrt zum Aufrufer zurück.
Eigenschaften von RPC
Hier sind die wesentlichen Merkmale von RPC:
- Die aufgerufene Prozedur ist Teil eines anderen Prozesses, der sich wahrscheinlich auf einem anderen Rechner befindet.
- Die Prozesse teilen sich keinen Adressraum.
- Parameter werden nur von Werten übergeben.
- RPC wird in der Umgebung des Serverprozesses ausgeführt.
- Es bietet keinen Zugriff auf die Umgebung des aufrufenden Vorgangs.
Funktionen von RPC
Hier sind die wichtigen Funktionen von RPC:
- Einfache Aufrufsyntax.
- Bietet bekannte Semantik.
- Bietet eine klar definierte Schnittstelle.
- Es kann zwischen Prozessen auf derselben oder auf verschiedenen Maschinen kommunizieren.
Vorteile von RPC
Hier sind die Vorteile von RPC:
- RPC ermöglicht Clients die Kommunikation mit Servern durch die herkömmliche Verwendung von Prozeduraufrufen in höheren Programmiersprachen.
- RPC ist dem lokalen Prozeduraufruf nachempfunden, die aufgerufene Prozedur wird jedoch höchstwahrscheinlich in einem anderen Prozess und in der Regel auf einem anderen Computer ausgeführt.
- RPC unterstützt prozessorientierte und threadorientierte Modelle.
- RPC verbirgt den internen Nachrichtenübermittlungsmechanismus vor dem Benutzer.
- Es verpflichtet viele der Protokollschichten, um die Leistung zu verbessern.
- RPC bietet absolutetraction; zum Beispiel bleibt der Nachrichtenaustauschcharakter der Netzwerkkommunikation für den Benutzer verborgen.
- RPC kann sowohl in verteilten als auch in lokalen Umgebungen eingesetzt werden.
- Der Aufwand, den Code neu zu schreiben und weiterzuentwickeln, ist minimal.
Nachteile von RPC
Hier sind die Vor- und Nachteile der Verwendung von RPC:
- Remote Procedure Calls (RPC) übergeben Parameter ausschließlich als Werte; Zeigerwerte (Referenzwerte) sind nicht zulässig.
- Die Zeit für einen Remote Procedure Call (und die Rückkehr) – der damit verbundene Aufwand – ist deutlich höher als bei einer lokalen Prozedur.
- Dieser Mechanismus ist sehr anfällig für Ausfälle, da er ein Kommunikationssystem, eine weitere Maschine und einen weiteren Prozess umfasst.
- Das RPC-Konzept kann auf verschiedene Weisen implementiert werden, daher gibt es keinen einheitlichen Standard.
- Es bietet keine Flexibilität hinsichtlich der Hardwarearchitektur, da es hauptsächlich auf Interaktion basiert.
- Die Kosten des Prozesses erhöhen sich aufgrund des Remote Procedure Calls.


