Dudas sobre gestores de colas

142 views
Skip to first unread message

Jonathan Vila López

unread,
Mar 22, 2013, 6:56:27 PM3/22/13
to barcel...@googlegroups.com
Hola ....

Tengo una duda arquitectonica.....

Resulta que tenemos una aplicacion que uno de sus principales cometidos es enviar cientos de miles de mensajes XML al dia..... a diferentes destinos , en diferentes taxonomias XML, y en 3 tipos de protocolos ( http, soap, mqseries ).

Actualmente cada tipo de protocolo es un proyecto a parte, y ademas estan montados como proyectos web que corren en un glassfish.

Creo que eso no es nada efectivo.... y estaba pensando en implementar un proyecto unico, de escritorio porque no creo que aporte nada que sea web o montado en servidor de aplicaciones, y usando alguna tecnologia como JMS o OpenMQ, etc.....

Que os parece ? que proponeis ?

Toni Tassani

unread,
Mar 23, 2013, 4:39:06 PM3/23/13
to barcel...@googlegroups.com
Jonathan,
Lo que tiene que ayudarte a decidir si quieres una aplicación Web, una de Servidor o una de Escritorio ha de ser el tipo de interacción con el usuario que te hace falta, y que no nos queda claro.
Lo que te puede ayudar más, en mi opinión, es pensar en una solución que te permita enviar esos XML de diferentes protocolos, y que sea totalmente desacoplada. Si consigues hacer un diseño que te permita hacer pruebas, y que esté pensado para la explotación (en detectar y rastrear los errores que se produzcan, con logging y lo que necesites), si consigues todo eso, decidir si se trata de aplicación de escritorio, Web o de servidor, será sólo un detalle.

Ahora bien, para los cientos de miles de mensajes, si supone un coste considerable y hay riesgo de que se pierdan, es muy probable que el uso de colas te ayude mucho. Si vas a usar colas, con JMS, te vendrá bien usar MDBs, y eso supone EJBs.

Tendrás que revisar los requerimientos, los usuarios, qué es lo que necesitas y qué tecnologías puedes usar. Lo que sí que estoy totalmente de acuerdo contigo es que tiene más sentido tener una aplicación única para todos los protocolos.

Espero que te ayude,
Toni

2013/3/22 Jonathan Vila López <jonath...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "Barcelona JUG" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a barcelona-ju...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Toni Tassani
Blog http://alapamui.blogspot.com/
Twitter @atassani

Jordi Fernandez

unread,
Mar 23, 2013, 4:57:57 PM3/23/13
to barcel...@googlegroups.com
Yo propongo ActiveMQ http://activemq.apache.org/. Creo que encontrarás todo lo que puedas desear al respecto de mensajería.

Jonathan Vila Lopez

unread,
Mar 23, 2013, 5:03:10 PM3/23/13
to barcel...@googlegroups.com
Lo que no tengo muy claro es si puedo usar esas tecnologias de colas para enviar mensajes a servidores web, web services....etc.....

Yo pensaba que los gestores de colas necesitan un server-client de cola en cada lado...


2013/3/23 Jordi Fernandez <jo...@fernandez.name>

Jonathan Vila Lopez

unread,
Mar 23, 2013, 5:12:19 PM3/23/13
to barcel...@googlegroups.com
Otra cosa es que esos mensajes ahora se estan enviando cada cierto tiempo con timers de java..... igual usar Quartz tambien seria algo interesante....




2013/3/23 Jonathan Vila Lopez <jonath...@gmail.com>

Toni Tassani

unread,
Mar 23, 2013, 5:28:57 PM3/23/13
to barcel...@googlegroups.com
Respecto a las colas, no necesitas un Servidor de Aplicaciones para usarlas (aunque no me queda claro qué uso quieres darles).
Respecto a Timer vs. Quartz, timer es estándar de Java y Quartz proporciona funcionalidades que no existen en los primeros. Ahora bien, no sé si te hacen falta.

Jonathan Vila Lopez

unread,
Mar 23, 2013, 5:38:42 PM3/23/13
to barcel...@googlegroups.com
@Toni, yo me referia a que si necesito tener gestor de colas en ambos extremos de la conexion..... yo se que un companero usa MQSeries y necesita tener instalado el cliente en ambos puntos .....


2013/3/23 Toni Tassani <atas...@gmail.com>

Toni Tassani

unread,
Mar 23, 2013, 5:46:36 PM3/23/13
to barcel...@googlegroups.com
No sé qué uso le necesitas dar. Yo uso ActiveMQ para no perder peticiones en un Servicio Web que puede ser, eventualmente pesado. Las peticiones son encoladas en una cola de ActiveMQ y consumidas por un EJB que es el que realizará el proceso. No necesito dos colas, ni dos servidores. No sé cuál será tu escenario.

Jonathan Vila López

unread,
Mar 23, 2013, 6:03:33 PM3/23/13
to barcel...@googlegroups.com
Hola

Pues entonces creo que nos ira perfecto..... le dare un vistazo ;) muchas gracias.

Iker Mtnz. Apellaniz

unread,
Mar 24, 2013, 7:16:08 AM3/24/13
to barcel...@googlegroups.com
http://www.rabbitmq.com/

Son sistemas de colas, una alternativa a activemq

Jonathan Vila Lopez

unread,
Mar 24, 2013, 11:20:41 AM3/24/13
to barcel...@googlegroups.com
Interesante.........le echare un vistazo.

Propones estas alternativas por alguna razon ? es decir, algo a comentar sobre ActiveMQ ?


