Integración de Sistemas: Soluciones - Activemq
Integración de Sistemas: Soluciones - Activemq
Integración de Sistemas: Soluciones - Activemq
UNIDAD Nº III
SOLUCIONES – ACTIVEMQ
[Escribir texto]
SEMANA
Introducción
A partir de esta unidad comenzaremos a utilizar los patrones de integración como
herramientas para construir una solución de integración empresarial. Para esto utilizaremos
lo aprendido en las semanas anteriores y agregaremos el framework de integración Apache
Camel.
También es necesario indicar que, desde este punto, solo se ejecutaran ejercicios, ya que es
la mejor manera de entender el funcionamiento del envío, transformación y recepción de
mensajes.
2
www.iplacex
Ideas Fuerza
Apache Camel: Es nuestro framework de referencia, el más utilizado y en el que se basan
múltiples herramientas.
3
www.iplacex
SEMANA
Desarrollo
En el siguiente ejercicio, leeremos un mensaje desde un archivo plano y
aplicaremos diferentes patrones de integración. Comenzaremos con un código básico, que
leerá el archivo y lo enrutará a una cola, separando el mensaje tras cada salto de línea.
En primer lugar, crearemos un nuevo proyecto Maven, nuestro pom.xml tendrá las
siguientes dependencias:
4
www.iplacex
El siguiente paso, es crear una clase para construir una ruta con Camel. Una ruta es
una instrucción que indica como mover los mensajes desde un punto a otro. Crearemos una
clase llamada SimpleRouteBuilder, y configuraremos la lectura de archivo y la cola a la que
enviará los mensajes por separado:
5
www.iplacex
El siguiente archivo que crearemos, será nuestro Main el cual se encargará de crear
un Contexto Camel que contenga la definición de la Ruta que inicializaremos.
6
www.iplacex
A continuación, realizaremos una prueba de funcionamiento. Crearemos un archivo
llamado test y lo guardaremos en la carpeta C:/Entrada. Este archivo tendrá la siguiente
información:
7
www.iplacex
Si pulsamos en uno de ellos, nos entregará detalles relacionados al mensaje y las
propiedades de Camel, como el mensaje en sí.
8
www.iplacex
A continuación, aplicaremos un nuevo patrón, modificando la clase
SimpleRouteBuilder. Esta vez enrutaremos el mensaje basado en su contenido (Content
Based Router). Nuestra clase quedará de la siguiente forma:
9
www.iplacex
Utilizaremos el mismo archivo test que creamos anteriormente y ejecutaremos el programa.
Tras hacerlo, verificaremos el correcto funcionamiento en la interfaz gráfica de ActiveMQ
Podemos ver que se crearon distintas colas, dependiendo del contenido del mensaje,
por lo que aplicamos correctamente los patrones Splitter y Content Based Router.
1
www.iplacex
Bajo la misma lógica utilizada en el patrón anterior, podemos utilizarlo para filtrar los
mensajes que se quieren recibir. Para aplicar el patrón Filter, utilizaremos la misma clase, y
realizaremos una modificación a lo anterior:
Podemos observar que solo se entregó un mensaje a la cola, mientras el resto fue
descartado.
1
www.iplacex
¿Cómo podemos aplicar dinamismo a la entrega de mensajes y a la creación
de colas?
1
www.iplacex
En nuestro último ejercicio, aplicaremos el patrón de Canal de Letra Muerta,
aplicado cuando no es posible entregar un mensaje y evitar que este se pierda (como
sucedió cuando aplicamos Filter). Para esto, aplicaremos el siguiente código:
1
www.iplacex
Ya que no aplicamos ninguna regla, todos los mensajes irán al canal de letra muerta
¿Es necesario entender Java a profundidad para poder aplicar estos patrones
de integración?
1
www.iplacex
Conclusión
Esta semana hemos realizado un ejercicio de aplicación de un framework como lo
es Apache Camel al proceso de integración de sistemas. En semanas anteriores, nos hemos
enfocado en entender cuál y porque aplicamos un patrón y su codificación directa en
entorno Java. Ahora tenemos un punto de comparación más realista respecto a que
tecnología elegir a la hora de crear un sistema de integración y cómo manejar los mensajes
y sus colas.
Algunos de los puntos altos de lo revisado en esta semana, tienen que ver con la forma en
que se comportan los mensajes mientras son procesados. Es posible llevarlos a un punto de
entendimiento común, para que luego se comporten de determinada manera, de modo que
sepamos con antelación, cual es el comportamiento esperado. Es por eso que, si bien es una
herramienta que nos facilita el entendimiento del manejo de las colas, el entorno gráfico de
ActiveMQ debiese ser una herramienta de comprobación, más que una de uso común.
En la próxima lección, abordaremos el sistema Red Hat Fuse, el cual se basa en Apache
Camel y aporta métodos que ayudan a que el sistema de integración sea más robusto.
1
www.iplacex
Bibliografía
Integración de los sistemas CRM con las operaciones |Herrero Riano, Luis |E- LIBRO
1
www.iplacex
17
www.iplacex.cl