Details

  • Type: New Feature New Feature
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: 1.4.0
  • Labels:
    None
  • Similar Issues:
    None

Description

My idea is to create a generic BPM provider where:
1. Mule events can initiate and advance processes in a BPMS (dispatcher)
2. the processes running in the BPMS can generate Mule events (receiver)

The BPMS could be external or embedded as a library within Mule.

Examples:
bpm://purchaseOrder would start a new process named "purchaseOrder"
bpm://purchaseOrder?id=5435 would advance the already running process of type "purchaseOrder" with process ID = 5435 to its next state

Issue Links

Activity

Hide
Travis Carlson added a comment -

I've added an initial attempt at this provider to the sandbox (r2421), though it's completely tied to JBoss jBpm for now.

My idea is to define a simple, generic interface for interacting with any BPMS:
createProcess();
advanceProcess(Object processId);
abortProcess(Object processId);

And another interface for generating Mule events from a running process:
sendMuleEvent(String uri, Object payload, Map properties);
dispatchMuleEvent(String uri, Object payload, Map properties);

Then supporting any given BPMS is just a matter of implementing these interfaces for that BPMS. We could start with, for example: JBoss jBpm, OSWorkflow, BeanFlow. Perhaps we could even create an implementation of these interfaces for BPEL, since many people are using it as a BPMS (though that isn't what it's really for).

Show
Travis Carlson added a comment - I've added an initial attempt at this provider to the sandbox (r2421), though it's completely tied to JBoss jBpm for now. My idea is to define a simple, generic interface for interacting with any BPMS: createProcess(); advanceProcess(Object processId); abortProcess(Object processId); And another interface for generating Mule events from a running process: sendMuleEvent(String uri, Object payload, Map properties); dispatchMuleEvent(String uri, Object payload, Map properties); Then supporting any given BPMS is just a matter of implementing these interfaces for that BPMS. We could start with, for example: JBoss jBpm, OSWorkflow, BeanFlow. Perhaps we could even create an implementation of these interfaces for BPEL, since many people are using it as a BPMS (though that isn't what it's really for).
Hide
Travis Carlson added a comment -

There was a relevant discussion on the mailing list back in April 2005: http://docs.codehaus.org/display/MULE/mail/25482
My implementation is of option #2 from Guillermo's proposed alternatives.

Show
Travis Carlson added a comment - There was a relevant discussion on the mailing list back in April 2005: http://docs.codehaus.org/display/MULE/mail/25482 My implementation is of option #2 from Guillermo's proposed alternatives.
Hide
Holger Hoffstaette added a comment -

btw if you need any ideas - PXE's new Integration API for the Ode project has been released recently: http://svn.apache.org/repos/asf/incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/iapi/

This is by no means the finished version but might give you a few more ideas how Ode as BPEL engine might be used.

Show
Holger Hoffstaette added a comment - btw if you need any ideas - PXE's new Integration API for the Ode project has been released recently: http://svn.apache.org/repos/asf/incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/iapi/ This is by no means the finished version but might give you a few more ideas how Ode as BPEL engine might be used.
Hide
Travis Carlson added a comment -

Still needs documentation (MULE-1227), but it's in the main source tree now and will get released with Mule 1.4

Show
Travis Carlson added a comment - Still needs documentation (MULE-1227), but it's in the main source tree now and will get released with Mule 1.4

People

Vote (0)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: