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.

