스텁

스텁은 프록시와 마찬가지로 하나 이상의 인터페이스 조각과 관리자로 구성됩니다. 각 인터페이스 스텁은 개체의 지원되는 인터페이스 중 하나를 호출하는 매개 변수 및 코드를 숨기지 않는 코드를 제공합니다. 각 스텁은 내부 통신을 위한 인터페이스도 제공합니다. 스텁 관리자는 사용 가능한 인터페이스 스텁을 추적합니다.

그러나 스텁과 프록시 간에는 다음과 같은 차이점이 있습니다.

  • 가장 중요한 차이점은 스텁이 개체의 주소 공간에서 클라이언트를 나타낸다는 것입니다.
  • 스텁은 클라이언트를 단일 단위로 볼 요구 사항이 없으므로 집계 개체로 구현되지 않습니다. 스텁의 각 조각은 별도의 구성 요소입니다.
  • 인터페이스 스텁은 공용이 아닌 프라이빗입니다.
  • 인터페이스 스텁은 IRpcProxyBuffer가 아닌 IRpcStubBuffer를 구현합니다.
  • 마샬링할 매개 변수를 패키징하는 대신 스텁은 마샬링된 후 압축을 풀고 회신을 패키지합니다.

스텁의 구조

다음 다이어그램은 스텁의 구조를 보여줍니다. 각 인터페이스 스텁은 개체의 인터페이스에 연결됩니다. 채널은 들어오는 메시지를 적절한 인터페이스 스텁으로 디스패치합니다. 모든 구성 요소는 RPC 런타임 라이브러리에 대한 액세스를 제공하는 인터페이스인 IRpcChannelBuffer를 통해 채널과 통신합니다.

스텁의 구조를 보여 주는 스크린샷

채널

개체 간 통신

마샬링 세부 정보

Microsoft RPC

프록시