Toinen merkittävä ero näiden kahden välillä on se, että etämenettelypuheluihin siirtyvät parametrit koostuvat tavallisista tietorakenteista . Toisaalta etämenetelmään siirtyvät parametrit koostuvat kohteista .
Vertailukaavio
Vertailun perusteet | RPC | RMI |
---|---|---|
tukee | Menettelyohjelmointi | Olio-ohjelmointi |
parametrit | Tavanomaiset tietorakenteet siirretään etätoimintoihin. | Objektit siirretään etämenetelmiin. |
tehokkuus | Alempi kuin RMI | Enemmän kuin RPC ja tuetaan nykyaikaisella ohjelmointilähestymistavalla (toisin sanoen Objektikohtaiset paradigmat) |
kiinteät kustannukset | Lisää | Vähemmän verrattain |
In-out-parametrit ovat pakollisia. | Joo | Ei välttämättä |
Ohjelmoinnin helpottaminen | Korkea | matala |
RPC: n määritelmä
Etäproseduuripuhelu (RPC) on hajautetulle laskennalle suunnattu ohjelmointikieli, joka perustuu paikallisten prosessipuheluiden semantiikkaan. Se on kaikkein yleisimpiä etäpalvelumuotoja, ja se on suunniteltu tapa abstraktien menettelyn kutsumekanismi verkon välisten järjestelmien välillä käytettäväksi. Se on samanlainen kuin IPC-mekanismi, jossa käyttöjärjestelmä sallii prosessien hallita yhteisiä tietoja ja käsitellä ympäristöä, jossa eri prosessit suoritetaan erillisissä järjestelmissä ja jotka edellyttävät välttämättä viestipohjaista viestintää.
Ymmärretään, miten RPC toteutetaan annettujen vaiheiden avulla:
- Asiakasprosessi kutsuu asiakkaan tynkä parametreilla ja sen suorittaminen keskeytetään, kunnes puhelu on valmis.
- Parametrit käännetään sitten koneellisesti itsenäiseen muotoon järjestämällä ne asiakkaan tynnyrin kautta. Sitten valmistellaan viesti, joka sisältää parametrien esityksen.
- Jos haluat löytää sivuston identiteetin, johon asiakas tunkeutuu yhteyden kanssa nimipalvelimeen, jossa etätoiminto on olemassa.
- Estosprotokollan avulla asiakasstubi lähettää viestin sivustolle, jossa on etäproseduurikutsua. Tämä vaihe pysäyttää asiakkaan tynkä, kunnes se saa vastauksen.
- Palvelinsivusto vastaanottaa asiakkaan puolelta lähetetyn viestin ja muuntaa sen konekohtaiseksi muodoksi.
- Nyt palvelin-tynkä suorittaa puhelun palvelinprosessiin parametrien ohella, ja palvelimen tappi lopetetaan, kunnes prosessi on valmis.
- Palvelinprosessi palauttaa tuotetut tulokset palvelimen tynnyrille, ja tulokset muunnetaan konekohtaiseksi formaatiksi palvelinpalvelussa ja luodaan tulokset sisältävä viesti.
- Tulosviesti lähetetään asiakkaan tynnyrille, joka muunnetaan takaisin konekohtaiseksi formaatiksi, joka soveltuu asiakkaan tappiolle.
- Lopulta asiakas, tynkä palauttaa tulokset asiakkaan prosessiin.
RMI: n määritelmä
Remote Method Invocation (RMI) on samanlainen kuin RPC, mutta se on kielten erityinen ja java-ominaisuus. Lanka voi kutsua menetelmää etäkohteessa. Jotta asiakas- ja palvelinpuolen avoimuus säilyisi, se toteuttaa etäobjektin käyttämällä stubeja ja luurankoja. Tynnyri sijaitsee asiakkaan kanssa ja sen etäyhteyden kohdalla se toimii välityspalvelimena.
Kun asiakas kutsuu etämenetelmää, kutsutaan etämenetelmän tappi. Asiakkaan tynkä on vastuussa lohkon luomisesta ja lähettämisestä, joka sisältää menetelmän nimen ja järjestetyt parametrit, ja luuranko vastaa paketin vastaanottamisesta.
Javaissa parametrit siirretään menetelmiin ja palautetaan viitteenä. Tämä voi olla hankalaa RMI-palvelulle, koska kaikki objektit eivät ole mahdollisesti etämenetelmiä. Niinpä sen on määritettävä, mikä voisi olla viitteenä ja mikä ei.
Java käyttää prosessia, joka on nimetty sarjaksi, jossa kohteet siirretään arvoina. Etäobjekti lokalisoidaan arvon mukaan. Se voi myös siirtää objektin viittaamalla ohittaen etäreferenssin kohteeseen sekä tynkäluokan URL-osoitteen. Ohjausviite rajoittaa etäobjektin tynkä.
RPC: n ja RMI: n keskeiset erot
- RPC tukee prosessiohjelmoinnin paradigmoja, joten se on C-pohjainen, kun taas RMI tukee objekti-suuntautuneita ohjelmointimalleja ja on java-pohjainen.
- RPC: ssä etätoimintoihin siirtyvät parametrit ovat tavallisia tietorakenteita. Päinvastoin, RMI siirtää objekteja parametrina etämenetelmään.
- RPC: tä voidaan pitää RMI: n vanhempana versiona, ja sitä käytetään ohjelmointikielillä, jotka tukevat menettelyä koskevaa ohjelmointia, ja sitä voidaan käyttää vain ohitusarvon menetelmällä. Sitä vastoin RMI-laitos on kehitetty nykyaikaisen ohjelmointimenetelmän pohjalta, joka voisi käyttää arvoa tai viitearvoa. Toinen RMI: n etu on, että referenssin ohittamia parametreja voidaan muuttaa.
- RPC-protokolla tuottaa enemmän yleiskustannuksia kuin RMI.
- RPC: n läpäisemien parametrien on oltava " sisään-ulos ", mikä tarkoittaa, että proseduurille siirretyllä arvolla ja lähtöarvolla on oltava samat datatyypit. Sitä vastoin ei ole pakko ohittaa " in-out " -parametrit RMI: ssa.
- RPC: ssä viittaukset eivät olleet todennäköisiä, koska kahdella prosessilla on erillinen osoitetila, mutta se on mahdollista RMI: n tapauksessa.
johtopäätös
Sekä RPC että RMI palvelevat samaa tarkoitusta, mutta niitä käytetään kielissä, jotka tukevat eri ohjelmoint paradigmeja, ja siksi niillä on erilaiset ominaisuudet.