Pergunta

Alguém pode explicar em um nível iniciante-intermediário a terminologia de "bus", "transporte" e "ponto final" no contexto de um Enterprise service bus ? Eu sou um desenvolvedor C # com alguns anos de experiência agora, mas apenas começando a trabalhar com um ESB.

Parece que o "bus" é efetivamente uma fila para a qual você pode enviar e receber mensagens. Eu estou bem com isso. No entanto, eu estou trabalhando em algum código existente usando NServiceBus e eu acho que se eu grokked o "endpoint" e "transporte "terminologia Eu faria um grande salto em frente na minha compreensão.

Foi útil?

Solução

Let me try to clarify those terms to you:

Bus in context of ESB architecture should not be considered as simple queue for message dispatching. To allow integration of different services, ESB provides much more. Important additional functionalities of ESB:

  • Routing. Messages can be routed to different services, depending on message content or endpoint specification.
  • Message Transformations/Mediations between different formats
  • Transport protocol conversion. ESB should be able to seamlessly integrate applications that use different transport protocols (JMS, HTTP/S, pure TCP, etc.)
  • Message enhancement. Messages can be enriched with missing data before further processing.
  • Security
  • Management and Monitoring

Those functionalites are provided by services that operate within ESB. Services connect to each other via endpoints - uniform, unique "addresses". Messages dispatched between endpoints are using unified transport (method/protocol that encapsulates message's payload). Application that natively use different transport, need to connect to ESB via suitable adapter - service that will provide necessary transport conversion. This way applications that use ESB are decoupled from each other and don't need to provide conversions themselves.

Of course, those are only very brief descriptions of terms. Remember, Enterprise Service Bus is only catch-term for specific kind of architecture (or concept), but it is not standardized in any way. So specific implementations can be very different from each other. If you are interested in standardized ESB, you can take a look at JBI (Java Bussiness Integration). There are several open-source implementations of JBI avalable, among them Apache ServiceMix, Mule, OpenESB. Very good introduction to ESB technologies is presented in "Open Source ESBs in Action" book published by Manning.

Outras dicas

I would recommend looking at resources related to Enterprise Application Integration (EAI), which revolves around the ESB and various models and patterns used to integrate solutions. Think of it is a GoF for ESB architectures:

http://www.enterpriseintegrationpatterns.com/

and

http://www.enterpriseintegrationpatterns.com/toc.html

All of these patterns would give you an idea of what people use ESB's to achieve and the patterns are useful for providing common pitfalls of do-it-yourself ESB integration. I've learned an immense amount through that book and through people that source from it.

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