Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp RPC un RMI

RPC un RMI ir mehānismi, kas klientam ļauj izmantot procedūru vai metodi no servera, izveidojot saziņu starp klientu un serveri. Kopējā atšķirība starp RPC un RMI ir tā, ka RPC atbalsta tikai procesuālo plānošanu, bet RMI atbalsta objektu orientētu programmēšanu .

Vēl viena būtiska atšķirība starp abām ir tā, ka parametri, kas nodoti attālinātām procedūrām, sastāv no parastām datu struktūrām . No otras puses, attālinātai metodei nodotie parametri sastāv no objektiem .

Salīdzinājuma diagramma

Salīdzināšanas pamatsRPCRMI
AtbalstaProcedūras plānošana
Objektu orientēta programmēšana
ParametriParastās datu struktūras tiek nodotas tālākām procedūrām.Objekti tiek nodoti tālākām metodēm.
EfektivitāteZemāks par RMIVairāk nekā RPC un to atbalsta mūsdienīga plānošanas pieeja (ti, uz objektu orientētas paradigmas)
Pieskaitāmās izmaksasVairāk
Mazāk salīdzinoši
In-out parametri ir obligāti.Nav nepieciešams
Programmēšanas vienkāršība
Augsts
zems

RPC definīcija

Remote Procedure Call (RPC) ir programmēšanas valodas iezīme, kas izstrādāta izplatītai skaitļošanai un balstīta uz vietējo procedūru zvanu semantiku. Tā ir visbiežāk sastopamie attālinātā pakalpojuma veidi, un tā tika izstrādāta kā veids, kā abstraktēt procedūras izsaukuma mehānismu, ko izmantot starp sistēmām, kas savienotas ar tīklu. Tas ir līdzīgs IPC mehānismam, kur operētājsistēma ļauj procesiem pārvaldīt kopīgus datus un risināt vidi, kurā dažādi procesi tiek izpildīti atsevišķās sistēmās un kuriem vienmēr ir nepieciešama ziņojumapmaiņa.

Sapratīsim, kā tiek īstenota RPC, izmantojot norādītos soļus:

  • Klienta process izsauc klienta cilpu ar parametriem, un tā izpilde tiek apturēta, līdz zvans ir pabeigts.
  • Pēc tam parametri tiek tulkoti no mašīnas neatkarīgā formā, sakārtojot klienta stuburā. Tad tiek sagatavots ziņojums, kas satur parametru attēlojumu.
  • Lai atrastu vietnes identitāti, kurā klients sastopas ar vārdu serveri, kurā atrodas tālvadības procedūra.
  • Izmantojot bloķēšanas protokolu, klienta stubrs nosūta ziņojumu vietnei, kurā pastāv attālās procedūras zvans. Šis solis aptur klients, līdz tas saņem atbildi.
  • Servera vietne saņem ziņojumu, kas nosūtīts no klienta puses, un pārvērš to par konkrētu formātu.
  • Tagad servera stubs izpilda zvanu uz servera procedūras kopā ar parametriem, un servera nesējs tiek pārtraukts, līdz procedūra tiek pabeigta.
  • Servera procedūra atgriež radītos rezultātus uz servera nepilnību, un rezultāti tiek pārvērsti par mašīnas neatkarīgu formātu serveru ierakstā un izveido ziņojumu ar rezultātiem.
  • Rezultātu ziņojums tiek nosūtīts klienta stubam, kas tiek konvertēts atpakaļ konkrētā formātā, kas ir piemērots klientam.
  • Visbeidzot, klients, stubs atgriež rezultātus klienta procesam.

RMI definīcija

Remote Method Invocation (RMI) ir līdzīgs RPC, bet gan valodas un java iezīme. Vītnei ir atļauts izsaukt metodi uz attālā objekta. Lai saglabātu pārredzamību klienta un servera pusē, tā īsteno attālo objektu, izmantojot stubus un skeletus. Stubs dzīvo kopā ar klientu, un tā attālais objekts darbojas kā starpniekserveris.

Kad klients zvana uz attālu metodi, tiek izsaukts attālās metodes stūris. Klienta stūris ir atbildīgs par zemes gabala izveidi un nosūtīšanu, kurā ir metodes nosaukums un kārtotie parametri, un skelets ir atbildīgs par sūtījuma saņemšanu.

Skelets atdala parametrus un uz servera atsaucas uz vēlamo metodi. Skeleta maršruts dod norādīto vērtību (vai izņēmumus) ar paku un nosūta to klienta stubam. Stubs noņem atpakaļ atgriešanas paku un nosūta to klientam.

Java sistēmā parametri tiek nodoti metodēm un atgriezti atsauces formā. Tas varētu būt traucējošs RMI pakalpojumam, jo ​​ne visi objekti ir iespējams attālinātas metodes. Tātad, tai ir jānosaka, kas varētu tikt pieņemts kā atsauce un kas nevarēja.

Java izmanto procesu, ko sauc par serializāciju, kur objekti tiek nodoti kā vērtība. Attālais objekts tiek lokalizēts pēc vērtības. Tas var arī nodot objektu ar atsauci, veicot attālinātu atsauci uz objektu kopā ar stubu klases URL. Pārsniedzot atskaiti, tiek ierobežots attālinātā objekta statnis.

Galvenās atšķirības starp RPC un RMI

  1. RPC atbalsta procesuālās programmēšanas paradigmas, tādējādi ir C, bet RMI atbalsta objektu orientētas programmēšanas paradigmas un ir java pamatā.
  2. Parametri, kas nodoti attālinātām procedūrām RPC, ir parastās datu struktūras. Gluži pretēji, RMI pārceļ objektus uz parametru kā attālo metodi.
  3. RPC var uzskatīt par vecāku RMI versiju, un to izmanto programmēšanas valodās, kas atbalsta procesuālo programmēšanu, un to var izmantot tikai caurlaides vērtības metodi. Proti, RMI mehānisms ir izstrādāts, balstoties uz mūsdienu programmēšanas pieeju, kas varētu izmantot vērtību pēc vērtības vai atsauces. Vēl viena RMI priekšrocība ir tā, ka parametrus, kas nodoti pēc atsauces, var mainīt.
  4. RPC protokols rada vairāk pieskaitāmo izmaksu nekā RMI.
  5. RPC nodotajiem parametriem jābūt “ in-out ”, kas nozīmē, ka procedūrai nodotajai vērtībai un izejas vērtībai ir jābūt vienādiem datu tipiem. Turpretim RMI nav piespiedu kārtot „ in-out ” parametrus.
  6. RPC atsauces nevarēja būt ticamas, jo abiem procesiem ir atšķirīga adrešu telpa, bet RMI gadījumā tas ir iespējams.

Secinājums

Gan RPC, gan RMI kalpo tāds pats mērķis, bet tiek izmantoti valodās, kas atbalsta dažādas programmēšanas paradigmas, tāpēc tām ir atšķirīgas iezīmes.

Top