El modelo de ejecución de WebSphere Message Broker es el sistema que se utiliza para ejecutar flujos de mensajes a través de una serie de nodos.
Cuando se inicializa un grupo de ejecución, se ponen a disposición del
tiempo de ejecución los LIL adecuados. El proceso de tiempo de ejecución del grupo de ejecución se inicia y abarca una hebra de configuración dedicada. En el entorno de ejecución del flujo de mensajes, el flujo de mensajes tiene enhebramiento seguro. Puede ejecutar de forma simultánea flujos de mensajes en muchas hebras sin tener en cuenta cuestiones de serialización. Cualquier nodo definido por el usuario que implemente no debe comprometer este modelo de trabajo con hebras. Tenga en cuenta los puntos siguientes:
- Un mensaje de entrada enviado a un flujo de mensajes solo lo procesa la hebra que lo recibe. Durante el proceso del mensaje no se produce ninguna conmutación de hebras o de contexto.
- Las estructuras de datos a las que acceden los flujos de mensajes solamente puede verlas una hebra y estas estructuras de datos solamente existen durante la vida del mensaje que se está procesando.
- Se comparte una sola instancia de un flujo de mensajes entre todas las hebras de la agrupación de hebras del flujo de mensajes. Esto está relacionado con el comportamiento de un nodo de flujo de mensajes en el sentido que
no tiene un estado.
- Los requisitos de memoria de un grupo de ejecución no resultan afectados indebidamente por los flujos de mensajes que se ejecutan en más hebras del sistema operativo.
- El entorno de ejecución del flujo de mensajes es similar conceptualmente a la programación de procedimientos. Los nodos que inserte en un flujo de mensajes son como subrutinas que se invocan utilizando una interfaz de llamada a función. No obstante, en lugar de una interfaz de tipo "llamada y retorno", en la
que se pasan los parámetros con el formato de datos de mensaje de entrada,
en WebSphere Message Broker se hace referencia al modelo
de ejecución como un modelo de "propagación y retorno".
- Un flujo de mensajes de WebSphere Message Broker tiene intrínsecamente un enhebramiento seguro y los flujos de mensajes se pueden ejecutar de forma simultánea en más de una hebra.
Si, por ejemplo, está utilizando un nodo definido por el usuario para procesar mensajes y también está utilizando un analizador definido por el usuario para analizar los mensajes de entrada, tanto el nodo como el analizador contendrán funciones de implementación. Cuando se producen determinados sucesos, el intermediario llama, o devuelve la llamada, a estas funciones de implementación.
Cuando se recibe un mensaje de entrada en el intermediario en dicho nodo de entrada, se envía al nodo definido por el usuario.
- Para nodos en C, el intermediario llama a la función
cniEvaluate para el nodo
definido por el usuario.
Consulte
cniCreateNodeContext para
obtener información sobre la función
cniEvaluate.
- Para nodos Java, el intermediario llama al método
evaluate que está
implementado por el nodo definido por el usuario.
Si el nodo desea consultar el mensaje para
decidir qué hacer con el mismo, llama a una función de utilidad C o a un método Java, según corresponda al lenguaje en que está
escrito el nodo. A continuación, el intermediario invoca al analizador definido por el usuario para una de sus funciones de implementación. Esto indica al analizador que debe comenzar a crear el árbol de análisis de WebSphere Message Broker. El analizador empieza a crear el árbol invocando las funciones de programa de utilidad que crean elementos en el árbol de análisis. El intermediario puede llamar varias veces al analizador y no simplemente una.