OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [wsbpel] Issue - 2- sub functions

We should be able to reuse pieces of BPEL code within a single process or across multiple processes. The question is how these reusable pieces of BPEL code should be modeled and integrated in the calling processes. 

It seems that one idea would be to model reusable parts of BPEL code (sub-processes) as BPEL processes. As Bernd suggested some time ago, one way or two-way <bpel:invoke>s can be used for asynchronous and synchronous calls, respectively, and the specification could also give a recommendation how to differentiate between internal and external process ports. If we take that approach, we also have to review consequences for the control flow, especially compensation and error handling. Satish pointed out that the BPEL specification includes as its integral part the BA protocol defined in the WS-Transaction specification. This protocol specifies the parent-child relationship between scopes. But, BPEL usage of the BA protocol makes the assumption of localized behavior in a single service. If we model sub-processes as BPEL processes and use the invoke action as mentioned above, we do not have localized behavior in a single service anymore. So, what is missing in BPEL is the semantics!
 for compensation and error handling. It cannot be that for the sub-processes protocols such as WS-Coordination/WS-Transaction are needed. This semantics must be an integral part of the language. 

Also, sub-processes will be modeled as partners, which is misleading from the modeling point of view and at the end the process model will be overloaded with partner link definitions (partner links will be used extensively). I believe this is also an area where some simplifications should be made. 

Kind regards,


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]