Enterprise Service Bus Terminology

前端 未结 2 901
余生分开走
余生分开走 2021-02-03 11:30

Can anyone explain at a beginner-intermediate level the terminology of \"bus\", \"transport\" and \"endpoint\" in the context of an enterprise service bus? I\'m a C# developer

相关标签:
2条回答
  • 2021-02-03 12:05

    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.

    0 讨论(0)
  • 2021-02-03 12:12

    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.

    0 讨论(0)
提交回复
热议问题