Remote Procedure Call (RPC)-protocol in gedistribueerd systeem
โก Slimme samenvatting
Remote Procedure Call (RPC) is een interprocescommunicatieprotocol waarmee een programma een procedure in een andere adresruimte of machine kan uitvoeren, waarbij netwerkdetails verborgen blijven achter een gewone lokale functieaanroep in gedistribueerde client-serversystemen.

Wat is RPC?
Remote Procedure Call (RPC) is een interproces communicatie Een techniek die wordt gebruikt voor client-servertoepassingen. RPC staat voor Remote Procedure Call. RPC-mechanismen worden gebruikt wanneer een computerprogramma een procedure of subroutine uitvoert in een andere adresruimte, gecodeerd als een normale procedureaanroep zonder dat de programmeur expliciet de details voor de interactie op afstand codeert.
Deze procedureaanroep beheert ook transportprotocollen op laag niveau, zoals UDP en TCP/IP, om de berichtgegevens tussen programma's te verzenden.
Soorten RPC
Drie soorten RPC zijn:
- Terugbel-RPC
- RPC uitzenden
- RPC in batchmodus
Terugbel-RPC
Dit type RPC maakt een peer-to-peer (P2P) paradigma mogelijk tussen deelnemende processen. Het stelt een proces in staat om zowel als client als server te fungeren.
Functies van terugbel-RPC:
- Behandelt problemen met interactieve applicaties die op afstand worden verwerkt.
- Geeft de server de handle van de client.
- De callback-functie zorgt ervoor dat het clientproces wacht.
- Beheert deadlocks bij callbacks.
- Het bevordert een peer-to-peer-paradigma tussen deelnemende processen.
RPC uitzenden
Broadcast RPC is een verzoek van een client dat via het netwerk wordt uitgezonden en verwerkt door alle servers die de methode hebben om dat verzoek te verwerken.
Functies van Broadcast RPC:
- Hiermee kunt u specificeren 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
Batch-mode RPC maakt het mogelijk om afzonderlijke RPC-verzoeken in een verzendbuffer aan de clientzijde in een wachtrij te plaatsen en deze vervolgens in รฉรฉn batch via het netwerk naar de server te verzenden.
Functies van RPC in batchmodus:
- Het minimaliseert de overhead die gepaard gaat met het verzenden van een verzoek, omdat het de verzoeken in รฉรฉn keer via het netwerk naar de server stuurt.
- Dit type RPC-protocol is alleen efficiรซnt voor toepassingen die een lagere aanroepfrequentie vereisen.
- Er is een betrouwbaar transmissieprotocol nodig.
RPC Architectuur
RPC-architectuur bestaat hoofdzakelijk uit vijf programmacomponenten:
- Bedrijf
- Klant stomp
- RPC-runtime
- Serverstub
- Server
RPC Architectuur
Hoe werkt RPC?
De volgende stappen vinden plaats tijdens het RPC-proces:
Stap 1) De client, de client-stub en รฉรฉn instantie van de RPC-runtime worden uitgevoerd op de clientmachine.
Stap 2) De client start een client-stubproces door op de gebruikelijke manier parameters door te geven. De client-stub wordt opgeslagen in de eigen adresruimte van de client. De client vraagt โโook de lokale RPC-runtime om het verzoek naar de server-stub te sturen.
Stap 3) In deze fase benadert de gebruiker RPC door een reguliere lokale procedureaanroep te doen. De RPC Runtime beheert de overdracht van berichten tussen de client en de server via het netwerk. Het voert ook de taken uit van herverzending, bevestiging, routering en versleuteling.
Stap 4) Na voltooiing van de serverprocedure keert de uitvoering terug naar de serverstub, die de retourwaarden in een bericht verpakt (marshalling). De serverstub stuurt het bericht vervolgens terug naar de transportlaag.
Stap 5) In deze stap stuurt de transportlaag het resultaatbericht terug naar de clienttransportlaag, die het bericht vervolgens terugstuurt naar de clientstub.
Stap 6) In deze fase deserialiseert (ontpakt) de client-stub de retourparameters in het resulterende pakket, waarna de uitvoering terugkeert naar de aanroeper.
Kenmerken van RPC
Dit zijn de essentiรซle kenmerken van RPC:
- De aangeroepen procedure maakt deel uit van 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.
- Biedt een goed gedefinieerde interface.
- Het kan communiceren tussen processen op dezelfde of verschillende machines.
Voordelen van RPC
Hieronder volgen de voordelen van RPC:
- RPC helpt clients te communiceren met servers door middel van de gebruikelijke procedureaanroepen in programmeertalen op hoog niveau.
- RPC is gebaseerd op de lokale procedureaanroep, maar de aangeroepen procedure wordt hoogstwaarschijnlijk in een ander proces en meestal op een andere computer uitgevoerd.
- RPC ondersteunt zowel procesgerichte als threadgerichte modellen.
- RPC verbergt het interne mechanisme voor berichtuitwisseling voor de gebruiker.
- Het zet veel van de protocollagen in om de prestaties te verbeteren.
- RPC biedt abstracbijvoorbeeld, het feit dat netwerkcommunicatie berichten uitwisselt, blijft verborgen voor de gebruiker.
- RPC kan zowel in gedistribueerde als lokale omgevingen worden gebruikt.
- De inspanning die nodig is om de code te herschrijven en opnieuw te ontwikkelen, is minimaal.
Nadelen van RPC
Hier zijn de nadelen/nadelen van het gebruik van RPC:
- Een Remote Procedure Call geeft parameters alleen door middel van waarden door; pointerwaarden (referentiewaarden) zijn niet toegestaan.
- De tijd die nodig is voor een externe procedureaanroep (en de retourtijd) โ de overhead โ is aanzienlijk hoger dan voor een lokale procedure.
- Dit mechanisme is zeer gevoelig voor storingen, omdat het een communicatiesysteem, een andere machine en een ander proces omvat.
- Het RPC-concept kan op verschillende manieren worden geรฏmplementeerd, waardoor er geen eenduidige standaard bestaat.
- Het biedt geen flexibiliteit voor de hardwarearchitectuur, omdat het grotendeels op interactie is gebaseerd.
- De kosten van het proces stijgen door de procedureaanroep op afstand.

