## The Binding Model

Binding refers to the establishment of relationship between a client and a server that permits the client to make a remote procedure call to the server. The term binding usually refers specifically to a protocol relationship between a client and either the server host or a specific endpoint on the server host, and binding information means the set of protocol and addressing information required to establish such a binding. But, for a remote procedure call, such a binding occurs in a context that involves other important elements, paralleling the notion of a binding in a local procedure call. In order for an RPC to occur, a relationship must be established that ties a specific procedure call on the client side with the manager code that it invokes on the server side. This requires both the binding information itself and a number of additional elements (see the following figure). The complete list is as follows:

· A protocol sequence that identifies the RPC and underlying transport protocols

· An RPC protocol version identifier

· A transfer syntax identifier

· A server host network address

· An endpoint of a server instance on the host

· An object UUID that can optionally be used for selection among servers and/or manager routines

· An interface UUID that identifies the interface to which the called routine belongs

· An interface version number that defines compatibility between interface versions

· An operation number that identifies a specific operation within the interface

Information Required to Complete an RPC

The binding information itself covers the first five elements of the list - the protocol and address information required for RPC communications to occur between a client and server. (The preceding figure also shows the object UUID as part of the binding information. This applies to clients, as explained in Client Binding Model .) In RPC terminology, such a binding can be partial or full. A partial binding is one that contains the first four elements of the list, but lacks an endpoint. A full binding contains an endpoint as well. The distinction is that a partial binding is sufficient to establish communications between a client and a server host, whereas a full binding allows communications to a specific endpoint on the server host.

In order to complete an RPC call, all of the elements listed in the preceding figure must be present. The binding process consists of a series of steps taken by the client and server to create, make available, and assemble all the necessary information, followed by the actual RPC, which creates the final binding and routing using the elements established by the previous steps.

More:

Server Binding Model

Client Binding Model

Call Routing

Routing Policy

###