Skirtumas tarp RPC ir RMI

Turinys:

Skirtumas tarp RPC ir RMI
Skirtumas tarp RPC ir RMI

Video: Skirtumas tarp RPC ir RMI

Video: Skirtumas tarp RPC ir RMI
Video: Kas ta akcijų birža ir kodėl svyruoja akcijų kainos? 2024, Spalio mėn
Anonim

RPC prieš RMI

Pagrindinis skirtumas tarp RPC ir RMI yra tas, kad RPC yra mechanizmas, leidžiantis iškviesti procedūrą nuotoliniame kompiuteryje, o RMI yra RPC įdiegimas Java. RPC yra neutrali kalba, tačiau palaiko tik primityvius perduodamų duomenų tipus. Kita vertus, RMI apsiriboja Java, tačiau leidžia perduoti objektus. RPC laikosi tradicinių procedūrinių kalbos konstrukcijų, o RMI palaiko objektinį dizainą.

Kas yra RPC?

RPC, reiškiantis Remote Procedure Call, yra tarpprocesinio ryšio tipas. Tai leidžia iškviesti funkciją kitame procese, vykdomame vietiniame kompiuteryje arba nuotoliniame kompiuteryje. Ši koncepcija atsirado seniai 1980 m., tačiau pirmasis garsus įgyvendinimas buvo pastebėtas Unix.

RPC apima kelis veiksmus. Klientas, kaip įprasta, atlieka procedūros skambutį vietiniame kompiuteryje. Modulis, vadinamas client stub, surenka argumentus ir sukuria pranešimą bei perduoda operacinei sistemai, operacinė sistema atlieka sistemos skambutį ir siunčia šį pranešimą į nuotolinį kompiuterį. Serverio operacinė sistema surenka pranešimą ir perduoda jį serverio moduliui, vadinamam serverio stubu. Tada serverio stuburas iškviečia procedūrą serveryje. Galiausiai rezultatai grąžinami klientui.

RPC naudojimo pranašumas yra tas, kad jis nepriklauso nuo tinklo detalių. Programuotojas tiesiog turi nurodyti abstrakčiai, o operacinė sistema prižiūrės vidinio tinklo detales. Taigi tai palengvina programavimą ir leidžia RPC dirbti bet kuriame tinkle, nepaisant fizinių ir protokolų skirtumų. RPC diegimas yra visose pagrindinėse operacinėse sistemose, tokiose kaip Unix, Linux, Windows ir OS X. RPC paprastai yra neutralus kalbai, todėl riboja duomenų tipus iki pačių primityviausių, nes jie turi būti bendri visoms kalboms. RPC metodas nėra orientuotas į objektą, bet tai tradicinis procedūrinis mechanizmas, kaip ir C.

Skirtumas tarp RPC ir RMI
Skirtumas tarp RPC ir RMI
Skirtumas tarp RPC ir RMI
Skirtumas tarp RPC ir RMI

Kas yra RMI?

RMI, reiškiantis nuotolinio metodo iškvietimą, yra API (taikomųjų programų programavimo sąsaja), kuri įdiegia RPC Java, kad palaikytų objektinį pobūdį. Tai leidžia iškviesti Java metodus kitame Java virtualiajame kompiuteryje, esančiame tame pačiame kompiuteryje arba nuotoliniame kompiuteryje. RMI apribojimas yra tas, kad galima iškviesti tik „Java“metodus, tačiau tai turi pranašumą, kad objektus galima perduoti kaip argumentus ir grąžinti reikšmes. Kai atsižvelgiama į našumą, RMI yra lėtesnis nei RPC, nes „Java“virtualiojoje mašinoje naudojamas baitinis kodas, tačiau RMI yra labai patogus programuotojams ir juo labai lengva naudotis.

RMI naudoja integruotus „Java“saugos mechanizmus ir taip pat suteikia lizdų gamyklą, leidžiančią naudoti ne TCP pasirinktinius transportavimo lygmens protokolus. Be to, RMI pateikia metodus, kaip apeiti užkardas. RMI atliekami veiksmai yra panašūs į RPC. Diegiant RMI žiūrima į vidinio tinklo detales, kai programuotojas neturi dėl jų jaudintis.

Kuo skiriasi RPC ir RMI?

• RPC yra neutralus kalba, o RMI ribojamas Java.

• RPC yra procedūrinis, kaip ir C, bet RMI yra orientuotas į objektą.

• RPC palaiko tik primityvius duomenų tipus, o RMI leidžia perduoti objektus kaip argumentus ir grąžinti reikšmes. Naudodamas RPC, programuotojas turi padalyti visus sudėtinius objektus į primityvius duomenų tipus.

• RMI lengva užprogramuoti tą RPC.

• RMI yra lėtesnis nei RPC, nes RMI apima „Java“baito kodo vykdymą.

• RMI leidžia naudoti dizaino modelius dėl objektinio pobūdžio, o RPC šios galimybės neturi.

Santrauka:

RPC prieš RMI

RPC yra kalbos neutralus mechanizmas, leidžiantis iškviesti procedūrą nuotoliniame kompiuteryje. Tačiau kalbos neutralumo funkcija apriboja duomenų tipus, kurie perduodami kaip argumentai ir grąžina reikšmes į primityvius tipus. RMI yra RPC įdiegimas „Java“ir palaiko objektų perdavimą, palengvindamas programuotojo gyvenimą. RMI pranašumas yra objektinio dizaino palaikymas, tačiau Java apribojimas yra trūkumas.

Rekomenduojamas: