Ero RPC:n ja RMI:n välillä

Sisällysluettelo:

Ero RPC:n ja RMI:n välillä
Ero RPC:n ja RMI:n välillä

Video: Ero RPC:n ja RMI:n välillä

Video: Ero RPC:n ja RMI:n välillä
Video: Näin ostat ja myyt osakkeita eli teet toimeksiantoja Nordnetin verkkopalvelussa 2024, Marraskuu
Anonim

RPC vs RMI

Perusero RPC:n ja RMI:n välillä on, että RPC on mekanismi, joka mahdollistaa proseduurin kutsumisen etätietokoneessa, kun taas RMI on RPC:n toteutus Javassa. RPC on kielineutraali, mutta tukee vain välitettäviä primitiivisiä tietotyyppejä. Toisa alta RMI on rajoitettu Javaan, mutta sallii objektien välittämisen. RPC noudattaa perinteisiä proseduurikielirakenteita, kun taas RMI tukee oliopohjaista suunnittelua.

Mikä on RPC?

RPC, joka tulee sanoista Remote Procedure Call, on eräänlainen prosessien välinen viestintä. Tämä mahdollistaa funktion kutsumisen toisessa prosessissa, joka on käynnissä paikallisessa tietokoneessa tai etätietokoneessa. Tämä konsepti syntyi kauan sitten vuonna 1980, mutta ensimmäinen kuuluisa toteutus nähtiin Unixissa.

RPC sisältää useita vaiheita. Asiakas suorittaa proseduurikutsun paikallisella tietokoneella tavalliseen tapaan. Moduuli nimeltä client stub kerää argumentit ja luo viestin ja välittää sen käyttöjärjestelmälle. Käyttöjärjestelmä tekee järjestelmäkutsun ja lähettää tämän viestin etätietokoneelle. Palvelimen käyttöjärjestelmä kerää viestin ja välittää sen palvelimella olevaan moduuliin nimeltä server Stub. Sitten palvelimen tynkä kutsuu palvelimella olevan menettelyn. 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ä abstraktisti, kun käyttöjärjestelmä huolehtii sisäisen verkon yksityiskohdista. Tämä helpottaa ohjelmointia ja antaa RPC:n toimia missä tahansa verkossa fyysisistä ja protokollaeroista huolimatta. RPC-toteutuksia on kaikissa yleisissä käyttöjärjestelmissä, kuten Unix, Linux, Windows ja OS X. RPC on yleensä kielineutraali, joten se rajoittaa tietotyypit primitiivisimpiin, koska niiden on oltava yhteisiä kaikille kielille. RPC:n lähestymistapa ei ole oliosuuntautunut, vaan se on perinteinen proseduurimekanismi, kuten C.

Ero RPC:n ja RMI:n välillä
Ero RPC:n ja RMI:n välillä
Ero RPC:n ja RMI:n välillä
Ero RPC:n ja RMI:n välillä

Mikä on RMI?

RMI, joka on lyhenne sanoista Remote Method Invocation, on API (Application Programming Interface), joka toteuttaa RPC:n javassa objektisuuntautuneen luonteen tukemiseksi. Tämä mahdollistaa Java-menetelmien kutsumisen toisessa Java-virtuaalikoneessa, joka sijaitsee samassa tietokoneessa tai etäkoneessa. RMI:n rajoituksena on, että vain Java-menetelmiä voidaan kutsua, mutta tämän etuna on, että objektit voidaan välittää argumentteina ja palauttaa arvoja. Kun otetaan huomioon suorituskyky, RMI on hitaampi kuin RPC, koska Java-virtuaalikoneessa on tavukoodi, mutta RMI on erittäin ohjelmoijaystävällinen ja sitä on erittäin helppo käyttää.

RMI käyttää sisäänrakennettuja suojausmekanismeja Javassa ja tarjoaa myös socket-tehtaan, joka mahdollistaa muiden kuin TCP:n mukautettujen kuljetuskerrosprotokollien käytön. Lisäksi RMI tarjoaa menetelmiä palomuurien ohittamiseksi. RMI:ssä esiintyvät vaiheet ovat samanlaisia kuin RPC:ssä. RMI:n toteutus huolehtii sisäisen verkon yksityiskohdista, joissa ohjelmoijan ei tarvitse huolehtia niistä.

Mitä eroa on RPC:llä ja RMI:llä?

• RPC on kielineutraali, kun taas RMI on rajoitettu Javaan.

• RPC on proseduuraalinen kuten C, mutta RMI on oliosuuntautunut.

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

• RMI on helppo ohjelmoida tämä RPC.

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

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

Yhteenveto:

RPC vs RMI

RPC on kielineutraali mekanismi, joka mahdollistaa proseduurin kutsumisen etätietokoneella. Kielineutraali ominaisuus rajoittaa kuitenkin argumentteina välitettävät tietotyypit ja palauttaa arvot primitiivityyppeihin. RMI on RPC:n toteutus Java-kielellä ja se tukee myös objektin kulkua, mikä helpottaa ohjelmoijan elämää. RMI:n etu on oliosuuntautuneen suunnittelun tuki, mutta Java-rajoitus on haitta.

Suositeltava: