RPC ja RMI erinevus

RPC vs RMI
 

Põhiline erinevus RPC ja RMI vahel on see, et RPC on mehhanism, mis võimaldab protseduuri välja kutsuda kaugarvutis, samal ajal kui RMI on RPC rakendamine javas. RPC on keeleneutraalne, kuid toetab ainult edastatavaid primitiivseid andmetüüpe. Teisest küljest on RMI piiratud Javaga, kuid võimaldab objektide läbimist. RPC järgib traditsioonilisi protseduurikeele konstruktsioone, samal ajal kui RMI toetab objektorienteeritud kujundamist.

Mis on RPC??

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

RPC hõlmab mitut etappi. Klient teeb kohalikus arvutis protseduurikõne nagu tavaliselt. Moodul nimega klientüksus kogub argumendid ja loob teate ning edastab selle opsüsteemile. Opsüsteem teeb süsteemikõne ja saadab selle teate kaugarvutisse. Serveris olev opsüsteem kogub teate ja edastab serveri moodulile nimega serveri tüvi. Siis kutsub serveri tükk protseduuri serverisse. Lõpuks saadetakse tulemused kliendile tagasi.

RPC kasutamise eeliseks on see, et see on võrgu üksikasjadest sõltumatu. Programmeerija peab lihtsalt abstraktselt täpsustama, samal ajal kui opsüsteem hoolitseb sisevõrgu üksikasjade eest. See teeb programmeerimise lihtsamaks ja laseb RPC-l töötada hoolimata füüsilistest ja protokollilistest erinevustest igas võrgus. RPC rakendused on olemas kõigis tavapärastes opsüsteemides, näiteks Unix, Linux, Windows ja OS X. RPC on üldiselt keeleneutraalne, seega piirab see andmetüüpe kõige primitiivsematega, kuna need peavad olema ühised kõigis keeltes. RPC lähenemisviis ei ole objektorienteeritud, kuid see on traditsiooniline protseduurimehhanism, nagu C puhul.

Mis on RMI?

RMI, mis tähistab kaugmeetodi kutsumist, on API (rakenduseprogrammeerimisliides), mis rakendab jaavas RPC-d objektorienteeritud olemuse toetamiseks. See võimaldab Java-meetodeid helistada mõnes teises või samas arvutis asuvas Java-virtuaalarvutis. RMI piirang on see, et kasutada saab ainult Java-meetodeid, kuid selle eeliseks on see, et objekte saab edastada argumentidena ja tagastatavate väärtustena. Kui jõudlust peetakse RMI-ks aeglasem kui RPC, kuna Java-virtuaalsesse masinasse on kaasatud baidikood, kuid RMI on programmeerijasõbralik ja seda on väga lihtne kasutada.

RMI kasutab Java sisseehitatud turbemehhanisme ja annab ka pistikupesa tehase, mis võimaldab kasutada mitte-TCP kohandatud transpordikihi protokolle. Lisaks pakub RMI meetodeid tulemüüridest möödahiilimiseks. RMI-s toimuvad sammud on sarnased RPC-ga. RMI rakendamine hoolitseb sisevõrgu üksikasjade eest, kus 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 puhul, kuid RMI on objektorienteeritud.

• RPC toetab ainult primitiivseid andmetüüpe, samas kui RMI lubab objekte edastada argumentidena ja tagasiväärtustena. RPC kasutamisel peab programmeerija jagama kõik ühendobjektid primitiivseteks andmetüüpideks.

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

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

• RMI lubab objektorienteeritud olemuse tõttu kujundada mustreid, samas kui RPC-l seda võimalust pole.

Kokkuvõte:

RPC vs RMI

RPC on keeleneutraalne mehhanism, mis võimaldab protseduuri välja kutsuda kaugarvutis. Keeleneutraalne funktsioon piirab aga argumentidena edastatud andmetüüpe ja tagastab väärtused primitiivsetele tüüpidele. RMI on RPC juurutamine Java-s ja see toetab ka objektide läbimist, muutes programmeerija elu lihtsamaks. RMI eeliseks on objektorienteeritud disaini tugi, kuid Javaga piirdumine on miinuseks.

Pildid viisakalt:

  1. Sünkroonne versus asünkroonne RPC CAPS-i ettevõttes (CC BY-SA 3.0)