Paul and Alex, Thanks for your quick and detailed responses. And sorry about asking so many questions at once ... :-)
Some follow-up below. > 2. The InstanceManagement interface seems to have a suspend and resume > > operations. Is it possible to do a partial suspend and resume e.g. on a > > particular branch? For example if there were two activities A and B > > executing in parallel, I would like to suspend A and not B. > > > Like Paul said, it's possible internally but it's not exposed through the > InstanceManagement API. You're first to ask! Keeping with the spirit of "asking a lot", how hard would it be to expose this through the Management API? If I decide to go with using Apache ODE, I will be happy to help but I need to get a sense of how much work this might involve? > 4. Is there any support available or planned for allowing modifying to > > workflow instance during execution? For example, change an activity that > > has not been executed so far. > If you know what you're doing, it would not take much work in the engine to > allow this. However my take on the subject is that we are a few > Ph.D.'saway from a sane model to safely allow dynamic changes to > process models. > Based on my experience, I would say the better investment is to break down > processes into shorter-running and more composable pieces. Workflow > generally requires a more malleable design where state and transitions are > modeled as dynamic/malleable matter rather than defined as static program. > Consider BPEL4People as a step in that direction. > I agree with what you say about having a sane model to safely allow dynamic changes. Maintaining consistency and state management is actually quite tricky. > There's no such direct facility at the moment, although the engine generates > events for these cases so it would be possible to build something out of the > existing event handler mechanism. So I guess it would depend on the > needs/design you have in mind. The BPEL workflows I am working with right now are Grid scientific workflows that have a huge amount of variability in the underlying resources. What I am looking at (actually for my Phd thesis) is building planning and dynamic adaptation capabilities atop a BPEL workflow engine which can manipulate workflow (pre-execution and real-time) to bypass some of these failures. In the event of the failure, I would like an external service to be invoked. This service might make any corrections necessary before invoking possibly a recoverActivity. I am looking at available BPEL engines to see how much management support is available that might meet a majority of my requirements. thanks Lavanya
