Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp RPC ir RMI

RPC ir RMI yra mechanizmai, leidžiantys klientui iš serverio kreiptis į procedūrą arba metodą, nustatant ryšį tarp kliento ir serverio. Bendras skirtumas tarp RPC ir RMI yra tai, kad RPC palaiko tik procedūrinį programavimą, o RMI palaiko į objektą orientuotą programavimą .

Kitas didelis skirtumas tarp šių dviejų yra tas, kad parametrai, perduoti nuotolinėms procedūroms, susideda iš paprastų duomenų struktūrų . Kita vertus, nuotoliniam metodui perduoti parametrai susideda iš objektų .

Palyginimo diagrama

Palyginimo pagrindasRPCRMI
PalaikoProcedūrinis programavimas
Objektinis programavimas
ParametraiPaprastosios duomenų struktūros perduodamos nuotolinėms procedūroms.Objektai perduodami nuotoliniams metodams.
EfektyvumasMažesnis nei RMIDaugiau nei RPC ir remiami šiuolaikinio programavimo metodai (ty į objektą orientuotos paradigmos)
Pridėtinės išlaidosDaugiau
Mažiau palyginti
In-out parametrai yra privalomi.TaipNebūtinai
Supaprastintas programavimas
Aukšta
žemas

RPC apibrėžimas

„Remote Procedure Call“ („RPC“) yra programavimo kalbos funkcija, sukurta paskirstytojo skaičiavimo ir vietinių procedūrų kvietimų semantikos pagrindu. Tai yra labiausiai paplitusios nuotolinio aptarnavimo formos ir buvo sukurta kaip būdas sutrumpinti procedūros skambučių mechanizmą, naudojamą tarp tinklų sujungtų sistemų. Jis yra panašus į IPC mechanizmą, kur operacinė sistema leidžia procesams valdyti bendrus duomenis ir tvarkyti aplinką, kurioje skirtingi procesai vyksta atskirose sistemose ir būtinai reikalingi pranešimams.

Suprasime, kaip RPC įgyvendinama per nurodytus veiksmus:

  • Kliento procesas kviečia kliento stuburą su parametrais, o jo vykdymas sustabdomas, kol skambutis bus baigtas.
  • Tuomet parametrai verčiami į mašiną nepriklausomą formą, surenkant per kliento stuburą. Tada parengiamas pranešimas, kuriame pateikiami parametrų vaizdai.
  • Norėdami rasti svetainės tapatybę, su kuria klientas nesutinka su vardų serveriu, kuriame yra nuotolinė procedūra.
  • Naudojant blokavimo protokolą, kliento stuburas siunčia pranešimą į svetainę, kurioje yra nuotolinio procedūros skambutis. Šis žingsnis sustabdo klientų stuburą, kol jis gauna atsakymą.
  • Serverio svetainė gauna pranešimą, išsiųstą iš kliento pusės, ir konvertuoja jį į kompiuterio formatą.
  • Dabar serverio stuburas atlieka ryšį su serverio procedūra kartu su parametrais, o serverio stuburas nutraukiamas, kol procedūra bus baigta.
  • Serverio procedūra grąžina sugeneruotus rezultatus į serverio stuburą, o rezultatai paverčiami nepriklausomai nuo kompiuterio formato serverio stube ir sukuria pranešimą su rezultatais.
  • Rezultatų pranešimas siunčiamas į kliento stuburą, kuris yra konvertuojamas į kompiuterio formą, tinkantį kliento stubui.
  • Pagaliau klientas, „stub“, grąžina rezultatus kliento procesui.

RMI apibrėžimas

Nuotolinio metodo įvedimas (RMI) yra panašus į RPC, bet yra kalbų specifinis ir java bruožas. Sriegiui leidžiama skambinti į nuotolinį objektą. Siekiant išlaikyti skaidrumą kliento ir serverio pusėje, jis įgyvendina nuotolinį objektą, naudodamas stubus ir skeletus. Stubas yra su klientu ir nuotolinio objekto atžvilgiu jis veikia kaip tarpinis.

Kai klientas skambina nuotoliniu būdu, vadinamas nuotolinio metodo stuburas. Kliento stuburas yra atsakingas už siuntinio sukūrimą ir siuntimą, kuriame yra metodo pavadinimas ir surinkti parametrai, ir skeletas yra atsakingas už siuntinio priėmimą.

Skeletas atveria parametrus ir serveryje skatina norimą metodą. Skeletas renka nurodytą vertę (arba išimtis) su siuntiniu ir siunčia jį kliento kamienui. Stubas surenka grįžtamąjį sklypą ir siunčia jį klientui.

„Java“ parametrai perduodami metodams ir grąžinami kaip nuoroda. Tai gali būti varginantis RMI paslaugai, nes ne visi objektai yra galimi nuotoliniai metodai. Taigi, ji turi nustatyti, kas galėtų būti priimta kaip nuoroda ir kuri negalėjo.

„Java“ naudoja procesą, pavadintą serializavimu, kai objektai perduodami kaip vertė. Nuotolinis objektas lokalizuojamas pagal vertę. Jis taip pat gali perduoti objektą pagal nuorodą, perduodamas nuotolinę nuorodą į objektą kartu su stubo klasės URL. Perduoti pagal nuorodą apriboja nuotolinio objekto stuburą.

Pagrindiniai RPC ir RMI skirtumai

  1. RPC palaiko procedūrinio programavimo paradigmas, todėl yra C, o RMI palaiko į objektą orientuotas programavimo paradigmas ir yra java.
  2. Nuotolinėms procedūroms RPC perduodami parametrai yra įprastos duomenų struktūros. Priešingai, RMI perkelia objektus kaip parametrą į nuotolinį metodą.
  3. RPC gali būti laikoma senesne RMI versija, ir ji naudojama programavimo kalbomis, kurios palaiko procedūrinį programavimą, ir ji gali naudoti tik metodą, pagal kurį vertinama pagal vertę. Priešingai, RMI įrenginys sukurtas remiantis šiuolaikiniu programavimo metodu, kuris galėtų būti naudojamas pagal vertę arba nuorodą. Kitas RMI privalumas yra tas, kad parametrai, perduoti pagal nuorodą, gali būti pakeisti.
  4. RPC protokolas sukuria daugiau pridėtinių išlaidų nei RMI.
  5. RPC perduoti parametrai turi būti „ in-out “, o tai reiškia, kad procedūra, perduodama procedūrai ir išėjimo vertei, turi būti vienodi. Priešingai, nėra prievartos perduoti „ in-out “ parametrus RMI.
  6. RPC nuorodos negalėjo būti tikėtinos, nes abu procesai turi skirtingą adresų erdvę, tačiau tai įmanoma RMI atveju.

Išvada

Tiek RPC, tiek RMI naudojasi tuo pačiu tikslu, tačiau vartojami skirtingose ​​programavimo paradigmose, todėl turi skirtingus bruožus.

Top