Remote procedure call

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

Remote procedure call (RPC, vzdálené volání procedur) je v informatice technologie dovolující programu vykonat kód na jiném místě, než je umístěn volající program. Příkladem budiž provedení složitějšího matematického výpočtu výkonnějším počítačem, dostupným skrze síť.

Postup[editovat | editovat zdroj]

  1. Proběhne zabalení identifikátoru procedury a vstupních parametrů do formy vhodné pro přenos. (Jedná se o tzv marshalling.)
  2. Balíček se odešle.
  3. Entita určená k vykonání procedury balíček rozbalí a seznámí se s jeho obsahem. (Jde o tzv. unmarshalling.)
  4. Dojde k provedení procedury.
  5. Proběhne další zabalení, tentokrát výstupu procedury.
  6. Data se odešlou zpět volající entitě.
  7. Dojde k rozbalení.
  8. Proběhne předání nadřazenému podprogramu.

Výhody[editovat | editovat zdroj]

  • Odlehčení vlastní aplikace o danou (v principu velmi komplikovanou) proceduru.
  • Abstrahovaní od implementace procedury (volající entitu zajímá jen výsledek, zbytek je tzv. černá skříňka).
  • Možnost „půjčit si“ výpočetní výkon jiného stroje.

Nevýhody[editovat | editovat zdroj]

  • Potřeba bezchybné funkčnosti entity, jež je k vykonání procedury určena, a konektivity s ní.
  • Nemožnost používání globálních proměnných a předávání ukazatelů (v jiném stroji nemají smysl; adresní prostor je totiž jiný).

Standardy[editovat | editovat zdroj]

Tři základní RPC standardy jsou:

  • ONC (Open Network Computing);
  • DCE (Distributed Computing Environment);
  • Microsoft COM/DCOM ,,standard‘‘.

Historie[editovat | editovat zdroj]

  • První popis RPC spadá do roku 1976, do normy RFC 707.[1]
  • První, kdo RPC využíval, byla firma Xerox. Stalo se tak pod jménem Kurýr (v angl. originálu Courier), a to v roce 1981.
  • První masové využití přišlo se systémem Unix. Šlo o ON RPC.[2]
  • Počítačový červ Blaster využíval exploitu této technologie.[3]

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

  1. Videomix
  2. Vidmate Download
  3. vidmate app