JMS Payload

JMS Payload

de Guzman Llambias -
Número de respuestas: 0

Estimados, 

Comparto dos estrategias para el payload de los mensajes JMS:

  • Objetos

  • Texto plano

Objetos

Esta estrategia consiste en definir POJOs comunes entre consumidor y receptor y utilizarlo como payload del mensaje JMS. Esta estrategia tiene dos grandes cualidades: 

  1. es sencilla (muy importante)

  2. es efectiva y performante. 

Sin embargo, sufre de un gran problema que debe ser tenido en cuenta: produce un alto acoplamiento entre la aplicación productora y la aplicación consumidora de mensajes, dado que ambas aplicaciones deben tener en su classloader el objeto a traficar. La actualización de algún POJO debe aplicarse al mismo tiempo en ambos sistemas y no es posible su uso si cliente y consumidor están implementados en diferente plataforma.

Text plano

Una solución alternativa que ayuda a suplir estas carencias y que pueden utilizar en su vida profesional, es utilizar un mensaje de tipo TextMessage (payload de tipo String) usando algún formato estándar (p.ej: JSON, XML, etc). Esta estrategia tiene algunas de las cualidades que la presentada anteriormente y se le suman dos más: 

  1. sigue siendo sencilla (generar un json/xml desde un objeto no es complejo)

  2. menor acoplamiento entre productor y consumidor

  3. mejora en la mantenibilidad. 

La principal desventaja de este enfoque comparada con la primer estrategia es que no es tan performante y tan sencilla, pero en lo que refiere a integración de aplicaciones, es importante que estas sean lo más desacopladas posibles para mejorar la mantenibilidad de la solución.

Qué opción a utilizar, eso sigue dependiendo de cada caso y requerimientos de negocio, pero les dejo este post con dos opciones con sus ventajas y desventajas. 

Les dejo un link alternativo donde se presenta una discusión al respecto

http://jmesnil.net/weblog/2012/07/27/on-jms-objectmessage-and-its-pitfalls/

saludos

Guzmán