Punto de Control 1
En el punto de control vamos a repasar los conceptos teóricos para poder pasar al siguiente bloque y no perderos con definiciones que no acabáis de entender. Ya sé que la teoría es un rollo, pero voy a intentar que no se os atragante con algún que otro dibujito. ¿Os parece?
En este bloque hemos aprendido que crear eventos de Mule no solamente dependerá de hacer una llamada a la aplicación mediante un Endpoint, sino que se pueden utilizar Triggers.
Los Triggers nos van a permitir crear un evento de Mule si por ejemplo existen algún cambio en una base de datos o un directorio de archivos. También se pueden programar las ejecuciones de una Mule Application para que se genere un evento de Mule con el componente Scheduler.
Agarraos fuerte porque esto os va a abrir el horizonte de posibilidades a la hora de empezar a desarrollar integraciones en el mundo laboral, ya que todos estos métodos ayudan a SINCRONIZAR sistemas y es una de las razones principales por las que las empresas deciden desarrollar las APIs, en este caso, con Mulesoft.
Watermarks
Las marcas de agua o Watermarks, son un método para sincronizar datos entre diferentes sistemas.
En este bloque se ha explicado la metodología para poder utilizar Watermarking, y es mediante Object Stores. Estos objetos nos permiten almacenar identificadores que nos sirven de referencia para futuras ejecuciones, evitando así la duplicidad de procesamiento de registros. Podemos decir que es un punto de libro y nos evita leer una misma página 2 veces.
Hay dos formas de utilizar los Watermarks en Mulesoft:
- Automático: Sincronizar datos con Watermarks
- Manual: Sincronizar con Watermark y Object Store
El diagrama explica el funcionamiento, sea manual o automático. El primero nos permitirá tener un mayor control, pero la configuración es más compleja que el segundo método.
On New or Updated File
La familia de conectores File, FTP, FTPS y SFTP nos permiten trabajar con archivos y directorios.
El componente On New or Updated File es un Listener y Event Source, que permite crear un evento de Mule (Trigger) cuando un archivo se añade, se crea o se actualiza.
El componente utiliza la técnica de Watermarking automática para determinar si un archivo es nuevo basándose en la creación o modificación del TimeStamp.
On Table Row
Pertenece al conector Database y es un Listener y Event Source que permite crear un evento de Mule (Trigger) cuando se añade un nuevo registro en una tabla de base de datos.
Como el componente anterior, también utiliza la técnica de Watermarking automática. En la siguiente imagen se puede observar su equivalencia si se utilizase el método manual.
Gracias al On Table Row se pueden sincronizar bases de datos de forma sencilla y rápida.
Scheduler
A menudo es necesario programar la ejecución de ciertos eventos para que comprueben el estado de un sistema. El componente Scheduler es un Event Source, por lo tanto, un Trigger que iniciará un evento de Mule.
Los componentes mencionados anteriormente contienen anidado un Scheduler, para poder comprobar si existe alguna modificación y crear un evento de Mule si fuera necesario.
Tanto en el Watermarking manual, como en el automático, es necesario un Scheduler. En siguiente imagen podemos ver, en el Watermarking automático, que existe esta casilla para configurar la frecuencia de comprobación.
Por otra parte, el componente Scheduler, sin venir anidada su funcionalidad en otro componente, permite configurar una frecuencia fija y un Cron.
Java Message Service (JMS)
El conector JMS nos permite publicar y consumir mensajes. Es necesario conectar con un servicio de mensajería que utilice la implementación de tipo JMS, en las clases del módulo se ha utilizado ActiveMQ.
La transformación del contenido de un evento de Mule en mensajes para que un Broker lo administre, sea mediante Topics o Queues, es una técnica que se utiliza muchísimo actualmente.
Los Topics nos van a permitir publicar el contenido del evento y que varias fuentes (suscriptores) puedan consumir ese mensaje. El mensaje solo estará disponible cierto tiempo.
Las Queues almacenarán ese mensaje y esperarán a que se consuma por un solo consumidor. El mensaje estará disponible hasta que un consumidor lo procese y lo elimine.
En la clase Manipular mensajes con JMS Active MQ se explica en más detalle la diferencia entre Topics y Queues.
Otro detallito a añadir es la diferencia entre 2 operaciones del conector JMS:
- Publish: Este componente permite publicar un mensaje en una Queue o Topic. Como se explicó en la clase anterior, después un Listener recogerá ese mensaje y lo procesará. Por lo tanto, es de tipo asíncrono, ya que el evento finaliza tras almacenar el mensaje en la Queue o Topic.
- Publish Consume: Este componente publica un mensaje y espera a que el consumidor le devuelva una respuesta, en consecuencia, es síncrono, puesto que el evento no finalizará hasta que el mensaje se haya procesado en el lado del consumidor.
Espero que os haya gustado este bloque. Para finalizar, os dejo un pequeño test del punto de control para validar vuestros conocimientos y poder seguir dándole caña afianzando conocimientos.
Si quieres saber más o necesitas ayuda personalizada, puedes suscribirte a mis servicios en el siguiente enlace
➡️ SUSCRIBIRSE A INGENIERO BINARIO ⬅️
¡Ponte a prueba con el test del punto de control!
Clases del curso
- 1. Trigger de un evento Mule con archivos (28:12)
- 2. Sincronizar datos con Watermarks (37:01)
- 3. Sincronizar con Watermark y Object Store (58:54)
- 4. Manipular mensajes con JMS Active MQ (27:21)
- Punto de control 1
- 5. Procesar ítems con For Each (28:39)
- 6. Procesar datos con Batch Job (22:24)
- 7. Filtrar y agregar con Batch Step y Aggregator (13:38)
- Punto de control 2