PreviousNext

Client Binding Model

To make a call, the client needs a compatible binding: that is, one that offers the interface and version desired, uses a mutually supported protocol sequence, and if requested, is associated with a specific object UUID.

Clients typically find compatible bindings by making calls to RPC API routines that search the name service. Typically, the client specifies the interface and object UUIDs desired, and the runtime takes responsibility for finding bindings with protocol sequences that it can use.

For each binding that the client imports, the runtime provides a server binding handle that refers to the binding information maintained by the client runtime. This includes the protocol sequence and address information for the server host and possibly includes an object UUID.

Once the client has found a compatible binding, it makes a call using the binding handle for that binding. When the call is made, the client runtime has available to it the binding information and any object UUID referred to by the binding handle. Also available in the stub code are the interface identifier of the interface on which the call was made, and the operation number of the routine being called. Recall that the last three items of this information - the object UUID/interface identifier/operation number - are precisely what the server needs to route the call to a specific manager operation.