Compartir a través de


Información general sobre las interfaces WSDAPI

Servicios web en la API de dispositivos (WSDAPI) se usa para desarrollar aplicaciones cliente que buscan y acceden a dispositivos, y para desarrollar hosts de dispositivos y servicios asociados que se ejecutan en Windows Vista y Windows Server 2008. La API de detección de funciones y la herramienta WsdCodeGen son herramientas complementarias que se pueden usar para el desarrollo de cliente, host de dispositivo y servicio. Las interfaces WSDAPI se pueden usar directamente para exponer la funcionalidad avanzada.

Interfaces WSDAPI principales

Las cuatro interfaces WSDAPI principales son IWSDiscoveryProvider, IWSDiscoveryPublisher, IWSDDeviceProxy e IWSDDeviceHost. Para obtener una lista de todas las interfaces WSDAPI, consulte Servicios web en interfaces de dispositivos.

IWSDiscoveryProvider

IWSDiscoveryProvider se usa para implementar WS-Discovery funcionalidad en los clientes.

IWSDiscoveryProvider emite WS-Discovery los mensajes Probe y Resolve , y recibe mensajes Hello, Bye, ProbeMatches y ResolveMatches . Use la información recuperada a través de la interfaz IWSDiscoveryProvider al crear una interfaz IWSDDeviceProxy que se usa para describir y controlar un dispositivo DPWS específico.

Una interfaz IWSDiscoveryProvider no es necesaria al resolver simplemente una dirección de dispositivo DPWS determinada antes de crear un proxy de dispositivo. WSDCreateDeviceProxy resolverá automáticamente la dirección del dispositivo si es necesario.

La API de detección de funciones se puede usar para la detección genérica de dispositivos y servicios, ya que la API puede detectar dispositivos DPWS y también dispositivos que usan otros protocolos. Considere la posibilidad de usar la detección de funciones al escribir una aplicación de detección genérica.

IWSDiscoveryPublisher

IWSDiscoveryPublisher se usa para implementar WS-Discovery funcionalidad en los servicios de destino, como los dispositivos.

IWSDiscoveryPublisher permite que una aplicación publique su presencia mediante WS-Discovery mensajes Hello y Bye. Esta interfaz permite a una aplicación recibir solicitudes Probe y Resolve, y construir y enviar respuestas ProbeMatches y ResolveMatches.

Una interfaz IWSDiscoveryPublisher no es necesaria al publicar simplemente la existencia de un objeto IWSDDeviceHost . IWSDDeviceHost administra su propia presencia WS-Discovery.

IWSDDeviceProxy

IWSDDeviceProxy se usa para implementar WS-Discovery del lado cliente, WS-MetadataExchange y la funcionalidad de control. Esta funcionalidad incluye funcionalidades opcionales de canal seguro, WS-Eventing y datos adjuntos.

La interfaz IWSDDeviceProxy tiene los tres usos siguientes.

  • Resuelve las direcciones del dispositivo lógico, si es necesario.
  • Inicia solicitudes de metadatos a los dispositivos para enumerar los tipos y direcciones de los servicios.
  • Proporciona un origen para los objetos IWSDServiceProxy , que se pueden usar para emitir mensajes de control a servicios específicos de un dispositivo.

El objeto IWSDDeviceProxy se crea normalmente y se usa completamente dentro del código generado por WsdCodeGen.

IWSDDeviceHost

IWSDDeviceHost se usa para implementar WS-Discovery del lado del dispositivo, WS-MetadataExchange y la funcionalidad de hospedaje del servicio. Los servicios hospedados pueden responder a los mensajes de control y pueden admitir funcionalidades de canal seguro, WS-Eventing y datos adjuntos.

La interfaz IWSDDeviceHost tiene los siguientes usos.

  • Hospeda objetos de servicio.
  • Anuncia la presencia de un host de dispositivo en la red mediante WS-Discovery.
  • Responde a WS-MetadataExchange solicitudes y describe los tipos y ubicaciones de los servicios hospedados.
  • Envía solicitudes de red a objetos de servicio.

WS-Discovery, WS-MetadataExchange y WS-Eventing funcionalidad de administración de suscripciones se controla completamente dentro del objeto host del dispositivo. Para que un servicio se pueda hospedar dentro de un host de dispositivo, se deben cumplir los siguientes requisitos.

  • El host debe crearse llamando a WSDCreateDeviceHost.
  • Los metadatos asociados al servicio deben estar registrados.
  • El propio servicio debe estar registrado.
  • El host del dispositivo debe iniciarse.

El objeto IWSDDeviceHost se crea normalmente y se usa dentro del código generado por WsdCodeGen.