Erinevus RPC ja RMI vahel

Sisukord:

Erinevus RPC ja RMI vahel
Erinevus RPC ja RMI vahel

Video: Erinevus RPC ja RMI vahel

Video: Erinevus RPC ja RMI vahel
Video: Esimesed sammud aktsiate ostmiseks 2024, Oktoober
Anonim

RPC vs RMI

Põhiline erinevus RPC ja RMI vahel seisneb selles, et RPC on mehhanism, mis võimaldab kaugarvutis protseduuri kutsuda, samas kui RMI on RPC juurutamine Javas. RPC on keeleneutraalne, kuid toetab edastatavaid primitiivseid andmetüüpe. Teisest küljest on RMI piiratud Javaga, kuid võimaldab objekte läbida. RPC järgib traditsioonilisi protseduurilise keele konstruktsioone, samas kui RMI toetab objektorienteeritud disaini.

Mis on RPC?

RPC, mis tähistab kaugprotseduurikõnet, on protsessidevahelise suhtluse tüüp. See võimaldab kutsuda funktsiooni mõnes teises protsessis, mis töötab kohalikus arvutis või kaugarvutis. See kontseptsioon tekkis juba ammu 1980. aastal, kuid esimest kuulsat teostust nähti Unixis.

RPC hõlmab mitut etappi. Klient teeb kohalikus arvutis protseduurikõne nagu tavaliselt. Moodul nimega client stub kogub argumendid ja loob sõnumi ning edastab operatsioonisüsteemile, operatsioonisüsteem teeb süsteemikõne ja saadab selle sõnumi kaugarvutisse. Serveris olev operatsioonisüsteem kogub teate ja edastab selle serveri moodulile, mida nimetatakse serveri tünnaks. Seejärel kutsub serveri stub serveris protseduuri. Lõpuks saadetakse tulemused kliendile tagasi.

RPC kasutamise eeliseks on see, et see ei sõltu võrgu üksikasjadest. Programmeerija peab lihts alt määrama abstraktselt, samal ajal kui operatsioonisüsteem hoolitseb sisevõrgu üksikasjade eest. Seega muudab see programmeerimise lihtsamaks ja võimaldab RPC-l töötada mis tahes võrgus, hoolimata füüsilistest ja protokollilistest erinevustest. RPC-rakendused on olemas kõigis tavalistes operatsioonisüsteemides, nagu Unix, Linux, Windows ja OS X. RPC on üldiselt keeleneutraalne, seega piirab see andmetüüpe kõige primitiivsemate andmetüüpidega, kuna need peavad olema ühised kõikidele keeltele. RPC lähenemine ei ole objektorienteeritud, vaid see on traditsiooniline protseduuriline mehhanism nagu C.

Erinevus RPC ja RMI vahel
Erinevus RPC ja RMI vahel
Erinevus RPC ja RMI vahel
Erinevus RPC ja RMI vahel

Mis on RMI?

RMI, mis tähistab kaugmeetodi kutsumist, on API (rakenduse programmeerimisliides), mis rakendab javas RPC-d, et toetada objektorienteeritud olemust. See võimaldab kutsuda Java meetodeid teises Java virtuaalmasinas, mis asub samas arvutis või kaugarvutis. RMI piirang seisneb selles, et saab kutsuda ainult Java meetodeid, kuid sellega kaasneb eelis, et objekte saab edastada argumentidena ja tagastada väärtusi. Kui arvestada jõudlust, on RMI aeglasem kui RPC, kuna Java virtuaalmasinas on baitkood, kuid RMI on väga programmeerijasõbralik ja seda on väga lihtne kasutada.

RMI kasutab Java sisseehitatud turvamehhanisme ja annab ka soklitehase, mis võimaldab kasutada mitte-TCP kohandatud transpordikihi protokolle. Lisaks pakub RMI meetodeid tulemüüridest mööda hiilimiseks. RMI-s esinevad sammud on sarnased RPC-ga. RMI juurutamine hoolitseb sisevõrgu üksikasjade eest, kui programmeerija ei pea nende pärast muretsema.

Mis vahe on RPC ja RMI vahel?

• RPC on keeleneutraalne, samas kui RMI on piiratud Javaga.

• RPC on protseduuriline nagu C, kuid RMI on objektorienteeritud.

• RPC toetab ainult primitiivseid andmetüüpe, samas kui RMI võimaldab objekte argumentide ja tagastavate väärtustena edastada. RPC kasutamisel peab programmeerija jagama kõik liitobjektid primitiivseteks andmetüüpideks.

• RMI-d on seda RPC-d lihtne programmeerida.

• RMI on aeglasem kui RPC, kuna RMI hõlmab Java baitkoodi täitmist.

• RMI võimaldab objektorienteeritud olemuse tõttu kasutada disainimustreid, samas kui RPC-l seda võimalust pole.

Kokkuvõte:

RPC vs RMI

RPC on keeleneutraalne mehhanism, mis võimaldab kaugarvutis protseduuri kutsuda. Keeleneutraalne funktsioon piirab aga argumentidena edastatavad andmetüübid ja tagastab väärtused primitiivsetele tüüpidele. RMI on RPC juurutamine Javas ja see toetab ka objektide edastamist, muutes programmeerija elu lihtsamaks. RMI eeliseks on objektorienteeritud disaini tugi, kuid Java piiramine on puudus.

Soovitan: