Identificadores de enlace explícitos
Para un control máximo sobre el proceso de enlace, las aplicaciones cliente/servidor pueden usar identificadores de enlace explícitos. Al igual que los identificadores implícitos, los identificadores de enlace explícitos permiten a la aplicación cliente seleccionar un servidor para ejecutar sus llamadas. Además, los identificadores de enlace explícitos permiten que la aplicación cliente/servidor cree una sesión de comunicación RPC autenticada. Con identificadores explícitos, el cliente puede conectarse a más de un servidor y ejecutar procedimientos remotos en varios servidores. Las aplicaciones cliente multiproceso y asincrónicas pueden conectarse incluso a varios servidores y ejecutar varios procedimientos remotos al mismo tiempo.
La aplicación cliente debe pasar el identificador explícito como parámetro a cada llamada a procedimiento remoto. Para ajustarse al estándar OSF, el identificador debe especificarse como primer parámetro en cada procedimiento remoto. Sin embargo, las extensiones de Microsoft para RPC permiten especificar el identificador de enlace en otras posiciones. Para obtener más información, vea Microsoft RPC Binding-Handle Extensions.
Para crear un identificador explícito, declare el identificador como parámetro para las operaciones remotas en el archivo IDL. El ejemplo Hello, World se puede redefinir para usar un identificador explícito como se muestra:
/* IDL file for explicit handles */
[
uuid(20B309B1-015C-101A-B308-02608C4C9B53),
version(1.0)
]
interface hello
{
void HelloProc([in] handle_t h1,
[in, string] char * pszString);
}
Puede combinar identificadores explícitos e implícitos en una sola interfaz. Si una función tiene un identificador explícito en su lista de parámetros, se usará ese identificador. Si una función de una interfaz que usa identificadores implícitos no especifica un identificador explícito, se usará el identificador implícito predeterminado.