Vzdálené volání procedur
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
- Proběhne zabalení identifikátoru procedury a vstupních parametrů do formy vhodné pro přenos. (Jedná se o tzv marshalling.)
- Balíček se odešle.
- Entita určená k vykonání procedury balíček rozbalí a seznámí se s jeho obsahem. (Jde o tzv. unmarshalling.)
- Dojde k provedení procedury.
- Proběhne další zabalení, tentokrát výstupu procedury.
- Data se odešlou zpět volající entitě.
- Dojde k rozbalení.
- 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.