Remote Procedure Call (RPC) Protocol i distribuerat system
โก Smart sammanfattning
Remote Procedure Call (RPC) รคr ett kommunikationsprotokoll mellan processer som lรฅter ett program utfรถra en procedur i ett annat adressutrymme eller pรฅ en annan maskin, och dรถljer nรคtverksdetaljer bakom ett vanligt lokalt funktionsanrop i distribuerade klient-server-system.

Vad รคr RPC?
Remote Procedure Call (RPC) รคr en interprocesskommunikation teknik som anvรคnds fรถr klient-server-applikationer. Den fullstรคndiga formen av RPC รคr Remote Procedure Call. RPC-mekanismer anvรคnds nรคr ett datorprogram fรฅr en procedur eller subrutin att kรถras i ett annat adressutrymme, kodat som ett normalt proceduranrop utan att programmeraren uttryckligen kodar detaljerna fรถr fjรคrrinteraktionen.
Detta proceduranrop hanterar รคven lรฅgnivรฅtransportprotokoll, sรฅsom UDP och TCP/IP, fรถr att transportera meddelandedata mellan program.
Typer av RPC
Tre typer av RPC รคr:
- Callback RPC
- Sรคnd RPC
- RPC i batchlรคge
Callback RPC
Denna typ av RPC mรถjliggรถr ett peer-to-peer (P2P) paradigm mellan deltagande processer. Det hjรคlper en process att fungera som bรฅde en klient och en server.
Funktioner fรถr Callback RPC:
- Hanterar fjรคrrbearbetade, interaktiva applikationsproblem.
- Fรถrser servern med klientens referens.
- ร teranrop gรถr att klientprocessen vรคntar.
- Hanterar รฅteruppringningslรฅs.
- Det underlรคttar ett peer-to-peer-paradigm mellan deltagande processer.
Sรคnd RPC
En broadcast-RPC รคr en klientfรถrfrรฅgan som sรคnds ut pรฅ nรคtverket och bearbetas av alla servrar som har metoden fรถr att bearbeta den fรถrfrรฅgan.
Funktioner fรถr Broadcast RPC:
- Lรฅter dig ange att klientens fรถrfrรฅgningsmeddelande mรฅste sรคndas.
- Du kan deklarera sรคndningsportar.
- Det hjรคlper till att minska belastningen pรฅ det fysiska nรคtverket.
RPC i batchlรคge
Batch-lรคge RPC hjรคlper till att kรถa separata RPC-fรถrfrรฅgningar i en รถverfรถringsbuffert pรฅ klientsidan och sedan skicka dem รถver ett nรคtverk i en batch till servern.
Funktioner fรถr batchlรคge RPC:
- Det minimerar kostnaden fรถr att skicka en fรถrfrรฅgan, eftersom fรถrfrรฅgningar skickas รถver nรคtverket i en batch till servern.
- Den hรคr typen av RPC-protokoll รคr endast effektivt fรถr applikationer som behรถver lรคgre samtalshastigheter.
- Den behรถver ett pรฅlitligt รถverfรถringsprotokoll.
RPC Architecture
RPC-arkitekturen har huvudsakligen fem komponenter i programmet:
- Klient
- Klientstubb
- RPC kรถrtid
- Server Stub
- server
RPC Architecture
Hur RPC fungerar?
Fรถljande steg sker under RPC-processen:
Steg 1) Klienten, klient-stubben och en instans av RPC-kรถrningen kรถrs pรฅ klientdatorn.
Steg 2) Klienten startar en klient-stub-process genom att skicka parametrar pรฅ vanligt sรคtt. Klient-stubben lagras i klientens eget adressutrymme. Den ber ocksรฅ den lokala RPC-kรถrtiden att skicka begรคran till server-stubben.
Steg 3) I det hรคr steget fรฅr anvรคndaren รฅtkomst till RPC genom att gรถra ett vanligt lokalt proceduranrop. RPC Runtime hanterar รถverfรถringen av meddelanden mellan klienten och servern รถver nรคtverket. Den utfรถr ocksรฅ jobbet med รฅtersรคndning, bekrรคftelse, routing och kryptering.
Steg 4) Efter att serverproceduren har slutfรถrts รฅtergรฅr exekveringen till serverstubben, som packar (marshalar) returvรคrdena i ett meddelande. Serverstubben skickar sedan meddelandet tillbaka till transportlagret.
Steg 5) I det hรคr steget skickar transportlagret resultatmeddelandet tillbaka till klientens transportlagre, som returnerar meddelandet till klientstubben.
Steg 6) I det hรคr steget demarshalar klienten (packar upp) returparametrarna i det resulterande paketet, och exekveringen รฅtergรฅr till anroparen.
Egenskaper fรถr RPC
Hรคr รคr de vรคsentliga egenskaperna hos RPC:
- Den anropade proceduren finns i en annan process, som sannolikt finns pรฅ en annan maskin.
- Processerna delar inte adressutrymme.
- Parametrar skickas endast av vรคrden.
- RPC kรถrs inom serverprocessens miljรถ.
- Den erbjuder inte รฅtkomst till den anropande procedurens miljรถ.
Funktioner i RPC
Hรคr รคr de viktiga funktionerna i RPC:
- Enkel anropssyntax.
- Erbjuder kรคnd semantik.
- Ger ett vรคldefinierat grรคnssnitt.
- Den kan kommunicera mellan processer pรฅ samma eller olika maskiner.
Fรถrdelar med RPC
Hรคr รคr fรถrdelarna/nyttorna med RPC:
- RPC hjรคlper klienter att kommunicera med servrar genom konventionell anvรคndning av proceduranrop i hรถgnivรฅsprรฅk.
- RPC รคr modellerad efter det lokala proceduranropet, men den anropade proceduren kรถrs troligtvis i en annan process och vanligtvis pรฅ en annan dator.
- RPC stรถder processorienterade och trรฅdorienterade modeller.
- RPC gรถr den interna meddelandeรถverfรถringsmekanismen dold fรถr anvรคndaren.
- Den binder mรฅnga av protokolllagren fรถr att fรถrbรคttra prestandan.
- RPC tillhandahรฅller magmusklertraction; till exempel fรถrblir nรคtverkskommunikationens meddelandeรถverfรถringsfรถrmรฅga dold fรถr anvรคndaren.
- RPC kan anvรคndas i bรฅde distribuerade och lokala miljรถer.
- Anstrรคngningen som krรคvs fรถr att skriva om och utveckla koden pรฅ nytt รคr minimal.
Nackdelar med RPC
Hรคr รคr nackdelarna/nackdelarna med att anvรคnda RPC:
- Remote Procedure Call skickar endast parametrar med vรคrden; pekarvรคrden (referensvรคrden) รคr inte tillรฅtna.
- Tiden fรถr fjรคrranrop (och retur) av procedurer โ omkostnaderna โ รคr betydligt hรถgre รคn fรถr en lokal procedur.
- Denna mekanism รคr mycket sรฅrbar fรถr fel, eftersom den involverar ett kommunikationssystem, en annan maskin och en annan process.
- RPC-konceptet kan implementeras pรฅ olika sรคtt, sรฅ det finns ingen enda standard.
- Den erbjuder inte flexibilitet fรถr hรฅrdvaruarkitektur, eftersom den mestadels รคr interaktionsbaserad.
- Kostnaden fรถr processen รถkar pรฅ grund av fjรคrrproceduranropet.

