Está en la página 1de 17

Integración de Sistemas

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.

Apache Camel es un poderoso aliado a la hora de implementar una solución de mensajería,


ya que nos provee de una gran cantidad de componentes, lo cual nos facilita el trabajo de
enrutar y transportar la información. Es importante mencionar que cuenta con una
comunidad muy activa, que mantiene y actualiza periódicamente sus funciones.

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.

Patrones de Integración Empresarial (EIP): Soluciones comunes a problemas


conocidos, que nos ayudan a optimizar el tiempo de resolución de algún problema.

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:

Al ejecutar nuestro programa, el archivo desaparecerá de la carpeta, y se creará una


nueva llamada. camel. Podremos verificar el correcto envío de los mensajes en el entorno
grafico de ActiveMQ ( http://localhost:8161/admin/queues.jsp ). Si se han ejecutado todos
los pasos correctamente, deberíamos ver el siguiente resultado:

Tras pulsar en la cola iplacex, obtendremos los mensajes

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í.

En este punto ya logramos enviar un mensaje utilizando el framework Camel y


aplicamos el patrón Splitter.

¿La utilización de un framework como Apache Camel, nos facilitará el


proceso de integración de sistemas?

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:

Como en los anteriores, verificamos el funcionamiento en el entorno grafico.

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?

En el siguiente ejercicio, aplicaremos el patrón Lista de Recipientes, que nos


permitirá crear colas dinámicamente, basado en el archivo que hemos estado utilizando.
Aplicaremos los siguientes cambios a nuestra clase:

Tras ejecutarlo y verificar el entorno gráfico de ActiveMQ, debemos ver lo siguiente:

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

Aspectos clave de la integración de sistemas de gestión |Puente, Jesús | E-LIBRO

1
www.iplacex
17
www.iplacex.cl

También podría gustarte