Pergunta

Eu tenho ido através de diferentes perguntas / artigos sobre Brokers e ESBs Mensagem (mesmo em stackoverflow). Ainda sem uma pista sobre o que é a diferença demarcação clara entre um corretor de mensagens e um ESB? Agora aqui eu estou tentando comparar produtos, Websphere Broker e Mule ESB !!

Em primeiro lugar, é (qualquer versão) Webshere Broker um ESB? Nosso IBM homens produto afirma que ele seja um ESB! (Não estou surpreso com isso).

A minha informação limitada me diz que um corretor de mensagens funciona em um modelo HUB raios. No entanto, a ESB funciona em uma arquitetura de barramento. Agora, o que na terra é que isso quer dizer? Eu li que se o HUB falhar (não disponível I guess), em seguida, o corretor falhar completamente. Que não é o caso de um ESB (Então, esses caras dizem). O que eu não entendo aqui é "E se o BUS" falhar?

Agora, as coisas de sempre sobre um ESBs e corretores é que, eles fornecer roteamento, transformação, orquestração etc .. Então, se ambos fornecem isso, então por que eu iria escolher um sobre o outro.

Outra área de conflito é sobre a transformação. Será ESBs facilitá-lo de uma maneira diferente quando comparado com Message Brokers? Eu realmente adoraria algumas dicas sobre isso.

Agora, falando sobre a escala horizontal. Quem supera a quem? Ou são ambos igualmente escalável em termos de complexidade (ou quaisquer outros factores). Claro custo sábio, Webshpere Broker vai cobrar por cada caixa (para não falar cada CPU). Eu acredito que, mesmo o does not MULE ESB comercial fazer isso. Deixando de lado a parte custo do mesmo, quais são as implicações da ESB e graduação Message Broker. Acontece que eu sei que você pode escalar até Nível de Serviço em ESB. Isso é possível em um Message Broker?

Foi útil?

Solução

Você pode usar um corretor de transformação sem um barramento de serviço, e vice-versa. Em termos de produtos específicos Eu não acho que qualquer um é puramente um ou outro por causa da forma como cada complementa o outro. Alguns produtos são mais fortes em uma área de, outro mais forte em outro. Talvez um necessidades escolha a ser feita com base no qual funcionar melhores capas um problema individual.

Um corretor pode ter melhor built-in "blocos de Lego" para a construção de uma cadeia de transformação de um produto ESB faz. Um corretor pressionado em serviço como ESB pode ser esmagado sob carga e não escala bem, ou podem não journaling robusto e ferramentas para lidar com revistas.

Alguns ESBs permitir atualizações de banco de dados para ser revertidas e filas para ser repetido em um aplicativo corrigido uma vez um erro notório na lógica foi descoberto e corrigido. Eu não acho que a maioria dos corretores integrar esse nível de suporte transacional. Para que isso funcione em todas as suas "operações" quase tem que ser eventos de negócios (uma venda, uma renovação, uma mudança de propriedade, etc.) em vez de algo como RPCish "atualizações de banco de dados."

Outras dicas

Disclaimer: Eu sou um consultor de IBM e se especializar em WebSphere ESB. Este comentário não é deixado em qualquer capacidade oficial.

Um ESB é mais de um padrão de arquitetura ou conceito do que um produto - em geral, uma forma de engenharia acoplamento baseada em serviços. Sua definição é disputada e não exatamente definido em pedra. Em geral, um ESB é um conjunto de serviços não relacionados (no sentido técnico) - eles expõem as interfaces, e consumi-los de outros serviços. Geralmente não há um hub and spoke arquitetura envolvidos, embora possa haver.

IBM certamente comercializa o WebSphere Message Broker e WebSphere ESB como produtos que tornam mais fácil para construir um ESB (junto com o aparelho hardware DataPower). Eles têm diferentes raízes tecnológicas, mas tem alguma sobreposição de propósito. Além disso, não é para dizer que você não pode construir um ESB com muitas outras coisas que não são da marca como 'produto ESB'.

Isso não responde a todas suas perguntas, mas espero que aborda a parte da IBM.

A diferença entre um corretor de mensagens e um ESB é principalmente a palavra 'bus'.

Para mim, um Message Broker é um processo (usally grande) que transforma os dados de uma estrutura para outra teor estrutura ou modifica.

Um ESB é uma mensagem orientada middleware (MOM), além de serviços adicionais, uma das quais poderia ser a Message Broker. Assim, um ESB pode incluir um corretor de mensagens como um dos seus componentes. A Bus consiste em mais de um processo, caso contrário eu não chamaria isso de um 'bus'. A natureza de um barramento é que existem vários componentes que servem funções diferentes, cada um comunicando através de uma MOM e aderindo a alguma forma de 'formato de dados comum'. Um ônibus consistiria em: aplicações enviar dados para o MOM, adaptadores de banco de dados, Message Brokers, pontes MOM, etc.

