Java Reference
In-Depth Information
Open Source ESBs
There are a number of open source ESBs available now, including OpenESB from Sun, Mule
ESB from MuleSource, and Apache ServiceMix. These have some key differences, which
we'll explore in the following sections.
Mule
Mule is one of the most popular open source ESBs, in use at organizations such as Wal-Mart
and MLB, and with more than 2,000 users in production. It was started as a project in 2001
by Ross Mason, and is now available from http://www.mulesource.org . The ESB is free and
open source, but the company MuleSource, started in 2006, also offers a commercial version
called Mule Enterprise. In a business model similar to that of JBoss, the company offers sub-
scriptions, educational services, and consulting around its product.
The implementation of Mule is based on the topic EnterpriseIntegrationPatternsby Gregor
Hohpe and Bobby Woolf. The patterns in that book form the basis for the Mule framework
and capabilities. As such, the bus provides the standard set of features that one would expect
from an ESB, including routing, transformation, and message management.
Basic usage
In the Mule documentation, you may see reference to the term UMO, which stands for Univer-
sal Message Object. This term is deprecated in favor of the more recent Service Object
(though you will still see UMO classes in the code base). A Service Object manages com-
ponent events as well as pooled resources. It is carried between components over a transport,
which is one of the available mechanisms for data exchange. A wide variety of popular trans-
ports are available.
Transports are made available via transport providers, which implement a message receiver
or dispatcher. This connects to a protocol and offers an opportunity for the developer to also
implement an optional Transformer. A Transformer converts a Service Object from one pro-
tocol format to another (for example, an inbound SOAP message can be transformed to a Java
object for a subsequent RMI invocation).
In Mule, one application connects to another by implementing a set of related components.
An application makes uses of a channel within a connector. The connector sends the message
to an inbound router that is known to the Service Object, which then manages the route bound
out of the bus to the backend application using another router and another connector over an
appropriate channel. As with many other ESBs, this setup does not require the developer to
modify any of the application resources used from the bus.
Search WWH ::




Custom Search