Visão geral das interfaces WSDAPI
A API de Serviços Web em Dispositivos (WSDAPI) é usada para desenvolver aplicativos cliente que encontram e acessam dispositivos e para desenvolver hosts de dispositivo e serviços associados que são executados no Windows Vista e no Windows Server 2008. A API de Descoberta de Funções e a ferramenta WsdCodeGen são ferramentas complementares que podem ser usadas para desenvolvimento de cliente, host de dispositivo e serviço. As interfaces WSDAPI podem ser usadas diretamente para expor a funcionalidade avançada.
Principais interfaces WSDAPI
As quatro principais interfaces WSDAPI são IWSDiscoveryProvider, IWSDiscoveryPublisher, IWSDDeviceProxy e IWSDDeviceHost. Para obter uma lista de todas as interfaces WSDAPI, consulte Serviços Web em Interfaces de Dispositivos.
Iwsdiscoveryprovider
IWSDiscoveryProvider é usado para implementar WS-Discovery funcionalidade em clientes.
IWSDiscoveryProvider emite WS-Discovery mensagens de investigação e resolução e recebe mensagens Hello, Bye, ProbeMatches e ResolveMatches . Use as informações recuperadas por meio da interface IWSDiscoveryProvider ao criar uma interface IWSDDeviceProxy usada para descrever e controlar um dispositivo DPWS específico.
Uma interface IWSDiscoveryProvider não é necessária ao simplesmente resolver um endereço de dispositivo DPWS específico antes de criar um proxy de dispositivo. WSDCreateDeviceProxy resolve automaticamente o endereço do dispositivo, se necessário.
A API de Descoberta de Funções pode ser usada para descoberta genérica de dispositivos e serviços, pois a API pode descobrir dispositivos DPWS e também dispositivos usando outros protocolos. Considere usar a Descoberta de Funções ao escrever um aplicativo de descoberta genérico.
Iwsdiscoverypublisher
IWSDiscoveryPublisher é usado para implementar WS-Discovery funcionalidade em serviços de destino, como dispositivos.
IWSDiscoveryPublisher permite que um aplicativo publique sua presença usando WS-Discovery mensagens Hello e Bye. Essa interface permite que um aplicativo receba solicitações de investigação e resolução e construa e envie respostas ProbeMatches e ResolveMatches.
Uma interface IWSDiscoveryPublisher não é necessária ao simplesmente publicar a existência de um objeto IWSDDeviceHost . IWSDDeviceHost gerencia sua própria presença WS-Discovery.
Iwsddeviceproxy
IWSDDeviceProxy é usado para implementar o WS-Discovery do lado do cliente, o WS-MetadataExchange e a funcionalidade de controle. Essa funcionalidade inclui recursos opcionais de canal seguro, WS-Eventing e anexo.
A interface IWSDDeviceProxy tem os três usos a seguir.
- Resolve endereços de dispositivo lógicos, se necessário.
- Inicia solicitações de metadados para dispositivos para enumerar os tipos e endereços de serviços.
- Fornece uma fonte para objetos IWSDServiceProxy , que podem ser usados para emitir mensagens de controle para serviços específicos em um dispositivo.
O objeto IWSDDeviceProxy normalmente é criado e usado inteiramente dentro do código gerado por WsdCodeGen.
Iwsddevicehost
IWSDDeviceHost é usado para implementar a funcionalidade WS-Discovery, WS-MetadataExchange e hospedagem de serviço do lado do dispositivo. Os serviços hospedados podem responder a mensagens de controle e podem dar suporte a recursos de canal seguro, WS-Eventing e anexo.
A interface IWSDDeviceHost tem os seguintes usos.
- Hospeda objetos de serviço.
- Anuncia a presença de um host de dispositivo na rede usando o WS-Discovery.
- Responde a solicitações de WS-MetadataExchange e descreve os tipos e locais dos serviços hospedados.
- Envia solicitações de rede para objetos de serviço.
A funcionalidade de gerenciamento de assinatura WS-Discovery, WS-MetadataExchange e WS-Eventing é tratada inteiramente dentro do objeto host do dispositivo. Antes que um serviço possa ser hospedado dentro de um host do dispositivo, os requisitos a seguir devem ser atendidos.
- O host deve ser criado chamando WSDCreateDeviceHost.
- Os metadados associados ao serviço devem ser registrados.
- O próprio serviço deve ser registrado.
- O host do dispositivo deve ser iniciado.
O objeto IWSDDeviceHost normalmente é criado e usado dentro do código gerado pelo WsdCodeGen.