A separação é um pouco gradual, mas a maior diferença entre uma arquitetura Message Broker e um autocarro é a de granularidade . Se sua tarefa é integrar aplicações A, B, .., Z e um par de bancos de dados, você pode fazer isso com uma grande Message Broker conectar todos e cada um. Ou com um ESB em que vários pequenos componentes assumir apenas pequenas tarefas. Por exemplo se conecta adaptador a um, outro para B (mas eles não fazem transformação), então cada um envia suas coisas para um (ou mais) Message Broker, cada um dos quais deve ser mantido o mais simples possível - por exemplo, não ter de saber sobre o modelo de dados de 'A' ou 'B'. Um bom ESB deve ter uma definição comum de dados no ônibus, abstraindo da 'alteridade' de aplicações individuais.

Transformação: um ESB não ajuda com a transformação, a menos que ele vem com um Message Broker. Mas cada um bom ESB deve incluir um corretor de mensagens de qualquer maneira. O Message Broker deve ser especialista do seu ônibus para transformações, mas nada mais.

escala horizontal: se você tiver apenas 3 coisas a se conectar (agora e para sempre), não é provavelmente vale a pena o esforço para obter um ESB full-blown. A Message Broker tem a vantagem de ser apenas um grande processo. Você pode configurar tudo lá e têm uma localização central para todos os seus mapeamentos de dados, filtragem e roteamento.

Mas se você tem 30 aplicações de conectar, um Message Broker provavelmente vir a moagem impasse. Claro que você pode comprar mais instâncias, as coisas correm redundantes, etc. mas você deve mudar sua estratégia para empregos 'de localizar'. adaptador de cada aplicação (poderia ser uma instância Message Broker pouco cada) deve ser capaz de gerar e / ou receber um modelo de dados comum abstraída (por exemplo XML com um XSD compartilhado). Não poderia ser também um Message Broker central para tarefas de transformação, mas essa instância deve ter consciência de modelo de dados A ou B. Assim, um ESB deve mover o processamento para o componente especialista em vez de manter tudo em um lugar central.

Acabei de ler este artigo por Udi Dahan há poucos dias, o que pode lhe dar uma visão mais clara do que eu sinto é uma diferença fundamental.

http://www.udidahan.com/ 2011/03/24 / bus-e-broker-PubSub-diferenças

Citando:

A regra de que só pode haver um publisher único para um determinado evento tipo é uma das coisas que diferencia ônibus de corretores, embora ambos, obviamente, permitir que você tem vários assinantes

...

Infelizmente, há muitos tecnologias de estilo corretor lá fora que estão a ser comercializados sob a bandeira do Enterprise Service Bus. Enquanto alguns produtos têm a capacidade para ser implantado em um tanto centralizada e distribuído moda (às vezes chamado de “federado” ou “incorporado” mode), muitos não impor o “single publicação de endpoint por evento do tipo” regra.

Sem essa restrição, é apenas muito fácil cometer erros.

Hope isso ajuda.

Um Enterprise Service Bus fornece três valores-chave para o negócio:

  1. ao contexto ou Content Based Routing das operações;
  2. Transformação de um domínio mensagem ou transporte para outro domínio mensagem ou transporte;
  3. conectividade serviço de muitos-para-muitos.

ESBs fornecer baixo acoplamento de serviços, permitir que os serviços de ser reconstituído em inteiramente diferentes contextos de aplicação do que quando os serviços foram pela primeira vez imaginou ou desenvolvidos, e promover a reutilização de aplicações sem a necessidade de aplicações de Recode. WebSphere Message Broker (ou agora é chamado IBM Integration Bus) é um excelente exemplo de um Enterprise Service Bus. Para um exemplo de simplicidade de código que traz para suportar um grande poder em poucas linhas, você pode ver o meu post aqui: http://soabus.org/viewtopic.php?f=3&t=13 . A construção fundamentais dentro do tempo de execução IIB é chamado de Árvore mensagem lógico (LMT). Tudo o que o desenvolvedor quer fazer algum tipo de operação no LMT. ESQL é a língua mais eficiente um desenvolvedor pode usar para executar essas operações no LMT, embora muitos outros idiomas estão disponíveis (por exemplo, Java, PHP, Python, etc.) Nenhum outro produto se aproxima da eficiência e facilidade de desenvolvimento de ESB aplicações do que o IBM Integration autocarro desde 90 por cento da codificação destas aplicações é feito arrastando e deixando cair os nós numa palete. Isso deixa apenas 10 por cento da codificação para ser feito pelo desenvolvedor fluxo de mensagens. By the way, WebSphere ESB foi descontinuado pela IBM e muitos dos produtos concorrentes para IBM Integration Bus não vi qualquer novo desenvolvimento sobre eles há vários anos. Uma lista de várias ofertas de produtos ESB pode ser visto no soabus.org.

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