WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Planificación de los nodos de proceso de mensajes definido por el usuario

Planifique cómo escribir el nodo de proceso de mensajes o el nodo de salida y cómo navegar al mensaje en el nodo.

Factores de diseño

Antes de desarrollar e implementar el nodo de proceso de mensajes, tenga en cuenta los aspectos siguientes:

Navegación por los elementos de sintaxis

El intermediario proporciona funciones que su nodo puede llamar para recorrer la representación de árbol del mensaje, así como funciones y métodos que soportan la navegación desde el elemento actual hasta otros elementos:
  • Padre
  • Primer hijo
  • Último hijo
  • Elemento hermano anterior (izquierdo)
  • Elemento hermano siguiente (derecho)
Estas relaciones se muestran en el diagrama siguiente.
El diagrama muestra un elemento de sintaxis que se conecta a los elementos padre, hijo y hermano.

Otras funciones y métodos permiten manipular los propios elementos, con funciones y métodos que crean elementos, para establecer o consultar sus valores, para insertar elementos nuevos en el árbol y para suprimir elementos del árbol. Consulte Funciones de utilidad de nodo en C y Funciones de utilidad de analizador en C, o la información Javadoc para obtener más detalles.

El diagrama siguiente describe un árbol de elementos de sintaxis sencillo que muestra un rango completo de las interconexiones entre los elementos.
El diagrama muestra un árbol de elementos de sintaxis con elementos raíz e hijo.

El elemento A es el elemento raíz del árbol. No tiene padre porque es la raíz. Tiene un primer hijo del elemento B. Puesto que A no tiene ningún otro hijo, el elemento B es también el último hijo de A.

El elemento B tiene tres hijos: los elementos C, D y E. El elemento C es el primer hijo del B; el elemento E es el último hijo del B.

El elemento C tiene dos hermanos: los elementos D y E. El hermano siguiente del elemento C es el elemento D. El hermano siguiente del elemento D es el elemento E. El hermano anterior del elemento E es el elemento D. El hermano anterior del elemento D es el elemento C.

El diagrama siguiente muestra la primera generación de elementos de sintaxis de un mensaje de WebSphere MQ típico recibido por un intermediario. (No todos los mensajes tienen una cabecera MQRFH2.)
El diagrama muestra un elemento raíz con elementos hijo típicos de WebSphere MQ.

En la primera generación se suele hacer referencia a estos elementos como "carpetas" en las que se almacenan los elementos de sintaxis que representan cabeceras de mensajes y datos de contenido de mensajes. En este ejemplo, el primer hijo de la raíz es la carpeta Properties. El hermano siguiente de Properties es la carpeta para la cabecera MQMD. El hermano siguiente es la carpeta para la cabecera MQRFH2. La última carpeta representa el contenido del mensaje que, en este ejemplo, es un mensaje XML.

La figura anterior incluye una cabecera MQMD y una cabecera MQRFH2. Todos los mensajes recibidos por un nodo de proceso que maneja WebSphere MQ incluyen una cabecera MQMD; también se pueden incluir diversas cabeceras adicionales.

Navegación por un mensaje XML:

Examine el mensaje XML siguiente:
  <Business>
    <Product type='messaging'></Product>
    <Company>
      <Title>IBM</Title>
      <Location>Hursley</Location>
      <Department>WebSphere MQ</Department>
    </Company>
  </Business>
En este ejemplo, los elementos son de los tipos siguientes:
Elemento de nombre
Business, Product, Company, Title, Location, Department
Elemento de valor
IBM®, Hursley, WebSphere MQ
Elemento de nombre-valor
type='messaging'

Utilice las funciones y métodos proporcionados del programa de utilidad del nodo (o las funciones similares del programa de utilidad de analizador) para desplazarse por un mensaje. Utilizando el mensaje XML mostrado, debe llamar al elemento cniRootElement en primer lugar con el mensaje que ha recibido el nodo como entrada para esta función. En Java™, debe llamar a getRootElement en el objeto MbMessage de entrada. Esta llamada devuelve un elemento MbElement que representa la raíz del elemento. No modifique este elemento raíz en el nodo definido por el usuario.

La figura de la primera generación de los elementos de sintaxis de un mensaje típico recibido por el intermediario, muestra que el último hijo del elemento raíz es la carpeta que contiene el árbol del analizador XML. Navegue hasta esta carpeta llamando a cniLastChild (con la salida de la llamada anterior como entrada para esta función) en un nodo C o llamando al método getLastChild del elemento raíz en un nodo Java.

En el nivel superior del mensaje sólo hay un elemento (<Business>), por lo tanto, llame a cniFirstChild (en C) o getFirstChild (en Java) para desplazarse a este punto en el árbol. Utilice cniElementType o getType para obtener su tipo (que es name), seguido de cniElementName o getName para que devuelva el propio nombre (Business).

El elemento <Business> tiene dos hijos, <Product> y <Company>. Utilice cniFirstChild o getFirstChild seguido de cniNextSibling o getNextSibling para desplazarse a cada hijo, uno después del otro.

El elemento <Product> tiene un atributo (type='messaging'), que es un elemento hijo. Utilice cniFirstChild o getFirstChild para desplazarse hasta este elemento y cniElementType o getType para devolver su tipo (que es nombre-valor). Utilice cniElementName o getName para obtener el nombre. Para obtener el valor, llame a cniElementValueType para devolver el tipo, seguido de la función adecuado en el grupo cniElementValue, en este ejemplo es cniElementCharacterValue. En Java utilice el método getValue, que devuelve un objeto Java que representa el valor de elemento.

El elemento <Company> tiene tres hijos, cada uno de los cuales tiene un hijo que es un elemento de valor (IBM, Hursley y WebSphere MQ). Utilice las funciones que ya se han descrito para desplazarse a ellos y acceder a sus valores.

Se dispone de otras funciones para copiar el árbol de elementos, o parte del mismo. A continuación, la copia se puede modificar añadiendo o suprimiendo elementos y modificando sus nombres y valores para crear un mensaje de salida. Consulte Funciones de utilidad de nodo en C y Funciones de utilidad de analizador en C o la API Java definida por el usuario para obtener más información.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:20


Tema de conceptoTema de concepto | Versión 8.0.0.5 | as01395_