Remote procedure call

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íť.

  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
  • 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
  • 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

Tři základní RPC standardy jsou:

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

Historie

editovat
  • 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

editovat

Reference

editovat