Un analizador es un programa que interpreta la corriente de bits física de un mensaje de entrada y crea una representación lógica interna del mensaje en una estructura en árbol. El analizador también vuelve a generar una corriente de bits para un mensaje de salida a partir de la representación interna de árbol de mensajes.
Se llama a un analizador cuando la corriente de bits que representa un mensaje de entrada se convierte a la forma interna que el intermediario puede manejar, esta invocación se conoce como análisis. La forma interna, una estructura de árbol lógico, se describe en Estructura del árbol lógico. Se describe como un árbol porque los mensajes tienen una estructura típicamente jerárquica; un buen ejemplo de esta estructura es XML. La forma en que el analizador interpreta la corriente de bits es exclusiva de ese analizador; por lo que el árbol de mensajes lógico que se crea a partir de la corriente de bits varía de un analizador a otro.
El analizador al que se llama depende de la estructura de un mensaje, que conoce como la plantilla de mensajes. La información de la plantilla de mensaje comprende el dominio de mensajes, el conjunto de mensajes, el tipo de mensaje y el formato físico del mensaje. Juntos, estos valores identifican la estructura de los datos que contiene el mensaje.
Un analizador también se llama cuando un árbol lógico que representa un mensaje de salida se convierte en una corriente de bits; esta acción del analizador se conoce como escritura. Normalmente, un nodo de salida genera un mensaje de salida al final del flujo de mensajes. No obstante, puede conectar más nodos a un nodo de salida para continuar el proceso del mensaje.
El dominio de mensajes identifica el analizador que se utiliza para analizar y escribir instancias del mensaje. Las partes restantes de la plantilla de mensaje, del conjunto de mensajes, tipo de mensaje y formato físico son opcionales y los utilizan analizadores dirigidos por modelo como, por ejemplo, el analizador MRM.
La estructura lógica del mensaje normalmente se correlaciona con el contenido de negocio del mensaje; por ejemplo, contiene un nombre de cliente, dirección y número de cuenta. Sólo cuando se envía un mensaje a través de una conexión, las características físicas son importantes e influyen en la construcción de la corriente de bits.
El intermediario requiere acceso a un analizador para cada dominio de mensajes al que pertenecen los mensajes de entrada y salida. Además, el intermediario requiere un analizador para cada cabecera de mensaje identificable que se incluye en el mensaje de entrada o salida. Los analizadores se llaman cuando los necesita el flujo de mensajes.
WebSphere Message Broker proporciona soporte incorporado para mensajes en los dominios de mensaje siguientes, proporcionando analizadores de cuerpo de mensaje:
Consulte Qué analizador del cuerpo debe utilizar para obtener una explicación sobre qué analizador de cuerpo del mensaje se utiliza y en qué circunstancias.
El árbol de mensajes que se crea se describe en la sección Estructura del árbol de mensaje. Su forma exacta puede cambiar a medida que progresa por el flujo de mensajes, en función de lo que hagan los nodos.
El último elemento hijo del elemento raíz del árbol de mensajes adopta el nombre del analizador del cuerpo de mensaje que ha creado el árbol. Por ejemplo, si la propiedad Dominio de mensajes se ha establecido en MRM, el último elemento hijo de la raíz se denomina MRM, lo cual indica que el árbol de mensajes es propiedad del analizador MRM.
Algunos analizadores del cuerpo de mensajes están dirigidos por modelo, lo que significa que utilizan mensajes predefinidos de un conjunto de mensajes para el análisis y la escritura. Los analizadores MRM, SOAP, DataObject, IDOC y, opcionalmente, XMLNSC son analizadores dirigidos por modelo. Para utilizar estos analizadores, los mensajes deben estar diseñados en un conjunto de mensajes y se deben desplegar en el intermediario desde WebSphere Message Broker Toolkit.
Otros analizadores de mensajes están programados, lo que significa que los mensajes que analizan y escriben son mensajes autodefinidos y no se requiere ningún conjunto de mensajes. Consulte el apartado Mensajes predefinidos y autodefinidos.
Cuando utiliza un analizador dirigido por modelo, debe especificar también el Conjunto de mensajes y, opcionalmente, el Tipo de mensaje y el Formato del mensaje, de modo que el analizador pueda localizar la definición del mensaje desplegada con la que guiará el análisis o la escritura del mensaje.
Para analizar una corriente de bits, generalmente se establecen las propiedades Conjunto de mensajes, Tipo de mensaje y Formato de mensaje del nodo de entrada que recibe el mensaje. O si está iniciando la operación de análisis en ESQL, se utilizan las cláusulas SETTYPE y FORMAT de la sentencia CREATE. Esta información se copia en la carpeta Properties del árbol de mensajes.
Para escribir un mensaje, el intermediario invoca el analizador del cuerpo de mensaje propietario para crear la corriente de bits del árbol de mensajes. Si el analizador es un analizador dirigido por modelo, utiliza los campos MessageSet, MessageType y MessageFormat de la carpeta Properties.
Si las propiedades Tipo de mensaje o Formato del mensaje son necesarias dependerá del dominio de mensajes.
Incluso si el analizador del cuerpo no está dirigido por modelo, se recomienda crear y utilizar un conjunto de mensajes en WebSphere Message Broker Toolkit, debido a que simplifica el desarrollo de las aplicaciones de flujo de mensajes, aunque el conjunto de mensajes no se despliegue en el entorno de tiempo de ejecución del intermediario. Consulte la sección Por qué se deben modelar mensajes para obtener información acerca de las ventajas de crear un conjunto de mensajes.
WebSphere Message Broker también proporciona analizadores para las siguientes cabeceras de mensaje, que sus aplicaciones pueden incluir en mensajes de entrada o de salida:
Todos los analizadores de cabeceras están programados y no utilizan un conjunto de mensajes durante el análisis o escritura.
Para analizar o escribir los datos del cuerpo del mensaje o las cabeceras que los analizadores suministrados no manejan, puede crear analizadores definidos por el usuario que utilicen la interfaz de programación del analizador definido por el usuario de WebSphere Message Broker.