RPC-Protokoll (Remote Procedure Call) in einem verteilten System
Was ist RPC?
Remoteprozeduraufruf (RPC) ist eine Interprozess-Kommunikationstechnik. Die vollstรคndige Form von RPC ist Remote Procedure Call. Es wird fรผr Client-Server-Anwendungen verwendet. RPC-Mechanismen werden verwendet, wenn ein Computerprogramm eine Prozedur oder Subroutine in einem anderen Adressraum ausfรผhren lรคsst, was als normaler Prozeduraufruf codiert ist, ohne dass der Programmierer die Details fรผr die Remote-Interaktion speziell codiert.
Dieser Prozeduraufruf verwaltet auch Low-Level-Transportprotokolle wie das User Datagram Protocol. Transmission Steuerprotokoll/Internetprotokoll usw. Es wird fรผr die รbertragung der Nachrichtendaten zwischen Programmen verwendet.
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 P2P-Paradigma zwischen beteiligten Prozessen. Es hilft einem Prozess, sowohl Client- als auch Serverdienste zu sein.
Funktionen von Callback RPC:
- Probleme mit interaktiven Anwendungen aus der Ferne verarbeitet
- Bietet Server mit Client-Handle
- Rรผckruf lรคsst den Clientprozess warten
- Verwalten von Callback-Deadlocks
- Es erleichtert ein Peer-to-Peer-Paradigma zwischen teilnehmenden Prozessen.
Broadcast-RPC
Broadcast-RPC ist eine Client-Anfrage, die im Netzwerk gesendet und von allen Servern verarbeitet wird, die รผber die Methode zur Verarbeitung dieser Anfrage verfรผgen.
Funktionen von Broadcast RPC:
- Hier kรถnnen Sie angeben, dass die Anforderungsnachricht des Clients 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
RPC im Batch-Modus unterstรผtzt dabei, RPC-Anfragen in einem รbertragungspuffer auf der Clientseite in eine Warteschlange zu stellen, zu trennen und sie dann in einem Batch รผber ein Netzwerk an den Server zu senden.
Funktionen des Batch-Modus-RPC:
- Der mit dem Senden einer Anfrage verbundene Aufwand wird minimiert, da die Anfrage in einem Stapel รผber das Netzwerk an den Server gesendet wird.
- Diese Art von RPC-Protokoll ist nur fรผr Anwendungen effizient, die niedrigere Anrufraten 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

