Este tema proporciona una visión general de la implementación de un servicio web SOAP/JMS utilizando el nodo MQGet y describe los costes y las ventajas de esta propuesta.
Cuando utiliza un patrón de petición-respuesta síncrono, se envía el mensaje de petición utilizando un nodo MQOutput y la respuesta se recibe en línea con un nodo MQGet.
Un flujo como el del diagrama simplificado siguiente permite realizar la conversión síncrona de SOAP sobre HTTP a SOAP sobre JMS:
El flujo anterior proporciona un mecanismo simple para implementar una conversión síncrona de HTTP a SOAP sobre JMS en la que cada petición HTTP de entrada se procesa completamente y se responde antes de pasar a la siguiente petición HTTP. Para evitar que se produzca una anomalía de SOAP sobre JMS, establezca el tiempo de espera en el nodo excedido MQGet. Un ventaja de este modelo de flujo es que la conversión completa de petición-respuesta se maneja en una sola transacción lo que permite una restitución y recuperación simples.
Puede que este flujo síncrono no sea apropiado en casos donde el proceso SOAP sobre JMS tenga una ejecución larga, dado que el proceso de otras peticiones HTTP de entrada no se iniciará hasta que se haya completado la petición actual. En esta situación, el flujo de mensajes debe diseñarse de forma asíncrona, con flujos de peticiones y respuestas independientes y con el contexto de correlación necesario guardado en un soporte de almacenamiento del flujo de peticiones y restaurado durante el flujo de respuestas. Una solución consiste en utilizar una cola para almacenar el contexto de correlación necesario y utilizar un nodo MQGet del flujo de respuestas para recuperarlo. Este diseño de flujo permite despachar las peticiones HTTP al servicio SOAP sobre JMS a medida que se reciben y devolver las respuestas a HTTP entregándolas en el orden en que se reciben. Esto evita, por ejemplo, que las peticiones de consulta de ejecución rápida queden bloqueadas por una petición de actualización de ejecución más larga.
Para obtener más información sobre el escenario de petición-respuesta asíncrona, consulte Escenario de petición-respuesta utilizando un nodo MQGet.