×


RPC – Remote Procedure Call
• klasické řešení (bez RPC):
– klient zformuluje svůj požadavek, sestaví jej do tvaru
zprávy a odešle
• klient čeká (na asynchronní událost - příchod zprávy s
odpovědí) - např. je suspendován
– zpráva s odpovědí přichází, klient je aktivován
• důsledky:
– klient si uvědomuje, že:
• pracuje v distribuovaném síťovém prostředí
• některé akce probíhají na vzdáleném počítači (předem
neznámou rychlostí)
– klient se musí přizpůsobovat asynchronní povaze
komunikace
• posílat zprávy, čekat na odpovědi, ...
• nezapadá to do zásad strukturovaného programování !!!
• řešení s RPC:
– RPC vytváří klientovi iluzi, že všechny akce probíhají
“u něj”, a mají formu volání lokálních procedur
• každá akce končí v okamžiku výstupu (návratu) z
příslušné procedury - klient se pak nemusí explicitně zabývat čekáním
• klient předává parametry operací jako parametry volané
procedury
– a nikoli jako data, vkládaná do zpráv dle zásad
příslušného komunikačního protokolu
– klient si nemusí uvědomovat, že pracuje v prostředí
sítě
• výhody:
– výrazné zjednodušení implementace klienta (i serveru)
• v podstatě je pod klienta “podstrčena” další vrstva
(vrstva RPC), která přijímá požadavky na volání procedur, “balí” je do zpráv a
zprostředkovává jejich skutečné provedení na jiném uzlu
• klient tak volá procedury, které jsou ve skutečnosti
prováděny na vzdáleném uzlu