The purpose of an Enterprise ServiceMix is an Emterprise Service Bus (ESB) , also known as a that is based on the Java Business Integration (JBI) bus, is to provide a mechanism for different applications to exchange messages in a protocol neutral manner and provide services for processing those messages such as message transformation and dynamic routing. Although not a requirement, messages exchanged between business applications are typically done asynchronously. ServiceMix is an implemenation of JSR 208, the JBI specification. standard JSR 208. The JBI-based design specifies a standards-based pluggable architecture with a JVM-based runtime component called the Normalized Message Router (NMR). The Basic example demonstrates how external 1 applications communicate via the ServiceMix ESB, and the role that the NMR can play in that communication. Similar techniques could be used to plug any external 1 application or service into ServiceMix (e.g. SAP, Peoplesoft, spreadsheets, POJOs, Webservices and EJBs) and allow it to communicate with other external applications or components within using ServiceMix itself.
A common hypothetical business scenario, which extends the Basic Example, is that of a large department store distributor. This distributor sells products from many multiple wholesalers to many retail outlets (i.e., department stores(suppliers) to various retailers (customers). The distributor presents a common interface for product ordering to each of its department store customers. However, each wholesaler presents the distributor must work with a different ordering interface to the distributor for the product the wholesaler suppliesfor each wholesale suppliers for the products they are buying.
Using an ESB, the distributor has developed a number of components to receive department store orders and then dynamically route and transform these orders to the appropriate wholesaler. The order processing flow is described as follows:
- Using the distributor's web interface, a department store buyer customer submits an order for multiple products. An HTTP request is sent to the " OrderReceiver, an HTTP binding component (BC). 4 3
- The OrderReceiver sends the message to an "OrderRouter" Service Engine service engine (SE) 5 4 component. This SE is responsible for parsing the order and deciding, based on the message content, which OrderTransformer should receive which part of the message (i.e., an order for a product).
- The OrderRouter publishes the orders to the appropriate message topics based on the message content. Specifically, the OrderRouter publishes the messages based on which wholesaler sells the item.
- The OrderTransformer is a Service Engine service engine component, which modifies the message and puts it in a format which is readable by the wholesaler interface that will fulfill the order.
- Each OrderTransformer sends the modified message to the OrderProcessor.
- The OrderProcessor is a Binding Component binding component that has two functions:
a. The OrderProcessor It places an order to the appropriate wholesaler through the wholesaler's Webservice or proprietary interface.
b. It also publishes a message about the order on a topic. - The OrderProcessor also publishes a message about the order on a topic.The message on the topic is subsequently picked up by the BusinessMonitor component via the jmsTrace component.
- The BusinessMonitor . This component monitors the orders for quality assurance and business analytics, such as data mining.
...
- External means the application is outside of the enterprise service busESB.
- Resource Adapter: a resource adapter provides connectivity between a specific external application and the ESB. In the Basic example, the resource adapter is an ActiveMQ adapter supplied by the jencks JCA ContaineIn the _ Basic example the jencks container provides a JMS resource adapater.
- Binding Component (BC): a BC provides connectivity to applications that are external to the ESB.
- Service Engine (SE): a service engine provides business logic and transformation services to other components within the enterprise service bus.