7. Diferencia entre Flow, SubFlow y Private Flow
En la clase de hoy vamos a aprender la diferencia entre Flow, SubFlow y Private Flow. Será necesario aprender las diferencias, ya que nos ayudará en un futuro a estructurar ordenadamente nuestra Mule Application.
Estructurar la Mule Application
Consumiendo los servicios web de diferentes entradas de datos ya observamos que era necesario utilizar un SubFlow, puesto que este mismo nos servía para los 3 Flows diferentes que creamos.
Este SubFlow nos permitía definir una variable según los atributos del evento de Mule. Por tanto, el valor de la variable cambiaba según el Flow que estuviese llamando a este SubFlow.
En el caso de la imagen que observáis se almacenaba la destinación de un vuelo en la variable «destination».
Entonces, las ventajas de estructurar la Mule Application con SubFlows y Private Flows serán las siguientes:
- Gráficamente será más intuitivo.
- El código XML generado por el Canva (modo gráfico) tendrá una lectura más sencilla.
- Reutilización del código (lo que mencionaba anteriormente).
- Facilidad a la hora de realizar test de la aplicación. Si se separa el código, después es más fácil ubicar el problema.
- Ofrece mejor rendimiento que la ejecución del evento de un Flow.
Diferencia Flow y SubFlow
Los SubFlows son como los Flows, ya que pueden contener componentes y procesar un evento de Mule.
Una de las principales diferencias es que no puede contener componentes de tipo Event Source, por ejemplo un Listener. Esto hará que siempre dependa de un Flow para poder ser referenciado, ya que el inicio de un evento nunca será mediante un SubFlow.
Otra diferencia es que los SubFlows no pueden manipular errores (Error handling), un tema que tocaremos más adelante y que es importante a la hora de crear una Mule Application.
En la siguiente imagen del Canva podéis observar que en un Flow existe la sección Source (Event Source), Process (Event Processor) y Error Handling (manipulación de errores). A diferencia del Flow, en el SubFlow no encontraremos ninguna estructura predefinida, ya que solamente estan permitidos componentes de tipo Process (Event Processor).
Diferencia Flow y Private Flow
Los Private Flows nos permiten tener manipulación de errores sin la necesidad de incluir un Event Source, cosa que en los SubFlows no es posible. Por lo tanto, la principal diferencia entre un Private Flow y un Flow es que el primero no tiene un Event Source.
A continuación os muestro una imagen de como quedaría en el Canvas.
Referenciar los Private Flows y SubFlows
Para poder llamar a un Private Flow y un SubFlow se realiza de la misma forma, utilizando el componente Flow Reference.
El componente Flow Reference nos permitirá referenciar otro evento, sea un Flow, SubFlow o Private Flow.
Visualiza la clase si quieres aprender el funcionamiento de los Flows, SubFlows y Private Flows.
Sin más, diferencia entre Flow, SubFlow y Private Flow ¡dentro vídeo!
Clases del curso
- 1. Consumir un servicio web de Anypoint Exchange (27:38)
- 2. Consumir un servicio web REST (24:20)
- 3. Consumir un servicio web SOAP (23:51)
- 4. Crear un modelo de datos canónico en JAVA | Parte 1 (14:19)
- 5. Crear un modelo de datos canónico en JAVA | Parte 2 (11:39)
- 6. Crear un modelo de datos canónico en JAVA | Parte 3 (12:20)
- Punto de Control 1
- 7. Diferencia entre Flow, SubFlow y Private Flow (17:27)
- 8. Pasar eventos con colas síncronas y asíncronas (19:30)
- 9. Estructurar elementos globales (9:19)
- 10. Definir propiedades globales (11:28)
- 11. Estructurar un proyecto Mule | Parte 1 (16:44)
- 12. Estructurar un proyecto Mule | Parte 2 (15:56)
- Punto de Control 2