Utilice el patrón Correlacionador de respuestas a solicitudes de mensajes para aceptar solicitudes de muchas aplicaciones cliente en una sola cola y devolver respuestas al cliente correcto.
A menudo las aplicaciones cliente tienen que acceder a una aplicación de servidor. Las solicitudes de las aplicaciones clientes y las respuestas del servidor pueden mediarse si se pasan a través de un intermediario o un Bus de servicio empresarial (ESB) como, por ejemplo, WebSphere® Message Broker. Las aplicaciones cliente especifican en su solicitud la cola de respuestas específica en la que se espera que se reciba la respuesta.
Los sistemas de mensajería proporcionan un mecanismo para garantizar que el mensaje de respuesta de una interacción de solicitud-respuesta pueda direccionarse a la aplicación de origen o instancia de cliente correcta. Normalmente, esta solución implica pasar una 'dirección de respuesta' como parte de la cabecera del mensaje. A continuación, la aplicación receptora puede extraer esta información y enviar la respuesta a la cola correspondiente. Si una mediación se ha introducido en la interacción, se establecen dos interacciones solicitud-respuesta separadas y debe asegurarse de que los mensajes de respuesta se envíen al destino correcto en cada caso.
Si muchos de esos clientes interactúan con una sola aplicación servidor, normalmente sólo se utiliza una mediación. La práctica estándar es que la aplicación servidor y la mediación proporcionen una sola cola de solicitudes. La mediación también utiliza una sola cola de respuestas para procesar mensajes de respuesta de la aplicación servidor. Si cada cliente proporciona su propia cola de respuestas, es necesario un mecanismo para asegurarse de que cada mensaje de respuesta se envíe a la cola correcta.
Un flujo de WebSphere Message Broker media entre un proveedor y un solicitante. El mensaje de entrada contiene la dirección del respuesta del solicitante, pero el mensaje que se reenvía a la aplicación de proveedor debe contener la dirección de respuesta del flujo de mensajes. Cuando la aplicación de proveedor responde al flujo de mensajes, tiene que emparejar cada respuesta con la solicitud enviada por el cliente.
Utilice este patrón cuando haya varios solicitantes que tengan que enviar mensajes a un proveedor, recibir respuestas en una cola que sea específica del solicitante; y cuando la mediación entre solicitudes y respuestas se realice a través del intermediario. Puede utilizar el patrón para pasar mensajes de cualquier tipo, y tiene la opción de validar el mensaje; por ejemplo, para proteger a los proveedores de mensajes formateados incorrectamente.
La información de respuesta de cada solicitud de cliente en el flujo de mediación se almacena antes de reenviar el mensaje al proveedor. Cuando se reciben las respuestas del proveedor, se utiliza la información de correlación para recuperar y restaurar la dirección de respuesta correcta del solicitante original y para almacenar esta información para su recuperación posterior.