Razlika med RPC in RMI

RPC proti RMI
 

Osnovna razlika med RPC in RMI je, da je RPC mehanizem, ki omogoča klic postopka na oddaljenem računalniku, medtem ko je RMI implementacija RPC v javi. RPC je jezikovno nevtralen, vendar podpira le primitivne tipe podatkov, ki jih je treba posredovati. Po drugi strani je RMI omejen na Javo, vendar omogoča prehajanje predmetov. RPC sledi tradicionalnim procesnim jezikovnim konstrukcijam, medtem ko RMI podpira objektno usmerjeno zasnovo.

Kaj je RPC?

RPC, ki pomeni oddaljeni klic postopka, je vrsta medprocesne komunikacije. To omogoča klicanje funkcije v drugem procesu, ki se izvaja v lokalnem ali oddaljenem računalniku. Ta koncept se je pojavil že zdavnaj leta 1980, toda prva znana izvedba je bila videti v Unixu.

RPC vključuje več korakov. Stranka pokliče postopek v lokalnem računalniku kot običajno. Modul, ki se imenuje odjemalca, zbira argumente in ustvari sporočilo in preide v operacijski sistem, operacijski sistem pokliče sistem in to sporočilo pošlje oddaljenemu računalniku. Operacijski sistem v strežniku zbere sporočilo in preide v modul na strežniku, imenovan strežniška škrbina. Nato strežnik strežnika pokliče postopek na strežniku. Končno se rezultati pošljejo stranki nazaj.

Prednost uporabe RPC je, da je neodvisen od podrobnosti o omrežju. Programer mora samo določiti abstraktno, medtem ko bo operacijski sistem skrbel za podrobnosti o notranjem omrežju. To olajša programiranje in omogoča RPC delo v katerem koli omrežju kljub fizičnim in protokolskim razlikam. Izvedbe RPC so prisotne v vseh glavnih operacijskih sistemih, kot so Unix, Linux, Windows in OS X. RPC je na splošno nevtralen po jeziku, zato omejuje vrste podatkov na najbolj primitivne, saj morajo biti skupni vsem jezikom. Pristop v RPC ni objektno usmerjen, je pa tradicionalni postopkovni mehanizem, kot je na primer v C.

Kaj je RMI?

RMI, ki pomeni kratica oddaljenih metod, je API (aplikacijski programski vmesnik), ki izvaja RPC v javi za podporo objektno usmerjene narave. To omogoča klicanje Java metod na drugem virtualnem stroju Java, ki prebiva v istem računalniku ali na oddaljenem. Omejitev RMI je, da se lahko prikličejo samo Java metode, vendar ima to prednost, da se predmeti lahko prenesejo kot argumenti in vrnejo vrednosti. Ko se šteje za delovanje, je RMI počasnejši od RPC zaradi vključitve bajt kode na virtualni stroj Java, vendar je RMI zelo prijazen programerjem in je zelo enostaven za uporabo.

RMI uporablja vgrajene varnostne mehanizme na Javi in ​​daje tudi tovarno vtičnic, ki omogoča uporabo protokolov transportnih plasti po meri, ki niso TCP. Poleg tega RMI ponuja metode za obhod požarnih zidov. Koraki v RMI so podobni RPC-ju. Izvajanje RMI skrbi za podrobnosti o notranjem omrežju, kjer programerju ni treba skrbeti zanje.

Kakšna je razlika med RPC in RMI?

• RPC je jezikovno nevtralen, medtem ko je RMI omejen na Javo.

• RPC je postopkovna kot pri C, vendar je RMI objektno usmerjena.

• RPC podpira samo primitivne vrste podatkov, medtem ko RMI omogoča, da se predmeti posredujejo kot argumenti in vrnejo vrednosti. Pri uporabi RPC mora programer razdeliti vse sestavljene predmete na primitivne vrste podatkov.

• RMI je enostavno programirati ta RPC.

• RMI je počasnejši od RPC, saj RMI vključuje izvajanje java bytecode.

• RMI omogoča uporabo oblikovalskih vzorcev zaradi objektno usmerjene narave, medtem ko RPC nima te zmožnosti.

Povzetek:

RPC proti RMI

RPC je jezikovno nevtralen mehanizem, ki omogoča klic postopka na oddaljenem računalniku. Vendar jezikovno nevtralna funkcija omejuje vrste podatkov, ki se posredujejo kot argumente, in vrne vrednosti na primitivne tipe. RMI je implementacija RPC v Javi in ​​podpira tudi prehajanje predmetov, kar olajša življenje programerju. Prednost RMI je objektno usmerjena podpora oblikovanja, omejitev na Java pa je pomanjkljivost.

Vljudnost slik:

  1. Sinhrono proti asinhronemu RPC s podjetjem CAPS (CC BY-SA 3.0)