Ero RPC n ja RMI n välillä

RPC vs. RMI
 

Perusero RPC: n ja RMI: n välillä on se, että RPC on mekanismi, joka mahdollistaa proseduurin kutsumisen etätietokoneelta, kun taas RMI on RPC: n toteutus Java-sovelluksessa. RPC on kielellä neutraali, mutta tukee vain välitettäviä primitiivisiä tietotyyppejä. Toisaalta RMI on rajoitettu Javaan, mutta sallii objektien kulkemisen. RPC seuraa perinteisiä prosessikielirakenteita, kun taas RMI tukee oliokeskeistä suunnittelua.

Mikä on RPC?

RPC, joka tarkoittaa etämenettelykutsua, on eräs prosessienvälinen viestintä. Tämä sallii toiminnon kutsumisen toisessa prosessissa, joka on käynnissä paikallisella tietokoneella tai etätietokoneella. Tämä konsepti syntyi kauan sitten vuonna 1980, mutta ensimmäinen kuuluisa toteutus nähtiin Unixissä.

RPC sisältää useita vaiheita. Asiakas soittaa proseduuripuhelun paikallisella tietokoneella tavalliseen tapaan. Asiakkaan tynkäksi kutsuttu moduuli kerää argumentit ja luo viestin ja siirtää käyttöjärjestelmälle. Käyttöjärjestelmä soittaa järjestelmäsoiton ja lähettää tämän viestin etätietokoneelle. Palvelimen käyttöjärjestelmä kerää viestin ja siirtyy palvelimen moduulille, jota kutsutaan palvelimen tynkäksi. Sitten palvelimen tynkä kutsuu proseduurin palvelimella. Lopuksi tulokset lähetetään takaisin asiakkaalle.

RPC: n käytön etuna on, että se on riippumaton verkon yksityiskohdista. Ohjelmoijan on vain määritettävä abstrakti tavalla, kun käyttöjärjestelmä huolehtii sisäisen verkon yksityiskohdista. Joten tämä helpottaa ohjelmointia ja antaa RPC: n toimia kaikissa verkoissa fyysisistä ja protokollaeroista huolimatta. RPC-toteutuksia on läsnä kaikissa yleisissä käyttöjärjestelmissä, kuten Unix, Linux, Windows ja OS X. RPC on yleensä kielellä neutraali, joten se rajoittaa tietotyypit kaikkein primitiivisimpiin, koska niiden on oltava yhteisiä kaikille kielille. Lähestymistapa RPC: ssä ei ole oliokeskeistä, mutta se on perinteinen menettelymekanismi, kuten C: ssä.

Mikä on RMI?

RMI, joka tarkoittaa etämenetelmän kutsumista, on sovellusohjelmointirajapinta (Application Programming Interface), joka toteuttaa RPC: n Java-järjestelmässä objektiohjelmoidun luonteen tukemiseksi. Tämä sallii Java-menetelmien kutsumisen toiseen Java-virtuaalikoneeseen, joka sijaitsee samassa tietokoneessa tai etäkoneessa. RMI: n rajoitus on, että vain Java-menetelmiin voidaan vedota, mutta tämän etuna on, että objektit voidaan siirtää argumentteina ja palautusarvoina. Kun suorituskykyä pidetään, RMI on hitaampi kuin RPC, koska bytecode on mukana Java Virtuaalikoneessa, mutta RMI on erittäin ohjelmoijaystävällinen ja sitä on erittäin helppo käyttää.

RMI käyttää sisäisiä Java-suojausmekanismeja ja antaa myös pistorasiatehtaan, joka mahdollistaa muiden kuin TCP-mukautettujen kuljetuskerrosprotokollien käytön. Lisäksi RMI tarjoaa menetelmiä palomuurien ohittamiseksi. RMI: ssä tapahtuvat vaiheet ovat samanlaisia ​​kuin RPC. RMI: n käyttöönotto huolehtii sisäisen verkon yksityiskohdista, kun ohjelmoijan ei tarvitse huolehtia niistä.

Mikä on ero RPC: n ja RMI: n välillä??

• RPC on kielellä neutraali, kun taas RMI rajoittuu Java-sovellukseen.

• RPC on proseduurinen kuten C: ssä, mutta RMI on oliokeskeinen.

• RPC tukee vain primitiivisiä tietotyyppejä, kun taas RMI sallii objektien siirtämisen argumentteina ja palautusarvoina. RPC: tä käytettäessä ohjelmoijan on jaettava kaikki yhdisteobjektit primitiivisiksi tietotyypeiksi.

• RMI on helppo ohjelmoida kyseinen RPC.

• RMI on hitaampi kuin RPC, koska RMI sisältää Java-tavukoodin suorittamisen.

• RMI sallii suunnittelumallien käytön olosuhteisiin perustuvan luonteen vuoksi, kun taas RPC: llä ei ole tätä ominaisuutta.

Yhteenveto:

RPC vs. RMI

RPC on kielellä neutraali mekanismi, joka sallii proseduurin kutsumisen etätietokoneelta. Kielenneutraali ominaisuus kuitenkin rajoittaa argumenttina välitetyt tietotyypit ja palauttavat arvot primitiivisiin tyyppeihin. RMI on RPC: n toteutus Java: ssa ja se tukee myös objektien kulkua, mikä helpottaa ohjelmoijan elämää. RMI: n etuna on oliokeskeinen suunnittelutuki, mutta rajoittaminen Java-ohjelmaan on haitta.

Kuvat kohteliaisuus:

  1. CAPS-yrityksen synkroninen versio asynkroninen RPC (CC BY-SA 3.0)