Skirtumas tarp RPC ir RMI

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 15 Gegužė 2024
Anonim
RPC vs RMI|Difference between rpc and rmi|RPC and RMI difference|Difference between rmi and rpc
Video.: RPC vs RMI|Difference between rpc and rmi|RPC and RMI difference|Difference between rmi and rpc

Turinys


RPC ir RMI yra mechanizmai, kurie suteikia klientui galimybę iš serverio iškviesti procedūrą ar metodą užmezgant ryšį tarp kliento ir serverio. Bendras skirtumas tarp RPC ir RMI yra tas, kad RPC palaiko tik procedūrinis programavimas kadangi RMI palaiko Objektinis programavimas.

Kitas svarbus skirtumas tarp šių dviejų yra tas, kad parametrus, perduotus nuotolinių procedūrų skambučiui, sudaro įprastos duomenų struktūros. Kita vertus, nuotoliniam metodui perduoti parametrai susideda iš daiktai.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasRPCRMI
PalaikoProcedūrinis programavimas
Objektinis programavimas
ParametraiĮprastos duomenų struktūros perduodamos nuotolinėms procedūroms.Objektai perduodami nuotoliniams metodams.
EfektyvumasŽemesnis nei RMIDaugiau nei RPC ir palaikomas šiuolaikiniu programavimo metodu (t. Y. Į objektą orientuotos paradigmos)
Pridėtinės išlaidosDaugiau
Mažiau palyginti
Įvesties parametrai yra privalomi.TaipNebūtinai
Programavimo lengvumas
Aukštas
žemas


RPC apibrėžimas

Nuotolinio proceso iškvietimas (RPC) yra programavimo kalbos funkcija, sukurta paskirstytam skaičiavimui ir pagrįsta vietine tvarka skambučiai. Tai yra labiausiai paplitusios nuotolinių paslaugų formos ir buvo sukurtos kaip būdas atskirti procedūrų iškvietimo mechanizmą, kurį galima naudoti tarp sistemų, sujungtų per tinklą. Tai panašus į IPC mechanizmą, kai operacinė sistema leidžia procesams valdyti bendrus duomenis ir tvarkytis aplinkoje, kurioje skirtingi procesai vykdomi atskirose sistemose ir būtinai reikalauja pagrįsto ryšio.

Supraskime, kaip RPC įgyvendinama atliekant nurodytus veiksmus:

  • Kliento procesas skambina kliento kamščiui su parametrais, o jo vykdymas sustabdomas, kol skambutis bus baigtas.
  • Tada parametrai yra paverčiami į mašiną nepriklausoma forma, skirstant per kliento ruošinį. Tada parengiamas tas, kuriame pateikiami parametrai.
  • Norėdami sužinoti svetainės tapatybę, klientas bendradarbiauja su vardų serveriu, kuriame veikia nuotolinė procedūra.
  • Naudodamas blokavimo protokolą, klientas nukreipia į svetainę, kur egzistuoja nuotolinis procedūrų skambutis. Šis veiksmas sustabdo kliento užsispyrimą, kol jis gaus atsakymą.


  • Serverio svetainė priima išsiųstą iš kliento pusės ir paverčia jį kompiuterio formatu.
  • Dabar serverio ruošinys kartu su parametrais iškviečia serverio procedūrą, o serverio stuburo programa nutraukiama, kol procedūra bus baigta.
  • Serverio procedūra grąžina sugeneruotus rezultatus į serverio kamštį, o rezultatai serverio stubure paverčiami nuo kompiuterio nepriklausomu formatu ir sukuriama rezultatų talpykla.
  • Rezultatas išsiunčiamas kliento kamščiui, kuris paverčiamas atgal į mašinai skirtą formatą, tinkantį kliento kamščiui.
  • Pagaliau klientas nebaigtas grąžina rezultatus į kliento procesą.

RMI apibrėžimas

Nuotolinio metodo iškvietimas (RMI) yra panašus į RPC, tačiau būdingas kalbai ir „Java“ ypatybė. Sriegį leidžiama vadinti metodu nuotoliniame objekte. Norėdami išlaikyti skaidrumą kliento ir serverio pusėje, jis įgyvendina nuotolinį objektą, naudodamas sruogelius ir griaučius. Kamštis yra kliento nuosavybė, o nuotolinio objekto atveju jis elgiasi kaip įgaliotasis asmuo.

Kai klientas skambina nuotoliniu būdu, vadinamas nuotolinio metodo gabalas. Už siuntinio, kuriame nurodytas metodo pavadinimas ir suskirstyti parametrai, sukūrimą ir sudeginimą yra atsakingas kliento klientas, o už siuntinio gavimą yra atsakingas skeletas.

Skeletas panaikina parametrų nustatymus ir serveryje iškviečia norimą metodą. Skeletas įvertina nurodytą vertę (arba išimtis) su siuntiniu ir perduoda ją kliento kamščiui. Stiklas surenka grąžinamą siuntinį ir perduoda jį klientui.

„Java“ programoje parametrai perduodami metodams ir grąžinami kaip nuoroda. Tai gali sukelti problemų RMI tarnybai, nes ne visi objektai yra nuotoliniai metodai. Taigi, jis turi nustatyti, kurios gali būti perduotos kaip nuorodos, o kurios - ne.

„Java“ naudoja procesą, pavadintą serializacija kur objektai perduodami kaip vertė. Nuotolinis objektas yra lokalizuotas pagal reikšmę. Jis taip pat gali perduoti objektą remdamasis nuotoline nuoroda į objektą kartu su strėlės klasės URL. Pravažiavus nuoroda, apribojamas nuotolinio objekto gabalas.

  1. RPC palaiko procedūrinio programavimo paradigmas, taigi yra pagrįstas C, o RMI palaiko į objektą orientuoto programavimo paradigmas ir yra paremtas „Java“.
  2. RPC nuotolinėms procedūroms perduodami parametrai yra įprastos duomenų struktūros. Priešingai, RMI perduoda objektus kaip parametrą nuotoliniam metodui.
  3. RPC gali būti laikoma senesne RMI versija, ji naudojama programavimo kalbomis, palaikančiomis procedūrinį programavimą, ir ji gali būti naudojama tik pagal principą „praleiskite vertę“. Priešingai, RMI priemonė yra sukurta remiantis šiuolaikiniu programavimo metodu, kuris galėtų naudoti reikšmę ar nuorodą. Kitas RMI pranašumas yra tas, kad galima pakeisti parametrus, kuriuos perduodama nuoroda.
  4. RPC protokolas sukuria daugiau pridėtinių išlaidų nei RMI.
  5. RPC perduoti parametrai turi būti „į vidųO tai reiškia, kad procedūrai perduodama vertė ir išvesties vertė turi turėti tuos pačius duomenų tipus. Priešingai, nėra jokio priverstinio artimųjų “į vidų“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 tarnauja tam pačiam tikslui, tačiau vartojami kalbomis palaiko skirtingas programavimo paradigmas, todėl turi savitas savybes.