Teine oluline erinevus nende kahe vahel on see, et kaugmenetlustele saadetud parameetrid koosnevad tavalistest andmestruktuuridest . Teisest küljest koosnevad kaugmeetodile antud parameetrid objektidest .
Võrdluskaart
Võrdluse alus | RPC | RMI |
---|---|---|
Toetab | Menetlusplaneerimine | Objektile orienteeritud programmeerimine |
Parameetrid | Tavalised andmestruktuurid edastatakse kaugprotseduuridele. | Objektid edastatakse kaugmeetoditele. |
Tõhusus | RMI-st madalam | Rohkem kui RPC ja seda toetavad kaasaegne programmitöö (nt objektorienteeritud paradigmad) |
Üldkulud | Veel | Vähem suhteliselt |
In-out parameetrid on kohustuslikud. | Jah | Mitte tingimata |
Programmeerimise lihtsus | Kõrge | madal |
RPC määratlus
Kaugprotseduurikõne (RPC) on programmeerimiskeele funktsioon, mis on mõeldud hajutatud arvutustehnika jaoks ja mis põhineb kohaliku protseduurikõnede semantikal. See on kõige levinumad kaugteenuse vormid ja see on kavandatud nii, et abstraktselt eemaldatakse võrgu kaudu ühendatud süsteemide vahel kasutatav protseduurikõne mehhanism. See on sarnane IPC mehhanismiga, kus operatsioonisüsteem võimaldab protsessidel hallata jagatud andmeid ja käsitleda keskkonda, kus erinevad protsessid töötavad eraldi süsteemides ja vajavad tingimata sõnumipõhist kommunikatsiooni.
Mõistame, kuidas RPC-d antud sammude kaudu rakendatakse:
- Kliendi protsess kutsub kliendi stubi parameetritega ja selle täitmine peatatakse kuni kõne lõpetamiseni.
- Parameetrid tõlgitakse seejärel masinast sõltumatuks vormiks klienditüki kaudu. Seejärel koostatakse teade, mis sisaldab parameetrite esitust.
- Et leida saidi identiteet, mida kliendil on omavahel seotud nimeserveriga, kus on kaugjuhtimisprotseduur.
- Blokeerimisprotokolli kasutamine saadab kliendi stubi sõnumi saidile, kus on kaugprotseduurikõne. See samm peatab kliendi stubi, kuni see saab vastuse.
- Serveri veebisait saab kliendipoolelt saadetud sõnumi ja teisendab selle masina spetsiifiliseks vorminguks.
- Nüüd käivitab serveri stubs serveriga protseduuri koos parameetritega ja serveri stubi kasutamine lõpetatakse, kuni protseduur lõpeb.
- Serveri protseduur tagastab genereeritud tulemused serveri stubile ja tulemused konverteeritakse serveri stubi masinast sõltumatuks vormiks ja loovad tulemust sisaldava sõnumi.
- Tulemussõnum saadetakse kliendi tüübile, mis konverteeritakse uuesti kliendi stubi jaoks sobivaks masinapõhiseks vormiks.
- Lõpuks tagastab kliendi, stubi tulemused kliendi protsessile.
RMI määratlus
Remote Method Invocation (RMI) on sarnane RPC-ga, kuid on keelepõhine ja java omadus. Keermel on lubatud kutsuda meetodit kaugobjektil. Kliendi ja serveri läbipaistvuse säilitamiseks rakendab see kaugobjekti stuudi ja skeletide abil. Stub asub kliendiga ja selle kaugobjekti puhul, mida see käitub puhverserverina.
Kui klient kutsub kaugmeetodit, nimetatakse kaugmeetodi stubi. Kliendi stubs vastutab maatüki, mis sisaldab meetodi nime ja järjestatud parameetreid, loomise ja saatmise eest ning skelett vastutab maatüki vastuvõtmise eest.
Java puhul edastatakse parameetrid meetoditele ja tagastatakse viite vormis. See võib olla häiriv RMI teenuse jaoks, kuna mitte kõik objektid on võimalikud kaugmeetodid. Niisiis peab ta kindlaks määrama, milline võiks olla viide ja mida ei saa.
Java kasutab protsessi, mida nimetatakse serializatsiooniks, kus objektid antakse väärtusena. Kaugobjekt paikneb väärtuse järgi. Samuti võib see objekti läbida viite kaudu, edastades objektile kauge viite koos stubiklassi URL-iga. Viite kaudu piirab kaugobjekti stubi.
Peamised erinevused RPC ja RMI vahel
- RPC toetab protseduuride programmeerimise paradigme, seega on C-põhine, samas kui RMI toetab objektorienteeritud programmeerimise paradigme ja on java-põhine.
- RPC-s kaugrežiimidele edastatud parameetrid on tavalised andmestruktuurid. Vastupidi, RMI läbib objektid parameetrina kaugmeetodile.
- RPC-d võib pidada RMI vanemaks versiooniks ja seda kasutatakse programmeerimiskeeltes, mis toetavad protseduurilist programmeerimist, ning seda saab kasutada ainult läbiväärtuse meetodil. Vastupidi, RMI rajatis on välja töötatud tänapäevase programmeerimise lähenemisviisi alusel, mis võiks kasutada väärtuse või viite järgi. Teine RMI eelis on see, et referentsilt möödunud parameetreid saab muuta.
- RPC protokoll loob rohkem üldkulusid kui RMI.
- RPC-s läbitud parameetrid peavad olema “ in-out ”, mis tähendab, et protseduurile edastatud väärtus ja väljundväärtus peavad olema samad andmesidetüübid. Seevastu ei ole RMI - s sunnitud läbima „ in-out “ parameetreid.
- RPC-s ei saa viiteid olla tõenäoline, sest kahel protsessil on eraldiseisev aadressiruum, kuid see on võimalik RMI puhul.
Järeldus
Nii RPC kui ka RMI teenivad sama eesmärki, kuid neid kasutatakse keeltes, mis toetavad erinevaid programmeerimise paradigme, seega on neil erinevad omadused.