WS-Discovery 规范符合性
WS-Discovery 介绍了如何执行以下任务:
- 宣布本地子网上服务的可用性
- 搜索子网上的服务
- 查找以前引用的服务
为此,WS-Discovery定义了两条单向消息 Hello 和 Bye,以及两条双向搜索消息 “探测 ”和 “解决”。
WS-Discovery还为 IPv4 和 IPv6 链路本地发现提供地址和保留端口。 该规范还允许在其他位置定义备用绑定,例如 Web 服务的设备配置文件 (DPWS) 中定义的基于 HTTP 的探测绑定。
WS-Discovery规范通过在给定的实现建议或限制中使用术语 MAY 或 SHOULD 来描述选择性功能。 省略功能可能是WS-Discovery规范中描述为 REQUIRED 的功能,但 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 实现附录 I 中定义的重新传输算法,该算法由 DPWS 附录 I 修订。
在 WS-Discovery 中,WSDAPI 使用第 2.4 节中指定的地址。 WSDAPI 将APP_MAX_DELAY从第 2.4 节扩展,但不扩展到 DPWS 附录 I 中定义的范围。有关APP_MAX_DELAY的详细信息,请参阅 其他WS-Discovery功能。
WS-Discovery第 2.6 节介绍了 uuid:
URI 格式建议,但 WSDAPI 替代了此建议。 WSDAPI 使用 urn:uuid:
DPWS 中所述的 URI 格式。
WS-Discovery第 3 部分介绍了客户端如何与发现代理交互。 WSDAPI 无法识别此交互,并忽略来自发现代理的通知。 在 Windows 7 中,WSDAPI 实现了WS-Discovery协议的专用扩展,WS-Discovery远程扩展,以允许发现客户端通过向集中式代理发送请求来搜索分布在多个不同网络上的服务。有关详细信息,请参阅 其他WS-Discovery功能。
WS-Discovery的第 4.1 节第 3 段要求在发送 Hello 消息之前必须经过计时器。 在发送 Hello 消息之前,宿主 API 不会等待。 如果方案在发送 Hello 消息之前需要延迟,则应用程序开发人员必须实现等待。
WSDAPI 实现WS-Discovery第 4、5 和 6 节中所述的所有消息。 WSDAPI 还强制实施第 7 节中所述MATCH_TIMEOUT,该节由 DPWS 附录 I 修订。WSDAPI 仅防止“重播”免受第 9 节中的安全考虑。
WSDAPI 确实实现了WS-Discovery附录 I 中所述的应用程序序列化。