Priporočena, 2024

Izbira Urednika

Razlika med RPC in RMI

RPC in RMI sta mehanizma, ki odjemalcu omogočata, da pokliče postopek ali metodo s strežnika z vzpostavitvijo komunikacije med odjemalcem in strežnikom. Skupna razlika med RPC in RMI je, da RPC podpira samo proceduralno programiranje, medtem ko RMI podpira objektno usmerjeno programiranje .

Druga velika razlika med obema je, da so parametri, posredovani k oddaljenim postopkom, sestavljeni iz navadnih podatkovnih struktur . Po drugi strani so parametri, posredovani oddaljeni metodi, sestavljeni iz objektov .

Primerjalna tabela

Podlaga za primerjavoRPCRMI
PodpiraPostopkovno programiranje
Objektno usmerjeno programiranje
ParametriNavadne strukture podatkov se posredujejo oddaljenim postopkom.Objekti se posredujejo oddaljenim metodam.
UčinkovitostNižji od RMIVeč kot RPC in podprta s sodobnim programskim pristopom (tj. Objektno usmerjene paradigme)
Režijski stroškiVeč
Manj primerjalno
Parametri vhodov so obvezni.DaNi nujno
Zagotavljanje enostavnosti programiranja
Visoka
nizko

Opredelitev RPC

Remote Procedure Call (RPC) je funkcija programskega jezika, zasnovana za porazdeljeno računalništvo in temelji na semantiki lokalnih klicev postopkov . To je najpogostejša oblika oddaljene storitve in je bila zasnovana kot način abstraktnega mehanizma klicev v postopku za uporabo med sistemi, ki so povezani prek omrežja. Podobno je mehanizmu IPC, kjer operacijski sistem omogoča procesom, da upravljajo skupne podatke in se ukvarjajo z okoljem, kjer se različni procesi izvajajo na ločenih sistemih in nujno zahtevajo komunikacijo, ki temelji na sporočilih.

Spoznajmo, kako se RPC izvaja z danimi koraki:

  • Odjemalski proces prikliče stranski odjemalec s parametri in njegovo izvajanje se prekine, dokler se klic ne zaključi.
  • Parametre se nato prevedejo v strojno neodvisno obliko, tako da se razdelijo preko odjemalca. Nato se pripravi sporočilo, ki vsebuje predstavitev parametrov.
  • Če želite poiskati identiteto spletnega mesta, se odjemalec komunicira z imenskim strežnikom, na katerem obstaja oddaljeni postopek.
  • Z blokirnim protokolom odjemalec pošlje sporočilo na mesto, kjer obstaja oddaljeni klic postopka. Ta korak ustavi odjemalec, dokler ne dobi odgovora.
  • Spletno mesto strežnika prejme sporočilo, poslano s strani odjemalca, in ga pretvori v strojno specifično obliko.
  • Zdaj strežniški stub izvede klic na strežniškem postopku skupaj s parametri in strežniški stub je prekinjen, dokler postopek ne postane dokončan.
  • Postopek strežnika vrne ustvarjene rezultate v strežniški del, rezultati pa se pretvorijo v strojno neodvisno obliko na strežniškem ogrodju in ustvarijo sporočilo, ki vsebuje rezultate.
  • Sporočilo o rezultatu se pošlje odjemalcu, ki se pretvori nazaj v poseben format stroja, ki je primeren za odjemalec.
  • Na zadnjem odjemalcu se zabojnik vrne rezultate v proces odjemalca.

Opredelitev RMI

Oddaljeno klicanje metode (RMI) je podobno RPC, vendar je specifično za jezik in funkcija jave. Niti je dovoljeno poklicati metodo na oddaljenem predmetu. Da bi ohranili preglednost na odjemalski in strežniški strani, izvaja oddaljene predmete z uporabo škatel in okostnjakov. Stub je nameščen na odjemalcu in za oddaljeni objekt se obnaša kot proxy.

Ko odjemalec pokliče oddaljeno metodo, se zakliče zaklep za oddaljeno metodo. Odjemalec je odgovoren za ustvarjanje in pošiljanje paketa z imenom metode in razporejenih parametrov, skelet pa je odgovoren za sprejem paketa.

Okostje odstrani parametre in zažene želeno metodo na strežniku. Skelet podaja dano vrednost (ali izjeme) s paketom in jo pošlje stranki. Stub ponovno sestavi povratno pošiljko in jo pošlje stranki.

V Javi so parametri posredovani metodam in vrnjeni v referenčni obliki. To lahko povzroči težave pri storitvi RMI, ker niso vsi objekti morda oddaljene metode. Torej mora določiti, kaj bi bilo mogoče posredovati kot referenco in katere ne.

Java uporablja proces, imenovan serijska, kjer se predmeti posredujejo kot vrednost. Oddaljeni predmet je lokaliziran z vrednostjo pass by value. Prav tako lahko posreduje predmet s sklicevanjem, tako da posreduje oddaljeno referenco na objekt skupaj z URL-jem razreda škrbine. Pass by reference omeji ogrodje za oddaljeni predmet.

Ključne razlike med RPC in RMI

  1. RPC podpira proceduralne paradigme programiranja, tako da temelji na C, medtem ko RMI podpira objektno orientirane paradigme programiranja in temelji na javi.
  2. Parametri, oddani oddaljenim postopkom v RPC, so navadne podatkovne strukture. Nasprotno, RMI prenaša objekte kot parameter v oddaljeno metodo.
  3. RPC se lahko šteje za starejšo različico RMI in se uporablja v programskih jezikih, ki podpirajo proceduralno programiranje, in lahko uporablja samo metodo pass by value. V nasprotju s tem je objekt RMI zasnovan na podlagi sodobnega pristopa programiranja, ki bi lahko uporabil prehodno vrednost ali referenco. Druga prednost RMI je, da lahko spremenimo parametre, ki jih posreduje referenca.
  4. Protokol RPC ustvarja več režijskih stroškov kot RMI.
  5. Parametri, ki so bili posredovani v RPC, morajo biti » out-out «, kar pomeni, da morajo imeti vrednost, ki je bila posredovana postopku, in izhodna vrednost enake vrste podatkov. V nasprotju s tem v RMI ni prisiljen prenos parametrov » in-out «.
  6. V RPC referenc ni mogoče verjeti, ker imata oba procesa ločen naslovni prostor, vendar je to mogoče v primeru RMI.

Zaključek

Oba RPC in RMI služita istemu namenu, vendar se uporabljajo v jezikih, ki podpirajo različne paradigme programiranja, zato imajo različne značilnosti.

Top