Rozdiel medzi RPC a RMI

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 14 Smieť 2024
Anonim
I Need Help *Watch if you feel like giving up*
Video: I Need Help *Watch if you feel like giving up*

Obsah


RPC a RMI sú mechanizmy, ktoré umožňujú klientovi vyvolať procedúru alebo metódu zo servera prostredníctvom nadviazania komunikácie medzi klientom a serverom. Spoločný rozdiel medzi RPC a RMI je v tom, že RPC podporuje iba procedurálne programovanie zatiaľ čo RMI podporuje objektovo orientované programovanie.

Ďalším zásadným rozdielom medzi týmito dvoma je to, že parametre odovzdané na volanie vzdialených procedúr pozostávajú bežné dátové štruktúry, Na druhej strane, parametre odovzdané do vzdialenej metódy pozostávajú z objektov.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieRPCRMI
podperyProcedurálne programovanie
Objektovo orientované programovanie
parametreBežné dátové štruktúry sa odovzdávajú do vzdialených postupov.Objekty sa odovzdávajú vzdialeným metódam.
efektívnosťNižšia ako RMIViac ako RPC a podporované moderným programovacím prístupom (t. J. Objektovo orientované paradigmy)
režijnéviac
Menej porovnateľne
Parametre vstup / výstup sú povinné.ÁnoNie nevyhnutne
Zabezpečenie ľahkého programovania
vysoký
nízky


Definícia RPC

Diaľkové volanie procedúr (RPC) je funkcia programovacieho jazyka navrhnutá pre distribuované výpočty a založená na sémantike miestny postup hovory. Je to najbežnejšia forma vzdialenej služby a bola navrhnutá ako spôsob abstrakcie mechanizmu volania procedúr na použitie medzi systémami pripojenými prostredníctvom siete. Je to podobné mechanizmu IPC, kde operačný systém umožňuje procesom spravovať zdieľané údaje a zaoberať sa prostredím, v ktorom rôzne procesy prebiehajú na samostatných systémoch a nevyhnutne si vyžadujú komunikáciu na báze.

Poďme pochopiť, ako sa RPC implementuje prostredníctvom uvedených krokov:

  • Klientsky proces zavolá klientsky pahýľ s parametrami a jeho vykonávanie sa pozastaví až do ukončenia hovoru.
  • Parametre sa potom prevedú do strojovo nezávislej formy zoradením cez klientsky pahýl. Potom sa pripraví obsah reprezentácie parametrov.
  • Aby sa našla identita lokality, klient stub komunikuje s menným serverom, na ktorom existuje vzdialená procedúra.
  • Pomocou blokovacieho protokolu sa klient zaraďuje na miesto, kde existuje vzdialené volanie procedúry. Tento krok zastaví útržok klienta, kým nedostane odpoveď.


  • Serverová stránka prijíma odoslané z klientskej strany a prevádza ich do formátu špecifického pre daný počítač.
  • Teraz serverový výhonok vykoná volanie na serverovej procedúre spolu s parametrami a serverový výhonok sa zastaví, kým sa procedúra nedokončí.
  • Procedúra servera vráti vygenerované výsledky do útržku servera a výsledky sa pri útržku servera prevedú do formátu nezávislého na stroji a vytvoria obsahujúce výsledky.
  • Výsledok sa odošle klientskému pahýlu, ktorý sa prevedie späť do formátu špecifického pre tento stroj, ktorý je vhodný pre pahýl klienta.
  • Na poslednom klientovi stub vracia výsledky do klientskeho procesu.

Definícia RMI

Vzdialené vyvolanie metód (RMI) je podobný RPC, ale je jazykovo špecifický a má java. Vlákno je povolené volať metódu na vzdialený objekt. Aby sa zachovala priehľadnosť na strane klienta a servera, implementuje vzdialený objekt pomocou útržkov a skeletov. Útržok býva u klienta a pre vzdialený objekt sa správa ako proxy.

Keď klient volá vzdialenú metódu, zavolá sa útržok pre vzdialenú metódu. Útržok klienta je zodpovedný za vytvorenie a odoslanie balíka obsahujúceho názov metódy a zoradené parametre a kostra je zodpovedná za príjem balíka.

Kostra unshshals parametre a vyvolá požadovanú metódu na serveri. Kostra zhromažďuje danú hodnotu (alebo výnimky) s balíkom a posiela ju klientovi. Pahýľ znovu zostaví vratnú zásielku a pošle ju klientovi.

V Jave sú parametre odovzdané metódam a vrátené vo forme referencie. To by mohlo byť problematické pre službu RMI, pretože nie všetky objekty sú možno vzdialené metódy. Musí teda určiť, ktoré z nich je možné odovzdať ako referenciu a ktoré nie.

Java používa proces s názvom serialization kde sú objekty odovzdané ako hodnota. Vzdialený objekt je lokalizovaný pomocou pass by value. Môže tiež odovzdať objekt odkazom cez vzdialený odkaz na objekt spolu s adresou URL triedy výhonkov. Pass by reference obmedzuje pahýľ vzdialeného objektu.

  1. RPC podporuje procedurálne programovacie paradigmy, takže je založený na C, zatiaľ čo RMI podporuje objektovo orientované programovacie paradigmy a je založený na jave.
  2. Parametre odovzdávané vzdialeným postupom v RPC sú bežné dátové štruktúry. Naopak, RMI prenáša objekty ako parameter do vzdialenej metódy.
  3. RPC možno považovať za staršiu verziu RMI a používa sa v programovacích jazykoch, ktoré podporujú procedurálne programovanie, a môže používať iba metódu pass by value. Oproti tomu je zariadenie RMI navrhnuté na základe moderného programovacieho prístupu, ktorý by mohol využívať funkciu pass by value alebo reference. Ďalšou výhodou RMI je to, že parametre odovzdávané referenciou sa môžu meniť.
  4. Protokol RPC generuje viac režijných nákladov ako RMI.
  5. Parametre odovzdané v RPC musia byť „dnu von“Čo znamená, že hodnota odovzdaná do procedúry a výstupná hodnota musia mať rovnaké dátové typy. Na rozdiel od toho nie je povinnosťou absolvovať „dnu von”Parametre v RMI.
  6. V RPC odkazy nemohli byť pravdepodobné, pretože tieto dva procesy majú odlišný adresný priestor, ale je to možné v prípade RMI.

záver

RPC aj RMI slúžia na rovnaký účel, ale používajú sa v jazykoch, ktoré podporujú rôzne programovacie paradigmy, a preto majú odlišné vlastnosti.