Use o padrão de Message Request Response Correlator para aceitar pedidos de vários aplicativos clientes em uma única fila e para retornar respostas ao cliente correto.
Os aplicativos clientes geralmente precisam acessar um aplicativo do servidor. Os pedidos dos aplicativos clientes e as respostas do servidor podem ser mediados sendo transmitidos por um intermediário ou Enterprise Service Bus (ESB) tal como o WebSphere® Message Broker. Os aplicativos clientes especificam em seus pedidos a fila de resposta específica na qual espera-se que a resposta seja recebida.
Os sistemas de mensagens fornecem um mecanismo para assegurar que a mensagem de resposta em uma interação de pedido-resposta possa ser roteada ao aplicativo de origem ou instância do cliente correto. Geralmente esta solução envolve a transmissão de um 'endereço de resposta' como parte do cabeçalho da mensagem. O aplicativo de recebimento pode, então, extrair estas informações e enviar a resposta à fila apropriada. Se uma mediação for introduzida na interação, duas interações de pedido-resposta separadas serão estabelecidas e será necessário assegurar que as mensagens de resposta sejam enviadas ao destino correto em cada caso.
Se vários clientes desse tipo estiverem interagindo com um único aplicativo do servidor, geralmente apenas uma única mediação será usada. A prática padrão é para o aplicativo do servidor e a mediação para cada um fornecerem uma única fila de pedidos. A mediação também usa uma única fila de resposta para processar mensagens de resposta do aplicativo do servidor. Se cada cliente fornecer sua própria fila de resposta, um mecanismo será necessário para assegurar que cada mensagem de resposta seja enviada à fila correta.
Um fluxo do WebSphere Message Broker media entre um solicitante e um provedor. A mensagem recebida contém o endereço de resposta do solicitante, mas a mensagem que é encaminhada ao aplicativo do provedor deve conter o endereço de resposta do fluxo de mensagens. Quando o aplicativo do provedor responde ao fluxo de mensagens, ele precisa corresponder cada resposta ao pedido enviado pelo cliente.
Use este padrão quando tiver vários solicitantes que precisam enviar mensagens a um provedor; receba respostas em uma fila que seja específica para o solicitante; e quando pedidos e respostas forem mediados através do broker. É possível usar o padrão para transmitir mensagens de qualquer tipo e você tem a opção para validar a mensagem, por exemplo, para proteger provedores contra mensagens formatadas incorretamente.
As informações de resposta de cada pedido do cliente no fluxo de mediação são armazenadas antes de encaminhar a mensagem ao provedor. Quando respostas são recebidas do provedor, as informações de correlação são usadas para recuperar e restaurar o endereço de resposta correto do solicitante original e para armazenar estas informações para recuperação subsequente.