Patrones de intercambio de mensajes de Web Services Addressing

La especificación de W3C (World Wide Web Consortium) de WS-Addressing (Web Services Addressing) define explícitamente las propiedades principales de WS-Addressing para los patrones de intercambio de mensajes (MEP) definidos por WSDL 1.0. En este tema se resumen estos MEP y se ilustran las propiedades de WS-Addressing obligatorias de cada patrón.

MEP unidireccional

Éste es un sencillo mensaje directo definido en WSDL 1.0 como una operación sólo de entrada. El fragmento WSDL para esta operación tiene el formato siguiente:
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
</operation>
El tiempo de ejecución del servidor de aplicaciones cliente añade automáticamente las siguientes propiedades MAP (Message Addressing Properties) de WS-Addressing a la cabecera de un mensaje de entrada de WS-Addressing unidireccional para garantizar que se cumple con la especificación de WS-Addressing.
Consejo: Puede alterar temporalmente estos valores mediante las SPI (System Programming Interfaces) de WS-Addressing propiedad de IBM.
Tabla 1. Las propiedades de direccionamiento de mensajes de WS-Addressing que un cliente añade a la cabecera del mensaje de un mensaje de entrada de WS-Addressing unidireccional.. En la tabla se muestran los distintos nombres MAP de WS-Addressing y se proporciona una descripción de cada uno.
Nombre MAP de WS-Addressing abstracto, utilizando el convenio de notación del conjunto de información W3C XML Descripción de un mensaje de entrada unidireccional
[acción] La acción WS-Addressing que se genera en función de la versión de la especificación de WS-Addressing en uso.
[punto final de respuesta] El punto final de respuesta de WS-Addressing que indica que no se esperan respuestas a este mensaje de entrada. El valor de esta MAP depende de la versión de la especificación de WS-Addressing en uso.
[ID de mensaje] Identificador de mensaje generado exclusivamente. Aunque no sea obligatorio según la especificación, el tiempo de ejecución de WebSphere Application Server define su valor automáticamente.

Aunque la operación WSDL de este intercambio de mensajes no especifica respuestas, se pueden enviar mensajes relacionados como parte de otros intercambios de mensajes. En concreto, las aplicaciones pueden utilizar el punto final de respuestas WS-Addressing o las MAP del punto final de error para indicar el destino de un mensaje unidireccional donde enviar los mensajes relacionados. Para propagar un punto final de respuesta o un punto final anómalo, asocie la propiedad apropiada con el contexto de solicitud para el objeto BindingProvider de JAX-WS o con el objeto Stub o Call de JAX-RPC, tal como se describe en Especificación y adquisición de las propiedades de direccionamiento de mensajes mediante el uso de las SPI de direccionamiento de servicios web propiedad de IBM, para alterar temporalmente los valores predeterminados.

Solicitud y respuesta bidireccionales

Ésta es una operación de solicitud y respuesta MEP como se define en WSDL 1.1. La parte de la respuesta de una operación puede definirse como un mensaje de salida o mensaje predeterminado o ambos. Los siguientes extractos de código WSDL muestran los distintos tipos de definiciones para una operación así:
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
El tiempo de ejecución del servidor de aplicaciones cliente garantiza que la cabecera SOAP del mensaje de solicitud de salida contenga las cabeceras de información del mensaje de WS-Addressing relevantes. La aplicación que efectúa la llamada no tiene que establecer las cabeceras de WS-Addressing. Se espera una respuesta, por lo que se debe especificar un punto final de respuesta o un punto final de error en el mensaje de solicitud.
Consejo: En la especificación 2005/08, es válido un punto final de respuesta no específico que toma como valor predeterminado una referencia de punto final que contiene el URI anónimo.
La siguiente tabla resume las MAP que el producto establece por omisión en una solicitud de servicio web que utiliza el protocolo WS-Addressing. Puede alterarlas temporalmente o especificar otras MAP mediante las SIP de WS-Addressing propiedad de IBM.
Tabla 2. Las propiedades de direccionamiento de mensajes que se añaden a una solicitud de servicio web que utiliza el protocolo WS-Addressing.. En la tabla se muestran los distintos nombres MAP de WS-Addressing y se proporciona una descripción de cada uno.
Nombre MAP de WS-Addressing abstracto, utilizando el convenio de notación del conjunto de información W3C XML Descripción del mensaje de entrada de una operación de solicitud y respuesta
[acción] La acción WS-Addressing que se genera en función de la versión de la especificación de WS-Addressing en uso.
[ID de mensaje] Identificador de mensaje generado exclusivamente.
En la tabla siguiente se resumen las MAP que establece de manera predeterminada el producto en un mensaje de error o una respuesta WS-Addressing.
Tabla 3. Las propiedades de direccionamiento de mensajes que se añaden a una respuesta o mensaje de error de WS-Addressing. En la tabla se muestran los distintos nombres MAP de WS-Addressing y se proporciona una descripción de cada uno.
Nombre MAP de WS-Addressing abstracto, utilizando el convenio de notación del conjunto de información W3C XML Descripción del mensaje de entrada de una operación de solicitud y respuesta
[acción] La acción WS-Addressing que se genera en función de la versión de la especificación de WS-Addressing en uso.
[relación] Un conjunto de relaciones que contiene una relación de respuesta con el ID de mensaje que se pasa en el mensaje de solicitud.
[ID de mensaje] Identificador de mensaje generado exclusivamente. Aunque no es obligatorio según la especificación, el tiempo de ejecución del servidor de aplicaciones establece automáticamente esta propiedad.

