2. Escogiendo patrones de transformación de mensajes en Mule 4


Como arquitecto Mulesoft, tu primer paso es identificar los distintos modelos de datos en el ámbito de integración. Es crucial colaborar con los stakeholders para determinar qué modelos y/o entidades se manejarán en este dominio.

 

Puntos claves

  1. Diferencias entre esquemas: Los sistemas diferentes a menudo poseen esquemas con campos que varían en nombres y tipos de datos. Imagina un sistema que denomina «address» a una dirección en formato de texto (String), mientras que otro utiliza la abreviatura «addr» y almacena este dato como un número entero (Integer).
  2. Necesidad de transformación de esquemas: La integración eficaz entre dos sistemas requiere que adaptemos los modelos de datos de uno al formato del otro, garantizando así la uniformidad en la comprensión de la información entre los sistemas implicados.
  3. Transformador: Observa el diagrama de flujo que ilustra dos esquemas de mensajes que necesitan ser transformados. El «Transformador» sirve de puente, convirtiendo los datos de «Esquema de Mensaje 1» al «Esquema de Mensaje 2», como modificar «address» a «addr».

Transformación de esquemas

Domain Driven Design

El Domain Driven Design es un enfoque que comprende una serie de prácticas para modelar dominios de negocio. Por ejemplo, en la imagen para los dominios de Ventas y Soporte, identificamos entidades comunes como «Customer» y «Product».

Domain Driven Design en acción

Como arquitecto, tu tarea es clarificar el modelo de dominio, definiendo propiedades y tipos de valores para cumplir con los requisitos del proyecto.

Tras acordar el modelo con los stakeholders, lo representaremos en RAML para concretar las especificaciones que dirigirán la transformación de datos, empleando ejemplos y metadatos que facilitarán la implementación en DataWeave.

RAML Fragments

Para estandarizar las entidades del modelo de dominio en la especificación, utilizamos RAML Fragments, como el que define un Customer, empleado en los modelos de Soporte y Ventas.

RAML Fragments

Implementando la transformación con Transform Message

  1. Conversión de datos: El componente Transform Message modifica datos de entrada a salida conforme a los metadatos provistos, pasando de un formato a otro.
  2. Metadatos y DataSense: DataSense, una funcionalidad de MuleSoft, facilita la autocompletación de metadatos, analizando la estructura y tipo de los datos de entrada, lo cual optimiza la configuración de las transformaciones.
  3. DataWeave: Usamos DataWeave para transformar datos, ofreciendo un lenguaje de programación robusto y adaptable que permite tanto la definición de mapeos mediante «drag and drop» como la escritura manual de código para transformaciones más complejas.

Mapeo de datos en DataWeave

Si necesitas establecer metadatos para los componentes de MuleSoft, aquí te mostramos cómo hacerlo:

Configuración de metadatos

Transformación de datos con JAVA o DataWeave

  1. Recomendaciones de Transformación de Datos: No se recomienda utilizar Java para la transformación de datos. En cambio, se sugiere usar DataWeave, que es el lenguaje de transformación de datos específico de MuleSoft diseñado para este propósito. DataWeave es más adecuado para manipular datos dentro de Mule debido a su simplicidad y eficiencia en comparación con la escritura de código Java personalizado.
  2. Reutilización de Modelos de Objetos Java: A continuación, se reconoce que hay circunstancias en las que una organización puede necesitar invocar código Java existente para transformaciones de datos, especialmente si ya tienen un modelo de objeto común y transformaciones asociadas escritas en Java. Esto puede ser por razones de consistencia, para aprovechar el trabajo previo, o por la necesidad de lógicas complejas que ya están implementadas en Java.
  3. Interacción de DataWeave con Java: DataWeave tiene la capacidad de invocar métodos estáticos de clases Java directamente dentro de sus scripts. Esto permite a los desarrolladores integrar la lógica Java existente sin tener que escribir toda la transformación en Java.
  4. Módulo Java de Mule: Además de DataWeave, MuleSoft ofrece un módulo Java que permite a los desarrolladores crear instancias de clases Java y llamar a métodos de instancia dentro de un flujo de Mule. Esto proporciona una mayor integración con las capacidades de Java y permite una reutilización más extensa de las bibliotecas Java existentes.

En resumen, mientras que DataWeave es la herramienta preferida para transformaciones de datos en MuleSoft, Java puede ser utilizado cuando es necesario integrar lógicas existentes o específicas que ya están desarrolladas en Java.

 

Conclusión

Ya ves, adentrarte en el rol de arquitecto Mulesoft es todo un viaje: comienza con el entendimiento profundo de los modelos de datos y culmina con la implementación precisa de transformaciones. A través del análisis de esquemas y la identificación de patrones dentro de Domain Driven Design, has visto la importancia de unificar criterios y cómo RAML Fragments te facilitan la vida estandarizando entidades comunes. Además, no olvides el poder de Transform Message para moverte entre formatos de datos, siempre con DataSense y DataWeave como tus fieles aliados en la tarea de transformar y mapear la información.

Y aunque DataWeave es nuestro go-to por excelencia para estas operaciones, recuerda que Java no está fuera de la jugada, especialmente cuando quieres echar mano de lógicas ya construidas o cuando la situación demanda su robustez. Al final del día, contar con estas herramientas y saberes te hace no solo un arquitecto, sino un verdadero orquestador de datos en el vasto mundo de la integración con MuleSoft. ¡Esa es la clave del éxito en esta área!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *