Plná moc
Proxy se nachází v adresním prostoru volajícího procesu a funguje jako náhrada vzdáleného objektu. Z pohledu volajícího objektu je proxy objektem. Role proxy serveru obvykle zabalí parametry rozhraní pro volání metod v jeho rozhraních objektů. Proxy zabalí parametry do vyrovnávací paměti zprávy a předá vyrovnávací paměť do kanálu, který zpracovává přenos mezi procesy. Proxy server se implementuje jako agregovaný nebo složený objekt. Obsahuje systémovou část, která se nazývá správce proxy serveru, a jednu nebo více komponent specifických pro rozhraní, které se nazývají proxy rozhraní. Počet proxy rozhraní se rovná počtu rozhraní, která byla vystavena danému klientovi. Klientovi, který vyhovuje modelu objektu komponenty, se zdá, že proxy server je skutečným objektem.
Poznámka
Při vlastním zařazování je možné proxy server implementovat podobně nebo může komunikovat přímo s objektem bez použití zástupných procedur.
Každý proxy rozhraní je objekt komponenty, který implementuje zařazování kódu pro jedno z rozhraní objektu. Proxy představuje objekt, pro který poskytuje zařazování kódu. Každý proxy také implementuje rozhraní IRpcProxyBuffer. I když rozhraní objektu reprezentované proxy je veřejné, IRpcProxyBuffer implementace je privátní a používá se interně v rámci proxy. Proxy manager sleduje proxy servery rozhraní a také obsahuje veřejnou implementaci řídicího IUnknown rozhraní pro agregaci. Každý proxy rozhraní může existovat v samostatné knihovně DLL, která je načtena při rozhraní, které podporuje, je materializován pro klienta.
Struktura proxy serveru
Následující diagram znázorňuje strukturu proxy serveru, který podporuje standardní zařazování parametrů patřících do dvou rozhraní: IA1 a IA2. Každý proxy rozhraní implementuje IRpcProxyBuffer pro interní komunikaci mezi agregačními částmi. Když je proxy server připravený předat jeho zařazované parametry přes hranice procesu, volá metody v IRpcChannelBuffer rozhraní, které je implementováno kanálem. Kanál zase přesměruje volání do knihovny vzdáleného volání procedur za běhu, aby se dostal do cíle v objektu.
Související témata