使用逻辑地址和物理地址

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

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

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

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

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