Protokol vzdáleného volání procedur (RPC) v distribuovaném systému
⚡ Chytré shrnutí
Vzdálené volání procedur (RPC) je protokol meziprocesové komunikace, který umožňuje programu spustit proceduru v jiném adresním prostoru nebo počítači a skrýt tak síťové detaily za běžným lokálním voláním funkce v distribuovaných systémech klient-server.

Co je RPC?
Vzdálené volání procedur (RPC) je meziprocesová komunikace technika používaná pro aplikace klient-server. Úplná forma RPC je Vzdálené volání procedur (Remote Procedure Call). Mechanismy RPC se používají, když počítačový program způsobí spuštění procedury nebo podprogramu v jiném adresním prostoru, kódovaném jako normální volání procedury, aniž by programátor explicitně kódoval podrobnosti pro vzdálenou interakci.
Toto volání procedury také spravuje nízkoúrovňové transportní protokoly, jako jsou UDP a TCP/IP, pro přenos dat zpráv mezi programy.
Typy RPC
Tři typy RPC jsou:
- Zpětné volání RPC
- Vysílání RPC
- RPC v dávkovém režimu
Zpětné volání RPC
Tento typ RPC umožňuje paradigma peer-to-peer (P2P) mezi zúčastněnými procesy. Pomáhá procesu fungovat jako klient i server.
Funkce Callback RPC:
- Řeší problémy s interaktivními aplikacemi na dálku.
- Poskytuje serveru handle klienta.
- Zpětné volání nechá klientský proces čekat.
- Spravuje zablokování zpětných volání.
- Usnadňuje paradigma peer-to-peer mezi zúčastněnými procesy.
Vysílání RPC
Vysílání RPC je požadavek klienta, který je vysílán v síti a zpracováván všemi servery, které mají metodu pro zpracování tohoto požadavku.
Funkce Broadcast RPC:
- Umožňuje určit, že zpráva s požadavkem klienta musí být vysílána.
- Můžete deklarovat porty vysílání.
- Pomáhá to snížit zátěž fyzické sítě.
RPC v dávkovém režimu
Dávkové RPC pomáhá zařazovat jednotlivé RPC požadavky do fronty v přenosové vyrovnávací paměti na straně klienta a poté je v jedné dávce odesílat přes síť na server.
Funkce dávkového RPC:
- Minimalizuje režijní náklady spojené s odesíláním požadavků, protože odesílá požadavky přes síť v jedné dávce na server.
- Tento typ RPC protokolu je efektivní pouze pro aplikace, které vyžadují nižší rychlost volání.
- Vyžaduje spolehlivý přenosový protokol.
RPC Architecture
Architektura RPC má hlavně pět součástí programu:
- Klient
- Klientský útržek
- RPC Runtime
- Útržek serveru
- Server
RPC Architecture
Jak RPC funguje?
Během procesu RPC probíhají následující kroky:
Krok 1) Na klientském počítači se spustí klient, klientský stub a jedna instance běhového prostředí RPC.
Krok 2) Klient spustí proces klientského stubu předáním parametrů obvyklým způsobem. Klientský stub je uložen ve vlastním adresním prostoru klienta. Zároveň požádá lokální RPC Runtime o odeslání požadavku na serverový stub.
Krok 3) V této fázi uživatel přistupuje k RPC provedením běžného lokálního volání procedury. Runtime RPC spravuje přenos zpráv mezi klientem a serverem v síti. Provádí také úkoly opakovaného přenosu, potvrzování, směrování a šifrování.
Krok 4) Po dokončení serverové procedury se provádění vrací do serverového stubu, který návratové hodnoty zabalí (zařadí) do zprávy. Serverový stub poté odešle zprávu zpět do transportní vrstvy.
Krok 5) V tomto kroku transportní vrstva odešle výslednou zprávu zpět transportní vrstvě klienta, která ji vrátí do klientského stubu.
Krok 6) V této fázi klientský stub demarshaluje (rozbalí) návratové parametry ve výsledném paketu a provedení se vrátí volajícímu.
Charakteristika RPC
Zde jsou základní vlastnosti RPC:
- Volaná procedura se nachází v jiném procesu, který se pravděpodobně nachází na jiném počítači.
- Procesy nesdílejí adresní prostor.
- Parametry jsou předávány pouze hodnotami.
- RPC se spouští v prostředí procesu serveru.
- Nenabízí přístup k prostředí volající procedury.
Vlastnosti RPC
Zde jsou důležité funkce RPC:
- Jednoduchá syntaxe volání.
- Nabízí známou sémantiku.
- Poskytuje dobře definované rozhraní.
- Může komunikovat mezi procesy na stejných nebo různých počítačích.
Výhody RPC
Zde jsou výhody/výhody RPC:
- RPC pomáhá klientům komunikovat se servery prostřednictvím konvenčního používání volání procedur ve vyšších programovacích jazycích.
- RPC je modelováno podle volání lokální procedury, ale volaná procedura je s největší pravděpodobností prováděna v jiném procesu a obvykle na jiném počítači.
- RPC podporuje procesně orientované a vláknově orientované modely.
- RPC skryje interní mechanismus předávání zpráv před uživatelem.
- Zavazuje mnoho vrstev protokolu ke zlepšení výkonu.
- RPC poskytuje abstracnapříklad povaha síťové komunikace spočívající v předávání zpráv zůstává před uživatelem skryta.
- RPC lze použít v distribuovaném i lokálním prostředí.
- Úsilí potřebné k přepsání a opětovnému vývoji kódu je minimální.
Nevýhody RPC
Zde jsou nevýhody/nevýhody používání RPC:
- Vzdálené volání procedur předává parametry pouze jako hodnoty; hodnoty ukazatelů (referenční hodnoty) nejsou povoleny.
- Doba volání (a návratu) vzdálené procedury – režie – je výrazně vyšší než u lokální procedury.
- Tento mechanismus je vysoce náchylný k selhání, protože zahrnuje komunikační systém, jiný stroj a další proces.
- Koncept RPC lze implementovat různými způsoby, takže neexistuje jediný standard.
- Nenabízí flexibilitu hardwarové architektury, protože je založena převážně na interakci.
- Náklady na proces se zvyšují kvůli vzdálenému volání procedur.

