Stub

Le stub, comme le proxy, est constitué d’un ou plusieurs éléments d’interface et d’un gestionnaire. Chaque stub d’interface fournit du code pour démarshaler les paramètres et le code qui appelle l’une des interfaces prises en charge de l’objet. Chaque stub fournit également une interface pour la communication interne. Le gestionnaire de stub effectue le suivi des stubs d’interface disponibles.

Toutefois, il existe les différences suivantes entre le stub et le proxy :

  • La différence la plus importante est que le stub représente le client dans l’espace d’adressage de l’objet.
  • Le stub n’est pas implémenté en tant qu’objet d’agrégation, car il n’est pas nécessaire que le client soit vu comme une seule unité ; chaque élément du stub est un composant distinct.
  • Les stubs d’interface sont privés plutôt que publics.
  • Les stubs d’interface implémentent IRpcStubBuffer, et non IRpcProxyBuffer.
  • Au lieu d’empaqueter les paramètres à marshaler, le stub les désemballe une fois qu’ils ont été marshalés, puis empaque la réponse.

Structure du stub

Le diagramme suivant montre la structure du stub. Chaque stub d’interface est connecté à une interface sur l’objet . Le canal distribue les messages entrants au stub d’interface approprié. Tous les composants communiquent avec le canal via IRpcChannelBuffer, l’interface qui fournit l’accès à la bibliothèque d’exécution RPC.

Capture d’écran montrant la structure du Stub.

Channel

Communication inter-objet

Détails du marshaling

Microsoft RPC

Proxy