Protokol poziva udaljene procedure (RPC) u distribuiranom sustavu
⚡ Pametni sažetak
Udaljeni poziv procedure (RPC) je protokol za međuprocesnu komunikaciju koji omogućuje programu izvršavanje procedure u drugom adresnom prostoru ili računalu, skrivajući detalje mreže iza običnog lokalnog poziva funkcije u distribuiranim klijent-poslužitelj sustavima.
Što je RPC?
Daljinski postupak poziva (RPC) je međuprocesna komunikacija tehnika koja se koristi za klijent-poslužitelj aplikacije. Puni oblik RPC-a je Remote Procedure Call (Poziv udaljene procedure). RPC mehanizmi se koriste kada računalni program uzrokuje izvršavanje procedure ili potprograma u drugom adresnom prostoru, kodiranom kao normalan poziv procedure bez da programer izričito kodira detalje za udaljenu interakciju.
Ovaj poziv procedure također upravlja protokolima niske razine prijenosa, kao što su UDP i TCP/IP, za prijenos podataka poruke između programa.
Vrste RPC-a
Tri su tipa RPC-a:
- RPC povratnog poziva
- RPC emitiranja
- RPC u skupnom načinu rada
RPC povratnog poziva
Ova vrsta RPC-a omogućuje peer-to-peer (P2P) paradigmu između procesa koji sudjeluju. Pomaže procesu da djeluje i kao klijent i kao poslužitelj.
Funkcije povratnog poziva RPC:
- Rješava probleme interaktivnih aplikacija obrađenih na daljinu.
- Pruža poslužitelju identifikator klijenta.
- Povratni poziv tjera klijentski proces da čeka.
- Upravlja zastojima povratnih poziva.
- Omogućuje peer-to-peer paradigmu među sudjelujućim procesima.
RPC emitiranja
Broadcast RPC je klijentski zahtjev koji se emitira na mreži i obrađuje od strane svih poslužitelja koji imaju metodu za obradu tog zahtjeva.
Funkcije emitiranog RPC-a:
- Omogućuje vam da odredite da se poruka zahtjeva klijenta mora emitirati.
- Možete deklarirati portove emitiranja.
- Pomaže u smanjenju opterećenja fizičke mreže.
RPC u skupnom načinu rada
RPC u paketnom načinu rada pomaže u stavljanju odvojenih RPC zahtjeva u red čekanja u međuspremniku za prijenos na strani klijenta, a zatim njihovom slanju preko mreže u jednom paketu na poslužitelj.
Funkcije RPC-a u paketnom načinu rada:
- Minimizira opterećenje potrebno za slanje zahtjeva jer šalje zahtjeve preko mreže u jednoj seriji na poslužitelj.
- Ova vrsta RPC protokola je učinkovita samo za aplikacije kojima su potrebne niže brzine poziva.
- Potreban je pouzdan protokol prijenosa.
RPC Architektura
RPC arhitektura ima uglavnom pet komponenti programa:
- Klijent
- Stub klijenta
- RPC Runtime
- Server Stub
- Server
RPC Architektura
Kako radi RPC?
Tijekom RPC procesa odvijaju se sljedeći koraci:
Korak 1) Klijent, klijentski stub i jedna instanca RPC runtime okruženja izvršavaju se na klijentskom računalu.
Korak 2) Klijent pokreće proces klijentskog stuba prosljeđivanjem parametara na uobičajeni način. Klijentski stub pohranjuje se unutar vlastitog adresnog prostora klijenta. Također traži od lokalnog RPC Runtimea da pošalje zahtjev poslužiteljskom stubu.
Korak 3) U ovoj fazi korisnik pristupa RPC-u upućivanjem redovnog lokalnog poziva procedure. RPC Runtime upravlja prijenosom poruka između klijenta i poslužitelja preko mreže. Također obavlja posao ponovnog prijenosa, potvrde, usmjeravanja i šifriranja.
Korak 4) Nakon završetka serverske procedure, izvršenje se vraća na server stub, koji pakira (maršira) povratne vrijednosti u poruku. Server stub zatim šalje poruku natrag transportnom sloju.
Korak 5) U ovom koraku, transportni sloj šalje rezultatnu poruku natrag transportnom sloju klijenta, koji vraća poruku klijentskom stubu.
Korak 6) U ovoj fazi, klijentski stub demaršira (raspakira) povratne parametre u rezultirajućem paketu, a izvršenje se vraća pozivatelju.
Karakteristike RPC-a
Evo osnovnih karakteristika RPC-a:
- Pozvana procedura se nalazi u drugom procesu, koji se vjerojatno nalazi na drugom računalu.
- Procesi ne dijele adresni prostor.
- Parametri se prosljeđuju samo vrijednostima.
- RPC se izvršava unutar okruženja poslužiteljskog procesa.
- Ne nudi pristup okruženju pozivajuće procedure.
Značajke RPC-a
Evo važnih značajki RPC-a:
- Jednostavna sintaksa poziva.
- Nudi poznatu semantiku.
- Pruža dobro definirano sučelje.
- Može komunicirati između procesa na istim ili različitim strojevima.
Prednosti RPC-a
Evo prednosti/koristi RPC-a:
- RPC pomaže klijentima da komuniciraju s poslužiteljima putem konvencionalne upotrebe poziva procedura u programskim jezicima visoke razine.
- RPC je modeliran prema lokalnom pozivu procedure, ali pozvana procedura se najvjerojatnije izvršava u drugom procesu i obično na drugom računalu.
- RPC podržava modele orijentirane na procese i modele orijentirane na niti.
- RPC skriva interni mehanizam prenošenja poruka od korisnika.
- Obvezuje mnoge slojeve protokola radi poboljšanja performansi.
- RPC pruža abstracna primjer, priroda mrežne komunikacije putem prenošenja poruka ostaje skrivena od korisnika.
- RPC se može koristiti i u distribuiranim i u lokalnim okruženjima.
- Napor potreban za ponovno pisanje i ponovni razvoj koda je minimalan.
Nedostaci RPC-a
Evo nedostataka/nedostataka korištenja RPC-a:
- Udaljeni poziv procedure prosljeđuje parametre samo po vrijednostima; vrijednosti pokazivača (reference) nisu dopuštene.
- Vrijeme poziva (i povratka) udaljene procedure - opće vrijeme - znatno je veće nego kod lokalne procedure.
- Ovaj mehanizam je vrlo osjetljiv na kvarove jer uključuje komunikacijski sustav, drugi stroj i drugi proces.
- RPC koncept se može implementirati na različite načine, tako da ne postoji jedinstveni standard.
- Ne nudi fleksibilnost za hardversku arhitekturu, jer je uglavnom temeljena na interakciji.
- Trošak procesa se povećava zbog poziva udaljene procedure.


