Chapter 15. Business process management and scheduling with Mule
In this chapter
- Using jBPM for service orchestration
- Scheduling tasks with the Quartz transport
- Polling endpoints with the Quartz transport
Most of the examples we looked at while discussing transports and routing in chapters 3 and 4 were discrete—dealing with one scope of functionality at a time. For instance, we were interested in how to send JMS messages or how to group the responses from a collection of web services and aggregate their responses. In chapter 10, we saw how transactions allow us to perform these operations atomically. But what happens if the activity we need to coordinate takes longer than a typical transaction time-out, or needs to maintain state between multiple service invocations? Perhaps we have an endpoint that invokes a potentially long-running operation, such as waiting for a user to respond to a confirmation email. The receipt of this confirmation email may be one piece of an account-provisioning process—with events occurring before and subsequent dependent events occurring after the email is sent. While it might be possible to model such an activity using the routing facilities introduced in chapter 4, it seems like a more straightforward solution should be at our disposal.