RPC vs. RMI
Perusero RPC: n ja RMI: n välillä on se, että RPC on mekanismi, joka mahdollistaa menettelyn kutsumisen etätietokoneelle, kun taas RMI on RPC: n toteutus Java-järjestelmässä. RPC on kielineutraali, mutta tukee vain primitiivisiä tietotyyppejä, jotka välitetään. Toisaalta RMI on rajoitettu Java-sovellukseen, mutta se sallii objektien siirtämisen. RPC noudattaa perinteisiä menettelykielirakenteita, kun taas RMI tukee objektisuuntautunutta suunnittelua.
Mikä on RPC?
RPC, joka on lyhenne sanoista Remote Procedure Call, on eräänlainen prosessien välinen viestintä. Tämä sallii toiminnon kutsumisen toisessa prosessissa, joka toimii paikallisella tietokoneella tai etätietokoneella. Tämä konsepti syntyi kauan sitten vuonna 1980, mutta ensimmäinen kuuluisa toteutus nähtiin Unixissa.
RPC sisältää useita vaiheita. Asiakas suorittaa menettelykutsun paikallisella tietokoneella normaalisti. Client stub -niminen moduuli kerää argumentit ja luo viestin ja välittää käyttöjärjestelmälle, käyttöjärjestelmä soittaa järjestelmäkutsun ja lähettää tämän viestin etätietokoneelle. Palvelimen käyttöjärjestelmä kerää viestin ja siirtyy palvelimen moduulille nimeltä palvelimen tynkä. Sitten palvelimen tynkä kutsuu palvelimen menettelyä. Lopuksi tulokset lähetetään takaisin asiakkaalle.
RPC: n käytön etuna on, että se on riippumaton verkon yksityiskohdista. Ohjelmoijan on vain määriteltävä abstraktisti, kun taas käyttöjärjestelmä huolehtii sisäisen verkon yksityiskohdista. Joten tämä helpottaa ohjelmointia ja antaa RPC: n työskennellä missä tahansa verkossa fyysisistä ja protokollaeroista huolimatta. RPC-toteutukset ovat läsnä kaikissa yleisissä käyttöjärjestelmissä, kuten Unix, Linux, Windows ja OS X. RPC on yleensä kielineutraali, joten se rajoittaa tietotyypit alkeellisimpiin, koska niiden on oltava yhteisiä kaikille kielille. RPC: n lähestymistapa ei ole olio-suuntautunut, mutta se on perinteinen menettelymekanismi kuten C.
Mikä on RMI?
RMI, joka tarkoittaa Remote Method Invocation -toimintoa, on API (Application Programming Interface), joka toteuttaa RPC: n Java-muodossa tukemaan objektien suuntautunutta luonnetta. Tämä sallii Java-menetelmien kutsumisen toisella Java-virtuaalikoneella, joka asuu samalla tietokoneella tai etäkoneella. RMI: n rajoitus on, että vain Java-menetelmiä voidaan käyttää, mutta tästä on se etu, että objektit voidaan välittää argumentteina ja palauttaa arvoja. Kun suorituskykyä pidetään, RMI on hitaampaa kuin RPC johtuen tavutekoodien osallistumisesta Java Virtual-koneeseen, mutta RMI on erittäin ohjelmoijaystävällinen ja sitä on erittäin helppo käyttää.
RMI käyttää Java-järjestelmässä sisäänrakennettuja suojausmekanismeja ja tarjoaa myös pistorasiatehtaan, joka mahdollistaa muiden kuin TCP-mukautettujen siirtokerrosprotokollien käytön. Lisäksi RMI tarjoaa menetelmiä palomuurien ohittamiseksi. RMI: ssä esiintyvät vaiheet ovat samanlaisia kuin RPC. RMI: n toteutus huolehtii sisäisen verkon yksityiskohdista, missä ohjelmoijan ei tarvitse huolehtia niistä.
Mikä on ero RPC: n ja RMI: n välillä?
• RPC on kielineutraali, kun taas RMI on rajoitettu Javaan.
• RPC on menettelytapaa kuten C: ssä, mutta RMI on olio-suuntautunut.
• RPC tukee vain primitiivisiä tietotyyppejä, kun taas RMI sallii objektien välittämisen argumentteina ja palautusarvoina. Kun käytetään RPC: tä, ohjelmoijan on jaettava kaikki yhdistelmäobjektit primitiivisiin tietotyyppeihin.
• RMI on helppo ohjelmoida kyseinen RPC.
• RMI on hitaampi kuin RPC, koska RMI sisältää java-tavukoodin suorittamisen.
• RMI sallii suunnittelumallien käytön olio-luonteesta johtuen, kun taas RPC: llä ei ole tätä ominaisuutta.
Yhteenveto:
RPC vs. RMI
RPC on kielineutraali mekanismi, joka sallii menettelyn kutsumisen etätietokoneessa. Kielineutraali ominaisuus kuitenkin rajoittaa tietotyypit, jotka välitetään argumentteina ja palautetaan arvot primitiivisiin tyyppeihin. RMI on RPC: n toteutus Java-sovelluksessa ja se tukee myös objektien välittämistä, mikä helpottaa ohjelmoijan elämää. RMI: n etuna on olio-suuntautunut suunnittelutuki, mutta rajoitukset Java: lle ovat haittoja.
Kuvat Kohteliaisuus: