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:

  1. Kunden
  2. Client-Stub
  3. RPC-Laufzeit
  4. Server-Stub
  5. Server
RPC Architektur
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-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.