lunes, 30 de abril de 2018

Escenario de integración asincrónico usando ActiveMQ y WSO2 (I)


Una solución que tiene incontables ventajas sobre todo para conexiones lentas donde la transportación del mensaje es esencial que sea optimizada, es el uso de la comunicación asincrónica.

Consideremos la existencia de un servicio implementado con spring-boot pero puede ser en cualquier tecnología, este servicio tiene que enviar datos a una BD centralizada, la conexión con esta BD centralizada es muy lenta e inestable por lo que el consumo de un servicio web punto a punto no es la mejor solución. Una de las razones es la espera que trae la consigo la comunicación sincrónica y es aquí donde viene al rescate la comunicación asincrónica permitiéndonos enviar todos los mensajes hacia el otro punto de la conexión sin la espera de la lectura y persistencia de cada uno de los mensajes de forma secuencial.

Para implementar esta comunicación asincrónica existen varias tecnologías en el mercado pero a mí personalmente me gusta ActiveMQ que no es más que un  un bróker de mensajería de código abierto bajo licencia Apache 2.0 que implementa plenamente la especificación de Java Message Service 1.1 (JMS). 

Activemq es uno de los más populares servidores de intercambios de mensaje y es relativamente fácil de entender y de configurar. Para la comunicación con el MessageBroker ActiveMQ y la persistencia de datos en la BD centralizada voy a usar el WSO2EI.

WSO2 EI es una solución de integración que permite la comunicación entre varias aplicaciones dispares. En lugar de hacer que sus aplicaciones se comuniquen directamente entre sí en todos sus diversos formatos, cada aplicación simplemente se comunica con el EI, que maneja la transformación y el enrutamiento de los mensajes a sus destinos apropiados. EI incluye una serie de productos pertenecientes a esta misma plataforma como es el caso de un WSO2 ESB como bus de servicios empresariales y el WSO2 DSS como servidor para hostear los servicios de acceso a datos. El esquema de la solución puede ser así.



En próximos post vamos a realizar la implementación de esta solución.

Escenario de integración asincrónico usando ActiveMQ y WSO2 (II)

En el post anterior habiamos planteado el esquema para el envio de mensajes asincronicamente entre dos aplicaciones usando ActiveMQ como m...