Поделиться через


Обзор интерфейсов WSDAPI

API веб-служб на устройствах (WSDAPI) используется для разработки клиентских приложений, которые находят устройства и обращаются к ним, а также для разработки узлов устройств и связанных служб, работающих в Windows Vista и Windows Server 2008. API обнаружения функций и средство WsdCodeGen — это дополнительные средства, которые можно использовать для разработки клиента, узла устройства и службы. Интерфейсы WSDAPI можно использовать напрямую для предоставления дополнительных функций.

Основные интерфейсы WSDAPI

Четыре основных интерфейса WSDAPI: IWSDiscoveryProvider, IWSDiscoveryPublisher, IWSDDeviceProxy и IWSDDeviceHost. Список всех интерфейсов WSDAPI см. в разделе Веб-службы в интерфейсах устройств.

IWSDiscoveryProvider

IWSDiscoveryProvider используется для реализации функций WS-Discovery на клиентах.

Проблемы IWSDiscoveryProvider WS-Discovery сообщений Probe и Resolve , а также получает сообщения Hello, Bye, ProbeMatches и ResolveMatches . Используйте сведения, полученные через интерфейс IWSDiscoveryProvider , при создании интерфейса IWSDDeviceProxy , используемого для описания и управления конкретным устройством DPWS.

Интерфейс IWSDiscoveryProvider не требуется при простом разрешении определенного адреса устройства DPWS перед созданием прокси-сервера устройства. WSDCreateDeviceProxy при необходимости автоматически разрешает адрес устройства.

API обнаружения функций можно использовать для общего обнаружения устройств и служб, так как API может обнаруживать устройства DPWS, а также устройства с помощью других протоколов. Рассмотрите возможность использования обнаружения функций при написании универсального приложения обнаружения.

IWSDiscoveryPublisher

IWSDiscoveryPublisher используется для реализации функций WS-Discovery в целевых службах, таких как устройства.

IWSDiscoveryPublisher позволяет приложению публиковать свое присутствие с помощью WS-Discovery сообщений Hello и Bye. Этот интерфейс позволяет приложению получать запросы пробы и разрешения, а также создавать и отправлять ответы ProbeMatches и ResolveMatches.

Интерфейс IWSDiscoveryPublisher не требуется при простой публикации существования объекта IWSDDeviceHost . IWSDDeviceHost управляет собственным WS-Discovery присутствием.

IWSDDeviceProxy

IWSDDeviceProxy используется для реализации клиентских функций WS-Discovery, WS-MetadataExchange и управления. Эта функция включает необязательные возможности безопасного канала, WS-Eventing и вложений.

Интерфейс IWSDDeviceProxy имеет следующие три варианта использования.

  • При необходимости разрешает логические адреса устройств.
  • Инициирует запросы метаданных к устройствам для перечисления типов и адресов служб.
  • Предоставляет источник для объектов IWSDServiceProxy , которые можно использовать для выдачи управляющих сообщений определенным службам на устройстве.

Объект IWSDDeviceProxy обычно создается и используется полностью внутри кода, созданного WsdCodeGen.

IWSDDeviceHost

IWSDDeviceHost используется для реализации функций WS-Discovery, WS-MetadataExchange и размещения служб на стороне устройства. Размещенные службы могут реагировать на управляющие сообщения и поддерживать безопасный канал, WS-Eventing и возможности вложений.

Интерфейс IWSDDeviceHost используется ниже.

  • Размещает объекты службы.
  • Объявляет о присутствии узла устройства в сети с помощью WS-Discovery.
  • Отвечает на запросы WS-MetadataExchange и описывает типы и расположения размещенных служб.
  • Отправляет сетевые запросы в объекты службы.

WS-Discovery, WS-MetadataExchange и WS-Eventing функции управления подписками обрабатываются полностью в объекте узла устройства. Перед размещением службы на узле устройства необходимо выполнить следующие требования.

  • Узел должен быть создан путем вызова WSDCreateDeviceHost.
  • Метаданные, связанные со службой, должны быть зарегистрированы.
  • Сама служба должна быть зарегистрирована.
  • Необходимо запустить узел устройства.

Объект IWSDDeviceHost обычно создается и используется в коде, созданном WsdCodeGen.