Remote procedure call
Z Wikipedie, otevřené encyklopedie
(Přesměrováno z RPC)
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.
Obsah |
Postup [editovat]
- 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]
- 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]
- 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).
Historie [editovat]
- 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‘‘