Remote Procedure Call (RPC) protokoll hajutatud süsteemis
Mis on RPC?
Remote Procedure Call (RPC) on protsessidevaheline suhtlustehnika. RPC täisvorm on Remote Procedure Call. Seda kasutatakse klient-serveri rakenduste jaoks. RPC mehhanisme kasutatakse siis, kui arvutiprogramm põhjustab protseduuri või alamprogrammi käivitamise teises aadressiruumis, mis kodeeritakse tavalise protseduurikutsena, ilma et programmeerija oleks konkreetselt kaugsuhtluse üksikasju kodeerinud.
See protseduurikutse haldab ka madala taseme transpordiprotokolli, näiteks kasutaja datagrammi protokolli, Transmission Juhtprotokoll/Interneti-protokoll jne. Seda kasutatakse sõnumiandmete edastamiseks 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 P2P-paradigmat osalevate protsesside vahel. See aitab protsessil olla nii kliendi kui ka serveri teenus.
Tagasihelistamise RPC funktsioonid:
- Kaugtöödeldud interaktiivsete rakenduste probleemid
- Pakub serverit koos klientide käepidemega
- Tagasihelistamine paneb kliendi protsessi ootama
- Hallake tagasihelistamise ummikseisu
- See hõlbustab osalevate protsesside vahel peer-to-peer paradigmat.
Saate RPC
Broadcast RPC on kliendi päring, mis edastatakse võrgus ja mida töötlevad kõik serverid, millel on selle päringu töötlemise 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 järjekorda seada, eraldada RPC-päringuid edastuspuhvris kliendi poolel ja seejärel saata need võrku ühes partiis serverisse.
Pakirežiimis RPC funktsioonid:
- See minimeerib päringu saatmisega kaasnevaid üldkulusid, kuna saadab need üle võrgu ühe partiina serverisse.
- Seda tüüpi RPC-protokoll on efektiivne ainult madalamat kõnekiirust vajava rakenduse jaoks.
- See vajab usaldusväärset edastusprotokolli.
RPC Architektuur
RPC arhitektuuril on peamiselt viis programmi komponenti:
- klient
- Klient Stub
- RPC käitusaeg
- Server Stub
- server

Kuidas RPC töötab?
RPC protsessi käigus tehakse järgmised sammud:
Step 1) Klient, kliendi tünn ja üks RPC käitusaja eksemplar käitatakse klientmasinas.
Step 2) Klient alustab kliendi tünniprotsessi, edastades parameetrid tavapärasel viisil. Kliendi käsk salvestab kliendi enda aadressiruumi. Samuti palub see kohalikul RPC Runtime'il saata tagasi serveri tünnile.
Step 3) Selles etapis pääseb kasutaja juurde RPC-le tavalise kohaliku protseduurilise Cal. RPC Runtime haldab sõnumite edastamist võrgu vahel kliendi ja serveri vahel. Samuti täidab see taasedastuse, kinnituse, marsruutimise ja krüptimise ülesandeid.
Step 4) Pärast serveriprotseduuri lõpetamist naaseb see serveri tünni, mis pakib (korrastab) tagastusväärtused sõnumisse. Seejärel saadab serveri tünn sõnumi transpordikihile tagasi.
Step 5) Selles etapis saadab transpordikiht tulemuseteate tagasi kliendi transpordikihile, mis tagastab sõnumi kliendi tünnile.
Step 6) Selles etapis demarshall (lahti pakkib) kliendi tünn saadud paketis tagastatavad parameetrid ja täitmisprotsess pöördub tagasi helistaja juurde.
RPC omadused
Siin on RPC põhiomadused:
- Kutsutud protseduur on teises protsessis, mis asub tõenäoliselt teises masinas.
- Protsessid ei jaga aadressiruumi.
- Parameetrid edastatakse ainult väärtuste järgi.
- RPC käivitub serveriprotsessi keskkonnas.
- See ei paku juurdepääsu helistamisprotseduuri keskkonnale.
RPC omadused
Siin on RPC olulised funktsioonid:
- Lihtne kõne süntaks
- Pakub teadaolevat semantikat
- Pakkuge täpselt määratletud liides
- See võib suhelda protsesside vahel samadel või erinevatel masinatel
RPC eelised
Siin on RPC plussid/eelised:
- RPC meetod aitab klientidel suhelda serveritega, kasutades tavapärast kõrgetasemelistes keeltes protseduurikutseid.
- RPC-meetod on modelleeritud kohaliku protseduurikutse järgi, kuid väljakutsutud protseduur käivitatakse suure tõenäosusega teises protsessis ja tavaliselt teises arvutis.
- RPC toetab protsessidele ja lõimedele orienteeritud mudeleid.
- RPC muudab sisemise sõnumiedastusmehhanismi kasutaja eest varjatuks.
- Koodi ümberkirjutamiseks ja uuesti arendamiseks on vaja teha minimaalseid jõupingutusi.
- Kaugprotseduurikutseid saab kasutada hajutatud ja kohaliku keskkonna jaoks.
- See kohustab jõudlust parandama paljud protokollikihid.
- RPC pakub abstraktsiooni. Näiteks võrgusuhtluse sõnumite edastamise iseloom jääb kasutaja eest varjatuks.
- RPC võimaldab rakendusi kasutada hajutatud keskkonnas, mis ei ole ainult kohalikus keskkonnas.
- RPC-koodiga on ümberkirjutamise ja uuesti arendamise pingutused minimaalsed.
- RPC tugi protsessile ja lõimele orienteeritud mudelitele.
RPC miinused
Siin on RPC kasutamise miinused/miinused:
- Remote Procedure Call edastab parameetrid ainult väärtuste ja osuti väärtuste järgi, mis pole lubatud.
- Protseduuride kaugkutsumise (ja tagastamise) aeg (st üldkulud) võib olla oluliselt väiksem kui kohaliku protseduuri puhul.
- See mehhanism on rikke suhtes väga haavatav, kuna see hõlmab sidesüsteemi, teist masinat ja teist protsessi.
- RPC kontseptsiooni saab rakendada erineval viisil, mis ei ole standardne.
- Ei paku riistvaraarhitektuuri RPC-s mingit paindlikkust, kuna see on enamasti interaktsioonipõhine.
- Protsessi maksumus suureneb kaugprotseduuri kõne tõttu.
kokkuvõte
- Kaugprotseduuri kõne on an protsessidevaheline suhtlus tehnika.
- Kolm tüüpi RPC-d on 1) tagasihelistamise RPC 2) leviedastuse RPC ja 3) pakettrežiimis RPC
- RPC arhitektuuril on peamiselt viis programmi komponenti: 1) klient 2) kliendi stub 3) RPC käitusaeg 4) serveri stub ja 5) server
- RPC meetodi puhul ei jaga protsessid aadressiruumi
- RPC pakub lihtsat kõne süntaksit ja tuntud semantikat
- RPC meetod aitab klientidel suhelda serveritega, kasutades tavapärast kõrgetasemelistes keeltes protseduurikutseid.
- RPC-meetodi suurim puudus on see, et see on rikke suhtes väga haavatav, kuna see hõlmab sidesüsteemi, teist masinat ja teist protsessi.
