You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

The purpose of an Enterprise Service Bus (ESB), also known as a Java Business Integration (JBI) bus, is to provide a mechanism for different applications to communicate in a common or protocol neutral manner. ServiceMix is an implemenation of JSR 208, the JBI specification, and it facilitates the communications between applications.

The Basic example shows how two external^1^ applications communicate to each other via the ServiceMix ESB. The techniques used in the Basic example could be used to integrate any external application with ServiceMix and allow it to communicate with another external application or a component within ServiceMix itself. Examples of applications that may need to be accessible to other applications are SAP, Peoplesoft, spreadsheets, or POJOs and EJBs that need to communicate with each other or with a legacy application.

In our example, the external applications are the same (ActiveMQ), so they could communicate directly with each other. This is a simplification to enable us to concentrate on the logical flow of the messages rather than the details of transforming one type of message into another.

The following diagram illustrates the components of the enterprise service bus. Recall from the JSR 208 specification the components for one external application to talk to one another are:

legacy/external app --> resource adapter --> |binding component (inside ESB) --> NMR -->
binding component |--> resource adapter --> legacy app.

(I will make a Dave Chappell like diagram of above for this use case, then map in
the Basic example components where they belong in the diagram.)

Note: The only downside that my hit is that example uses inbound messages
via the resource adapter, and most legacy applications won't support
inbound messaging iva the resource adapter. For example, I think all
the librados connectors only do outbound messaging.

1. External means that the application is outside of the enterprise service bus.

  • No labels