1.d) Message Translator
En muchos casos, las soluciones de integración rutean mensajes entre aplicaciones muy diferentes. Algunas son aplicaciones internas, otras externas, otras legadas. Cada una de estas aplicaciones tiene su propio modelo de datos, por ejemplo, cada una de ellas puede tener una forma diferente de representar a un Cliente, sus atributos o las relaciones con otras entidades. Este modelo de datos, normalmente guía a la representación física en la base de datos y, lógicamente, a las interfaces de conexión que ofrecen.
Inclusive cuando las interfaces de conectividad que un sistema ofrece no responde a la representación interna de los datos, esta representación normalmente está de acuerdo con estándares de la industria, lo cual puede no ser útil para la interacción necesaria, o, de manera contraria, es necesario llevar una representación interna al estándar para crear la solución de integración.
¿Cómo pueden sistemas utilizando diferentes formatos de datos, comunicarse utilizando mensajería?
Usando un filtro especial, un Message Translator que traduce un formato de datos a otro.
Implementación en Biztalk Server
Las transformaciones de mensajes en Biztalk Server se realizan a través de “mapas” que expresan estas transformaciones en XSLT. Para ésto, toma en cuenta que todo mensaje que circula por la plataforma tiene una definición en un esquema XSD.
En BizTalk Server tenemos dos tiempos de análisis para estas transformaciones:
a) En tiempo de diseño, la herramienta BizTalk Mapper, que se integra con Visual Studio, nos permite de manera visual crear todo tipo de transformaciones entre un esquema de mensaje y otro.
b) En tiempo de ejecución, los mapas definidos y “compilados” en transformaciones XSLT, pueden ubicarse en diferentes puntos de la solución de integración para que ejecuten la transformación
Los lugares donde pueden ejecutarse estas transformaciones son:
1) En un puerto de entrada: en este caso, la transformación se podrá realizar una vez que el mensaje pasó el pipeline de entrada, de esta manera se asegura que el mismo viene en un formato Xml que BizTalk pueda reconocer.
2) En un puerto de salida: en este caso la transformación se podrá realizar previo al pipeline de salida, para asegurar que el mensaje no se haya cambiado a un formato que no sea reconocible.
3) En una orquestación mediante el elemento de Transform que permite cambiar el formato de un mensaje aplicando una transformación conocida.
4) Manualmente, en un componente utilizando las primitivas de BizTalk. Aunque esta opción no es muy utilizada, existe la posibilidad y en ciertos escenarios específicos puede ofrecer algún tipo de ventajas.
Algunas particularidades adicionales:
- Las transformaciones pueden enriquecerse con un gran conjunto de “functoides” disponibles para realizar operaciones típicas de manera simple.
- También pueden utilizarse componentes nativos .NET dentro de las mismas.
- Cuando se utilizan en los pipelines de entrada y salida, pueden indicarse varios mapas para un canal, y BizTalk automáticamente aplica el mapa adecuado al tipo de mensaje que atraviesa el mismo.
- Cuando se utiliza en orquestaciones, puede utilizarse más de un mensaje de entrada para formar un mensaje de salida.

