Uso de direcciones lógicas y físicas
WS-Discovery define el direccionamiento lógico mediante URI en función del urn:uuid:
formato. El propósito de este esquema de direccionamiento es diferenciar la identidad del dispositivo de su dirección IP actual. Este esquema proporciona básicamente la funcionalidad de los nombres DNS sin necesidad de un servidor de nombres.
El perfil de dispositivos para servicios web (DPWS) recomienda que los dispositivos usen este esquema de direccionamiento.
DPWS también recomienda que los servicios usen direcciones físicas (también llamadas transporte). Esto permite a los clientes que no admiten de forma nativa WS-Discovery mecanismos de direccionamiento para comunicarse con los servicios DPWS. Además, cada servicio puede definir sus direcciones, lo que permite el direccionamiento de nivel de transporte para las implementaciones de dispositivos que administran el envío del servicio en una capa inferior. Por último, el uso de direcciones físicas maximiza la interoperabilidad.
La desventaja del direccionamiento físico es que agrega complejidad a las implementaciones de dispositivos, ya que se debe realizar el seguimiento de la dirección IP o de transporte actual y los metadatos del dispositivo deben modificarse en consecuencia. Por este motivo, DPWS no requiere servicios para usar direcciones de transporte.
Si se usan direcciones lógicas, hay algunos escenarios en los que el comportamiento de implementación no está definido. La especificación WS-Discovery no describe lo que significa que un servicio resida en una dirección lógica. R1001 de la especificación de WS-Discovery recomienda usar WS-Discovery en los servicios hospedados debido al chat de red asociado.
No se recomienda que los servicios residan en direcciones lógicas, ya que esto reduce la interoperabilidad. Si una implementación debe residir absolutamente en una dirección lógica, el servicio debe usar la misma dirección lógica que el dispositivo. Si esto agrega demasiada complejidad al modelo de distribución en el dispositivo, la solución recomendada consiste en usar parámetros de referencia para diferenciar los servicios. WSDAPI enviará correctamente mensajes a los servicios si usan la misma dirección de punto de conexión que el dispositivo.