Sobre a Amostra SCA Nodes

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.

Diagrama para mostrar o relacionamento entre o WebSphere Message Broker e o WebSphere Process Server

  1. Um navegador da Web inicia o processo enviando um pedido para o fluxo de mensagens BankTransferRequestInitiator no WebSphere Message Broker.
  2. O fluxo de mensagens BankTransferRequestInitiator envia um formulário de entrada HTML a você.
  3. Você submete os dados de formulário a um segundo fluxo de mensagens, BankTransferRequest, no WebSphere Message Broker.
  4. O fluxo de mensagens BankTransferRequest prepara os dados submetidos por você para enviar como um pedido para o processo de negócios SavingsAccount no WebSphere Process Server.
  5. O processo de negócios SavingsAccount atualiza o saldo da conta poupança e retorna a resposta para o fluxo de mensagens BankTransferRequest.
  6. O fluxo de mensagens BankTransferRequest retorna essa resposta ao navegador da Web.
  7. A amostra estendida introduz uma conta corrente vinculada à conta poupança. O processo de negócios SavingsAccount prepara dados para enviar como um pedido para o fluxo de mensagens CurrentAccount no WebSphere Message Broker.
  8. O fluxo de mensagens CurrentAccount atualiza o saldo da conta corrente e retorna a resposta para o processo de negócios SavingsAccount.

O inicializador de pedido de transferência bancária

Esse fluxo de mensagens simples compreende os seguintes nós:

Fluxo de mensagens para o iniciador da solicitação de transferência

O intermediário recebe um pedido no formulário URI vindo de um cliente do navegador que utiliza o transporte HTTP.

O nó JavaCompute:

  1. Lê os saldos apropriados a partir do sistema de arquivos.
  2. Cria o corpo da mensagem que exibe os saldos de conta juntamente com um formulário de entrada HTML com todos os campos necessários para enviar um pedido de transferência ao WebSphere Process Server
  3. Altera o tipo de conteúdo dessa mensagem para texto ou HTML, que é então enviado como resposta ao pedido.

O pedido de transferência bancária

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:

Fluxo de mensagens para solicitação de transferência bancária

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

A conta poupança é hospedada no WebSphere Process Server. Compreende:

Esses componentes são conectados a um diagrama de montagem.

Diagrama do conjunto de conta poupança

A implementação do processo de negócios é dividida em duas partes correspondendo aos dois pedidos de operação:

Diagrama do processo de negócios para conta poupança

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.

Voltar para o Início da Amostra