Remote procedure call

Z Wikipedie, otevřené encyklopedie

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

  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

  • 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

  • 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

Tři základní RPC standardy jsou:

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

Historie

  • První popis RPC spadá do roku 1976, do normy RFC 707.
  • 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.
  • Počítačový červ Blaster využíval exploitu této technologie.

Související články

Reference