Remote Procedure Call (RPC)-protocol in gedistribueerd systeem

Wat is RPC?

Remote Procedure Call (RPC) is een interprocescommunicatietechniek. De volledige vorm van RPC is Remote Procedure Call. Het wordt gebruikt voor client-servertoepassingen. RPC-mechanismen worden gebruikt wanneer een computerprogramma een procedure of subroutine laat uitvoeren in een andere adresruimte, die wordt gecodeerd als een normale procedure call zonder dat de programmeur specifiek de details voor de externe interactie codeert.

Deze procedureaanroep beheert ook transportprotocollen op laag niveau, zoals User Datagram Protocol, Transmission Control Protocol/Internet Protocol enz. Het wordt gebruikt voor het overbrengen van berichtgegevens tussen programma's.

Soorten RPC

Drie soorten RPC zijn:

  • Terugbel-RPC
  • RPC uitzenden
  • RPC in batchmodus

Terugbel-RPC

Dit type RPC maakt een P2P-paradigma tussen deelnemende processen mogelijk. Het helpt een proces om zowel client- als serverdiensten te zijn.

Functies van terugbel-RPC:

  • Op afstand verwerkte interactieve applicatieproblemen
  • Biedt een server met clienthandle
  • Terugbellen zorgt ervoor dat het clientproces wacht
  • Beheer callback-deadlocks
  • Het faciliteert een peer-to-peer-paradigma tussen deelnemende processen.

RPC uitzenden

Broadcast-RPC is een verzoek van een client, dat wordt uitgezonden op het netwerk, en wordt verwerkt door alle servers die over de methode beschikken om dat verzoek te verwerken.

Functies van Broadcast RPC:

  • Hiermee kunt u opgeven dat het verzoekbericht van de client moet worden uitgezonden.
  • U kunt uitzendpoorten declareren.
  • Het helpt de belasting van het fysieke netwerk te verminderen

RPC in batchmodus

Met batch-RPC kunt u RPC-verzoeken in een wachtrij plaatsen, scheiden in een transmissiebuffer aan de clientzijde en ze vervolgens in één batch via een netwerk naar de server versturen.

Functies van RPC in batchmodus:

  • Het minimaliseert de overhead die gepaard gaat met het verzenden van een verzoek, omdat het deze in één batch via het netwerk naar de server verzendt.
  • Dit type RPC-protocol is alleen efficiënt voor de toepassing die lagere beltarieven nodig heeft.
  • Er is een betrouwbaar transmissieprotocol nodig.

RPC Architectuur

RPC-architectuur bestaat hoofdzakelijk uit vijf programmacomponenten:

  1. Bedrijf
  2. Klant stomp
  3. RPC-runtime
  4. Serverstub
  5. Server
RPC Architectuur
RPC Architectuur

Hoe werkt RPC?

Tijdens het RPC-proces vinden de volgende stappen plaats:

Stap 1) De client, de client-stub en één exemplaar van RPC-runtime worden uitgevoerd op de clientcomputer.

Stap 2) Een client start een client-stubproces door op de gebruikelijke manier parameters door te geven. De klantenstub wordt opgeslagen in de eigen adresruimte van de klant. Het vraagt ​​ook de lokale RPC Runtime om terug te sturen naar de server-stub.

Stap 3) In deze fase wordt RPC benaderd door de gebruiker door regelmatig Local Procedural Cal uit te voeren. RPC Runtime beheert de transmissie van berichten tussen het netwerk via client en server. Het voert ook de taak van hertransmissie, bevestiging, routering en encryptie uit.

Stap 4) Na het voltooien van de serverprocedure keert het terug naar de serverstub, die de geretourneerde waarden in een bericht verpakt (samenvoegt). De serverstub stuurt vervolgens een bericht terug naar de transportlaag.

Stap 5) In deze stap stuurt de transportlaag het resultaatbericht terug naar de clienttransportlaag, die een bericht terugstuurt naar de clientstub.

