Stub
Lo stub, come il proxy, è costituito da una o più parti di interfaccia e da un gestore. Ogni stub di interfaccia fornisce il codice per annullare ilmarshal dei parametri e del codice che chiama una delle interfacce supportate dell'oggetto. Ogni stub fornisce anche un'interfaccia per la comunicazione interna. Il gestore stub tiene traccia degli stub disponibili dell'interfaccia.
Esistono tuttavia le differenze seguenti tra lo stub e il proxy:
- La differenza più importante è che lo stub rappresenta il client nello spazio indirizzi dell'oggetto.
- Lo stub non viene implementato come oggetto aggregato perché non è necessario che il client venga visualizzato come una singola unità; ogni parte nello stub è un componente separato.
- Gli stub di interfaccia sono privati anziché pubblici.
- Gli stub dell'interfaccia implementano IRpcStubBuffer, non IRpcProxyBuffer.
- Invece di creare un pacchetto di parametri da sottoporre a marshalling, lo stub li annulla dopo il marshalling e quindi crea un pacchetto della risposta.
Il diagramma seguente illustra la struttura dello stub. Ogni stub di interfaccia è connesso a un'interfaccia nell'oggetto . Il canale invia i messaggi in arrivo allo stub dell'interfaccia appropriato. Tutti i componenti comunicano con il canale tramite IRpcChannelBuffer, l'interfaccia che fornisce l'accesso alla libreria di runtime RPC.