Sdílet prostřednictvím


Jak FUNGUJE RPC

Nástroje RPC se uživatelům zobrazují, jako by klient přímo volá proceduru umístěnou ve vzdáleném serverovém programu. Každý klient a server mají vlastní adresní prostory; to znamená, že každý má vlastní paměťový prostředek přidělený datům používaným postupem. Následující obrázek znázorňuje architekturu RPC.

rpc architektura

Jak je znázorněno na obrázku, klientská aplikace volá místní náhradní proceduru místo samotného kódu, který proceduru implementuje. Zástupné procedury jsou zkompilovány a propojeny s klientskou aplikací. Místo toho, aby obsahoval skutečný kód, který implementuje vzdálenou proceduru, kód klientského stubu:

  • Načte požadované parametry z adresního prostoru klienta.
  • Podle potřeby přeloží parametry do standardního formátu oznámení o nedoručení pro přenos přes síť.
  • Volání funkcí v knihovně run-time klienta RPC k odeslání požadavku a jeho parametrů na server.

Server provede následující kroky pro volání vzdálené procedury.

  1. Funkce knihovny runtime RPC serveru přijímají požadavek a volají proceduru zástupných procedur serveru.
  2. Zástupný kód serveru načte parametry ze síťové vyrovnávací paměti a převede je z formátu přenosu sítě na formát, který server potřebuje.
  3. Zástupný modul serveru volá skutečnou proceduru na serveru.

Vzdálená procedura se pak spustí, pravděpodobně vygeneruje výstupní parametry a návratovou hodnotu. Po dokončení vzdálené procedury vrátí podobná posloupnost kroků data klientovi.

  1. Vzdálená procedura vrátí svá data serverovému zástupci.
  2. Zástupný kód serveru převede výstupní parametry do formátu požadovaného pro přenos přes síť a vrátí je do funkcí knihovny za běhu RPC.
  3. Funkce knihovny runtime RPC serveru přenášejí data v síti do klientského počítače.

Klient proces dokončí tak, že přijme data přes síť a vrátí je do volající funkce.

  1. Klientská běhová knihovna RPC přijímá návratové hodnoty vzdálené procedury a vrací je klientskému zástupnému modulu.
  2. Klientský stub převede data z jejich NDR formátu na formát používaný klientským počítačem. Zástupný kód zapisuje data do paměti klienta a vrátí výsledek volajícímu programu v klientovi.
  3. Procedura pokračuje, jako by byla volána na stejném počítači.

Běhové knihovny jsou k dispozici ve dvou částech: importní knihovna, která je propojená s aplikací, a běhová knihovna RPC, která je implementována jako dynamická knihovna DLL (Dynamic Link Library).

Serverová aplikace obsahuje volání funkcí knihovny runtime serveru, které registrují rozhraní serveru a umožňují serveru přijímat vzdálená volání procedur. Serverová aplikace obsahuje také vzdálené procedury specifické pro aplikaci, které jsou volána klientskými aplikacemi.