Flujos de mensajes invocables

Un flujo de mensajes puede llamar directamente a otro flujo. Puede implementar ambos flujos en IBM® App Connect Enterprise o IBMApp Connect Enterprise as a Service, o bien puede implementar un flujo en App Connect Enterprise y otro en App Connect Enterprise as a Service.

Un flujo de mensajes puede realizar muchas acciones distintas. Si algunas de esas acciones son dificultosas, puede desglosarlas del flujo principal y realizarlas en otro lugar. Los flujos invocables también facilitan la reutilización, ya que pueden ser llamados por varios flujos de mensajes. Puede dividir los flujos entre aplicaciones diferentes del mismo servidor de integración, o entre servidores de integración diferentes que también pueden estar en distintos nodos de integración. Los flujos invocables deben encontrarse en aplicaciones. No puede desplegar flujos invocables en bibliotecas o proyectos de integración.

Algunas partes de un flujo de mensajes pueden pertenecer lógicamente a una ubicación específica. Por ejemplo, si el flujo de mensajes consulta una base de datos local, el rendimiento es mejor si esa parte del flujo sigue siendo local. Sin embargo, si parte del flujo consulta un sitio web varias veces, el rendimiento podría mejorar si esa parte del flujo se ejecuta en la nube. Puede llamar al flujo basado en la nube desde el flujo local, y el flujo en la nube no utilizará ninguno de los recursos locales.

Si sus flujos invocables están implementados en App Connect Enterprise as a Service, pueden comunicarse entre sí tan pronto como los implemente. No es necesario configurar la comunicación entre ellos. Tampoco es necesario configurar la comunicación si ambos flujos se implementan en el mismo servidor de integración en IBM App Connect Enterprise.

Si está dividiendo el procesamiento entre diferentes servidores de integración, o entre App Connect Enterprise y App Connect Enterprise as a Service, sus flujos se comunican mediante el uso de un Cambiar de servidor y agentes de conectividad. El servidor de conmutación es un tipo especial de servidor de integración que direcciona datos. No puede desplegar nada en el servidor de conmutación. Los agentes de conectividad contienen los certificados que los flujos necesitan para comunicarse de forma segura con el servidor de conmutación. Los agentes de conectividad deben estar en ejecución en los servidores de integración donde ha desplegado los flujos de mensajes locales.

Puede dividir el procesamiento de forma sincrónica entre flujos de mensajes utilizando el CallableFlowInvoke nodo en el flujo de llamada, y CallableInput y CallableReply nodos en el flujo invocable. Como alternativa, puede dividir el procesamiento de forma asincrónica entre flujos de mensajes, utilizando el método CallableFlowAsyncInvoke nodo en el flujo de llamadas, CallableInput y CallableReply nodos en el flujo invocable, y el CallableFlowAsyncResponse nodo en el flujo de respuesta. También puede elegir compartir los datos entre los flujos que contienen estos nodos asíncronos (el flujo de llamada y el flujo de salida) almacenando y recuperando datos en la carpeta UserContext del entorno. Para obtener más información sobre cómo compartir datos entre flujos, consulte Compartir datos entre un flujo de llamada y un flujo de respuesta.

Los dominios de mensajes que admite un flujo invocable se determinan mediante las propiedades que se establecen en las etiquetas CallableInput y CallableReply. La tabla Dominios soportados de cada nodo muestra los dominios de mensajes soportados, junto con información sobre los modelos de mensajes, tipos de mensajes y formatos físicos de mensajes soportados. Los nodos también contienen una opción para cotejar los mensajes con la información de dominio admitida. Para obtener más información, consulte Comprobación de dominios en flujos de mensajes invocables.

Nota: Este tema trata sobre el uso de la técnica de flujo invocable entre flujos de mensajes de App Connect Enterprise . También puede utilizar la técnica de flujos invocables con flujos controlados por eventos y flujos de API en App Connect Enterprise as a Service. Estos flujos en la nube pueden ser llamados por un App Connect Enterprise CallableFlowInvoke nodo, y dichos flujos en la nube pueden usar el nodo de acción Invocar para llamar a otros flujos controlados por eventos en la nube (que tienen el nodo de evento de entrada) o App Connect Enterprise flujos de mensajes (que tienen la CallableInput nodo) ya sea en la nube o en las instalaciones. Por ejemplo, consulte el tutorial Compartir datos y procesamiento de actividades locales con aplicaciones en la nube SaaS, utilizando un flujo invocable en la nube.

