RPC ja RMI erinevus

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 9 Mai 2024
Anonim
Verteilte Systeme, Kapitel 3d, von RPC zu Remote Method Invocation (RMI)
Videot: Verteilte Systeme, Kapitel 3d, von RPC zu Remote Method Invocation (RMI)

Sisu


RPC ja RMI on mehhanismid, mis võimaldavad kliendil protseduuri või meetodi serverist välja kutsuda kliendi ja serveri vahelise side loomise kaudu. RPC ja RMI vaheline erinevus on see, et RPC ainult toetab protseduuriline programmeerimine arvestades, et RMI toetab objektorienteeritud programmeerimine.

Teine oluline erinevus nende kahe vahel on see, et kaugprotseduuride kõnele edastatud parameetrid koosnevad tavalised andmestruktuurid. Teisest küljest koosnevad kaugmeetodile edastatud parameetrid objektid.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusRPCRMI
ToetabProtseduuriline programmeerimine
Objektorienteeritud programmeerimine
ParameetridTavalised andmestruktuurid suunatakse kaugprotseduuridele.Objektid suunatakse kaugmeetoditele.
TõhususMadalam kui RMIRohkem kui RPC ja toetatud kaasaegse programmeerimismeetodi abil (st objektorienteeritud paradigmad)
ÜldkuludVeel
Vähem võrdlevalt
Sisse-välja parameetrid on kohustuslikud.JahMitte tingimata
Programmeerimise lihtsus
Kõrge
madal


RPC määratlus

Kaugprotseduurikõne (RPC) on programmeerimiskeele funktsioon, mis on välja töötatud hajutatud andmetöötluse jaoks ja põhineb kohalik kord kutsub. See on kaugteenuse levinumad vormid ja see oli mõeldud meetodina protseduurikõnede mehhanismi abstraktseks kasutamiseks võrgu kaudu ühendatud süsteemide vahel. See sarnaneb IPC mehhanismiga, kus opsüsteem võimaldab protsessidel hallata jagatud andmeid ja tegeleda keskkonnaga, kus erinevad protsessid töötavad eraldi süsteemides ja vajavad tingimata tugipõhist suhtlust.

Saame aru, kuidas RPC rakendatakse antud toimingute kaudu:

  • Kliendiprotsess kutsub parameetritega kliendiharu ja selle täitmine peatatakse kuni kõne lõppemiseni.
  • Seejärel teisendatakse parameetrid masinast sõltumatuks vormiks, sorteerides läbi kliendi tüve. Seejärel valmistatakse parameetrite esitus.
  • Saidi identiteedi leidmiseks suhtleb klient nimeserveriga, kus on kaugprotseduur.
  • Blokeerimisprotokolli abil suunab klient saidi, kus on kaugprotseduurikõne. See samm peatab kliendi tüve, kuni ta saab vastuse.


  • Serverisait võtab kliendi poolt vastu saadetud ja teisendab selle masinaspetsiifiliseks vorminguks.
  • Nüüd käivitab serveri tükk serveri protseduuri koos parameetritega ja serveri tüve katkestatakse, kuni protseduur on lõpule viidud.
  • Serveriprotseduur tagastab genereeritud tulemused serveri tüvele ja tulemused teisendatakse serveri tüves masinsõltumatusse vormingusse ja luuakse tulemusi sisaldav sisaldus.
  • Tulemus saadetakse kliendi tüvele, mis teisendatakse tagasi masinaspetsiifiliseks vorminguks, mis sobib kliendi tüveks.
  • Lõpuks tagastab tükk tulemused kliendiprotsessi.

RMI määratlus

Kaugmeetodi kutsumine (RMI) sarnaneb RPC-ga, kuid on keelespetsiifiline ja jaava omadus. Nime on lubatud kutsuda meetodit kaugobjektil. Läbipaistvuse säilitamiseks kliendi ja serveri poolel rakendab see kaugobjekti, kasutades tüvesid ja skelette. Täpp asub kliendil ja kaugobjekti puhul käitub ta puhverserverina.

Kui klient helistab kaugmeetodile, kutsutakse kaugmeetodi tüvi. Meetodi nimetust ja marsruuditud parameetreid sisaldava paki loomise ja liitmise eest vastutab kliendiüksus ning paki vastuvõtmise eest vastutab skelett.

Skelett tühistab parameetrid ja käivitab serveris soovitud meetodi. Skelett marssib antud väärtuse (või erandid) maatükiga ja saadab selle kliendiharule. Tüdruk koondab tagastuspaki uuesti kokku ja saadab selle kliendile.

Java-s antakse parameetrid edasi meetoditele ja tagastatakse viidetena. See võib olla RMI-teenuse jaoks tülikas, kuna mitte kõik objektid ei pruugi olla kaugmeetodid. Niisiis, see peab kindlaks määrama, mida võiks viitena edastada ja mida mitte.

Java kasutab protsessi nimega sarjastamine kus objektid antakse väärtusena edasi. Kaugobjekt lokaliseeritakse väärtuse järgi. Samuti võib see objekti viitega läbida, edastades objektile kaugviite koos tübiklassi URL-iga. Viitega möödasõit piirab kauge objekti objektiivi.

  1. RPC toetab protseduuriliste programmeerimise paradigmasid, seega on C-põhine, samas kui RMI toetab objektorienteeritud programmeerimise paradigmasid ja on Java-põhine.
  2. RPC-s kaugprotseduuridele edastatud parameetrid on tavalised andmestruktuurid. Vastupidi, RMI edastab objektid parameetrina kaugmeetodile.
  3. RPC-d võib pidada RMI vanemaks versiooniks ja seda kasutatakse programmeerimiskeeltes, mis toetavad protseduuride programmeerimist, ja see võib kasutada ainult väärtuse läbilöögimeetodit. Vastupidiselt sellele on RMI rajatis välja töötatud kaasaegse programmeerimismeetodi alusel, mis võiks kasutada väärtuse või viite kaudu. Veel üks RMI eelis on see, et võrdluse teel edastatud parameetreid saab muuta.
  4. RPC protokoll tekitab rohkem üldkulusid kui RMI.
  5. RPC-s läbitavad parameetrid peavad olema „sees väljasMis tähendab, et protseduurile edastatud väärtusel ja väljundi väärtusel peavad olema samad andmetüübid. Seevastu pole mingit sundimist möödaminnes “sees väljas”Parameetrid RMI-s.
  6. RPC-s ei saaks viited olla tõenäolised, kuna kahel protsessil on erinev aadressiruum, kuid RMI korral on see võimalik.

Järeldus

Nii RPC kui ka RMI teenivad sama eesmärki, kuid keeltes kasutatavad toetavad erinevaid programmeerimisparadigmasid, seetõttu on neil erinevad omadused.