Обзор интерфейсов 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.