使用逻辑地址和物理地址

WS-Discovery 使用基于 格式的 urn:uuid: URI 定义逻辑寻址。 此寻址方案的目的是将设备的标识与其当前 IP 地址区分开来。 此方案实质上提供 DNS 名称的功能,而无需名称服务器。 Web 服务的设备配置文件 (DPWS) 建议设备使用此寻址方案。

DPWS 还建议服务使用物理 (也称为传输) 地址。 这使本机不支持WS-Discovery寻址机制的客户端能够与 DPWS 服务通信。 此外,每个服务都可以定义其地址,从而为在较低层管理服务调度的设备实现启用传输级寻址。 最后,使用物理地址可最大程度地提高互操作性。

物理寻址的缺点是增加了设备实现的复杂性,因为必须跟踪当前 IP 或传输地址,并且必须相应地修改设备元数据。 因此,DPWS 不需要服务使用传输地址。

如果使用逻辑地址,则在某些情况下,实现行为未定义。 WS-Discovery规范没有描述服务驻留在逻辑地址的含义。 WS-Discovery规范的 R1001 建议在托管服务上使用WS-Discovery,因为有关联的网络聊天。

不建议服务驻留在逻辑地址上,因为这会降低互操作性。 如果实现必须驻留在逻辑地址上,则服务应使用与设备相同的逻辑地址。 如果这给设备上的调度模型增加了太多的复杂性,则建议的解决方案是使用引用参数来区分服务。 如果服务使用与设备相同的终结点地址,WSDAPI 将正确地将消息发送到服务。