×
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