Обзор интерфейсов WSDAPI
Веб-службы на устройствах API (WSDAPI) используются для разработки клиентских приложений, которые находят и получают доступ к устройствам, а также для разработки узлов устройств и связанных служб, работающих в Windows Vista и Windows Server 2008. API обнаружения функций и инструмент WsdCodeGen являются дополнительными инструментами, которые можно использовать для разработки клиентов, устройств-хостов и служб. Интерфейсы WSDAPI можно использовать непосредственно для предоставления расширенных функций.
Основные интерфейсы WSDAPI
Четыре основных интерфейса WSDAPI : IWSDiscoveryProvider, IWSDiscoveryPublisher, IWSDeviceProxyи IWSDeviceHost. Для получения списка всех интерфейсов 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. Этот интерфейс позволяет приложению получать запросы Probe и Resolve, а также создавать и отправлять ответные сообщения ProbeMatches и ResolveMatches.
Интерфейс IWSDiscoveryPublisher не требуется при простой публикации существования объекта IWSDDeviceHost. IWSDDeviceHost управляет своим собственным WS-Discovery присутствием.
IWSDDeviceProxy
IWSDeviceProxy используется для реализации клиентских функций WS-Discovery, WS-MetadataExchange и управления. Эта функция включает необязательный безопасный канал, WS-Eventing и возможности вложений.
Интерфейс IWSDDeviceProxy имеет следующие три использования.
- При необходимости уточняет адреса логических устройств.
- Инициирует запросы метаданных на устройства для перечисления типов и адресов служб.
- Предоставляет источник для объектов IWSDServiceProxy, которые можно использовать для выдачи сообщений управления определенным службам на устройстве.
Объект IWSDDeviceProxy обычно создается и используется полностью внутри кода, созданного WsdCodeGen.
IWSDDeviceHost
IWSDDeviceHost используется для реализации WS-Discovery, WS-MetadataExchange и функций размещения служб на стороне устройства. Размещенные службы могут обрабатывать управляющие сообщения и поддерживать безопасный канал, WS-Eventing и возможности вложений.
Интерфейс IWSDeviceHost использует следующие функции.
- Размещает объекты службы.
- Объявляет о присутствии узла устройства в сети с помощью WS-Discovery.
- Отвечает на запросы WS-MetadataExchange и описывает типы и расположения хостинг-служб.
- Отправляет сетевые запросы в объекты службы.
Функции управления подписками WS-Discovery, WS-MetadataExchange и WS-Eventing полностью обрабатываются в объекте узла устройства. Прежде чем служба может быть размещена в хосте устройства, необходимо выполнить следующие требования.
- Узел должен быть создан путем вызова WSDCreateDeviceHost.
- Метаданные, связанные с службой, должны быть зарегистрированы.
- Сама служба должна быть зарегистрирована.
- Устройство-хост должно быть запущено.
ОбъектIWSDeviceHostобычно создается и используется внутри кода, созданного WsdCodeGen.