Wie funktioniert RPC?
Wรคhrend des RPC-Prozesses finden folgende Schritte statt:
Schritt 1) Der Client, der Client-Stub und eine Instanz der RPC-Laufzeit werden auf dem Client-Computer ausgefรผhrt.
Schritt 2) Ein Client startet einen Client-Stub-Prozess, indem er auf รผbliche Weise Parameter รผbergibt. Der Client-Stub wird im eigenen Adressraum des Clients gespeichert. Auรerdem wird die lokale RPC-Laufzeit aufgefordert, an den Server-Stub zurรผckzusenden.
Schritt 3) In dieser Phase wird RPC vom Benutzer durch regelmรครige lokale prozedurale Kalibrierung aufgerufen. RPC Runtime verwaltet die Nachrichtenรผbertragung zwischen dem Netzwerk รผber Client und Server. Es fรผhrt auch die Aufgaben der erneuten รbertragung, Bestรคtigung, Weiterleitung und Verschlรผsselung aus.
Schritt 4) Nach Abschluss des Servervorgangs kehrt es zum Server-Stub zurรผck, der die Rรผckgabewerte in eine Nachricht packt (marshallt). Der Server-Stub sendet dann eine Nachricht zurรผck an die Transportschicht.
Schritt 5) In diesem Schritt sendet die Transportschicht die Ergebnisnachricht an die Client-Transportschicht zurรผck, die eine Nachricht an den Client-Stub zurรผcksendet.
Schritt 6) In dieser Phase entmarshallt (entpackt) der Client-Stub die Rรผckgabeparameter im resultierenden Paket und der Ausfรผhrungsprozess kehrt zum Aufrufer zurรผck.
Eigenschaften von RPC
Hier sind die wesentlichen Merkmale von RPC:
- Die aufgerufene Prozedur befindet sich in einem anderen Prozess, der sich wahrscheinlich auf einem anderen Computer 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 der aufrufenden Prozedur.
Funktionen von RPC
Hier sind die wichtigen Funktionen von RPC:
- Einfache Aufrufsyntax
- Bietet bekannte Semantik
- Stellen Sie eine klar definierte Schnittstelle bereit
- Es kann zwischen Prozessen auf derselben oder verschiedenen Maschinen kommunizieren
Vorteile von RPC
Hier sind die Vorteile/Vorteile von RPC:
- Die RPC-Methode hilft Clients bei der Kommunikation mit Servern durch die herkรถmmliche Verwendung von Prozeduraufrufen in Hochsprachen.
- Die RPC-Methode ist dem lokalen Prozeduraufruf nachempfunden, die aufgerufene Prozedur wird jedoch hรถchstwahrscheinlich in einem anderen Prozess und normalerweise auf einem anderen Computer ausgefรผhrt.
- RPC unterstรผtzt prozess- und threadorientierte Modelle.
- RPC macht den internen Nachrichtenรผbermittlungsmechanismus fรผr den Benutzer verborgen.
- Der Aufwand zum Neuschreiben und Neuentwickeln des Codes ist minimal.
- Remote-Prozeduraufrufe kรถnnen fรผr verteilte und lokale Umgebungen verwendet werden.
- Es verpflichtet viele der Protokollschichten, um die Leistung zu verbessern.
- RPC bietet Abstraktion. Beispielsweise bleibt der Nachrichtenรผbermittlungscharakter der Netzwerkkommunikation dem Benutzer verborgen.
- RPC ermรถglicht die Nutzung der Anwendungen in einer verteilten Umgebung, die sich nicht nur in der lokalen Umgebung befindet.
- Mit RPC-Code wird der Aufwand fรผr das Neuschreiben und Neuentwickeln minimiert.
- Unterstรผtzung prozessorientierter und threadorientierter Modelle durch RPC.
Nachteile von RPC
Hier sind die Vor- und Nachteile der Verwendung von RPC:
- Der Remoteprozeduraufruf รผbergibt Parameter nur anhand von Werten und Zeigerwerten, was nicht zulรคssig ist.
- Die Aufruf- (und Rรผckgabe-)Zeit (dh der Overhead) einer Remote-Prozedur kann erheblich geringer sein als die einer lokalen Prozedur.
- Dieser Mechanismus ist sehr anfรคllig fรผr Fehler, da er ein Kommunikationssystem, eine andere Maschine und einen anderen Prozess umfasst.
- Das RPC-Konzept kann auf unterschiedliche Weise implementiert werden, was nicht standardmรครig mรถglich ist.
- Bietet keine Flexibilitรคt im RPC fรผr die Hardwarearchitektur, da es grรถรtenteils auf Interaktion basiert.
- Durch einen Remote-Prozeduraufruf werden die Kosten des Prozesses erhรถht.
Zusammenfassung
- Ein Remoteprozeduraufruf ist ein Interprozesskommunikation Technik.
- Drei Arten von RPC sind 1) Callback-RPC, 2) Broadcast-RPC und 3) Batch-Modus-RPC
- Die RPC-Architektur besteht hauptsรคchlich aus fรผnf Programmkomponenten: 1) Client 2) Client-Stub 3) RPC-Runtime 4) Server-Stub und 5) Server
- Bei der RPC-Methode teilen sich die Prozesse keinen Adressraum
- RPC bietet eine einfache Aufrufsyntax und bekannte Semantik
- Die RPC-Methode hilft Clients bei der Kommunikation mit Servern durch die herkรถmmliche Verwendung von Prozeduraufrufen in Hochsprachen.
- Der grรถรte Nachteil der RPC-Methode besteht darin, dass sie sehr fehleranfรคllig ist, da sie ein Kommunikationssystem, eine andere Maschine und einen anderen Prozess umfasst.
