WS-Discovery 介绍了如何执行以下任务:
- 宣布本地子网上服务的可用性
- 搜索子网上的服务
- 找到以前引用的服务
为此,WS-Discovery 定义了两条单向消息,Hello 和 Bye,以及两条双向搜索消息,探测 和 解析。
WS-Discovery 还为 IPv4 和 IPv6 链接本地发现提供地址和保留端口。 该规范还允许在其他位置定义备用绑定,例如在 Web 服务 (DPWS) 设备配置文件中定义的基于 HTTP 绑定的探测。
WS-Discovery 规范介绍了在给定实现建议或限制中使用术语 MAY 或 SHOULD 的可选功能。 省略的功能可能是 WS-Discovery 规范中未由 WSDAPI 实现的必需功能,或者 WSDAPI 在 WS-Discovery 规范中指定的方法中实现的功能。
本主题介绍 WSDAPI 实现如何处理 WS-Discovery 限制、要求和选择性功能。 本主题最好与 WS-Discovery 规范一起阅读。
WS-Discovery 和 SOAP over-UDP 支持
在 SOAP over-UDP 中,第 3.2 节指定 UDP 消息必须适合 64K 数据报。 WSDAPI 将接受 64K UDP 消息,但 MAX_ENVELOPE_SIZE (32K) 的 DPWS 约束将限制消息大小。 根据 WS-Discovery的要求,WSDAPI 支持第 4 节中所述的消息模式。
WSDAPI 可配置为支持第 7 节和第 8 节中的安全模型。 配置后,WSDAPI 将对出站 WS-Discovery 消息进行签名,并验证入站消息的签名。
WSDAPI 实现根据 DPWS 附录 I 修订的附录 I 中定义的重新传输算法。
在 WS-Discovery 中,WSDAPI 使用第 2.4 节中指定的地址。 WSDAPI 从第 2.4 节扩展APP_MAX_DELAY,但未扩展到 DPWS 附录 I 中定义的范围。有关APP_MAX_DELAY的详细信息,请参阅 其他 WS-Discovery 功能。
WS-Discovery 介绍了第 2.6 节中的 uuid:
URI 格式建议,但 WSDAPI 将替代此建议。 相反,WSDAPI 使用 DPWS 中描述的 urn:uuid:
URI 格式。
WS-Discovery 第 3 部分介绍了客户端如何与发现代理交互。 WSDAPI 无法识别此交互,并忽略发现代理的公告。 在 Windows 7 中,WSDAPI 实现对 WS-Discovery 协议(WS-Discovery 远程扩展)的专用扩展,以便发现客户端通过向集中式代理发送请求来搜索分布在许多不同的网络中的服务。有关详细信息,请参阅 其他 WS-Discovery 功能。
第 4.1 节(第 3 段)WS-Discovery 要求在发送 Hello 消息之前,计时器必须经过。 宿主 API 在发送 Hello 消息之前不会等待。 如果方案需要在发送 Hello 消息之前出现延迟,则应用程序开发人员必须实现等待。
WSDAPI 实现 WS-Discovery 第 4、5 和 6 节中所述的所有消息。 WSDAPI 还强制实施第 7 节中所述的MATCH_TIMEOUT,如 DPWS 附录 I. WSDAPI 仅防止“重播”第 9 节中的安全注意事项。
WSDAPI 执行应用程序排序,如 WS-Discovery 附录 I 中所述。