Pregunta

Estoy pensando en integrar un ESB en un producto existente basado en web Java/Maven.Específicamente, estoy mirando ServiceMix y Mule.El producto se conectará a varios servicios diferentes, incluidos correo electrónico, Quartz y servicios web RESTful a través de HTTP, SMS e mensajería instantánea.Solo leí rápidamente la documentación y las dos opciones parecen ser bastante pesadas y bastante complejas.Parece un ejemplo de libro de texto sobre cuándo usar un ESB, pero no quiero perder mucho tiempo aprendiendo uno u otro sistema.

Como dije, ya tengo una aplicación web creada por Maven y esperaba que integrar uno de los sistemas fuera bastante sencillo, incluso para algo tan simple como enviar un correo electrónico, pero parece que agregar cualquiera de los dos atraerá a la mitad del mundo en términos de frascos y sería difícil de integrar en el producto existente.

¿Vale la pena intentar optar por una de estas opciones?¿Existe una manera sencilla de integrarlos en una aplicación existente sin reestructurarla por completo?¿Existen otras opciones más ligeras?¿Hay algunos aspectos que debería considerar que harían que valga la pena su uso?

¿Fue útil?

Solución

mula es muy sencillo de utilizar en términos de enchufar los servicios junto con XML y tienen un montón de ejemplos en vídeo, que me pareció muy útil.

Los ESB se supone que son el futuro y como usted dice -. El suyo no parecer como un ejemplo clásico de dónde usarlo

Voy a tratar de responder a todas sus preguntas:

¿Vale la pena tratar de tirar en una de estas opciones? Creo que esta es una pregunta que hay que preguntarse - ¿qué estás tratando de lograr? Si usted está tratando de hacer que sea más fácil de implementar es probable que tome al mismo tiempo a través de código puro o ESB lo que con toda la instalación incluido. Si usted está pensando en hacerlo como un ejercicio de aprendizaje puede valer la pena.

¿Hay una manera fácil de integrarlos en una aplicación existente sin tener que reestructurar por completo? Respuesta corta no. Va a requerir algún reingeniería para integrarse con la mayoría de los terceros bibliotecas / marcos.

¿Hay otras opciones, más ligeros de peso? Mula es bastante simple en realidad. Es posible que pueda utilizar un MQ para hacer el HTTP, SMS y la mensajería instantánea. Posiblemente ActiveMQ o RabbitMQ.

¿Hay algunos aspectos que debería considerar que haría que su utilización vale la pena? Sí, los ESB están diseñados para las empresas en las que se añaden nuevos servicios a menudo y la configuración es probable que cambie. Tener todo en XML hace este cambio un poco más fácil. Así que si usted está construyendo una pieza de software de una sola vez puede que no sea el camino correcto a seguir. Pero si va a añadir más tarde y en constante conexión de diferentes servicios que puede ser la mejor ruta.

Otros consejos

También es posible que desee echar un vistazo a marco Apache Camel que es realmente de gran alcance para toda la integración necesita que usted ha mencionado, sin las sanciones de ESB completo soplado.

Ross Mason, el fundador del proyecto Mule, escribió un artículo realmente bueno sobre este tema. A ESB o no a ESB.Recomiendo echarle un vistazo.Además, es posible que desees consultar Frijoles Mula que ofrece un modelo mucho más simple si está creando esto como una aplicación web y solo desea realizar una integración ligera y no está interesado en la mediación.

consejo que no pierda su valioso tiempo con la mula. Mi experiencia hasta ahora no es bueno. Yo no lo usaría para cualquier sistema crítico. Está lejos de ser un producto maduro. Aparte de que los servicios REST definitivamente prometer mucha simplicidad y tiene casos de uso real.

Yo diría que vale la pena la inversión si usted tiene más de dos aplicaciones o bases de datos que tienen que hablar entre sí y están utilizando más de un protocolo de comunicación. O, si se espera que esta situación es cierto en el futuro. Suena como sus requisitos se ajusta perfectamente a esto.

Otra situación que podría sugerir el uso de un ESB o al menos un bus de mensajes sería donde se espera o necesita una o más de las aplicaciones a evolucionar de forma independiente de los demás. Por ejemplo uno está bajo desarrollo activo y los otros no lo son. Un ESB puede aislar los sistemas estables de los cambios en los sistemas desarrollados de forma activa la eliminación de la necesidad de estar siempre actualizado todo.

El verdadero poder de un ESB es que las aplicaciones pueden delegar todas las decisiones sobre la forma de comunicarse y con quién comunicarse con la ESB y dejar que ese componente tomar plena responsabilidad por esos aspectos. Todos los demás componentes se aíslan unos de otros y no necesita preocuparse acerca entre sí reduciendo en gran medida los problemas de combinaciones de dependencias.

En cuanto a la curva de aprendizaje que he encontrado Mule ESB a ser bastante sencillo de aprender y sin duda sería una curva de aprendizaje mucho más bajo que el tratar de aprender todas las API necesarias para hablar de los múltiples servicios que usted está tratando de conectarse.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top