Remote procedure call

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Remote procedure call (RPC, vzdálené volání procedur) je technologie dovolující programu vykonat proceduru, která může být uložena na jiném místě než je umístěn sám volající program. Příkladem budiž výpočet funkce na jiném počítači v síti.

Postup[editovat | editovat zdroj]

  • Nejprve proběhne jednoduché zabalení parametrů a identifikátorů procedury do formy vhodné pro přenos mezi počítači (tzv. marshalling).
  • Poté se balíček odešle.
  • Balíček se na vzdáleném místě rozbalí, zjistí se o jakou proceduru jde (unmarshalling).
  • Samotné zavolání a provedení procedury.
  • Výsledek procedury se opět zabalí.
  • A odešle zpět.
  • První počítač výsledek opětovně rozbalí.
  • A přijatá hodnota se předá proceduře.

Výhody[editovat | editovat zdroj]

  • Odlehčení vlastní aplikace o danou (často velmi komplikovanou) proceduru.
  • Abstrahovaní toho, jak je implementovaná (zajímá nás jen výsledek, zbytek je černá skříňka).
  • Možnost „půjčit si“ výpočetní výkon vzdálených serverů.

Nevýhody[editovat | editovat zdroj]

  • Je vyžadováno internetové připojení.
  • Spoléhání se na to, aby vzdálený server byl v provozu a bezchybně fungoval (pokud nebude, pak chyba není zotavitelná).
  • Nejde předávat ukazatele, protože v druhé proceduře nemají žádný smysl (procedury nemají společný adresní prostor).
  • Globální proměnné vytvořené na klientovi nepůjdou použít na serveru.

Historie[editovat | editovat zdroj]

  • První popis rpc spadá již do roku 1976, do normy RFC 707. První kdo RPC využíval byl dokonce Xerox pod jménem 'Kurýr' (Courier) v roce 1981. První masově využívané nasazení přišlo až s systémem Unix, konkrétně šlo o ON RPC.
  • Tři základní RPC standardy:
    • ONC (Open Network Computing)
    • DCE (Distributed Computing Environment)
    • Microsoft COM/DCOM ,,standard‘‘

Související články[editovat | editovat zdroj]