Puede dividir los flujos en varios flujos invocables. Sin embargo, para mayor simplicidad, los escenarios siguientes presuponen que está utilizando sólo dos flujos de mensajes de App Connect Enterprise : un flujo de llamada y un flujo invocable.

Escenarios

División de flujos síncrona entre aplicaciones del mismo servidor de integración

Un flujo de mensajes en un servidor de integración de App Connect Enterprise llama a un flujo de mensajes en el mismo servidor de integración, pero en una aplicación diferente. En este escenario, no es necesario configurar un agente de conexión. Este caso de ejemplo está soportado en todos los sistemas operativos.
El diagrama muestra dos aplicaciones en el mismo servidor de integración. El nodo CallableFlowInvoke de un flujo de la aplicación 1 invoca el nodo CallableInput de un flujo en la aplicación 2.
Para obtener más información, consulte Desarrollo de flujos de mensajes de llamada sincrónica.

División de flujos síncrona entre aplicaciones en distintos servidores de integración

Un flujo de mensajes en un servidor de integración de App Connect Enterprise llama a un flujo de mensajes en un servidor de integración diferente.
El diagrama muestra dos aplicaciones en dos servidores de integración diferentes. Cada servidor de integración está en un nodo de integración independiente. El nodo CallableFlowInvoke de un flujo de la aplicación 1 utiliza un servidor de conmutación para llamar al nodo CallableInput de un flujo en la aplicación 2.

Si los flujos se dividen entre distintos servidores de integración en App Connect Enterprise, debe ejecutar un mandato que cree algunos archivos de configuración. Utilizará uno de los archivos de configuración para crear el servidor de conmutación y el otro archivo para configurar agentes de conectividad para cada servidor de integración. Los servidores de integración pueden estar en el mismo nodo de integración o en nodos de integración diferentes. Este escenario solo está soportado en Windows y Linux® .

Para obtener más información, consulte Preparación del entorno para dividir el procesamiento entre distintos servidores de integración.

Dividir flujos sincrónicamente entre App Connect Enterprise y App Connect Enterprise as a Service

Un flujo de mensajes en App Connect Enterprise llama a un flujo de mensajes en App Connect Enterprise as a Service, o un flujo de mensajes en App Connect Enterprise as a Service llama a un flujo de mensajes en App Connect Enterprise.
El diagrama muestra la Aplicación 1 en App Connect Enterprise, y Aplicación 2 en App Connect Enterprise as a Service. El CallableFlowInvoke nodo en un flujo en la Aplicación 1 en App Connect Enterprise utiliza un servidor Switch en la nube para llamar al CallableInput nodo de un flujo en la Aplicación 2 en App Connect Enterprise as a Service.
El diagrama muestra la Aplicación 1 en App Connect Enterprise as a Service, y Aplicación 2 en App Connect Enterprise. El CallableFlowInvoke El nodo en un flujo en la Aplicación 1 en la nube utiliza un servidor Switch en la nube para llamar al CallableInput nodo de un flujo en la Aplicación 2 en App Connect Enterprise as a Service.

Si sus flujos se dividen entre App Connect Enterprise y App Connect Enterprise as a Service, el servidor Switch es administrado por App Connect Enterprise as a Service. Debe descargar un archivo de la nube que configura un agente de conectividad local. Este escenario solo está soportado en Windows y Linux .

Para obtener más información, consulte «Preparación del entorno para dividir el procesamiento entre IBM App Connect Enterprise y IBM » en App Connect Enterprise as a Service.

Dividir flujos de forma asincrónica en App Connect Enterprise, o entre App Connect Enterprise y App Connect Enterprise as a Service

Un flujo de mensajes contiene un CallableFlowAsyncInvoke nodo, que llama a un segundo ( invocable) flujo de mensajes que contiene un CallableInput nodo y un CallableReply nodo. Un tercio ( respuesta) el flujo contiene un CallableFlowAsyncResponse nodo.

