Compartilhar via


Implementando um dispositivo WSD multilocatário

O WS-Discovery e o Perfil de Dispositivos para Serviços Web (DPWS) não descrevem a implementação de dispositivos multilocatários. Este tópico descreve o suporte a dispositivos multilocatário no WSDAPI e fornece recomendações de implementação para desenvolvedores de clientes e dispositivos. Neste tópico, supõe-se que as mensagens de descoberta sejam enviadas por IPv4 e IPv6 (se disponíveis) com a mesma ID de mensagem e informações de sequenciamento de aplicativo.

Descoberta em um ambiente multilocatário

Conforme mencionado na seção Hello e XAddrs da funcionalidade de WS-Discovery adicional, o WSDAPI nunca fornece XAddrs em uma mensagem Hello. Isso significa que a mesma mensagem Hello pode ser enviada em todos os adaptadores de rede com a mesma ID de mensagem e informações de sequenciamento de aplicativo. Isso facilita a detecção de colisão de cliente para descartar várias mensagens Hello do mesmo dispositivo quando um cliente e o dispositivo compartilham mais de uma sub-rede.

Como os XAddrs não são enviados na mensagem Olá , as implementações do cliente devem enviar uma mensagem Resolver para obter o endereço do dispositivo relevante. A Resolução deve ser enviada em todas as interfaces do cliente com a mesma ID de mensagem e o dispositivo deve filtrar mensagens duplicadas conforme necessário. Usar a mesma ID de mensagem para a mensagem Resolver permite que o dispositivo escolha uma interface preferencial para se comunicar com clientes, se necessário.

Ao enviar uma mensagem ResolveMatch , um dispositivo deve fornecer XAddrs relacionados ao adaptador de rede pelo qual ele está unicast da mensagem. Essa prática ajuda a evitar várias tentativas de conexão de cliente e lógica de repetição complicada.

Troca de metadados em um ambiente multilocatário

Implementar a troca de metadados em um ambiente multilocatário é mais difícil do que implementar a descoberta devido ao controle de versão de metadados. Se um cliente solicitar metadados em várias interfaces, o cliente poderá receber várias mensagens GetResponse em interfaces diferentes. Essas mensagens GetResponse podem conter seções de metadados de relação diferentes com a mesma versão de metadados. Isso reduz o valor do número de versão de metadados.

Há uma abordagem alternativa, em que uma única mensagem GetResponse é enviada em resposta com todos os endereços para o serviço. A desvantagem desse método é que informações privadas, como a topologia de redes indiretamente acessíveis, podem ser divulgadas.

No Windows Vista, os metadados fornecidos pelo WSDAPI contêm apenas endereços válidos para a interface na qual a solicitação de metadados foi recebida.