2011-03-25 22 views
5

Estoy empezando a planificar una nueva plataforma que necesita integrar varios servicios de varias plataformas externas. Básicamente, estoy vinculando un conjunto de servicios internos propios y varios servicios externos que otorgamos a terceros.¿Por qué usaría Apache ServiceMix solo en ActiveMQ?

En general, los servicios externos son todos servicios web pero son una mezcolanza de REST, SOAP y XML-RPC. Algunos de nuestros servicios internos tienen API REST, pero hay muchas cosas que no son tan sencillas: XMPP, Hessian, protocolos de socket personalizados, Java RPC, uWSGI, y la lista continúa.

Según mi investigación, parece que un ESB como Apache ServiceMix podría ser una buena opción para mis necesidades. Sin embargo, parece REALMENTE complejo. No estoy lanzando cohetes, pero sí necesito mensajería transaccional (sobre todo para comercio electrónico y cosas sobre derechos). Siento que la cola de mensajes que ServiceMix utiliza debajo del capó (ActiveMQ) podría ser suficiente por sí misma.

¿Alguien puede explicar lo que proporciona ServiceMix además de ActiveMQ? Sé que hay muchas cosas, pero es difícil para un ESB n00b como yo captar realmente la diferencia tangible cuando estoy sumergido en las palabras de moda.

Gracias!

Respuesta

8

ServiceMix es un contenedor OSGi que le permite implementar y ejecutar aplicaciones en un entorno de tiempo de ejecución controlado (como un contenedor J2EE pero menos pesado y sin programación, por ejemplo, contratos J2EE). Gracias a OSGi puede dividir sus aplicaciones en partes y actualizar/evolucionar estas partes de forma independiente. Puede actualizar partes de su aplicación sin tener que eliminar toda la aplicación. La gestión del ciclo de vida es mucho mejor en OSGi que en los procesos de Java independientes.

Si piensa en crear una aplicación que evolucionará con el tiempo, entonces OSGi es algo que debe considerar. Y ServiceMix le proporciona un contenedor OSGi en tiempo de ejecución para implementar sus aplicaciones. Recomiendo encarecidamente el libro "OSGi en acción" de Manning.

Para vincular diferentes servicios externos que incluso podrían usar diferentes protocolos de transporte, recomiendo Apache Camel, que también se puede utilizar muy bien en ServiceMix.

Btw, las aplicaciones existentes se pueden implementar en un contenedor OSGi con bastante poco esfuerzo (sin requerir cambios de código).

Torsten Mielke FuseSource Web: www.fusesource.com Blog: http://tmielke.blogspot.com

+1

+1 para recomendar camello. –

+0

¿puede echar un vistazo https://stackoverflow.com/questions/48579060/could-not-start-2-embedded-active-mq-on-different-ports-within-different-spring? – gstackoverflow

Cuestiones relacionadas