RPC vs. RMI
RPC (Remote Procedure Call) ja RMI (Remote Method Invocation) ovat kaksi mekanismia, joiden avulla käyttäjä voi kutsua tai soittaa prosesseja, jotka toimivat toisella tietokoneella kuin se, jota käyttäjä käyttää. Tärkein ero näiden kahden välillä on käytetty lähestymistapa tai paradigma. RMI käyttää oliopohjaista paradigmaa, jossa käyttäjän on tiedettävä objekti ja sen kohteen menetelmä, jota hän tarvitsee kutsuakseen. Vertailun vuoksi RPC ei ole oliokeskeinen eikä käsittele esineitä. Pikemminkin se kutsuu tiettyjä jo perustettuja aliohjelmia.
RPC on suhteellisen vanha protokolla, joka perustuu C-kieleen ja perii siten sen paradigman. RPC: n avulla saat prosessipuhelun, joka näyttää melko paljon paikalliselta puhelulta. RPC käsittelee puhelun siirtämisen paikalliselta etätietokoneelle monimutkaisuudet. RMI tekee aivan saman asian; käsitellä monimutkaisia tapauksia, joissa kutsu kutsutaan kulkemaan paikalliselta etätietokoneelle. Mutta sen sijaan, että välitettäisiin proseduuripuhelu, RMI välittää viittauksen objektiin ja menetelmään, jota kutsutaan. Java on kehittänyt RMI: n ja käyttää virtuaalikonetaan. Siksi sen käyttö on yksinomaan Java-sovellusten käyttöön, kun kutsutaan menetelmiä etätietokoneisiin.
Loppujen lopuksi RPC ja RMI ovat vain kaksi tapaa saavuttaa sama tarkka asia. Kaikki johtuu siitä, mitä kieltä käytät ja mihin paradigmaan olet tottunut. Objektilähtöisen RMI: n käyttö on parempi lähestymistapa näiden kahden välillä, etenkin suurempien ohjelmien yhteydessä, koska se tarjoaa puhtaamman koodin, joka on helpompi jäljittää, kun jotain menee pieleen. RPC: n käyttö on edelleen laajalti hyväksyttyä, varsinkin kun jokin vaihtoehtoisista etäproseduuriprotokollista ei ole vaihtoehto.
Yhteenveto:
1.RMI on oliokeskeinen, kun taas RPC ei ole
2.RPC on C-emäksiä, kun taas RMI on vain Java
3.RMI kutsuu menetelmiä, kun taas RPC kutsuu toimintoja
4.RPC on vanhennettu, kun taas RMI on tulevaisuus