Skip to main content

Ejemplo Adaptador MQ Series

English

Descripción

Antes de nada, vamos a explicar unos conceptos para entender cómo funciona este Adaptador que TAST ha creado.

¿Qué es MQ? En la actualidad, las empresas trabajan con muchos datos (XML/archivo de texto/archivo HTML, etc.…) que intercambian entre distintas aplicaciones, sistemas y servicios. La manera de intercambiar estos datos es a través de mensajes. Si una aplicación falla o se interrumpe su servicio, esos datos/mensajes se pueden perder o duplicar, ocasionando mucho tiempo y dinero subsanar dicho error. Ante esa situación, IBM creo MQ, un producto capaz de guardar los mensajes si no pueden entregarse de forma inmediata, a la espera de entregarlos con las garantías necesarias, sin perderse, ni duplicarse y enviándolos una sola vez.  

MQ conecta casi todo, reduciendo el tiempo de integración, reduciendo costes y moviendo los mensajes de forma fiable.

MQ protege los datos en reposo, también en movimiento y en memoria a través de una autenticación muy precisa y un cifrado de datos potente.

Gracias a MQ los desarrolladores pueden dedicar mas tiempo a otras áreas, ya que se encarga de intentar cuantas veces lo precise la conexión y el posterior envió de los mensajes 

¿Qué es una cola? Una cola es un contenedor de mensajes. Las aplicaciones empresariales que están conectadas al gestor de colas que aloja la cola, pueden recuperar mensajes de la cola y transferirlos a la cola.

Una cola tiene una capacidad limitada en cuanto al número máximo de mensajes que puede contener y a la longitud máxima de dichos mensajes.

TAST ha creado este Adaptador que permite conectar con una consola MQ para el tratamiento de grandes cantidades de datos. Las colas MQ son estructuras de datos que siguen la filosofía FIFO (First in, First out), primer mensaje en entrar, primero en salir. El adaptador MQ nos permite configurar una conexión a una cola para enviar o recibir mensajes.

El Adaptador MQ admite los dos estilos principales de mensajería:

  • La mensajería punto a punto (PTP):
    • permite enviar un mensaje a una cola.
    • permite recibir el mensaje que extrae de la cola.
  •  La mensajería de publicación y suscripción (pub/sub):
    • permite enviar un mensaje que publica con un tema específico.
    • el mensaje se entrega a todos aquellos que estén suscritos a ese tema.

Enunciado del ejercicio

Este es un ejemplo de un caso de prueba para mostrar el funcionamiento del Adaptador MQ Series. En este caso de prueba, enviamos un mensaje a la Cola 1 y luego desde esa misma Cola 1, lo escuchamos como listener, para que se quede guardado.

Resolución del caso de prueba

En el proceso de inicialización, tenemos que proporcionar la información (parámetros) necesaria al Adaptador, para que sea posible la conexión. Estos serán los parámetros de la primera cola:

  •  Nombre de la cola: nombre de la cola a conectar.
  •  Gestor de colas: nombre del gestor de colas.

Mapeo1.png

  •  Nombre del canal: nombre del canal de aplicación.
  •  Host: dirección IP de la cola Host.
  •  Puerto: puerto para la dirección IP de la cola.

Mapeo2.png

  •  Usuario: nombre de usuario para acceder a la consola MQ.
  •  Contraseña: contraseña para acceder a la consola MQ.
  •  Selector de mensaje: opción de elegir un mensaje determinado.

Mapeo3.png

  •  Tipo de cola: tipo de cola a conectar. Por ejemplo: 
    •  Sender para la primera cola:

Mapeo4.png

    • o Receiver para la segunda cola:

Mapeo5.png

Todos estos parámetros los vamos a sacar de la Consola MQ.

Los nombres de la cola, los encontramos aquí. Cuando creamos una cola, le ponemos el nombre que queramos. En este caso y para esta prueba hemos utilizado estas dos primeras colas, que ya vienen definidas.

ConsolaMQSeries1.png

Para buscar el Channel Name, nos tenemos que meter en Gestor de Colas: QM1

ConsolaMQSeries2.png

Ir a Comunicación, y después a Canales de Aplicación. Y lo tendríamos aquí:

ConsolaMQSeries3.png

Habrá dos: uno es el que utiliza el Administrador, y otro el de la App, que suele ser nuestro usuario a utilizar cuando queremos usar el Adaptador.

Hemos diseñado este caso de prueba utilizando dos Adaptadores: el Adaptador de Objeto de Usuario y el Adaptador MQ Series (Cola 1, Cola 2). 

DiagramaAdaptadorMQSeries.png

Las funciones más usadas con este Adaptador son:

  •  sendMessage: envía mensajes a la cola. Debes indicar en los parámetros que mensaje tiene que recibir la cola.

 sendMessage.png

  • receiveMessage: lee y recibe todos los mensajes lanzados a una cola. El primer mensaje recibido quedaría guardado en primera posición y el ultimo en última posición.

receiveMessage.png

Ejecución del Test Set

Para ejecutar este caso de prueba, abrimos el Cliente de TAST, lo buscamos y lanzamos la ejecución. Cuando terminamos de ejecutar este caso de prueba, vemos si se ha ejecutado correctamente. Nos aparecerá la casilla de Status marcada en verde. 

Ejecución.png

Captura de resultados

A continuación abrimos el icono de la derecha (marcado con una flecha roja) y tenemos como resultado la carpeta de evidencias, donde se almacena tanto el log de la ejecución, como todas las capturas de pantalla, archivos, etc... si hemos marcado la casilla «Evidencias» en la configuración general del diagrama.

Logs1.png

Logs2.png

Logs3.png

Log de la ejecución   

Al abrir la carpeta con los logs, podemos ver como el Adaptador conecta con la cola, probando todos los parámetros, envía el mensaje, conecta como listener a la cola, recibe el mensaje y al final lo guarda como una evidencia en un archivo .txt:

receiveMessage-Name-Q20.txt

Logs4.png

Abrimos este archivo y vemos como se queda guardado el mensaje:

receiveMessageName.png

En el caso de que modifiquemos el diagrama y marquemos la casilla de comentar en el segundo mensaje y volvamos a ejecutar el diagrama; no se quedaría guardada la evidencia, ya que no estamos actuando cómo listener en la cola y sólo estaríamos enviando el mensaje

receiveMessageComentar1.png

Al abrir la carpeta con los logs, vemos la conexión a la cola y como envía el mensaje. 

receiveMessageComentar2.png

Si nos vamos a la consola MQ, vemos como el mensaje ha llegado a su cola.

colaLocal0.png