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 - R29 - Partner link's initializePartnerRole attribute



Hi Mark,

Sorry ... I am not sure I would agree with your particular proposal on removing initializePartnerRole attribute.

The "initializePartnerRole" attribue is used to provide an intent contract point between the BPEL process definition and the rest of SOA system. One of this intent contract point usage is as the input of the deployement mechanism. Their usage of this intent contract point affects the process design as well. (See below)

And, the "initializePartnerRole" attribue does create consequence of runtime behavior of the process. For example, if "initializePartnerRole" is set to "yes" on a particular declaration, then we are guaranteed that "bpel:uninitializedPartnerRole" fault will not be thrown.

From this perspective, this "initializePartnerRole" feature is similar to the inline variable initialization. When a variable is initialized inline, then we are guaranteed that accessing to that variable will not trigger any "bpel:uninitializedVariable" fault. The only difference is: inline variable initialization has value specified inside the process, while the partnerRole value is specified outside the process. (For all practical reasons to make the process more portable, the epr value of partnerRole has to be outside the process.)

Regarding to the example in your bullet point #3, if the process first receives a message on partnerLink PL1 and send another message out on the same partnerLink PL2 later:
  • if the process definition does not have any explicit logic to initialize the partnerRole, and "initializePartnerRole" is set to "no", then static analysis on a process definition may be able to deduce that WS-Addressing like mechanism may be needed in the deployment binding.
  • Otherwise (i.e. if the process definition does have some explicit logic to initialize the partnerRole, or the "initializePartnerRole" is set to "yes") WS-Addressing-like binding may not be needed. If it is the latter case ("initializePartnerRole" is yes"), the designer of a process definition is essentially asking the WS-processor to obtain an epr first before that partnerLink is actively used.

In summary, "initializePartnerRole" is a very handy tool to disambiguate the intent of the process designer and bridges the process definition with other parts of SOA system nicely. And, it does have runtime behavior impact (as stated above). Therefore, removing this attribute does not seem to be a good move.

However, I do agree with you that we want to review our sample process (such as the ones in Section 15.3.2) to see whether initializePartnerRole is needed to be set.


Thanks!


Regards,
Alex Yiu


ws-bpel issues list editor wrote:

This issue has been added to the wsbpel issue list with a status of "received". The status will be changed to "open" if a motion to open the issue is proposed and that motion is approved by the TC. A motion could also be proposed to close it without further consideration. Otherwise it will remain as "received".

The issues list is posted as a Technical Committee document to the OASIS WSBPEL TC pages on a regular basis. The current edition, as a TC document, is the most recent version of the document entitled in the "Issues" folder of the WSBPEL TC document list - the next posting as a TC document will include this issue. The list editor's working copy, which will normally include an issue when it is announced, is available at this constant URL.

Issue - R29 - Partner link's initializePartnerRole attribute

Status: received
Date added: 2 Nov 2006
Date submitted: 02 November 2006
Submitter: Mark Ford
Description: The purpose of the initializePartnerRole attribute on a partner link is to identify any partner links that the process will not initialize through an assign or some EPR scheme like the “reply-to” feature in WS-Addressing. These partner links must be initialized by some infrastructure logic specific to the processor. This logic is out of the scope of the specification but Section 6.2 suggests that it may take place during the deployment of the process.

There are a few problems with the attribute as it exists today.

  1. It is only used during deployment which is something that is not covered by the specification.
  2. There is no difference in the runtime behavior of the process if this attribute is “yes” or “no”. Why do we have an attribute that doesn’t affect runtime behavior?
  3. It may not be meaningful to process designers since the initialization of the partner role could occur through some mechanism outside of the WS-BPEL process like a reply-to in WS-Addressing. For example, if I am designing a process that receives data and then does an invoke on the same partner link, should I set the value of the initializePartnerRole attribute to “yes” or “no”. If I’m expecting the processing of the receive to update the partner link with a reply-to endpoint then I can set it to “no”. If I expect that the deployment packaging will provide me with an endpoint then I should set it to “yes”. It seems possible that I may not know the exact bindings at the time of the process creation.

It is also worth noting that the sample process in Section 15.3.2 defines two partner links without specifying the value of the initializePartnerRole attribute. It seems unlikely that WS-Addressing would be used to initialize the partner roles for these two partner links since they are only used for invokes.
Submitter's proposal:

Remove the attribute altogether from the partner link. This would affect about 3 paragraphs in Section 6.2 along with the appendix for default values and the schema.
Changes: 2 Nov 2006 - new issue


To comment on this issue (including whether it should be accepted), please follow-up to this announcement on the wsbpel@lists.oasis-open.org list (replying to this message should automatically send your message to that list), or ensure the subject line as you send it starts "Issue - R29 - [anything]" or is a reply to such a message. If you want to formally propose a resolution to an open issue, please start the subject line "Issue - R29 - Proposed resolution", without any Re: or similar.

To add a new issue, see the issues procedures document




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