Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Introduction

The Examples examples provide coding level details for implementing particular aspects of ServiceMix. This document extends the coding examples into their business use. The following use cases are documented:

Anchor
BasicUseCase
BasicUseCase
Business Use Case for the Basic Example

ServiceMix is an Enterprise Service Bus (ESB) that is based on the Java Business Integration (JBI) 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 applications communicate via the ServiceMix ESB, and the role that the NMR plays 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 using ServiceMix.

...

  1. External means the application is outside of the ESB.
  2. Resource Adapter: a resource adapter provides connectivity between a specific external application and the ESB. In the Basic example the jencks container provides a JMS resource adapater.
  3. Binding Component (BC): a BC provides connectivity to applications that are external to the ESB.
  4. Service Engine (SE): a service engine provides business logic and transformation services to other components within the enterprise service bus.

Anchor
FileBindingUseCase
FileBindingUseCase
Business Use Case for the File Binding Example

The file binding example shows how components of ServiceMix can interact with the file system. This is important because there are applications that write files out to a directory on disk and other applications that may need access to those files. This is a simple example of how a ServiceMix component can read a file from the disk, process it into a normalized message, then send it via the NMR to another ServiceMix component. The receiving component can process the message (which contains the file) and write it out to another location on disk.

...

Panel
borderColor#ccc
titleOnline Distributor's Order Processing System
borderStylesolid

Anchor
BPELUseCase
BPELUseCase
Business Use Case for the BPEL Example

The BPEL example shows how to integrate the PXE BPEL Engine with ServiceMix. Business Process Execution Language (BPEL) defines a notation for specifying business process behavior based on Web Services. PXE is a runtime component for executing processes defined by the BPEL4WS 1.1 specification and forthcoming WS-BPEL 2.0 OASIS standard. The PXE BPEL engine uses JMX to provide management and introspection functionality.

...

Panel
borderColor#ccc
titleOnline Ticket Reservation System
borderStylesolid

Anchor
JMSUseCase
JMSUseCase
Business Use Case for the JMS Binding Example

The JMS Binding example shows how to connect the JMS bindings to a simple service component inside ServiceMix.

...

Panel
borderColor#ccc
titleOnline Application for Tax ID No. System
borderStylesolid

Anchor
HTTPUseCase
HTTPUseCase
Business Use Case for the HTTP Binding Example

The HTTP binding example shows how to use the HTTP bindings to handle a simple http post.

...

This example starts at the isBudgetAvailable class of the Department of Public Works Project Monitoring System when it posts a request on URL http://localhost:8912Image Removed. Included in this posted request, is the budget allocation ID of the related work item. The HTTP Server listens on this URL and receives the request. The HTTP Server then forwards the request to the Saaj Binding Component, as this component is capable of communicating to an UrlEndpoint. The UrlEndpoint is the Budget Checking System. The Budget Checking system checks to determin if the funding level is still sufficient for the implementation of the work item, then formulates the appropriate response and sends the response back to Saaj Binding Component. In turn, the Saaj Binding Component sends the response back to HTTP receiver via the normalized message router. The HTTP receiver then sends the message to the http://localhost:8912Image Removed. The message is picked up by the isBudgetAvailable class. Finally, the respone message is printed on the console.

...

Panel
borderColor#ccc
titleDepartment of Public Works Project Monitoring System
borderStylesolid

Anchor
QuartzUseCase
QuartzUseCase
Business Use Case for the Quartz Binding Example

The Quartz binding example shows how to use Quartz timer.

...

Panel
borderColor#ccc
titleNetwork Status Indicator
borderStylesolid

Anchor
RSSUseCase
RSSUseCase
Business Use Case for the RSS Example

The RSS binding example shows how to use the RSS bindings to poll RSS feeds for updates. RSS is an XML format designed for sharing web content between sites.

A hypothetical business scenario, which uses RSS, is a web site constantly polling RSS feeds for its "What's New" section. Whenever rssPoller detects a change in one of the RSS feeds, rssPoller will send an updated list of URLs to displayNewSites. The displayNewSites component will then auomatically update the web site's "What's New" section accordingly.

The following diagram illustrates this:

Panel
borderColor#ccc
titleNews Feed Monitoring System
borderStylesolid

Image Added