Remote Procedure Call ali RPC je zmogljiva tehnika za izdelavo porazdeljenih aplikacij, ki temeljijo na odjemalcu in strežniku. Znan je tudi kot klic funkcije ali klic podprograma. Klic oddaljene procedure je, ko računalniški program povzroči izvedbo procedure v drugem naslovnem prostoru, kodiran kot klic lokalne procedure, ne da bi programer izrecno navedel podrobnosti za oddaljeno interakcijo. Programer napiše v bistvu isto kodo, ne glede na to, ali je podprogram lokalni za izvajajoči se program ali oddaljen. To je oblika interakcije med odjemalcem in strežnikom, ki se izvaja prek sistema za posredovanje sporočil zahteva-odgovor.
Model RPC pomeni preglednost lokacije da so klicni postopki večinoma enaki, bodisi lokalni ali oddaljeni. Običajno nista enaka, tako da je lokalne klice mogoče ločiti od oddaljenih. Oddaljeni klici so običajno za velikostni red počasnejši in manj zanesljivi kot lokalni klici, zato jih je pomembno razlikovati.
RPC so oblika medprocesne komunikacije (IPC), saj imajo različni procesi različne naslovne prostore. Imajo različne virtualne naslovne prostore na istem gostiteljskem računalniku, čeprav je fizični naslovni prostor enak. Če sta na različnih gostiteljih, je fizični naslovni prostor drugačen.
Kako narediti oddaljeni klic postopka
Kličeče okolje je začasno ustavljeno, parametri postopka se po omrežju prenesejo v okolje, kjer naj se postopek izvede, in postopek se tam izvede.
Ko se postopek konča in proizvede rezultate, se prenese nazaj v klicno okolje, kjer se izvajanje nadaljuje, kot da bi se vrnil iz rednega klica procedure.
OPOMBA: RPC je še posebej primeren za interakcijo med odjemalcem in strežnikom (npr. poizvedba-odziv), v kateri se tok nadzora izmenjuje med kličočim in klicanim. Konceptualno se odjemalec in strežnik ne izvajata hkrati; namesto tega nit izvajanja skoči s klicatelja na klicanca in nato spet nazaj.
Vrste RPC
V operacijskem sistemu obstajajo tri vrste klicev oddaljenih postopkov (RPC), kot so:
1. Povratni klic RPC
Ta vrsta RPC omogoča paradigmo P2P med sodelujočimi procesi. Pomaga procesu, da je hkrati storitev odjemalca in strežnika. RPC povratnega klica ima naslednje funkcije, kot so:
povezani seznam in arraylist
- Daljinsko obdelane težave z interaktivno aplikacijo.
- Ponuja strežnik z obravnavo strank.
- Povratni klic povzroči, da odjemalski proces čaka.
- Upravljanje zastojev povratnih klicev.
- Omogoča paradigmo enakovrednega med sodelujočimi procesi.
2. Oddajanje RPC
Broadcast RPC je zahteva odjemalca, ki se oddaja v omrežju in jo obdelajo vsi strežniki z metodo za obdelavo te zahteve. Broadcast RPC ima naslednje funkcije, kot so:
- Omogoča vam, da določite, da mora biti sporočilo zahteve odjemalca oddano.
- Lahko deklarirate oddajna vrata.
- Pomaga zmanjšati obremenitev fizičnega omrežja.
3. RPC v paketnem načinu
RPC v paketnem načinu pomaga postaviti v čakalno vrsto, ločiti zahteve RPC v medpomnilniku za prenos na strani odjemalca in jih nato poslati v omrežju v enem paketu na strežnik. RPC v paketnem načinu ima naslednje funkcije, kot so:
- Zmanjša režijske stroške, povezane s pošiljanjem zahtev, tako da jih v enem paketu pošlje strežniku po omrežju.
- Ta vrsta protokola RPC je učinkovita samo za aplikacijo, ki potrebuje nižje stopnje klicev.
- Potrebuje zanesljiv protokol prenosa.
Kaj počne RPC?
Ko so stavki programa, ki uporabljajo ogrodje RPC, prevedeni v izvršljiv program, je škrbina vključena v prevedeno kodo, ki predstavlja kodo oddaljenega postopka.
Ko se program izvaja in je izdan klic procedure, škrbina prejme zahtevo in jo posreduje odjemalskemu izvajalnemu programu v lokalnem računalniku. Ko je škrbina odjemalca prvič priklicana, vzpostavi stik z imenskim strežnikom, da določi transportni naslov, kjer se strežnik nahaja.
Odjemalski izvajalni program ve, kako nasloviti oddaljeni računalnik in strežniško aplikacijo ter pošlje sporočilo po omrežju, ki zahteva oddaljeni postopek. Podobno strežnik vključuje izvajalni program in škrbino, ki se povezuje s samim oddaljenim postopkom, protokoli za odziv in zahtevo pa se vrnejo na enak način.
Značilnosti RPC
V operacijskem sistemu ima klic oddaljene procedure (RPC) naslednje funkcije, kot so:
- RPC pred uporabnikom skrije zapletenost postopka posredovanja sporočil.
- RPC uporablja samo določene plasti modela OSI, kot je transportna plast.
- Odjemalci lahko komunicirajo s strežnikom z uporabo jezikov višje ravni.
- RPC dobro deluje tako z lokalnimi kot oddaljenimi okolji.
- Program RPC je napisan v preprosti kodi in ga programer zlahka razume.
- Operacijski sistem zlahka upravlja procese in niti, vključene v RPC.
- Operacijski sistem skrije abstrakcije RPC pred uporabnikom.
Kako deluje RPC?
Ko je priklican klic oddaljene procedure, je klicno okolje začasno ustavljeno, parametri procedure se prenesejo po omrežju v okolje, kjer naj bi se procedura izvajala, in procedura se nato izvede v tem okolju.
natisni niz v javi
Ko se postopek konča, se rezultati prenesejo nazaj v klicno okolje, kjer se izvajanje nadaljuje, kot da bi se vrnil iz običajnega klica procedure.
Klic oddaljene procedure (RPC) deluje v naslednjih korakih v operacijskem sistemu:
Korak 1: Odjemalec, odjemalska škrbina in izvajalni čas RPC se izvajajo na odjemalskem računalniku.
2. korak: Odjemalec zažene proces škrbine odjemalca s posredovanjem parametrov na običajen način. Pokliče se pakiranje parametrov postopka ranžiranje . Odjemalska škrbina shranjuje v odjemalčev lastni naslovni prostor in tudi zahteva lokalno RPC Runtime, da pošlje nazaj v strežniško škrbino.
3. korak: Na tej stopnji lahko uporabnik dostopa do RPC z običajnim lokalnim proceduralnim klicem. RPC Runtime upravlja prenos sporočil med omrežjem prek odjemalca in strežnika ter opravlja tudi delo ponovnega prenosa, potrditve, usmerjanja in šifriranja.
4. korak: Po končanem strežniškem postopku se vrne v škrbino strežnika, ki zapakira (maršalira) vrnjene vrednosti v sporočilo. Strežniška škrbina nato pošlje sporočilo nazaj transportnemu sloju.
5. korak: V tem koraku transportna plast pošlje nazaj sporočilo o rezultatu odjemalski transportni plasti, ta pa vrne sporočilo odjemalski škrbini.
6. korak: V tej fazi odjemalska škrbina demaršira (razpakira) povratne parametre v dobljenem paketu in postopek izvajanja se vrne klicatelju.
Težave s klicem oddaljenih postopkov (RPC)
V operacijskem sistemu se je klic oddaljene procedure ali RPC soočil z nekaterimi težavami, ki jih je treba obravnavati, kot so:
q4 mesece
1. RPC Runtime
Izvajalni sistem RPC je knjižnica rutin in storitev, ki upravljajo omrežne komunikacije, ki so osnova mehanizma RPC. Med klicem RPC koda izvajalnega sistema na strani odjemalca in strežnika obravnava vezavo, vzpostavi komunikacijo prek ustreznega protokola, posreduje podatke klica med odjemalcem in strežnikom ter obravnava komunikacijske napake.
uri proti url
2. škrbina
Funkcija škrbine je zagotoviti preglednost aplikacijske kode, ki jo je napisal programer.
3. Vezava
Kako stranka ve, koga naj pokliče in kje je servis?
Najbolj prilagodljiva rešitev je uporaba dinamične vezave in iskanje strežnika v času izvajanja, ko je RPC prvič narejen. Ko je škrbina odjemalca prvič priklicana, vzpostavi stik z imenskim strežnikom, da določi transportni naslov, na katerem se strežnik nahaja. Vezava je sestavljena iz dveh delov:
4. Klicna semantika, povezana z RPC
V glavnem je razvrščen v naslednje izbire,
Značilnosti RPC
Tukaj so bistvene značilnosti oddaljenega klica postopkov:
- Klicana procedura je v drugem procesu, ki se verjetno nahaja v drugem stroju.
- Procesi si ne delijo naslovnega prostora.
- Parametri se posredujejo samo z vrednostmi.
- RPC se izvaja v okolju strežniškega procesa.
- Ne ponuja dostopa do okolja klicne procedure.
Prednosti RPC
Tukaj je nekaj prednosti ali koristi RPC, kot so:
- Metoda RPC pomaga odjemalcem komunicirati s strežniki z običajno uporabo klicev procedur v jezikih visoke ravni.
- Metoda RPC je oblikovana na podlagi klica lokalne procedure, vendar bo procedura najverjetneje izvedena v drugem procesu in običajno v drugem računalniku.
- RPC podpira procesne in nitno usmerjene modele.
- RPC skrije notranji mehanizem za posredovanje sporočil pred uporabnikom.
- Napor, potreben za ponovno pisanje in ponovni razvoj kode, je minimalen.
- Oddaljene klice postopkov je mogoče uporabiti za distribucijo in lokalno okolje.
- Za izboljšanje zmogljivosti vključi številne plasti protokola.
- RPC zagotavlja abstrakcijo. Na primer, narava prenosa sporočil v omrežni komunikaciji ostane skrita uporabniku.
- RPC omogoča uporabo aplikacij v porazdeljenem okolju, ki ni samo v lokalnem okolju.
- S kodo RPC so prizadevanja za ponovno pisanje in ponovni razvoj minimalna.
- Procesno usmerjeni modeli in modeli, usmerjeni v niti, ki jih podpira RPC.
Slabosti RPC
Tukaj je nekaj pomanjkljivosti ali slabosti uporabe RPC, kot so:
- Oddaljeni klic postopka posreduje parametre samo po vrednostih in vrednostih kazalcev, kar ni dovoljeno.
- Čas klica (in vrnitve) oddaljenega postopka (tj. režijski stroški) je lahko bistveno nižji od lokalnega postopka.
- Ta mehanizem je zelo občutljiv na napake, saj vključuje komunikacijski sistem, drug stroj in drug proces.
- Koncept RPC je mogoče implementirati na različne načine, kar pa ne more biti standardno.
- Ne ponuja nobene prilagodljivosti v RPC za arhitekturo strojne opreme, saj večinoma temelji na interakciji.
- Zaradi klica postopka na daljavo se postopek podraži.