A amostra SCA Nodes consiste em dois fluxos de mensagens que:
A amostra estendida fornece um fluxo de mensagens extra que:
O diagrama de visão geral a seguir mostra os relacionamentos entre os fluxos de mensagem no WebSphere Message Broker e o processo de negócios no WebSphere Process Server.
Esse fluxo de mensagens simples compreende os seguintes nós:
O intermediário recebe um pedido no formulário URI vindo de um cliente do navegador que utiliza o transporte HTTP.
O nó JavaCompute:
Do cliente do navegador, escolha o tipo de pedido de transferência, digite o valor a transferir, clique em Submeter.
Submetendo o formulário esses valores de propriedade são enviados, usando HTTP, para outro fluxo de mensagens que atende na porta HTTP.
Esse fluxo de mensagens compreende os seguintes nós:
O fluxo de mensagens recebe os valores de propriedade como partes da mensagem MIME.
Um nó JavaCompute processa esses valores de propriedade criando uma mensagem de pedido XML da quantia e substituindo a operação SCA de Ambiente Local pelo tipo de pedido de transferência.
O Identificador do pedido é copiado para o contexto do usuário de modo que ele não seja perdido quando a mensagem de resposta chegar no nó de Resposta Assíncrona SCA. Esse Identificador é necessário para responder ao cliente que originou o pedido.
A transferência também pode ser validada nessa etapa. Se uma quantia inválida ou em branco for especificada, é gerado um MbUserException. Se a validação falhar, a exceção do usuário é propagada através do terminal de falha. A mensagem de exceção é incluída em uma mensagem de resposta para o cliente que originou o pedido. Clique em OK para ser roteado de volta para o formulário de transferência bancária, para que uma quantia correta possa ser especificada.
Se a validação for bem-sucedida, a mensagem de pedido de transferência XML é propagada para um nó SCAAsyncRequest. Esse nó envia a mensagem para o serviço SCA especificado que é hospedado pelo WebSphere Process Server. Esse serviço SCA contém a lógica de negócios relacionada ao processamento de conta poupança.
Depois de processado o pedido, uma mensagem de resposta de transferência XML é enviada de volta ao WebSphere Message Broker onde é processada pelo nó SCAAsyncResponse correspondente. Se o pedido de transferência bancária tiver sido processado com êxito, o novo saldo de poupança é incluído na mensagem de resposta. Se o pedido de transferência bancária for malsucedido, o saldo anterior da poupança é utilizado.
O identificador do pedido também é recuperado do ambiente local e copiado para a pasta Destination, de forma que a mensagem de resposta possa ser enviada de volta ao cliente de origem.
A conta poupança é hospedada no WebSphere Process Server. Compreende:
Esses componentes são conectados a um diagrama de montagem.
A implementação do processo de negócios é dividida em duas partes correspondendo aos dois pedidos de operação:
Se o pedido de mensagem XML de entrada é transferir para a conta poupança, as variáveis do processo de negócios são inicializadas a partir dessa mensagem. O saldo da poupança é lido a partir de um arquivo que utiliza a interface Java e é creditado pela quantia solicitada. Esse novo saldo é então gravado novamente no arquivo utilizando a interface Java, uma resposta da mensagem é criada com os valores relevantes preenchidos a partir das variáveis do processo de negócios e retornada para o responsável pela chamada.
Se o pedido da mensagem XML de entrada for transferido para a conta corrente, as variáveis do processo de negócios serão inicializadas a partir dessa mensagem. O saldo da poupança é lido a partir de um arquivo utilizando uma interface Java e debitado pela quantia solicitada. Se o novo saldo for maior ou igual a zero, ele é gravado de volta no arquivo utilizando a interface Java. Se o novo saldo for menor do que zero, o saldo anterior permanece no arquivo. Uma resposta é criada com os valores relevantes preenchidos a partir de variáveis do processo de negócios e é enviada de volta ao responsável pela chamada.