Funcionamiento Interno de IBM MQ y Componentes EJB

Clasificado en Informática

Escrito el en español con un tamaño de 4,82 KB

Funcionamiento Interno de IBM MQ

Cuando una aplicación desea colocar un mensaje en una cola, invoca una API MQPUT.

  • El queue manager verifica si la cola indicada es local o remota.
  • Si la cola es remota, el mensaje se coloca en una cola de transmisión. El queue manager agrega información al encabezado del mensaje, como el nombre de la cola y el queue manager de destino.
  • La transmisión se realiza a través de canales. Los canales pueden iniciarse manual o automáticamente.

Inicio Automático de Canales

Para iniciar un canal automáticamente, la cola de transmisión debe estar asociada a una channel initiation queue. Esta cola es monitoreada por un channel initiator.

  • El channel initiator es un programa MQSeries que debe estar en ejecución. Cuando el channel initiator detecta un mensaje en la cola de transmisión, inicia un message channel agent (MCA).
  • El MCA mueve el mensaje a través de la red hacia la otra máquina.

Procesamiento de Mensajes de Entrada

El programa que procesa el mensaje de entrada puede iniciarse manual o automáticamente.

  • Para iniciar el programa automáticamente, se debe asociar una cola de iniciación y un proceso a la cola local, y un trigger monitor debe estar en ejecución.
  • Cuando el programa se inicia automáticamente, el MCA coloca el mensaje entrante en la cola local y el mensaje de trigger en la cola de iniciación.
  • La cola es monitoreada por un trigger monitor. Este trigger monitor invoca el programa receptor.
  • El programa receptor utiliza la API MQGET para recuperar el mensaje desde la cola local.

Comunicación entre Queue Managers

Para conectar dos queue managers, en cada sistema es necesario:

  • Una definición de una cola remota, que represente una cola local en la máquina destino y que asocie una cola de transmisión (Q1 en sistema A y Q2 en sistema B).
  • Una cola de transmisión que mantenga todos los mensajes destinados al sistema remoto hasta que el canal los transmita (QMB en sistema A y QMA en sistema B).
  • Un canal sender que tome los mensajes desde la cola de transmisión y los transmita al otro sistema a través de la red (QMA.QMB en sistema A y QMB.QMA en sistema B).
  • Un canal receptor que reciba mensajes y los coloque en una cola local (QMB.QMA en sistema A y QMA.QMB en sistema B). El canal receptor debe ser iniciado automáticamente por el queue manager (uso de Channel Auto Definition).
  • Una cola local desde la cual el programa obtiene los mensajes (Q2 en sistema A y Q1 en sistema B).

Uso de Triggers

Hay dos tipos de trigger:

  • EVERY: Cada vez que llega un mensaje a una cola, se ejecuta el programa.
  • FIRST: El trigger se activa solo si, cuando llega un mensaje, la cola está vacía.
  • N Messages: Un mensaje de trigger se coloca en la cola de iniciación cuando hay N mensajes en la cola.

MQI

Un programa puede comunicarse directamente con su queue manager local. El programa usa una interfaz MQI.

  • MQI es un conjunto de API's que permiten ejecutar servicios en un queue manager.
  • Existe una API MQI para cada lenguaje de programación o plataforma: C, COBOL, Java.

Enterprise Java Beans (EJB)

Un Enterprise Bean es un componente que contiene la lógica de negocio del sistema.

  • Los EJB permiten la invocación de lógica de negocio de forma remota, en un ambiente distribuido.
  • Un componente EJB puede ser reutilizado desde otras aplicaciones J2EE.

Tipos de EJB

Session Beans

  • Implementan lógica de negocio.
  • Soportan un modelo de comunicación síncrona.

Entity Beans

  • Implementan la capa de persistencia.
  • Representan un modelo de datos contra un modelo de objetos.

Message Driven Beans

  • Implementan lógica de negocio.
  • Soportan un modelo de comunicación asíncrona.

Session Bean

Implementa la lógica de negocio de una aplicación.

  • Es una clase Java tratada de manera especial por el servidor de aplicaciones:
    • Transaccionalidad
    • Ciclo de vida
    • Seguridad
    • Invocación remota

Tipos de Session Bean

Stateless
  • No guardan estado de la comunicación con el cliente.
Stateful
  • Almacenan el estado de la comunicación con el cliente.
  • Pueden guardar objetos en la sesión.

Ciclo de Vida

Stateful y Stateless

Entradas relacionadas: