Los componentes de flujos de mediación operan sobre flujos de mensaje entre
componentes de servicio. Las posibilidades de un componente de mediación se implementan
mediante primitivas de mediación, que implementan tipos de implementación
de servicio estándar.
Un componente de flujos mediación tiene uno o varios flujos. Por ejemplo, uno para la petición y otro para la respuesta.
WebSphere ESB admite un
conjunto de primitivos de mediación
suministrado, que implementa las posibilidades de mediación estándar para los módulos de
mediación desplegados en
WebSphere ESB. Si necesita posibilidades de mediación especiales, puede desarrollar sus
propios primitivos de mediación personalizados.
Una primitiva de mediación define una operación de "entrada" que procesa o gestiona los mensajes que están representados por SMO (Objetos de mensajes de servicio). Una primitiva de mediación también puede definir operaciones de "salida" que envían mensajes a otro componente o módulo.
Figura 1. Módulo de mediación que contiene tres primitivos de mediación
Puede utilizar WebSphere Integration Developer para configurar la primitivas de mediación y definir sus propiedades. El administrador del entorno de ejecución puede visualizar algunas de estas propiedades las si las promueve. Toda propiedad de primitiva de mediación que se solicite puede ser también una propiedad dinámica. Una propiedad dinámica puede alterarse temporalmente,
durante la ejecución, utilizando un archivo de políticas.
WebSphere Integration Developer también permite
crear un modelo gráfico y ensamblar los componentes de flujo de mediación de
primitivos de mediación y ensamblar los
módulos de mediación de los
componentes de flujo de mediación. La consola administrativa hace
referencia a los módulos de mediación como módulos SCA.
WebSphere Integration Developer también permite definir subflujos en los módulos o sus bibliotecas dependientes.
Un subflujo puede contener cualquier primitiva de mediación excepto la primitiva de mediación Resolución de la política. Un subflujo se invoca desde un flujo petición o de respuesta a través de una primitiva de mediación Subflujo. Las propiedades promovidas desde las primitivas de mediación de un subflujo se exponen como propiedades en las primitivas de mediación Subflujo.
A continuación, se pueden volver a promocionar hasta que alcanzan el nivel de módulo en el que el administrador del tiempo de ejecución las puede modificar.
Primitivas de mediación soportadas
El siguiente conjunto de
primitivos de mediación está soportado por
WebSphere ESB:
- Correlación de objetos de negocio
- Transforma mensajes.
- Define las transformaciones de los mensajes utilizando una correlación de objetos de negocio, que puede reutilizarse.
- Le permite definir gráficamente transformaciones de los mensajes, utilizando el editor de correlaciones de objetos de negocio.
- Puede modificar el contenido de un mensaje.
- Puede transformar el tipo de mensaje de entrada a un tipo de mensaje de salida diferente.
- Mediación personalizada
- Le permite implementar su propia lógica de mediación en código Java™. La primitiva Mediación personalizada combina la flexibilidad de una primitiva de mediación definida por el usuario, con la simplicidad de una primitiva de mediación predefinida. Puede crear complejas transformaciones y patrones de direccionamiento mediante las acciones siguientes:
- Crear código Java.
- Crear sus propias propiedades.
- Añadir nuevos terminales.
Puede llamar a un servicio desde una primitiva Mediación personalizada, pero la primitiva de mediación Invocación de servicio se ha diseñado para llamar a los servicios, y proporciona funciones adicionales como, por ejemplo, poder llevar a cabo reintentos.
- Manejador de datos
- Permite transformar una parte de un mensaje. Se utiliza para convertir el elemento
de un mensaje de un formato físico a una estructura lógica, o una estructura lógica en un
formato físico. El principal uso de la primitiva es la conversión a un formato físico, por
ejemplo, una serie de texto en un objeto de mensaje de texto JMS se convierte en una
estructura de objeto empresarial lógica, y viceversa. Esta mediación se utiliza
normalmente para:
- Transformar una sección del mensaje de entrada de una estructura definida a otra, por
ejemplo, cuando SMO incluye un valor de serie delimitado por comas y desea analizarlo en
un determinado objeto empresarial.
- Alterar el tipo de mensaje, por ejemplo, cuando una exportación JMS que se ha
configurado para utilizar un enlace de datos de tipo básico JMS y en el módulo de
mediación el desarrollador de la integración decide que el contenido debe inflarse a una
determinada estructura BO.
- Búsqueda de base de datos
- Modifica mensajes, utilizando información de una base de datos
proporcionada por el usuario.
- Debe configurar una base de datos, un origen de datos y los valores de
autenticación de servidor para que el
primitivo de mediación de búsqueda de
base de datos los utilice. La consola administrativa le ayudará a llevar a cabo dichos pasos.
- El primitivo de mediación de Búsqueda de base de datos sólo se puede leer de una tabla.
- La columna de clave especificada debe contener un valor exclusivo.
- Los datos en las columnas de valor deben ser un tipo de esquema XML simple o un tipo
de esquema XML que amplíe el tipo de esquema XML simple.
- Búsqueda de puntos finales
- Permite el direccionamiento dinámico de peticiones, buscando puntos finales de
servicio en un depósito.
- La información de punto final de servicio se recupera de WSRR
(WebSphere
Service Registry and Repository). El registro WSRR puede ser local o remoto.
- Puede realizar cambios en el registro desde la consola administrativa de WSRR.
- WebSphere ESB necesita saber qué registro utilizar y, por tanto, se deben crear las definiciones de acceso de WSRR mediante la consola administrativa de WebSphere ESB.
- Emisor de sucesos
- Mejora la supervisión al permitirle enviar los sucesos desde el interior de un
componente de flujo de mediación.
- Puede suspender la acción mediar desmarcando el recuadro de selección.
- Puede consultar los sucesos del Emisor de sucesos utilizando el navegador de CBE (Common Base Events) en WebSphere ESB.
- Sólo debería enviar sucesos al llegar a un punto que sea suficientemente importante en un flujo de mediación, por cuestiones de rendimiento.
- Puede definir las parte del mensaje que contiene el suceso.
- Los sucesos se envían en forma de Common Base Events y se envían a un servidor de Common Event Infrastructure.
- Para utilizar completamente la información del Emisor de sucesos, los consumidores de sucesos tienen que comprender la estructura de Common Base Events.
Common Base Events tiene un esquema general pero éste no crea un modelo de los datos específicos de la aplicación, contenidos en los elementos de datos ampliados. Para crear un modelo de los elementos de datos ampliados, las herramientas de WebSphere Integration Developer generan un archivo de definición de catálogo de sucesos de Common Event Infrastructure para cada una de las primitivos de mediación del Emisor de sucesos que se haya configurado.
Los archivos de definición de catálogo de sucesos son artefactos de exportación proporcionados para ayudarle; no se utilizan en WebSphere Integration Developer ni durante la ejecución de WebSphere ESB.
Debe consultar los archivos de definición de catálogo de sucesos cuando cree aplicaciones para consumir sucesos de emisor de sucesos.
- Puede especificar otra supervisión desde WebSphere ESB. Por ejemplo, puede supervisar sucesos para que se emitan desde importaciones y exportaciones.
- Error
- Detiene una ruta en particular de un flujo, y genera una excepción.
- Abanico de entrada
- Ayuda a agregar (combinar) mensajes.
- Sólo puede utilizarse en combinación con la primitiva de mediación Diseminación.
- Juntas, las primitivas de mediación Diseminación y Abanico de entrada permiten agregar datos a un mensaje de salida.
- La primitiva de mediación Abanico de entrada recibe mensajes hasta que se alcanza un punto de decisión; entonces se emite un mensaje.
- Para contener los datos de agregación, utilice el contexto compartido.
- Diseminación
- Ayuda a dividir y agregar (combinar) mensajes.
- Juntas, las primitivas de mediación Diseminación y Abanico de entrada permiten agregar datos a un mensaje de salida.
- En la modalidad de iteración, la primitiva de mediación Diseminación le permite iterar a través de un único mensaje de entrada que contenga un elemento que se repita.
Para cada aparición del elemento que se repite, se envía un mensaje.
- Para contener los datos de agregación, utilice el contexto compartido.
- Método setter de cabecera HTTP
- Proporciona un mecanismo para gestionar cabeceras en mensajes HTTP.
- Puede crear, establecer, copiar o suprimir cabeceras de mensaje HTTP.
- Puede establecer varias acciones para cambiar varias cabeceras HTTP.
- Método setter de cabecera MQ
- Proporciona un mecanismo para gestionar cabeceras en mensajes MQ.
- Puede crear, establecer, copiar o suprimir cabeceras de mensaje MQ.
- Puede establecer varias acciones para cambiar varias cabeceras MQ.
- Método setter de cabecera SOAP
- Proporciona un mecanismo para gestionar cabeceras en mensajes SOAP.
- Puede crear, establecer, copiar o suprimir cabeceras de mensaje SOAP.
- Puede establecer varias acciones para cambiar varias cabeceras SOAP.
- Método setter del elemento de mensaje
- Proporciona un mecanismo sencillo para establecer el contenido de los mensajes.
- Puede cambiar, añadir o suprimir elementos de un mensaje.
- No cambia el tipo del mensaje.
- Los datos en las columnas de valor deben ser un tipo de esquema XML simple o un tipo
de esquema XML que amplíe el tipo de esquema XML simple.
- Filtro de mensajes
- Direcciona mensajes por distintas vías de acceso, en función del contenido
de los mensajes.
- Puede suspender la acción mediar desmarcando el recuadro de selección.
- Registrador de mensajes
- Registra mensajes en una base de datos relacional o mediante su propio anotador
personalizado. Los mensajes se almacenan en formato XML, por consiguiente, las aplicaciones compatibles con XML pueden procesar posteriormente los datos.
- Puede suspender la acción mediar desmarcando el recuadro de selección.
- El esquema (estructura de las tablas) de la base de datos relacional lo define IBM.
- Por omisión, la primitiva de mediación del Anotador de mensajes utiliza la base de datos común. El tiempo de ejecución correlaciona el origen de los datos de jdbc/mediation/messageLog a la base de datos común.
- Puede establecer clases de implementación de manejador para personalizar el
comportamiento del anotador personalizado. De manera opcional, puede proporcionar clases
de implementación de formateador, clases de implementación de filtro o ambas para
personalizar el comportamiento del anotador personalizado.
- Resolución de la política
- Permite la configuración dinámica de peticiones, buscando puntos finales de servicio, y los archivos de política asociados, en un depósito.
- Puede utilizar un archivo de política para alterar temporalmente de forma dinámica
las propiedades promovidas de otras primitivas de mediación.
- La información de punto final de servicio y la información de políticas se recupera
de WSRR
(WebSphere
Service Registry and Repository). El registro WSRR puede ser local o remoto.
- Puede realizar cambios en el registro desde la consola administrativa de WSRR.
- WebSphere ESB necesita saber qué registro utilizar y, por tanto, se deben crear las definiciones de acceso de WSRR mediante la consola administrativa de WebSphere ESB.
- Invocación de servicio
- Llama a un servicio desde dentro de un flujo de mediación, en lugar de esperar hasta el final del flujo de mediación y utilizar el mecanismo de devolución de llamada.
- Si el servicio devuelve un error, puede reintentar el mismo servicio o bien llamar a otro servicio.
- La primitiva de mediación Invocación de servicio es una potente primitiva de mediación que puede utilizarse por sí sola en llamadas de servicio simples, o bien puede combinarse con otras primitivas de mediación, en caso de tratarse de mediaciones complejas.
- Establecer tipo de mensaje
- Durante el desarrollo de la integración, le permite tratar los mensajes de tipo débil como si fueran de tipo fuerte. Un campo es de tipo débil si puede contener más de un tipo de datos. Un campo es de tipo fuerte si se conocen su tipo y su estructura interna.
- Durante al ejecución, la primitiva de mediación Establecer tipo de mensaje le permite comprobar que el contenido de un mensaje coincida con los tipos de datos esperados.
- Detener
- Detiene una vía de acceso concreta en el flujo, sin generar una excepción.
- Filtro de tipo
- Permite dirigir mensajes a otra vía de acceso de un flujo, según el tipo.
- Transformación XSL
- Transforma mensajes.
- Le permite llevar a cabo transformaciones XSL (Extensible Stylesheet Language).
- Los mensajes se transforman utilizando una transformación XSLT 1.0. La transformación opera en una serialización XML del mensaje.