Instrucciones de aplicación de servicio de nombres
Al desarrollar la aplicación distribuida, debe proporcionar a los usuarios de la aplicación un método para especificar el nombre con el que pueden registrar la aplicación en la base de datos de servicio de nombres. Este método puede constar de un archivo de datos, una entrada de línea de comandos o un cuadro de diálogo.
Aunque la arquitectura del servicio de nombres RPC admite varios métodos para organizar las entradas de servidor de una aplicación, está optimizado para búsquedas. Como resultado, las actualizaciones frecuentes pueden dificultar el rendimiento del servicio de nombres y de la aplicación. Para evitar exportar información innecesariamente, elija un diseño que permita al servidor determinar si su información está en la base de datos del servicio de nombres. Además, cada instancia del servidor debe exportarse a su propio nombre de entrada. De lo contrario, será difícil que una instancia cambie sus UUID de objeto admitidos o secuencias de protocolo sin alterar la información de otra instancia.
El método siguiente evita estos problemas y proporciona un buen rendimiento, independientemente del servicio de nombre que use la red.
Para empezar, diseñe la aplicación para que se inicie la primera vez que se inicie una instancia de servidor determinada, elige un nombre de entrada de servidor único y guarda este nombre en el Registro junto con la otra información de configuración de la aplicación. A continuación, haga que exporte sus identificadores de enlace y los UUID de objeto, si los hay, a su entrada de servicio de nombre.
Las invocaciones posteriores de la instancia del servidor deben comprobar que la entrada del servicio de nombre está presente y contiene el conjunto correcto de identificadores UUID de objeto y identificadores de enlace. Una entrada que falta puede significar que un administrador lo quitó o que una interrupción del suministro eléctrico hizo que se perdiera la información del servicio de nombre. Es importante comprobar que los identificadores de enlace de la entrada son correctos; Si un administrador agrega compatibilidad con TCP/IP a un equipo, por ejemplo, los servidores RPC escucharán en esa secuencia de protocolo cuando llamen a RpcServerUseAllProtseqs. Sin embargo, si el servidor no actualiza la entrada de servicio de nombre, no se informará a los clientes de que se admite TCP.
Cuando el cliente importa, debe especificar NULL como nombre de entrada. Especificar NULL hace que las funciones de la biblioteca RPC de Microsoft busquen la interfaz en todas las entradas de servicio de nombre del dominio o grupo de trabajo del equipo cliente, por lo que encontrará la información de cada instancia.
Si usa UUID de objeto para representar objetos conocidos como impresoras, puede usar una variación de este método. En lugar de exportar enlaces a una entrada, diseñe la aplicación para que cada instancia cree una entrada para cada objeto admitido, como "/.:/ printers/Laser1" y "/.:/ impresoras/Laser2." A continuación, haga que el servidor exporte sus identificadores de enlace a cada entrada de servidor, junto con el UUID de objeto relevante para esa entrada.
En este caso, un cliente puede buscar un recurso por nombre importando desde la entrada de servidor pertinente; no requiere el UUID de objeto del recurso. Si tiene el UUID de recurso pero no el nombre, puede importar desde la entrada nula .