Implementación de un dispositivo WSD hospedado múltiple
WS-Discovery y el perfil de dispositivos para servicios web (DPWS) no describen la implementación de dispositivos de varios hogares. En este tema se describe la compatibilidad con dispositivos de varios hogares en WSDAPI y se proporcionan recomendaciones de implementación para desarrolladores de dispositivos y cliente. En este tema, se supone que los mensajes de detección se envían a través de IPv4 e IPv6 (si están disponibles) con el mismo identificador de mensaje y la misma información de secuenciación de aplicaciones.
Detección en un entorno de varios hogares
Como se mencionó en la sección Hello y XAddrs de Funcionalidad adicional de WS-Discovery, WSDAPI nunca proporciona XAddrs en un mensaje Hello. Esto significa que se puede enviar el mismo mensaje Hello en todas las interfaces de red con el mismo identificador de mensaje y la misma información de secuenciación de aplicaciones. Esto facilita la detección de colisiones de cliente para descartar varios mensajes Hello del mismo dispositivo cuando un cliente y el dispositivo comparten más de una subred.
Dado que los XAddrs no se envían en el mensaje Hello , las implementaciones de cliente deben enviar un mensaje Resolve para obtener la dirección del dispositivo pertinente. La resolución debe enviarse en todas las interfaces de cliente con el mismo identificador de mensaje y el dispositivo debe filtrar los mensajes duplicados según sea necesario. Si es necesario, el uso del mismo identificador de mensaje para resolver el mensaje permite al dispositivo elegir una interfaz preferida para comunicarse con los clientes.
Al enviar un mensaje ResolveMatch , un dispositivo debe proporcionar XAddrs relacionados con la interfaz de red a través de la cual está unicando el mensaje. Esta práctica ayuda a evitar varios intentos de conexión de cliente y una lógica de reintento complicada.
Intercambio de metadatos en un entorno de varios hogares
La implementación del intercambio de metadatos en un entorno de varios hogares es más difícil que implementar la detección debido al control de versiones de metadatos. Si un cliente solicita metadatos a través de varias interfaces, el cliente puede recibir varios mensajes GetResponse a través de interfaces diferentes. Estos mensajes GetResponse pueden contener diferentes secciones de metadatos de relación con la misma versión de metadatos. Esto reduce el valor del número de versión de metadatos.
Hay un enfoque alternativo, donde se envía un único mensaje GetResponse en respuesta con todas las direcciones del servicio. La desventaja de este método es que se puede revelar información privada, como la topología de redes accesibles indirectamente.
En Windows Vista, los metadatos proporcionados por WSDAPI solo contienen direcciones válidas para la interfaz en la que se recibió la solicitud de metadatos.