Rozdíl mezi RPC a RMI

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 14 Smět 2024
Anonim
Rozdíl mezi RPC a RMI - Technologie
Rozdíl mezi RPC a RMI - Technologie

Obsah


RPC a RMI jsou mechanismy, které umožňují klientovi vyvolat proceduru nebo metodu ze serveru prostřednictvím navázání komunikace mezi klientem a serverem. Společný rozdíl mezi RPC a RMI je v tom, že RPC podporuje pouze procedurální programování zatímco RMI podporuje objektově orientované programování.

Další velký rozdíl mezi těmito dvěma je, že parametry předávané volání vzdálených procedur sestávají běžné datové struktury. Na druhé straně se parametry předávané do vzdálené metody skládají z objekty.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníRPCRMI
PodporujeProcedurální programování
Objektově orientované programování
ParametryObyčejné datové struktury jsou předávány do vzdálených procedur.Objekty jsou předávány vzdáleným metodám.
ÚčinnostNižší než RMIVíce než RPC a podporované moderním programovacím přístupem (tj. Objektově orientovaná paradigma)
RežieVíce
Méně srovnatelně
Vstupní parametry jsou povinné.AnoNe nutně
Poskytování snadnosti programování
Vysoký
nízký


Definice RPC

Vzdálené volání procedur (RPC) je programovací jazyk určený pro distribuované výpočty a založený na sémantice místní postup hovory. Jedná se o nejběžnější formy vzdálené služby a byl navržen jako způsob, jak abstrakt mechanismus volání procedur použít mezi systémy připojenými přes síť. Je to podobné mechanismu IPC, kde operační systém umožňuje procesům spravovat sdílená data a řešit prostředí, ve kterém různé procesy provádějí na samostatných systémech a nutně vyžadují komunikaci založenou na bázi.

Pojďme pochopit, jak je RPC implementováno danými kroky:

  • Klientský proces volá klientský blok s parametry a jeho provádění je pozastaveno, dokud není volání dokončeno.
  • Parametry jsou poté převedeny do strojově nezávislé formy zařazováním do klientského výčtu. Poté se připraví ty, které obsahují reprezentaci parametrů.
  • Chcete-li najít identitu webu, klient stub komunikuje s jmenným serverem, na kterém existuje vzdálená procedura.
  • Pomocí blokovacího protokolu se klient ukládá na web, kde existuje vzdálené volání procedur. Tento krok zastaví útržek klienta, dokud nedostane odpověď.


  • Webový server přijímá odeslané z klientské strany a převádí jej do formátu specifického pro stroj.
  • Nyní serverový výhonek provede volání na serverové proceduře spolu s parametry a serverový výhonek bude přerušen, dokud nebude procedura dokončena.
  • Procedura serveru vrátí vygenerované výsledky do stubu serveru a výsledky se převedou do formátu nezávislého na stroji na stubu serveru a vytvoří obsahující výsledky.
  • Výsledek je odeslán do klientského bloku, který je převeden zpět do formátu specifického pro stroj vhodný pro klientský blok.
  • Na posledním klientovi stub vrací výsledky klientskému procesu.

Definice RMI

Vzdálené vyvolávání metod (RMI) je podobný RPC, ale je specifický pro jazyk a je java. Vlákno je povoleno volat metodu na vzdálený objekt. Pro zachování průhlednosti na straně klienta a serveru implementuje vzdálený objekt pomocí útržků a koster. Stub je umístěn u klienta a pro vzdálený objekt se chová jako proxy.

Když klient volá vzdálenou metodu, zavolá se stub pro vzdálenou metodu. Klientský výhonek je zodpovědný za vytvoření a odeslání zásilky obsahující název metody a zařazené parametry a kostra je zodpovědná za přijetí zásilky.

Kostra unshshals parametry a vyvolá požadovanou metodu na serveru. Kostra spojuje danou hodnotu (nebo výjimky) s balíkem a je na klientský pahýl. Stub znovu sestaví vrácenou zásilku a s klientem.

V Javě jsou parametry předány metodám a vráceny ve formě odkazu. To by mohlo být obtížné pro službu RMI, protože ne všechny objekty jsou možná vzdálené metody. Musí tedy určit, které informace lze předat jako referenční a které nikoli.

Java používá proces pojmenovaný jako serializace kde jsou objekty předávány jako hodnota. Vzdálený objekt je lokalizován předáním podle hodnoty. Může také předávat objekt odkazem prostřednictvím předávání vzdáleného odkazu na objekt spolu s adresou URL třídy stub. Pass by reference omezuje pahýl pro vzdálený objekt.

  1. RPC podporuje paradigmata procedurálního programování, takže je založena na C, zatímco RMI podporuje objektově orientovaná programovací paradigmata a je založena na javě.
  2. Parametry předávané vzdáleným postupům v RPC jsou běžné datové struktury. Naopak, RMI přenáší objekty jako parametr do vzdálené metody.
  3. RPC lze považovat za starší verzi RMI a používá se v programovacích jazycích, které podporují procedurální programování, a může používat pouze metodu pass by value. Proti tomu je zařízení RMI navrženo na základě moderního programovacího přístupu, který by mohl používat pass by value nebo reference. Další výhodou RMI je to, že parametry předávané referencí lze změnit.
  4. Protokol RPC generuje více režijních nákladů než RMI.
  5. Parametry předávané v RPC musí být „dovnitř ven“Což znamená, že hodnota předaná proceduře a výstupní hodnota musí mít stejné datové typy. Naproti tomu není nutností absolvovat „dovnitř ven”Parametry v RMI.
  6. V RPC by odkazy nemohly být pravděpodobné, protože dva procesy mají zřetelný adresní prostor, ale je to možné v případě RMI.

Závěr

RPC i RMI slouží stejnému účelu, ale používají se v jazycích podporujících různé programovací paradigmata, a proto mají odlišné funkce.