Remote Procedure Call (RPC) -protokolla hajautetussa järjestelmässä
⚡ Älykäs yhteenveto
Etäproseduurikutsu (RPC) on prosessien välinen viestintäprotokolla, jonka avulla ohjelma voi suorittaa proseduurin toisessa osoiteavaruudessa tai koneessa ja piilottaa verkkotiedot tavallisen paikallisen funktiokutsun taakse hajautetuissa asiakas-palvelinjärjestelmissä.

Mikä on RPC?
Remote Procedure Call (RPC) On prosessien välinen viestintä Asiakas-palvelin-sovelluksissa käytetty tekniikka. RPC:n täydellinen muoto on etäproseduurikutsu (Remote Procedure Call). RPC-mekanismeja käytetään, kun tietokoneohjelma suorittaa proseduurin tai aliohjelman eri osoiteavaruudessa, koodattuna normaalina proseduurikutsuna ilman, että ohjelmoija koodaa erikseen etävuorovaikutuksen yksityiskohtia.
Tämä proseduurikutsu hallitsee myös matalan tason siirtoprotokollia, kuten UDP:tä ja TCP/IP:tä, viestidatan siirtämiseksi ohjelmien välillä.
RPC-tyypit
Kolme RPC-tyyppiä ovat:
- Takaisinsoitto RPC
- Lähetys RPC
- Erätoiminen RPC
Takaisinsoitto RPC
Tämän tyyppinen RPC mahdollistaa vertaisverkon (P2P) paradigman osallistuvien prosessien välillä. Se auttaa prosessia toimimaan sekä asiakkaana että palvelimena.
Takaisinsoitto-RPC:n toiminnot:
- Käsittelee etänä käsiteltyjä, interaktiivisia sovellusongelmia.
- Antaa palvelimelle asiakkaan tunnuksen.
- Takaisinkutsu laittaa asiakasprosessin odottamaan.
- Hallitsee takaisinsoiton umpikujia.
- Se helpottaa vertaisverkostoitumista osallistuvien prosessien välillä.
Lähetys RPC
Lähetetty RPC on asiakkaan pyyntö, joka lähetetään verkossa ja jota kaikki palvelimet, joilla on kyseisen pyynnön käsittelyyn tarvittava menetelmä, käsittelevät.
Broadcast RPC:n toiminnot:
- Voit määrittää, että asiakkaan pyyntöviesti on lähetettävä.
- Voit ilmoittaa lähetysportit.
- Se auttaa vähentämään fyysisen verkon kuormitusta.
Erätoiminen RPC
Erätilassa tapahtuva RPC auttaa jonottamaan erilliset RPC-pyynnöt asiakaspuolen lähetyspuskuriin ja lähettämään ne sitten verkon kautta yhtenä eränä palvelimelle.
Erätilan RPC:n toiminnot:
- Se minimoi pyynnön lähettämiseen liittyvän yleiskulun, koska se lähettää pyynnöt verkon kautta palvelimelle yhdessä erässä.
- Tämän tyyppinen RPC-protokolla on tehokas vain sovelluksille, jotka tarvitsevat alhaisempia puhelunopeuksia.
- Se tarvitsee luotettavan lähetysprotokollan.
RPC Archirakenne
RPC-arkkitehtuuri sisältää pääosin viisi ohjelman osaa:
- Asiakas
- Asiakas Stub
- RPC Runtime
- Palvelin Stub
- Server
RPC Archirakenne
Miten RPC toimii?
RPC-prosessin aikana tapahtuu seuraavat vaiheet:
Vaihe 1) Asiakas, asiakkaan tynkä ja yksi RPC-suorituksenaikaisen prosessin instanssi suoritetaan asiakaskoneella.
Vaihe 2) Asiakasohjelma käynnistää asiakasresurssipyynnön (client stub) välittämällä parametrit tavalliseen tapaan. Asiakasresurssipyyntö tallennetaan asiakkaan omaan osoiteavaruuteen. Se myös pyytää paikallista RPC-ajonaikaista prosessia lähettämään pyynnön palvelimen resurssipyynnölle.
Vaihe 3) Tässä vaiheessa käyttäjä käyttää RPC:tä tekemällä tavallisen paikallisen proseduurikutsun. RPC Runtime hallinnoi viestien siirtoa asiakkaan ja palvelimen välillä verkon kautta. Se suorittaa myös uudelleenlähetyksen, kuittauksen, reitityksen ja salauksen.
Vaihe 4) Palvelinproseduurin valmistuttua suoritus palaa palvelimen tynkään, joka pakkaa (järjestelee) paluuarvot viestiksi. Palvelintynkä lähettää sitten viestin takaisin siirtokerrokselle.
Vaihe 5) Tässä vaiheessa siirtokerros lähettää tulosviestin takaisin asiakaspuolen siirtokerrokselle, joka palauttaa viestin asiakaspuolen tynkälle.
Vaihe 6) Tässä vaiheessa asiakkaan tynkä purkaa paluuparametrit tuloksena olevasta paketista, ja suoritus palaa kutsujalle.
RPC:n ominaisuudet
Tässä ovat RPC:n keskeiset ominaisuudet:
- Kutsuttu proseduuri on toisessa prosessissa, joka todennäköisesti sijaitsee toisella koneella.
- Prosessit eivät jaa osoiteavaruutta.
- Parametrit välitetään vain arvojen mukaan.
- RPC suoritetaan palvelinprosessin ympäristössä.
- Se ei tarjoa pääsyä kutsuvan proseduurin ympäristöön.
RPC:n ominaisuudet
Tässä ovat RPC:n tärkeät ominaisuudet:
- Yksinkertainen kutsusyntaksi.
- Tarjoaa tunnettua semantiikkaa.
- Tarjoaa hyvin määritellyn käyttöliittymän.
- Se voi kommunikoida prosessien välillä samalla tai eri koneilla.
RPC:n edut
Tässä ovat RPC:n edut/hyödyt:
- RPC auttaa asiakkaita kommunikoimaan palvelimien kanssa tavanomaisten korkean tason ohjelmointikielten proseduurikutsujen avulla.
- RPC mallinnetaan paikallisen proseduurikutsujen mukaan, mutta kutsuttu proseduuri suoritetaan todennäköisimmin eri prosessissa ja yleensä eri tietokoneella.
- RPC tukee prosessikeskeisiä ja säikekeskeisiä malleja.
- RPC piilottaa sisäisen viestinvälitysmekanismin käyttäjältä.
- Se sitoo monia protokollakerroksia suorituskyvyn parantamiseen.
- RPC tarjoaa vatsalihaksiatracesimerkiksi verkkoviestinnän viestinvälitysluonne pysyy käyttäjältä piilossa.
- RPC:tä voidaan käyttää sekä hajautetuissa että paikallisissa ympäristöissä.
- Koodin uudelleenkirjoittamiseen ja kehittämiseen tarvittava työmäärä on minimaalinen.
RPC:n haitat
Tässä ovat RPC:n käytön haitat/haitat:
- Etäproseduurikutsu välittää parametrit vain arvojen perusteella; osoittimen (viittauksen) arvoja ei sallita.
- Etäproseduurikutsun (ja paluun) aika – eli yleiskustannus – on huomattavasti suurempi kuin paikallisen proseduurin.
- Tämä mekanismi on erittäin altis vikaantumiselle, koska siihen liittyy viestintäjärjestelmä, toinen kone ja toinen prosessi.
- RPC-konsepti voidaan toteuttaa eri tavoin, joten yhtä ainoaa standardia ei ole.
- Se ei tarjoa joustavuutta laitteistoarkkitehtuurille, koska se on enimmäkseen vuorovaikutuspohjainen.
- Prosessin kustannukset nousevat etäproseduurikutsun vuoksi.