Stap 6) In deze fase demarshalls (pakt) de client-stub de retourparameters uit in het resulterende pakket, en keert het uitvoeringsproces terug naar de beller.

Kenmerken van RPC

Dit zijn de essentiële kenmerken van RPC:

  • De aangeroepen procedure bevindt zich in een ander proces, dat zich waarschijnlijk op een andere machine bevindt.
  • De processen delen geen adresruimte.
  • Parameters worden alleen door waarden doorgegeven.
  • RPC wordt uitgevoerd binnen de omgeving van het serverproces.
  • Het biedt geen toegang tot de omgeving van de aanroepprocedure.

Kenmerken van RPC

Dit zijn de belangrijke kenmerken van RPC:

  • Eenvoudige oproepsyntaxis
  • Biedt bekende semantiek
  • Zorg voor een goed gedefinieerde interface
  • Het kan communiceren tussen processen op dezelfde of verschillende machines

Voordelen van RPC

Hier zijn de voor- en voordelen van RPC:

  • De RPC-methode helpt clients te communiceren met servers door het conventionele gebruik van procedureaanroepen in talen op hoog niveau.
  • De RPC-methode is gemodelleerd naar de lokale procedureaanroep, maar de aangeroepen procedure wordt hoogstwaarschijnlijk in een ander proces en meestal op een andere computer uitgevoerd.
  • RPC ondersteunt proces- en thread-georiënteerde modellen.
  • RPC zorgt ervoor dat het interne mechanisme voor het doorgeven van berichten verborgen blijft voor de gebruiker.
  • De inspanning die nodig is om de code te herschrijven en opnieuw te ontwikkelen is minimaal.
  • Remote procedure calls kunnen worden gebruikt voor gedistribueerde en lokale omgevingen.
  • Het zet veel van de protocollagen in om de prestaties te verbeteren.
  • RPC zorgt voor abstractie. Het doorgeven van berichten door netwerkcommunicatie blijft bijvoorbeeld verborgen voor de gebruiker.
  • RPC maakt het gebruik van de applicaties mogelijk in een gedistribueerde omgeving die zich niet alleen in de lokale omgeving bevindt.
  • Met RPC-code wordt het herschrijven en opnieuw ontwikkelen tot een minimum beperkt.
  • Procesgerichte en threadgerichte modellen worden ondersteund door RPC.

Nadelen van RPC

Hier zijn de nadelen/nadelen van het gebruik van RPC:

  • Remote Procedure Call geeft parameters alleen waarden en pointerwaarden door, wat niet is toegestaan.
  • De tijd voor het aanroepen (en retourneren) van procedures op afstand (dwz de overhead) kan aanzienlijk lager zijn dan die voor een lokale procedure.
  • Dit mechanisme is zeer kwetsbaar voor storingen, omdat er een communicatiesysteem, een andere machine en een ander proces bij betrokken zijn.
  • Het RPC-concept kan op verschillende manieren worden geïmplementeerd, wat niet standaard is.
  • Biedt geen enkele flexibiliteit in RPC voor hardwarearchitectuur, omdat het voornamelijk op interactie is gebaseerd.
  • De kosten van het proces nemen toe vanwege een externe procedureaanroep.

Samenvatting

  • Een externe procedureaanroep is een interproces communicatie techniek.
  • Er zijn drie typen RPC: 1) Callback-RPC, 2) Broadcast-RPC en 3) RPC in batchmodus
  • De RPC-architectuur bestaat hoofdzakelijk uit vijf programmacomponenten: 1) Client, 2) Client Stub, 3) RPC Runtime, 4) Server Stub en 5) Server
  • Bij de RPC-methode delen de processen geen adresruimte
  • RPC biedt eenvoudige oproepsyntaxis en bekende semantiek
  • De RPC-methode helpt clients te communiceren met servers door het conventionele gebruik van procedureaanroepen in talen op hoog niveau.
  • Het grootste nadeel van de RPC-methode is dat deze zeer kwetsbaar is voor storingen, omdat er een communicatiesysteem, een andere machine en een ander proces bij betrokken zijn.