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

Compare with Current View Page History

« Previous Version 11 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, etc., or POJOs and EJBs that need to communicate with each other or with a legacy application.

In the Basic example, the external applications communicate using the same protocol, JMS. Therefore, they could communicate directly with each other. The Basic example 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.

A common scenario in which an enterprise service bus is used is for a Web-based form application to request data from a legacy application, such as Peoplesoft. The Web-based form communicates via HTTP which the legacy application does not understand. Using the ESB, the communication between the applications would flow like this:

  1. Using a web-based form, a user asks for data from a legacy application.
  2. An HTTP request is formulated and sent to the HTTP binding component (BC). 2
  3. The HTTP binding component transforms the HTTP message in a neutral form. This is a normalized message.
  4. The normalized message is routed through the Normalized Message Router (NMR) to a Service Engine or BC that knows how to communicate to the legacy application.
  5. The SE/BC transforms the message into a form that the legacy application understands.
  6. The SE/BC passes the message to the resource adapter 3 for the legacy application.
  7. The resource adapter communicates with the legacy application and obtains the requested data.
  8. The data is transferred back to the web-based form, reversing the route.
    legacy/external app <-- resource adapter <-- |binding component (inside ESB) --> NMR -->
    binding component |--> resource adapter --> legacy app.

In comparison, the Basic example, looks like the following diagram. This is a simplified diagram of the basic example. For a complete diagram, please see: xxxx.

Please note: The Basic example uses inbound messages via the resource adapter, and most legacy applications won't support inbound messaging via the resource adapter.
1. External means the application is outside of the enterprise service bus.

  • No labels