Cuando un mensaje se pasa al flujo de mensajes de llamada, el CallableFlowAsyncInvoke El nodo envía el contenido del cuerpo del mensaje y las carpetas del entorno al CallableInput nodo del flujo invocable y luego se completa inmediatamente. Cuando el flujo invocable completa el procesamiento, el CallableReply El nodo envía el cuerpo del mensaje y los datos de la carpeta del entorno al CallableFlowAsyncResponse nodo en el flujo de respuesta.

Si los flujos están divididos entre distintos servidores de integración, hay que crear un servidor de conmutación (que direccione datos) y agentes de conectividad para permitir que los flujos se comuniquen de forma segura. Para obtener más información, consulte Preparación del entorno para flujos invocables.

Configuración del flujo

Cuando haya decidido cómo dividir el proceso del flujo de mensajes, cree los flujos de mensajes. El flujo de llamadas incluye un CallableFlowInvoke o CallableFlowAsyncInvoke nodo, que llama a un CallableInput nodo en un segundo ( invocable) fluir. Cuando el mensaje es procesado por el flujo invocable, un CallableReply El nodo devuelve información al CallableFlowInvoke nodo en el flujo de llamada (cuando los flujos se dividen sincrónicamente) o el CallableFlowAsyncResponse nodo (cuando los flujos se dividen de forma asincrónica). El flujo de llamada utiliza una combinación del nombre de la aplicación y el nombre del punto final del CallableInput nodo para identificar qué flujo invocable llamar.
El diagrama muestra que un nodo CallableFlowInvoke del flujo de mensajes principal llama a un flujo remoto. El flujo remoto completa el procesamiento y, a continuación, responde al flujo principal.

En este ejemplo, el CallableFlowInvoke El nodo analiza el mensaje entrante en su totalidad para que esté en un formato adecuado para enviarlo al CallableInput nodo. Por lo tanto, debe validar el mensaje antes de que llegue al CallableFlowInvoke nodo. Si el mensaje no pasa la validación en este momento, puede retrotraerse.

Varios flujos de mensajes pueden llamar al mismo flujo invocable. Por tanto, el flujo invocable puede realizar una serie de acciones comunes a varios flujos.
La ilustración muestra 3 flujos de llamada diferentes que llaman al mismo flujo invocable. Un flujo de llamada está en el mismo servidor de integración que el flujo invocable, pero los otros 2 flujos de llamada están en servidores de integración diferentes.

Puedes agregar varios CallableFlowInvoke o CallableFlowAsyncInvoke nodos a un flujo de mensajes. También puedes incluir CallableFlowInvoke o CallableFlowAsyncInvoke nodos en sus flujos invocables. Los pares de nombre de aplicación y punto final deben ser exclusivos en un único servidor de integración. Puede tener varios flujos invocables que tengan los mismos nombres de aplicación y punto final, pero deben estar en servidores de integración diferentes. En este caso, el servidor de conmutación actúa como un equilibrador de carga.

Despliegue

Después de desarrollar los flujos de mensajes, debe empaquetar las aplicaciones que los contienen en archivos BAR y desplegarlos en las ubicaciones adecuadas. Si el flujo accede a recursos locales, despliegue el archivo BAR de forma local. Si el flujo se ejecutará en la nube, cargue su archivo BAR en App Connect Enterprise as a Service.

Cuando el flujo de llamada recibe un mensaje de entrada, el CallableFlowInvoke o CallableFlowAsyncInvoke El nodo utiliza el nombre de la aplicación y elEndpoint Name sobre el CallableInput nodo para identificar e iniciar el flujo invocable.

La guía de aprendizaje Flujos invocables en la Galería de guías de aprendizaje muestra cómo utilizar los nodos de flujos invocables para dividir el proceso entre los flujos. En el kit de herramientas de « IBM App Connect Enterprise », haz clic en Ayuda > Galería de tutoriales y, a continuación, busca callableflows.

Para obtener información detallada sobre cómo configurar flujos de mensajes invocables, consulte Dividir el procesamiento de los flujos de mensajes.