Mule 3 has many routing processors and expression evaluators that can be used to implement routing logic. However, sometimes business rules may be too complex. For example, one of our customers is a large logistics company which uses Mule for their warehouse routing. To handle their complex set of rules, they decided to use Mule with jBPM and Drools.
This example illustrates use of Drools and jBPM inside Mule, by implementing very simple order sorting and warehouse routing use case.
In part 1 of this post, I gave an overview of BPM, Rules, and CEP and the way they compliment an integration platform such as Mule. Now let’s take a look at what Mule has to offer for integrating with some of these tools.
One of the more common usages of Mule is as the integration piece of a larger SOA architecture. Mule has traditionally never attempted to offer a complete SOA suite/stack of products as some of its larger competitors do, but has rather focused on the thing it does best, which is integration. Other aspects of an SOA architecture (messaging backbone, data storage, governance, etc.) are generally provided by other best-of-breed solutions for those areas,
Mule integrates with jBPM, allowing you to send/receive messages to/from a running process. A message from Mule can start or advance a process, the message can be used as a process variable, and a process can send messages to any endpoint in your Mule config.