Capítulo 6: Transformación de Mensajes¶
Introducción¶
En un ecosistema enterprise, ningún sistema habla exactamente el mismo idioma. Los formatos de datos difieren entre productores y consumidores: esquemas diferentes, convenciones de nombres distintas, granularidades incompatibles, representaciones de fechas, monedas, identificadores y estructuras jerárquicas que no coinciden.
Los patrones de transformación de mensajes resuelven este problema fundamental: ¿cómo se adapta un mensaje producido por un sistema para que sea comprensible y procesable por otro sistema, sin modificar ninguno de los dos?
La transformación es la capa de traducción de la arquitectura de integración. Sin ella, cada par de sistemas necesitaría hablar el mismo formato — lo cual escala cuadráticamente y es insostenible. Con transformación, cada sistema habla su propio formato y la capa de integración se encarga de la traducción.
Los Seis Patrones de Transformación¶
| Patrón | Pregunta que responde | Operación |
|---|---|---|
| Envelope Wrapper | ¿Cómo se protege el contenido original durante el transporte? | Envolver / Desenvolver |
| Content Enricher | ¿Cómo se completa un mensaje con datos que faltan? | Añadir datos |
| Content Filter | ¿Cómo se eliminan datos innecesarios del mensaje? | Eliminar datos |
| Claim Check | ¿Cómo se maneja un mensaje con payload demasiado grande? | Externalizar payload |
| Normalizer | ¿Cómo se procesan mensajes que llegan en formatos diferentes? | Estandarizar formato |
| Canonical Data Model | ¿Cómo se minimiza el número de transformaciones necesarias? | Modelo intermedio |
El Espectro de Transformación¶
Las transformaciones operan en diferentes niveles:
- Structural: cambiar la estructura del mensaje (renombrar campos, aplanar jerarquías, reorganizar elementos).
- Data: convertir valores (formatos de fecha, unidades de medida, códigos de país, currencies).
- Content: añadir o eliminar información (enrichment, filtering, masking).
- Format: cambiar el formato de serialización (XML → JSON, CSV → Avro, HL7 → FHIR).
- Semantic: cambiar el significado conceptual (un "pedido" en el sistema A es un "requerimiento" en el sistema B con campos diferentes que representan los mismos conceptos).
Principio de No-Invasión¶
Un principio fundamental de los patrones de transformación es la no-invasión: la transformación ocurre en la capa de integración, no en los sistemas origen ni destino. Ningún sistema debe modificarse para adaptarse al formato de otro. La capa de integración absorbe las diferencias.
Este principio es lo que permite que los sistemas evolucionen independientemente: cuando el sistema A cambia su formato, solo cambia la transformación en la capa de integración, no el sistema B.
Mapa del Capítulo¶
| Patrón | Función | Vigencia |
|---|---|---|
| Envelope Wrapper | Envolver/desenvolver para transporte | Alta |
| Content Enricher | Completar con datos externos | Alta |
| Content Filter | Eliminar datos innecesarios | Alta |
| Claim Check | Externalizar payloads grandes | Alta |
| Normalizer | Estandarizar formatos heterogéneos | Alta |
| Canonical Data Model | Modelo intermedio para minimizar transformaciones | Media |
A continuación, cada patrón de transformación se analiza en profundidad.