Compartilhar via


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.