É a Integração de um ESB (ServiceMix/Mula) vale a Pena a Curva de Aprendizagem?[fechado]

StackOverflow https://stackoverflow.com/questions/1365357

Pergunta

Eu estou olhando para a integração de um ESB, um Java/web Maven produto de base.Especificamente, eu estou olhando o ServiceMix e Mula.O produto irá se conectar a vários serviços diferentes, incluindo e-mail, Quartzo, RESTful webservices através de HTTP, SMS e mensagens instantâneas.Eu só rapidamente olhou para a documentação e as duas opções parecem ser muito pesado e bastante complexo.Ele parece ser um exemplo clássico de quando usar uma ESB, mas eu não quero gastar uma grande parte do tempo apenas a aprendizagem de um ou outro sistema.

Como eu disse, eu já tenho uma web app criado pelo Maven e estava esperando a integração de um dos sistemas de ser bastante simples, mesmo para algo tão simples como enviar um e-mail, mas ele parece gostar de adicionar um vai puxar a metade do mundo em termos de frascos e seria difícil para incorporar no produto existente.

Será que vale a pena tentar puxar uma dessas opções?Existe uma maneira fácil de integrá-los em um aplicativo existente, sem reestruturação completa-lo?Existem outras, mais leves opções?Existem alguns aspectos que deve considerar que faria o seu uso vale a pena?

Foi útil?

Solução

O Mule é bastante simples de usar em termos de conectar serviços juntamente com o XML e eles têm muitos exemplos de vídeo que achei realmente úteis.

Os ESBs devem ser futuros e, como você diz - o seu parece um exemplo de livro didático de onde usá -lo.

Vou tentar responder a todas as suas perguntas:

Vale a pena tentar atrair uma dessas opções?Eu acho que essa é uma pergunta que você precisa fazer a si mesmo - o que você está tentando alcançar? Se você está tentando facilitar a implementação, provavelmente levará o mesmo tempo via código puro ou ESB, o que com toda a configuração incluída. Se você está pensando em fazer isso como um exercício de aprendizado, pode valer a pena.

Existe uma maneira fácil de integrá -los a um aplicativo existente sem reestruturá -lo completamente?Resposta curta não. Você precisará de alguma reengenharia para se integrar à maioria das bibliotecas/estruturas de terceiros.

Existem outras opções de peso mais leve?Mule é realmente bastante simples. Você pode usar um MQ para fazer o HTTP, SMS e IM. Possivelmente ActiveMQ ou RabbitMQ.

Existem alguns aspectos que devo considerar que tornariam seu uso que vale a pena?Sim, os ESBs são projetados para empresas onde novos serviços são adicionados com frequência e a configuração provavelmente mudará. Ter tudo no XML facilita uma alteração. Portanto, se você está apenas construindo um software único, pode não ser o caminho certo a seguir. Mas se você adicionar mais posterior e conectar constantemente serviços diferentes, pode ser a melhor rota.

Outras dicas

Você também pode querer dar uma olhada no Apache Camel Framework, que é realmente poderoso para todas as necessidades de integração que você mencionou sem as penalidades de um ESB completo.

Ross Mason, o fundador do projeto Mule, escreveu um artigo muito bom sobre este tópico, Para ESB ou não para ESB. Eu recomendei dar uma olhada nisso. Além disso, você pode querer conferir Mula ibeans que oferece um modelo muito mais simples se você estiver construindo isso como um aplicativo da Web e apenas deseja fazer uma integração leve e não estiver interessada na mediação.

Eu aconselho a não desperdiçar seu tempo valioso com o Mule. Minha experiência até agora não é boa. Eu não o usaria para nenhum sistema crítico. Está longe de ser um produto maduro. Além dos serviços RESTful, definitivamente prometem muita simplicidade e têm casos de uso real.

Eu diria que vale a pena o investimento, se você tiver mais de dois aplicativos ou bancos de dados que precisam falar uns com os outros E eles estão usando mais do que um protocolo de comunicação.Ou, se você espera que essa situação para ser verdade no futuro.Soa como seus requisitos, certamente se encaixa a este.

Outra situação que gostaria de sugerir o uso de um ESB ou, pelo menos, um barramento de mensagens seria o caso de você esperar ou precisar de um ou mais aplicações para evoluir de forma independente dos outros.Por exemplo, uma está sob desenvolvimento ativo e os outros não.Um ESB pode isolar os sistemas estáveis de alterações no activamente desenvolvido sistemas de remover a necessidade de estar sempre atualizando tudo.

O verdadeiro poder de um ESB é que os aplicativos podem delegar todas as decisões sobre como se comunicar e a quem comunicar-se com a ESB e deixe que o componente de tomar toda a responsabilidade para os aspectos.Todos os outros componentes tornam-se isolados uns dos outros e não precisa se preocupar com o outro, reduzindo bastante os problemas de combinações de dependências.

Em termos de curva de aprendizagem encontrei Mule ESB ser bastante para a frente para pegar e que, com certeza, muito mais baixa curva de aprendizagem que tentar aprender todas as APIs necessárias para conversar com os múltiplos serviços que você está tentando conectar-se.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top