Remote Procedure Call (RPC) protokoll hajutatud süsteemis
⚡ Nutikas kokkuvõte
Kaugprotseduurikutse (RPC) on protsessidevaheline sideprotokoll, mis võimaldab programmil käivitada protseduuri teises aadressiruumis või masinas, peites võrguandmed hajutatud klient-server süsteemides tavalise kohaliku funktsioonikutse taha.

Mis on RPC?
Remote Procedure Call (RPC) on protsessidevaheline suhtlus klient-serveri rakenduste jaoks kasutatav tehnika. RPC täielik vorm on kaugprotseduurikutse. RPC-mehhanisme kasutatakse siis, kui arvutiprogramm käivitab protseduuri või alamprogrammi teises aadressiruumis, kodeerituna tavalise protseduurikutse abil, ilma et programmeerija kodeeriks selgesõnaliselt kauginteraktsiooni üksikasju.
See protseduurikutse haldab ka madala taseme transpordiprotokolle, näiteks UDP ja TCP/IP, et edastada sõnumiandmeid programmide vahel.
RPC tüübid
RPC-d on kolme tüüpi:
- Tagasihelistamise RPC
- Saate RPC
- Partiirežiimis RPC
Tagasihelistamise RPC
Seda tüüpi RPC võimaldab osalevate protsesside vahel peer-to-peer (P2P) paradigmat. See aitab protsessil toimida nii kliendi kui ka serverina.
Tagasihelistamise RPC funktsioonid:
- Tegeleb kaugtöödeldud interaktiivsete rakenduste probleemidega.
- Annab serverile kliendi käepideme.
- Tagasihelistamine paneb kliendiprotsessi ootama.
- Haldab tagasihelistamise ummikseisusid.
- See hõlbustab osalevate protsesside vahelist võrdõiguslikkuse paradigmat.
Saate RPC
RPC leviedastus on kliendi päring, mis edastatakse võrgus ja mida töötlevad kõik serverid, millel on selle päringu töötlemiseks vajalik meetod.
Broadcast RPC funktsioonid:
- Võimaldab määrata, et kliendi päringusõnum tuleb edastada.
- Saate deklareerida edastuspordid.
- See aitab vähendada füüsilise võrgu koormust.
Partiirežiimis RPC
Pakettrežiimis RPC aitab kliendi poolel edastuspuhvris eraldi RPC-päringuid järjekorda panna ja seejärel need võrgu kaudu ühe partiina serverile saata.
Pakkrežiimi RPC funktsioonid:
- See minimeerib päringu saatmisega seotud üldkulu, kuna see saadab päringud võrgu kaudu serverile ühe partiina.
- Seda tüüpi RPC-protokoll on efektiivne ainult rakenduste jaoks, mis vajavad madalamaid kõnekiirusi.
- See vajab usaldusväärset edastusprotokolli.
RPC Architektuur
RPC arhitektuuril on peamiselt viis programmi komponenti:
- klient
- Klient Stub
- RPC käitusaeg
- Server Stub
- server
RPC Architektuur
Kuidas RPC töötab?
RPC protsessi käigus toimuvad järgmised sammud:
Step 1) Klient, kliendi tüvi ja üks RPC käitusaja eksemplar käivitatakse kliendiarvutis.
Step 2) Klient käivitab kliendi tüveprotsessi, edastades parameetreid tavapärasel viisil. Kliendi tüvi salvestatakse kliendi enda aadressiruumi. Samuti palub see kohalikul RPC käituskeskkonnal saata päring serveri tüvele.
Step 3) Selles etapis pääseb kasutaja RPC-le ligi tavalise kohaliku protseduurikutse abil. RPC käituskeskkond haldab sõnumite edastamist kliendi ja serveri vahel võrgus. See täidab ka uuesti saatmise, kinnitamise, marsruutimise ja krüpteerimise ülesandeid.
Step 4) Pärast serveriprotseduuri lõpuleviimist naaseb täitmine serveri tüvesse, mis pakib (marshaldab) tagastusväärtused sõnumiks. Seejärel saadab serveri tüvi sõnumi tagasi transpordikihile.
Step 5) Selles etapis saadab transpordikiht tulemussõnumi tagasi kliendi transpordikihile, mis omakorda tagastab sõnumi kliendi tüvele.
Step 6) Selles etapis kliendi tüvi demaršaleerib (pakib lahti) saadud paketis olevad tagastusparameetrid ja täitmine naaseb helistajale.
RPC omadused
Siin on RPC põhiomadused:
- Kutsutud protseduur asub teises protsessis, mis tõenäoliselt asub teises masinas.
- Protsessid ei jaga aadressiruumi.
- Parameetrid edastatakse ainult väärtuste järgi.
- RPC käivitub serveriprotsessi keskkonnas.
- See ei paku juurdepääsu kutsuva protseduuri keskkonnale.
RPC omadused
Siin on RPC olulised funktsioonid:
- Lihtne kutse süntaks.
- Pakub teadaolevat semantikat.
- Pakub täpselt määratletud liidest.
- See suudab suhelda protsesside vahel, mis asuvad samal või erinevatel masinatel.
RPC eelised
Siin on RPC plussid/eelised:
- RPC aitab klientidel serveritega suhelda tavapäraste kõrgetasemeliste protseduurikõnede abil.
- RPC on modelleeritud kohaliku protseduurikutse põhjal, kuid kutsutud protseduur käivitatakse suure tõenäosusega teises protsessis ja tavaliselt teises arvutis.
- RPC toetab protsessidele ja niididele orienteeritud mudeleid.
- RPC muudab sisemise sõnumiedastusmehhanismi kasutaja eest varjatuks.
- See kohustab jõudlust parandama paljud protokollikihid.
- RPC annab kõhulihastele lihaspingeidtracnäiteks jääb võrgukommunikatsiooni sõnumiedastusel põhinev olemus kasutaja eest varjatuks.
- RPC-d saab kasutada nii hajutatud kui ka lokaalses keskkonnas.
- Koodi ümberkirjutamiseks ja ümberarendamiseks on vaja minimaalselt vaeva näha.
RPC miinused
Siin on RPC kasutamise miinused/miinused:
- Kaugprotseduurikutse edastab parameetreid ainult väärtuste kaupa; pointeri (viite) väärtused pole lubatud.
- Kaugprotseduuri kõne (ja tagasipöördumise) aeg – üldkulud – on oluliselt pikemad kui kohaliku protseduuri puhul.
- See mehhanism on rikete suhtes väga haavatav, kuna see hõlmab sidesüsteemi, teist masinat ja teist protsessi.
- RPC kontseptsiooni saab rakendada erineval viisil, seega puudub ühtne standard.
- See ei paku riistvaraarhitektuuri jaoks paindlikkust, kuna see on enamasti interaktsioonipõhine.
- Protsessi maksumus suureneb kaugprotseduurikutse tõttu.

