Razlika između RPC i RMI

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 15 Svibanj 2024
Anonim
Understanding statistical significance
Video: Understanding statistical significance

Sadržaj


RPC i RMI mehanizmi su koji omogućuju klijentu da se poziva na postupak ili metodu s poslužitelja uspostavljanjem komunikacije između klijenta i poslužitelja. Uobičajena razlika između RPC-a i RMI-a je ta što RPC podržava proceduralno programiranje dok RMI podržava objektno orijentirano programiranje.

Još jedna glavna razlika između njih je da se parametri proslijeđeni na udaljeni postupak poziva sastoje od obične strukture podataka, S druge strane, parametri proslijeđeni udaljenom metodom sastoje se od objekti.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbuRPCRMI
podržavaProceduralno programiranje
Objektno orijentirano programiranje
parametriObične strukture podataka prosljeđuju se u udaljene postupke.Predmeti se prenose na udaljene metode.
efikasnostNiži od RMIViše od RPC-a i podržano modernim pristupom programiranju (tj. Objektno orijentirane paradigme)
opći troškoviViše
Manje komparativno
Parametri ulaza su obavezni.DaNije nužno
Osiguranje jednostavnosti programiranja
visok
nizak


Definicija RPC-a

Poziv na daljinski postupak (RPC) je značajka programskog jezika dizajnirana za raspodijeljeno računanje i na temelju semantike lokalni postupak poziva. To su najčešći oblici daljinske usluge i osmišljen je kao način da se apstraktno nazove mehanizam poziva za uporabu između sustava povezanih putem mreže. Slično je IPC mehanizmu gdje operativni sustav dopušta procesima da upravljaju zajedničkim podacima i bave se okruženjem u kojem se različiti procesi izvode na zasebnim sustavima i nužno zahtijevaju komunikaciju zasnovanu na njima.

Da razumemo kako se RPC implementira kroz dane korake:

  • Klijentski proces poziva klijentovu štiklu s parametrima i njezino izvršavanje je obustavljeno dok poziv nije završen.
  • Parametri se zatim prevode u oblik neovisan o stroju marširanjem kroz ispravak klijenta. Tada je pripremljen sadržaj koji sadrži reprezentaciju parametara.
  • Da bi pronašao identitet web mjesta, klijent ubuduće komunicira s poslužiteljem imena na kojem postoji udaljeni postupak.
  • Korištenjem protokola za blokiranje klijent se skida na web mjesto na kojem postoji udaljeni poziv procedure. Ovaj korak zaustavlja klijentski korak dok ne dobije odgovor.


  • Web mjesto poslužitelja prima poslano s klijentske strane i pretvara ga u određeni format uređaja.
  • Sada Stub poslužitelja izvršava poziv na poslužiteljskoj proceduri zajedno s parametrima, a ispadanje poslužitelja prekida se dok se postupak ne dovrši.
  • Postupak poslužitelja vraća generirane rezultate na ispražnju poslužitelja, a rezultati se pretvaraju u oblik neovisan o stroju na ulazu poslužitelja i stvaraju sadržane rezultate.
  • Rezultat se šalje klijentu koji se pretvara u uređaj poseban format pogodan za klijentu.
  • Na posljednjem klijentu, stub vraća rezultate na proces klijenta.

Definicija RMI-a

Daljinski poziv (RMI) sličan je RPC-u, ali je specifičan za jezik i odlika jave. Niti je dopušteno pozivanje metode na udaljenom objektu. Da bi održao transparentnost na strani klijenta i poslužitelja, implementira udaljeni objekt pomoću uboda i kostura. Stub se nalazi kod klijenta i za udaljeni se objekt ponaša kao proxy.

Kada klijent nazove udaljenu metodu, naziva se omamljivanje udaljene metode. Klijent je odgovoran za kreiranje i korištenje parcele koja sadrži naziv metode i maršarane parametre, a kostur je odgovoran za primanje paketa.

Kostur uništava parametre i poziva željenu metodu na poslužitelju. Kostur nadoknađuje zadanu vrijednost (ili iznimke) s paketom i šalje je klijentu. Stub ponovno sastavlja povratnu pošiljku i šalje je klijentu.

U Javi se parametri prosljeđuju metodama i vraćaju u obliku reference. Ovo može biti problematično za RMI uslugu jer nisu svi objekti možda udaljene metode. Dakle, mora utvrditi koji bi se mogli smatrati referencama, a koji ne.

Java koristi postupak nazvan kao serialization gdje se predmeti prenose kao vrijednost. Udaljeni objekt lokaliziran je prolazna vrijednost. Objekt također može proslijediti referencom putem prenosa udaljene reference na objekt zajedno s URL-om klase stub. Prolaz referencom ograničava ubod udaljenog objekta.

  1. RPC podržava paradigme proceduralnog programiranja tako da se temelji na C, dok RMI podržava objektno programirane paradigme programiranja i temelji se na javi.
  2. Parametri proslijeđeni udaljenim procedurama u RPC-u su obične strukture podataka. Naprotiv, RMI prenosi objekte kao parametar u udaljenu metodu.
  3. RPC se može smatrati starijom verzijom RMI-a, a koristi se u programskim jezicima koji podržavaju proceduralno programiranje i može se koristiti samo metodom pass by value. Suprotno tome, RMI objekt osmišljen je na temelju suvremenog programskog pristupa, koji može koristiti prolazne vrijednosti ili reference. Još jedna prednost RMI je da se parametri proslijeđeni referencom mogu mijenjati.
  4. RPC protokol stvara više režijskih troškova nego RMI.
  5. Parametri proslijeđeni u RPC moraju biti "u-out"Što znači da vrijednost proslijeđena u postupak i vrijednost izlaza moraju imati iste vrste podataka. Suprotno tome, ne postoji prisiljavanje prolaska "u-outParametara u RMI-u.
  6. U RPC-u reference ne mogu biti vjerojatne jer dva procesa imaju različit adresni prostor, ali moguća je u slučaju RMI.

Zaključak

I RPC i RMI služe istoj svrsi, ali se koriste u jezicima koji podržavaju različite programske paradigme, pa imaju različite značajke.