Solicitud y respuesta síncronas

De manera predeterminada, si no utiliza la SPI WS-Addressing propiedad de IBM para configurar el punto final de respuesta o el punto final de error, la parte de la respuesta de un mensaje bidireccional se devuelve en función del protocolo subyacente que se está utilizando. En concreto, en el caso de una solicitud HTTP, la respuesta se devuelve de forma síncrona en la respuesta HTTP.
El cliente envía un mensaje al servicio web. La cabecera SOAP contiene el elemento <wsa:To>http://example.com/fabrokam/acct</wsa:To>. El servicio web devuelve una respuesta síncrona.

Para las invocaciones síncronas JAX-WS, si está establecido el punto final de respuesta o el punto final de error, la referencia de punto final que se defina debe utilizar el URI anónimo. Si la referencia de punto final no utiliza el URI anónimo, se genera una excepción javax.xml.ws.WebServiceException. Aunque la referencia de punto final utiliza el URI anónimo, puede utilizar parámetros de referencia en la referencia de punto final para destinar el punto final de la anomalía o la respuesta.

Para aplicaciones JAX-WS, puede especificar un patrón de intercambio de mensajes síncronos aplicando y configurando un tipo de política WS-Addressing. Este patrón de intercambio es particularmente útil en los casos siguientes:
  • No tiene habilitada WS-Security o no ha utilizado una herramienta de ensamblaje para especificar que los elementos ReplyTo y FaultTo del mensaje SOAP deben firmarse. En esta situación, es posible utilizar un punto final JAX-WS para enviar mensajes a un tercero, tomando parte potencialmente en un ataque de denegación de servicio. Para evitar estos ataques, especifique el patrón de intercambio de mensajes síncronos y habilite WS-Policy para que los clientes conozcan este requisito.
  • Un cliente JAX-WS se comunica a través de un dispositivo NAT. Los URI de los elementos ReplyTo o FaultTo del mensaje SOAP no se puede direccionar a través de este tipo de dispositivo. En esta situación, el cliente debe utilizar el URI anónimo definido por la especificación WS-Addressing y un patrón de intercambio de mensajes síncronos. Para asegurarse de que el cliente cumple con estos requisitos aunque el servidor utilice WS-Policy para solicitar un URI no anónimo en el elemento ReplyTo, especifique el patrón de intercambio de mensajes síncronos en el cliente.
Puede asegurarse de que los servidores o clientes conozcan el requisito para la mensajería síncrona mediante la habilitación de WS-Policy.

Solicitud y respuesta asíncronas

El modelo de programación JAX-RPC 1.0 no permite las respuestas asíncronas a una operación de solicitud y respuesta bidireccional ni los errores asíncronos generados a partir de ésta.

Las respuestas a, o los errores generados desde, solicitudes que se dirigen a los puntos finales alojados en WebSphere Application Server se dirigen al punto final de respuesta o al punto final de error, de acuerdo con la especificación WS-Addressing. La conexión con el cliente que realice la solicitud se cerrará con una respuesta HTTP 202.
El cliente envía un mensaje al servicio web. La cabecera SOAP contiene el elemento <wsa:ReplyTo>, que a su vez contiene el elemento <wsa:address>http://example.com/fabrokam/acct/replyEP</wsa:address>. El servicio web envía una respuesta al punto final de respuesta. La cabecera SOAP del mensaje de respuesta contiene el elemento <wsa:To>http://example.com/fabrokam/acct</wsa:To>.
Para las invocaciones asíncronas JAX-WS, el punto final de respuesta se genera automáticamente para que lo utilice la implementación JAX-WS. Si intenta establecer un punto final de respuesta o un punto final de error, se genera una excepción javax.xml.ws.WebServiceException.
[Windows]Nota: En los sistemas operativos Windows, el nombre de host local que envía el cliente debe poder solucionarse con el servicio de destino. De no ser así, las respuestas no llegarán a la aplicación cliente. También puede configurar el cliente para que envíe su dirección en formato IP, pero perderá las ventanas de DHCP. Para obtener más información, consulte el tema Invocación asíncrona de los servicios web JAX-WS.
Para aplicaciones JAX-WS, puede especificar un patrón de intercambio de mensajes asíncrono de varias maneras diferentes. Este patrón de intercambio es particularmente útil si un punto final JAX-WS tiene una periodo de invocación de larga ejecución. Los recursos de cliente y servidor se utilizan para mantener abierta la conexión, pero esta utilización del recurso podría no ser práctica si el servicio tarda mucho en responder.
La configuración de patrón de intercambio de mensajes se expresa en conexiones de WS-Policy en el documento WSDL. Los clientes podrán acceder a esta información de configuración del patrón de intercambio de mensajes si se cumple alguna de las condiciones siguientes:
  • La compartición de WS-Policy está habilitada.
  • La compartición de WS-Policy no está habilitada, pero:
    • el WSDL empaquetado (tal como ha recuperado la solicitud HTTP GET) contiene la información de política relevante.
    • Se han utilizado anotaciones @Addressing en el código. En este caso, el tiempo de ejecución del servidor genera un documento WSDL que contiene las conexiones de WS-Policy.
Consulte el tema Proveedores de servicio web y compartición de configuración de política para obtener más detalles.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_meps
File name: cwbs_wsa_meps.html