Remote Procedure Call (RPC) protokol i distribueret system
โก Smart opsummering
Remote Procedure Call (RPC) er en kommunikationsprotokol mellem processer, der lader et program udfรธre en procedure i et andet adresserum eller pรฅ en anden maskine, og skjuler netvรฆrksdetaljer bag et almindeligt lokalt funktionskald i distribuerede klient-server-systemer.

Hvad er RPC?
Remote Procedure Call (RPC) er en kommunikation mellem processer Teknik, der bruges til klient-server-applikationer. Den fulde form for RPC er Remote Procedure Call. RPC-mekanismer bruges, nรฅr et computerprogram fรฅr en procedure eller subrutine til at udfรธres i et andet adresserum, kodet som et normalt procedurekald, uden at programmรธren eksplicit koder detaljerne for den eksterne interaktion.
Dette procedurekald administrerer ogsรฅ lavniveau-transportprotokoller, sรฅsom UDP og TCP/IP, for at overfรธre meddelelsesdata mellem programmer.
Typer af RPC
Tre typer RPC er:
- Callback RPC
- Udsend RPC
- Batch-mode RPC
Callback RPC
Denne type RPC muliggรธr et peer-to-peer (P2P) paradigme mellem deltagende processer. Det hjรฆlper en proces med at fungere som bรฅde en klient og en server.
Funktioner af Callback RPC:
- Hรฅndterer fjernbehandlede, interaktive applikationsproblemer.
- Giver serveren klientens handle.
- Tilbagekald fรฅr klientprocessen til at vente.
- Hรฅndterer tilbagekaldslรฅsninger.
- Det fremmer et peer-to-peer-paradigme mellem deltagende processer.
Udsend RPC
En broadcast-RPC er en klientanmodning, der udsendes pรฅ netvรฆrket og behandles af alle servere, der har metoden til at behandle den pรฅgรฆldende anmodning.
Funktioner af Broadcast RPC:
- Giver dig mulighed for at angive, at klientens anmodningsbesked skal udsendes.
- Du kan erklรฆre broadcast-porte.
- Det hjรฆlper med at reducere belastningen pรฅ det fysiske netvรฆrk.
Batch-mode RPC
Batch-mode RPC hjรฆlper med at placere separate RPC-anmodninger i kรธ i en transmissionsbuffer pรฅ klientsiden og derefter sende dem over et netvรฆrk i รฉn batch til serveren.
Funktioner i batch-tilstand RPC:
- Det minimerer den overhead, der er involveret i at sende en anmodning, da det sender anmodninger over netvรฆrket i รฉn batch til serveren.
- Denne type RPC-protokol er kun effektiv til applikationer, der krรฆver lavere opkaldsrater.
- Den har brug for en pรฅlidelig transmissionsprotokol.
RPC Architecture
RPC-arkitektur har hovedsageligt fem komponenter i programmet:
- Klient
- Klient Stub
- RPC Runtime
- Server Stub
- Server
RPC Architecture
Hvordan fungerer RPC?
Fรธlgende trin finder sted under RPC-processen:
Trin 1) Klienten, klient-stub'en og รฉn instans af RPC-kรธrselstiden udfรธres pรฅ klientmaskinen.
Trin 2) Klienten starter en klient-stub-proces ved at overfรธre parametre pรฅ den sรฆdvanlige mรฅde. Klient-stubben gemmes i klientens eget adresseomrรฅde. Den beder ogsรฅ den lokale RPC Runtime om at sende anmodningen til server-stubben.
Trin 3) I denne fase tilgรฅr brugeren RPC ved at foretage et almindeligt lokalt procedurekald. RPC Runtime administrerer transmissionen af โโmeddelelser mellem klienten og serveren pรฅ tvรฆrs af netvรฆrket. Den udfรธrer ogsรฅ opgaverne med retransmission, bekrรฆftelse, routing og kryptering.
Trin 4) Efter serverproceduren er afsluttet, vender udfรธrelsen tilbage til server-stubben, som pakker (marshalerer) returvรฆrdierne i en besked. Server-stubben sender derefter beskeden tilbage til transportlaget.
Trin 5) I dette trin sender transportlaget resultatmeddelelsen tilbage til klientens transportlag, som returnerer meddelelsen til klientstubben.
Trin 6) I denne fase demarshalerer (udpakker) klienten returparametrene i den resulterende pakke, og udfรธrelsen vender tilbage til den, der kalder pakken.
Karakteristika for RPC
Her er de vรฆsentlige egenskaber ved RPC:
- Den kaldte procedure er i en anden proces, som sandsynligvis befinder sig pรฅ en anden maskine.
- Processerne deler ikke adresseplads.
- Parametre sendes kun af vรฆrdier.
- RPC udfรธres i miljรธet af serverprocessen.
- Den giver ikke adgang til den kaldende procedures miljรธ.
Funktioner af RPC
Her er de vigtige funktioner i RPC:
- Simpel opkaldssyntaks.
- Tilbyder kendt semantik.
- Giver en veldefineret grรฆnseflade.
- Den kan kommunikere mellem processer pรฅ den samme eller forskellige maskiner.
Fordele ved RPC
Her er fordelene/fordelene ved RPC:
- RPC hjรฆlper klienter med at kommunikere med servere gennem den konventionelle brug af procedurekald i sprog pรฅ hรธjt niveau.
- RPC er modelleret efter det lokale procedurekald, men den kaldte procedure udfรธres hรธjst sandsynligt i en anden proces og normalt pรฅ en anden computer.
- RPC understรธtter procesorienterede og trรฅdorienterede modeller.
- RPC skjuler den interne mekanisme til videregivelse af beskeder for brugeren.
- Det forpligter mange af protokollagene til at forbedre ydeevnen.
- RPC leverer mavemusklertraction; for eksempel forbliver netvรฆrkskommunikationens beskedvideregivende karakter skjult for brugeren.
- RPC kan bruges i bรฅde distribuerede og lokale miljรธer.
- Den nรธdvendige indsats for at omskrive og genudvikle koden er minimal.
Ulemper ved RPC
Her er ulemperne/ulemperne ved at bruge RPC:
- Remote Procedure Call sender kun parametre via vรฆrdier; pointer- (reference-) vรฆrdier er ikke tilladt.
- Tiden for fjernopkald (og returnering) af procedurer โ overhead โ er betydeligt hรธjere end for en lokal procedure.
- Denne mekanisme er meget sรฅrbar overfor fejl, da den involverer et kommunikationssystem, en anden maskine og en anden proces.
- RPC-konceptet kan implementeres pรฅ forskellige mรฅder, sรฅ der findes ingen enkelt standard.
- Det tilbyder ikke fleksibilitet til hardwarearkitektur, da den for det meste er interaktionsbaseret.
- Omkostningerne ved processen stiger pรฅ grund af det eksterne procedurekald.