2013/3/24 Iker Mtnz. Apellaniz <mitx...@gmail.com>

Iker Mtnz. Apellaniz

unread,
Mar 25, 2013, 6:42:44 AM3/25/13
to barcel...@googlegroups.com
En emagister hemos usado estas dos en vez de ActiveMq, Las ventajas son que se pueden usar desde multiples plataformas si no me equivoco, y se que rabbit esta pegando fuerte. Sinceramente, No sabría decirte cual es mejor o peor, probablemente dependa del caso de uso.

Rafael Cordones Marcos

unread,
Mar 25, 2013, 12:51:47 PM3/25/13
to barcel...@googlegroups.com
Hola,

On Saturday, March 23, 2013 at 9:39 PM, Toni Tassani wrote:
Jonathan,
Lo que tiene que ayudarte a decidir si quieres una aplicación Web, una de Servidor o una de Escritorio ha de ser el tipo de interacción con el usuario que te hace falta, y que no nos queda claro.
Lo que te puede ayudar más, en mi opinión, es pensar en una solución que te permita enviar esos XML de diferentes protocolos, y que sea totalmente desacoplada. Si consigues hacer un diseño que te permita hacer pruebas, y que esté pensado para la explotación (en detectar y rastrear los errores que se produzcan, con logging y lo que necesites), si consigues todo eso, decidir si se trata de aplicación de escritorio, Web o de servidor, será sólo un detalle.
Aquí, Toni ha descrito perfectamente lo que necesitas. :-) Desde mi punto de vista un gestor de colas (ActiveMQ, …) es definitivamente una pieza a usar en la solución pero como parte de un "juego de puzzle" más grande. Un puzzle que te ayude desde el principio a estructurar la solución entera. 

En el mundo open-source que yo conozca tienes básicamente dos opciones: Spring Integration y Apache Camel. Ambos frameworks implementan la mayoría de los Enterprise Integration Patterns.

2013/3/22 Jonathan Vila López <jonath...@gmail.com>
Hola ....

Tengo una duda arquitectonica.....

Resulta que tenemos una aplicacion que uno de sus principales cometidos es enviar cientos de miles de mensajes XML al dia..... a diferentes destinos , en diferentes taxonomias XML, y en 3 tipos de protocolos ( http, soap, mqseries ).
Lo bueno de usar Spring Integration o Apache Camel como implementación de las Enterprise Integration Patterns es que vas a poder implementar tu solución usando conceptos ya existentes y esto te facilitará crear unit tests para cada una de las piezas que componen la solución final. Como bonus añadido te facilitará también crear integration tests/end-to-end tests utilizando mocks para los sistemas externos!
uno de sus principales cometidos es enviar cientos de miles de mensajes XML al dia..... 
a diferentes destinos 
en diferentes taxonomias XML
y en 3 tipos de protocolos ( http, soap, mqseries ).

También te tienes que preguntar si tu aplicación "simplemente" transforma y envía a los diferentes destinos cada uno de los mensajes que le llegan o por el contrario, ha de mantener una conversación con cada uno de esos destinos/sistemas.

Para Spring Integration, que es el framework que más me conozco, tienes un proyecto con ejemplos en GitHub que te pueden servir para darte una idea de las cosas que puedes hacer con el framework. Una descripción sobre la estructura de los ejemplos la tienes aquí: http://static.springsource.org/spring-integration/docs/3.0.0.M1/reference/html/samples.html

Para Apache Camel también tienes una página con ejemplos.

Un saludo,

/rafa


Jonathan Vila Lopez

unread,
Mar 27, 2013, 5:59:13 PM3/27/13
to barcel...@googlegroups.com
Rafael, una exposicion espectacular.

Estoy investigando lo que me has comentado, sobre todo de spring integration....... sabes si existe algo parecido a Fuse, o Mule Studio para definir los flujos visualmente para Spring Integration ?




2013/3/25 Rafael Cordones Marcos <rafael....@gmail.com>

Rafael Cordones Marcos

unread,
Mar 28, 2013, 3:34:12 AM3/28/13
to barcel...@googlegroups.com
Hola Jonathan,

2013/3/27 Jonathan Vila Lopez <jonath...@gmail.com>

Rafael, una exposicion espectacular.

Estoy investigando lo que me has comentado, sobre todo de spring integration....... sabes si existe algo parecido a Fuse, o Mule Studio para definir los flujos visualmente para Spring Integration ?

Sí. Mírate Spring Tool Suite (STS) que está basado en Eclipse: http://www.springsource.org/sts

Descárgate el proyecto Git con ejemplos que te mencioné: https://github.com/SpringSource/spring-integration-samples

Abre en STS alguno de los ficheros XML con la configuración de la integración como por ejemplo este:

En la pestaña "integration-graph" deberías ver algo parecido a esto: http://static.springsource.org/sts/nan/latest/images/si-mongo-example.png

/rafa

Nacho Cougil Jares

unread,
Apr 2, 2013, 12:32:33 PM4/2/13
to barcel...@googlegroups.com
+1 a todas vuestras opiniones!

He llegado tarde a la conversación pero lo que comentaban @Toni, @Rafa me parecen geniales, así como los apuntes tanto de @Iker como el de @Jordi. ¡Así da gusto iniciar un hilo de conversación oigan!  Bravo por los comentarios cracks!

Btw, esto me da que pensar ... ¿alguien se sentiría motivado para dar alguna charla sobre EIP? Creo que podría ser interesante explicar alguna propuesta en este sentido... 

Saludos,
347.png
Reply all
Reply to author
Forward
0 new messages