RPC ir 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 neutralus kalbai, tačiau palaiko tik primityvius duomenų tipus, kuriuos reikia perduoti. Kita vertus, RMI apsiriboja „Java“, tačiau leidžia perduoti objektus. RPC vadovaujasi tradicinėmis procedūrinėmis kalbos konstrukcijomis, o RMI palaiko objektinį dizainą.
Kas yra RPC?
RPC, kuris reiškia nuotolinio procedūrų iškvietimą, yra tarpprocesinės komunikacijos tipas. Tai leidžia iškviesti funkciją kitame procese, vykstančiame vietiniame kompiuteryje arba nuotoliniame kompiuteryje. Ši koncepcija atsirado seniai 1980 m., Tačiau pirmasis žinomas diegimas buvo pastebėtas „Unix“.
RPC apima kelis etapus. Klientas atlieka procedūrinį iškvietimą vietiniame kompiuteryje, kaip įprasta. Modulis, vadinamas kliento šaknimi, renka argumentus ir sukuria pranešimą bei perduoda operacinei sistemai. Operacinė sistema atlieka sistemos iškvietimą ir siunčia šį pranešimą į nuotolinį kompiuterį. Operacinė sistema serveryje renka pranešimą ir pereina į serverio modulį, vadinamą serverio šaknimi. Tada serverio šablonas iškviečia procedūrą serveryje. Galiausiai rezultatai siunčiami atgal klientui.
RPC naudojimo pranašumas yra tas, kad jis nepriklauso nuo tinklo informacijos. Programuotojas tiesiog turi abstrakčiai nurodyti, o operacinė sistema prižiūrės vidinio tinklo detales. Taigi tai palengvina programavimą ir leidžia RPC veikti 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 nėra neutralus kalbai, todėl jis apriboja duomenų tipus iki pat primityviausių, nes jie turi būti bendri visoms kalboms. RPC požiūris nėra orientuotas į objektą, tačiau tai yra tradicinis procedūrinis mechanizmas, kaip ir C.
Kas yra RMI?
RMI, kuris reiškia nuotolinio metodo iškvietimą, yra API (Application Programming Interface), kuri įgyvendina RPC Java sistemoje, kad palaikytų į objektą orientuotą pobūdį. Tai leidžia skambinti „Java“metodais kitoje „Java“virtualioje mašinoje, esančioje tame pačiame arba nuotoliniame kompiuteryje. RMI apribojimas yra tas, kad galima remtis tik „Java“metodais, tačiau tai suteikia pranašumą, kad objektai gali būti perduoti kaip argumentai ir grąžinimo vertės. Kai našumas laikomas RMI yra lėtesnis nei RPC, nes „Java Virtual“mašinoje dalyvauja baitų kodas, tačiau RMI yra labai patogi programuotojams ir ja labai lengva naudotis.
RMI naudoja įmontuotus „Java“saugos mechanizmus ir taip pat suteikia lizdų gamyklą, kuri leidžia naudoti ne TCP pasirinktinius transporto sluoksnio protokolus. Be to, RMI pateikia metodus, kaip apeiti užkardas. RMI veiksmai yra panašūs į RPC. RMI diegimas prižiūri vidinio tinklo detales ten, kur programuotojui nereikia dėl jų jaudintis.
Kuo skiriasi RPC ir RMI?
• RPC yra neutralus kalbai, o RMI yra ribojamas „Java“.
• RPC yra procedūrinis, kaip ir C, tačiau RMI yra orientuotas į objektą.
• RPC palaiko tik primityvius duomenų tipus, o RMI leidžia objektus perduoti kaip argumentus ir grąžinti reikšmes. Naudodamas RPC, programuotojas turi suskaidyti visus sudėtinius objektus į primityvius duomenų tipus.
• RMI lengva programuoti tą RPC.
• RMI yra lėtesnis nei RPC, nes RMI apima Java baitų kodo vykdymą.
• RMI leidžia naudoti dizaino modelius dėl objektyvaus pobūdžio, o RPC neturi šios galimybės.
Santrauka:
RPC ir RMI
RPC yra kalbos požiūriu neutralus mechanizmas, leidžiantis iškviesti procedūrą nuotoliniame kompiuteryje. Tačiau kalbos neutralus bruožas apriboja duomenų tipus, kurie perduodami kaip argumentai ir grąžina reikšmes į primityvius tipus. RMI yra RPC diegimas „Java“ir palaiko objektų perdavimą, taip palengvindamas programuotojo gyvenimą. RMI pranašumas yra į objektą orientuota projektavimo pagalba, tačiau apribojimas „Java“yra trūkumas.
Vaizdai mandagūs: