java web-services soap jax-ws ws-addressing

java - ¿Cuál es el propósito de WS-Addressing?



web-services soap (2)

Estoy confundido con ws-address.

Wikipedia dice que es una especificación de mecanismos de transporte neutro que permiten a los servicios web "comunicar información de direccionamiento".

¿Comunicar información de direccionamiento? Los servicios web SOAP no tienen ya esa capacidad para comenzar, de lo contrario, ¿cómo podrían comunicarse?

¿Qué valor da y por qué no es parte de las cosas predeterminadas para empezar dado que parece proporcionar una funcionalidad central?


WS-Addressing es más útil en el contexto de la comunicación asincrónica a través de diferentes protocolos . Se utiliza para etiquetar los mensajes para que la solicitud y las respuestas diferidas puedan reconciliarse entre sí más adelante, independientemente del protocolo por el que se envíe.

Si usa HTTP por completo, no necesitará WS-Addressing, por eso está desactivado de manera predeterminada. Sin embargo, tendemos a suponer que SOAP se puede transmitir solo a través de HTTP, cuando de hecho, se puede transmitir a través de otros medios, como SMTP o JMS . Él es una ilustración para entregar el punto.

Con WS-Addressing , los datos específicos del transporte se copian a los encabezados SOAP. Esto separa los datos de dirección del protocolo y en el mensaje SOAP mismo, logrando la "neutralidad de transporte" de la que habla Wikipedia.

WS-Addressing juega un papel importante en el grupo WS * de especificaciones (es decir, WS-Security, WS-ReliableMessaging, WS-Coordination).


Según la especificación WS-Addressing por la organización W3C :

/ wsa: ID de mensaje
Este elemento OPCIONAL (de tipo xs: anyURI) transmite la propiedad [ID de mensaje]. Este elemento DEBE estar presente si wsa: ReplyTo o wsa: FaultTo está presente.

/ wsa: ReplyTo
Este elemento OPCIONAL (del tipo wsa: EndpointReferenceType) proporciona el valor para la propiedad [reply endpoint]. Este elemento DEBE estar presente si se espera una respuesta. Si este elemento está presente, wsa: MessageID DEBE estar presente.

/ wsa: FaultTo
Este elemento OPCIONAL (del tipo wsa: EndpointReferenceType) proporciona el valor para la propiedad [fault endpoint]. Si este elemento está presente, wsa: MessageID DEBE estar presente.