Acerca del ejemplo Nodos SCA

El ejemplo Nodos SCA consta de dos flujos de mensajes que:

El ejemplo ampliado ofrece un flujo de mensajes adicional que:

El diagrama siguiente muestra las relaciones entre los flujos de mensajes en WebSphere Message Broker y el proceso de negocio en WebSphere Process Server.

Diagrama que muestra la relación entre WebSphere Message Broker y WebSphere Process Server

  1. Un navegador web inicia el proceso enviando una solicitud al flujo de mensajes BankTransferRequestInitiator en WebSphere Message Broker.
  2. El flujo de mensajes BankTransferRequestInitiator le envía un formulario de entrada HTML.
  3. El usuario somete los datos del formulario a un segundo flujo de mensajes, BankTransferRequest, en WebSphere Message Broker.
  4. El flujo de mensajes BankTransferRequest prepara los datos que ha enviado como una solicitud al proceso de negocio SavingsAccount en WebSphere Process Server.
  5. El proceso de negocio SavingsAccount actualiza el balance de la cuenta ahorro y devuelve la respuesta al flujo de mensajes BankTransferRequest.
  6. El flujo de mensajes BankTransferRequest devuelve esta respuesta al navegador web.
  7. El ejemplo ampliado presenta una cuenta corriente enlazada a la cuenta de ahorro. El proceso de negocio SavingsAccount prepara los datos para enviarlos como una solicitud al flujo de mensajes CurrentAccount en WebSphere Message Broker.
  8. El flujo de mensajes CurrentAccount actualiza el balance de la cuenta corriente y devuelve la respuesta al proceso de negocio SavingsAccount.

El iniciador de la solicitud de transferencia bancaria

Este flujo de mensajes simple consta de los nodos siguientes:

Flujo de mensajes para el iniciador de la solicitud de transferencia

El intermediario recibe una solicitud en forma de URI procedente de un cliente de navegador utilizando el transporte HTTP.

El nodo JavaCompute:

  1. Lee el balance adecuado del sistema de archivos
  2. Crea el cuerpo del mensaje que muestra los balances de cuenta junto con un formato de entrada HTML con todos los campos que son necesarios para enviar una solicitud de transferencia a WebSphere Process Server
  3. Cambia el tipo de contenido de este mensaje por texto o HTML, que después se envía como respuesta a la solicitud.

La solicitud de transferencia bancaria

Desde el cliente de navegador, elija el tipo de solicitud de transferencia, escriba la cantidad de dinero que desea transferir y pulse Someter.

El hecho de someter el formulario significa que envía estos valores de propiedad, utilizando HTTP, a otro flujo de mensajes que está a la escucha en el puerto HTTP.

Este flujo de mensajes consta de los nodos siguientes:

Flujo de mensajes para la solicitud de transferencia bancaria

El flujo de mensajes recibe los valores de propiedad como partes del mensaje MIME.

Un nodo JavaCompute procesa estos valores de propiedad creando un mensaje de solicitud XML a partir de la cantidad y altera temporalmente el funcionamiento del entorno local SCA con el tipo de solicitud de transferencia.

El identificador de solicitud se copia en el contexto del usuario para que no se pierda cuando el mensaje de respuesta llega al nodo de respuesta asíncrona SCA. Este identificador es necesario para volver al cliente originario.

La transferencia también se puede validar en este momento. Si se especifica una cantidad no válida o si se deja en blanco, se generará una MbUserException. Si la validación falla, la excepción de usuario se propaga a través del terminal de anomalías. El mensaje de excepción se incluye en un mensaje de respuesta al cliente originario. Pulse Aceptar para volver de nuevo al formulario de transferencia bancaria de forma que se pueda especificar una cantidad correcta.

Si la validación es satisfactoria, el mensaje de solicitud de transferencia XML se propaga a un nodo SCAAsyncRequest. Este nodo envía el mensaje al servicio SCA especificado que aloja WebSphere Process Server. Este servicio SCA contiene la lógica empresarial relacionada con el proceso de cuenta de ahorro.

Después de que procesar la solicitud, se vuelve a enviar un mensaje de respuesta de transferencia XML a WebSphere Message Broker donde la procesa el correspondiente nodo SCAAsyncResponse. Si la solicitud de transferencia bancaria se ha procesado satisfactoriamente, se incluye el nuevo balance del ahorro en el mensaje de respuesta. Si la solicitud de transferencia bancaria no ha resultado satisfactoria, se utiliza el balance del ahorro anterior.

La identificador de solicitud también se recupera del entorno local y se copia a la carpeta de destino de forma que mensaje de respuesta se puede volver a enviar al cliente originario.

La cuenta de ahorro

La cuenta de ahorro está alojada en WebSphere Process Server. Consta de:

Estos componentes están conectados en un diagrama ensamblado:

Diagrama del conjunto de cuentas de ahorro

La implementación del proceso de negocio se divide en dos partes correspondientes a las dos solicitudes de operación:

Diagrama de proceso de negocio para cuenta de ahorro

Si la solicitud de mensaje XML de entrada es para realizar la transferencia a la cuenta de ahorro, se inicializan las variables del proceso de negocio a partir de este mensaje. El balance del ahorro se lee de un archivo utilizando una interfaz Java y se le ingresa la cantidad solicitada. Este nuevo balance, se vuelve a grabar en el archivo utilizando la interfaz Java, se crea una respuesta de mensaje con los valores relevantes ya rellenados a partir de las variables del proceso de negocio y se envía de nuevo al interlocutor.

Si la solicitud de mensaje XML de entrada se debe transferir a la cuenta corriente, se inicializan las variables del proceso de negocio a partir de este mensaje. El balance del ahorro se lee de un archivo utilizando una interfaz Java y se le carga la cantidad solicitada. Si el nuevo balance es superior o igual a cero, el nuevo balance se vuelve a grabar en el archivo utilizando la interfaz Java. Si el nuevo balance es inferior a cero, el balance anterior permanece en el archivo. Se crea una respuesta de mensaje con los valores relevantes rellenados a partir de las variables del proceso de negocio y se vuelve a enviar al interlocutor.

Volver a la página inicial del ejemplo