Razlika med RPC in RMI

Kazalo:

Razlika med RPC in RMI
Razlika med RPC in RMI

Video: Razlika med RPC in RMI

Video: Razlika med RPC in RMI
Video: RPC и REST — в чём разница? Часть 1: RPC 2024, Oktober
Anonim

RPC proti RMI

Osnovna razlika med RPC in RMI je v tem, da je RPC mehanizem, ki omogoča priklic procedure na oddaljenem računalniku, medtem ko je RMI implementacija RPC v Javi. RPC je jezikovno nevtralen, vendar podpira samo primitivne vrste podatkov, ki jih je treba posredovati. Po drugi strani je RMI omejen na Javo, vendar omogoča posredovanje objektov. RPC sledi konstrukcijam tradicionalnega proceduralnega jezika, medtem ko RMI podpira objektno usmerjeno zasnovo.

Kaj je RPC?

RPC, kar pomeni Remote Procedure Call, je vrsta komunikacije med procesi. To omogoča klicanje funkcije v drugem procesu, ki se izvaja v lokalnem ali oddaljenem računalniku. Ta koncept se je pojavil davnega leta 1980, vendar je bila prva znana implementacija opažena v Unixu.

RPC vključuje več korakov. Odjemalec izvede klic procedure na lokalnem računalniku kot običajno. Modul, imenovan odjemalska škrbina, zbere argumente in ustvari sporočilo ter ga posreduje operacijskemu sistemu, operacijski sistem pa opravi sistemski klic in to sporočilo pošlje oddaljenemu računalniku. Operacijski sistem v strežniku zbere sporočilo in ga posreduje modulu na strežniku, imenovanem strežniška škrbina. Nato strežniška škrbina pokliče proceduro na strežniku. Končno se rezultati pošljejo nazaj stranki.

Prednost uporabe RPC je, da je neodvisen od podrobnosti omrežja. Programer mora samo navesti na abstrakten način, medtem ko bo operacijski sistem skrbel za podrobnosti notranjega omrežja. To torej poenostavi programiranje in omogoča, da RPC deluje v katerem koli omrežju kljub fizičnim in protokolarnim razlikam. Implementacije RPC so prisotne v vseh običajnih operacijskih sistemih, kot so Unix, Linux, Windows in OS X. RPC je na splošno jezikovno nevtralen, zato omejuje vrste podatkov na najbolj primitivne, saj morajo biti skupni vsem jezikom. Pristop v RPC ni objektno usmerjen, ampak je tradicionalni proceduralni mehanizem, kot v C.

Razlika med RPC in RMI
Razlika med RPC in RMI
Razlika med RPC in RMI
Razlika med RPC in RMI

Kaj je RMI?

RMI, kar pomeni Remote Method Invocation, je API (Application Programming Interface), ki izvaja RPC v Javi za podporo objektno usmerjeni naravi. To omogoča klicanje metod Java na drugem navideznem računalniku Java, ki je v istem ali oddaljenem računalniku. Omejitev RMI je, da je mogoče priklicati samo metode Java, vendar ima to prednost, da se objekti lahko posredujejo kot argumenti in vrnejo vrednosti. Ko se obravnava zmogljivost, je RMI počasnejši od RPC zaradi vpletenosti bajtne kode v navidezni stroj Java, vendar je RMI programerju zelo prijazen in je zelo enostaven za uporabo.

RMI uporablja vgrajene varnostne mehanizme v Javi in nudi tudi tovarno vtičnic, ki omogoča uporabo protokolov transportne plasti po meri, ki niso TCP. Poleg tega RMI ponuja metode za obhod požarnih zidov. Koraki, ki se zgodijo v RMI, so podobni RPC. Implementacija RMI skrbi za podrobnosti notranjega omrežja, 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 proceduralen kot v C, RMI pa je objektno usmerjen.

• RPC podpira samo primitivne vrste podatkov, medtem ko RMI omogoča posredovanje objektov kot argumentov in vrnjenih vrednosti. Pri uporabi RPC mora programer vse sestavljene objekte razdeliti na primitivne tipe podatkov.

• RMI je enostaven za programiranje tega RPC.

• RMI je počasnejši od RPC, ker RMI vključuje izvajanje bajtne kode java.

• 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 klicanje procedure na oddaljenem računalniku. Vendar jezikovno nevtralna funkcija omejuje tipe podatkov, ki se posredujejo kot argumenti in vrnejo vrednosti na primitivne tipe. RMI je implementacija RPC v Javi in podpira tudi posredovanje objektov, kar olajša življenje programerju. Prednost RMI je podpora za objektno usmerjeno načrtovanje, omejitev na Javo pa je slabost.

Priporočena: