Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 exchange messages in a protocol neutral manner and provide services for processing those messages such as message transformation and dynamic routing. ServiceMix is an implemenation of JSR 208, the JBI specification.

The Basic example demonstrates how two external 1 applications communicate to each other via the ESB. The techniques used in the Basic example could be used to integrate plug any external application with ServiceMix and into ServiceMix (e.g. SAP, Peoplesoft, spreadsheets, POJOs and EJBs) and allow it to communicate with another other external application applications or a component components within ServiceMix itself. Examples of applications that need to be accessible to other applications are SAP, Peoplesoft, spreadsheets, POJOs, and EJBs.

A common business scenario in which an enterprise service bus may be used is for a Web-based form to request data from a legacy application. 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, which extends the Basic Example is that of a large department store distributor. This distributor sells products from many wholesalers to many retail outlets (i.e. department stores). The distributor presents a common interface for product ordering to each of its department store customers, however each wholesaler presents a different ordering interface to the distributor for the product the wholesaler supplies.

Using an ESB, the distributor has developed a number of components to receive department store orders and dynamically route and transform these orders to the appropriate wholesaler. The order flow is described as follows:

  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 into a neutral form. This is called a normalized message.
  4. The normalized message is routed through the Normalized Message Router (NMR) to a Service Engine (SE) 3 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 4 for the legacy application.
  7. The resource adapter communicates with the legacy application and obtains the requested data.
  8. The requested data is transferred back to the web-based form, reversing the route.

...