Dela via


Proxyserver

En proxy finns i adressutrymmet för anropsprocessen och fungerar som surrogat för fjärrobjektet. Från det anropande objektets perspektiv är proxyn objektet. Vanligtvis är proxyns roll att paketera gränssnittsparametrarna för anrop till metoder i dess objektgränssnitt. Proxyn paketar parametrarna i en meddelandebuffert och skickar bufferten till kanalen, som hanterar transporten mellan processer. Proxyn implementeras som ett aggregerat eller sammansatt objekt. Den innehåller en systembaserad, chefsdel som kallas proxyhanteraren och en eller flera gränssnittsspecifika komponenter som kallas gränssnittsproxy. Antalet gränssnittsproxys är lika med antalet objektgränssnitt som har exponerats för den specifika klienten. För klienten som följer komponentobjektmodellen verkar proxyn vara det verkliga objektet.

Not

Med anpassad marshaling kan proxyn implementeras på liknande sätt eller kommunicera direkt med objektet utan att använda en stub.

 

Varje gränssnittsproxy är ett komponentobjekt som implementerar marskalkeringskoden för ett av objektets gränssnitt. Proxyn representerar det objekt som den tillhandahåller kod för. Varje proxy implementerar också gränssnittet IRpcProxyBuffer. Även om objektgränssnittet som representeras av proxyn är offentligt är IRpcProxyBuffer implementering privat och används internt i proxyn. Proxyhanteraren håller reda på gränssnittsproxyservrarna och innehåller även den offentliga implementeringen av det kontrollerande IUnknown-gränssnittet för aggregeringen. Varje gränssnittsproxy kan finnas i en separat DLL som läses in när gränssnittet som den stöder materialiseras till klienten.

Proxyns struktur

Följande diagram visar strukturen för en proxy som stöder standardmarsering av parametrar som tillhör två gränssnitt: IA1 och IA2. Varje gränssnittsproxy implementerar IRpcProxyBuffer- för intern kommunikation mellan mängddelarna. När proxyn är redo att skicka sina konverterade parametrar över processgränsen anropas metoder i IRpcChannelBuffer--gränssnittet, som implementeras av kanalen. Kanalen i tur och ordning vidarebefordrar anropet till RPC-körningsbiblioteket så att det kan nå målet i objektet.

diagram som visar proxyns struktur.

Channel

Inter-Object Kommunikation

Microsoft RPC-

Stub