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 - 297 -Proposal For Vote



Hi Mark,

Thank you for taking first stab to add this constraint into spec language.

Few quick notes:
  • Unlike "messageType" "elementType" is not a key word defined in our specification. I would avoid it.
  • Due to pluggable query language scenario, the concept of "identical queries" is that well-defined. If we stick with XPath 1.0, the concept of "identical queries" still remains to be defined and it is not that easy to define (that is not exactly string comparsion). I would suggest to use "SHOULD" wording instead of "MUST" wording here. 
  • Even without a formal definition of "identical queries", I think it is still a good idea to add the "SHOULD" wording to section 7.3. Because, if one defines property based on inconsistent propertyAlias, people would still have problems when they try to assign properties to element-based or messageType-based data.

    Given that I assume that we would pick "SHOULD" wording, I guess it may be better to give messageType-based propertyAlias a priority just in case. And, this messageType-based priority is consistent with <catch> logic.

Here is my suggestiond revision to the proposal:
 ================================
--- begin ---
 
    Observe that in order to retrieve correlation values from a message, a processor MUST find a matching <propertyAlias> and apply it to the message. A <propertyAlias> is considered matching with a message if:
  1. the messageType attribute value used in <propertyAlias> definition matches the QName of the WSDL message type associated with the message
  2. the message is associated with a WSDL message type where the message contains a single part defined by an element and the element attribute value used in  <propertyAlias> definition matches the QName of the element used to define the WSDL part

This matching <propertyAlias> constraint MUST be statically enforced. If both a messageType and element based propertyAlias match the message, then the messageType based <propertyAlias> MUST take priority, while both <propertyAlias> should have identical queries (See Section 7.3)

In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

--- end ---
 
The above change requires a change in Section 7.3 to include this restriction.
 
--- from ---
 
A WS-BPEL process definition MUST NOT be accepted for processing if it defines two or more property aliases for the same property name and WS-BPEL variable type. For example, it is not legal to define two property aliases for the property tns:taxpayerNumber and the messageType txmsg:taxpayerInfoMsg. The same logic would prohibit having two property aliases on the same element QName and property name value or two property aliases on the same type QName and property name value.
 
--- to ---
 
A WS-BPEL process definition MUST NOT be accepted for processing if it defines two or more property aliases for the same property name and WS-BPEL variable type. For example, it is not legal to define two property aliases for the property tns:taxpayerNumber and the messageType txmsg:taxpayerInfoMsg. The same logic would prohibit having two property aliases on the same element QName and property name value or two property aliases on the same type QName and property name value. If a property alias is defined for a single element part messageType and another element-based property alias is defined for the same property QName and element QName is same as the message part then these two property aliases SHOULD have identical queries. This constraint SHOULD be enforced by static analysis.

 ================================


What do you think?


Thanks!


Regards,
Alex Yiu



Mark Ford wrote:
If we introduce a requirement that the messageType and elementType propertyAliases must have identical queries then we don't need to state which one takes priority if both match. My changes are in bold below:
 
--- begin ---
 
    Observe that in order to retrieve correlation values from a message, a processor MUST find a matching <propertyAlias> and apply it to the message. A <propertyAlias> is considered matching with a message if:
  1. the messageType attribute value used in <propertyAlias> definition matches the QName of the WSDL message type associated with the message
  2. the message is associated with a WSDL message type where the message contains a single part defined by an element and the element attribute value used in  <propertyAlias> definition matches the QName of the element used to define the WSDL part

This matching <propertyAlias> constraint MUST be statically enforced. If both a messageType and elementType propertyAlias match the message, then either can be used to retrieve the correlation values as they are required to have identical queries (See Section 7.3)

In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

--- end ---
 
The above change requires a change in Section 7.3 to include this restriction.
 
--- from ---
 
A WS-BPEL process definition MUST NOT be accepted for processing if it defines two or more property aliases for the same property name and WS-BPEL variable type. For example, it is not legal to define two property aliases for the property tns:taxpayerNumber and the messageType txmsg:taxpayerInfoMsg. The same logic would prohibit having two property aliases on the same element QName and property name value or two property aliases on the same type QName and property name value.
 
--- to ---
 
A WS-BPEL process definition MUST NOT be accepted for processing if it defines two or more property aliases for the same property name and WS-BPEL variable type. For example, it is not legal to define two property aliases for the property tns:taxpayerNumber and the messageType txmsg:taxpayerInfoMsg. The same logic would prohibit having two property aliases on the same element QName and property name value or two property aliases on the same type QName and property name value. If a property alias is defined for a single element part message and another property alias is defined for the same property QName and element QName as the message part then these two property aliases MUST have identical queries. This constraint MUST be enforced by static analysis.

 

From: Alex Yiu [mailto:alex.yiu@oracle.com]
Sent: Monday, June 19, 2006 4:44 AM
To: Mark Ford
Cc: wsbpel@lists.oasis-open.org; 'Thomas Schulze'; 'Dieter Koenig1'; Alex Yiu
Subject: Re: [wsbpel] Issue - 297 -Proposal For Vote


Hi Mark,

Thank you for agreeing that <catch> style rules make sense here. Fortunately, <propertyAlias> has fewer knobs than in <catch>. So, its matching rules are much simplier.

Proposal For Vote:
============================

In Section 9.2, change

--- from ---

    Observe that in order to retrieve correlation values from a message, a processor needs to apply a particular <propertyAlias> to the message. In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

--- to ---

    Observe that in order to retrieve correlation values from a message, a processor MUST find a matching <propertyAlias> and apply to the message. A <propertyAlias> is considered matching with a message if:

  1. the messageType attribute value used in <propertyAlias> definition matches the QName of the WSDL message type associated with the message
  2. the message is associated with a WSDL message type where the message contains a single part defined by an element and the element attribute value used in  <propertyAlias> definition matches the QName of the element used to define the WSDL part

This matching <propertyAlias> constraint MUST be statically enforced. When more than one <propertyAlias> definitions are matched with a message, the messageType based <propertyAlias> MUST take priority.

In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

============================

The green parts are based on your original proposal (with some minor rewording).

The blue parts are added to handle element-based propertyAlias matching. They are consistent with the <catch> matching rules defined in section 12.5 (particularly rule #2/#5 there).

I guess this proposal is good because of its consistency with <catch> rules and it is simple enough to avoid any introducing any new bugs.

[After this proposal is passed, we may want to loop back to Issue 280 and wrap it up.]


Thanks!


Regards,
Alex Yiu



Mark Ford wrote:
Hi Alex,
 
Using the <catch> matching rules makes sense, although I suspect that it'll be more than a few sentences. Perhaps a list of the matching rules similar to the one for the <catch> would make it clear.
 


From: Alex Yiu [mailto:alex.yiu@oracle.com]
Sent: Friday, June 16, 2006 8:49 PM
To: Mark Ford
Cc: wsbpel@lists.oasis-open.org; 'Thomas Schulze'; 'Dieter Koenig1'; Alex Yiu
Subject: Re: [wsbpel] Issue - 297 - Does correlation require a propertyAlias with messageType attribute?


Hi Mark,

Thanks for your email. I will try to see whether adding clarification to support element-based alias is simple-enough or too complicated. If too complicated, I would be happy to adopt your current proposal. My current gut feeling is: few more sentences should be good enough to express the matching logic for propertyAlias correctly.

My current thought on how to handle element-based alias for correlation would be similar to that of the <catch> clause matching. That means, the logic would be indifferent on the actual variable usage in message operation related activities.

To answer your questions so far ... :
1) element variable used but elementType propertyAlias not available. Is this an error or does the engine look for a messageType alias?
No, not an error, if the a matching messageType-based alias is available.
2) single part message variable used but messageType propertyAlias not available. Does the processor look for a suitable elementType alias?
Yes, it will try to locate a matching element-based alias.
3) no variable used (<fromPart>, <toPart>). Do we select an elementType or messageType first? What if both are found and they have different <query> expressions? Is that an error?
If both are found, messageType-based would be matched first. (cosistent with the <catch> clause logic)


I hope my current thought makes sense to you guys.
Thanks!


Regards,
Alex Yiu



Regards,
Alex Yiu


Mark Ford wrote:
You mentioned in the call today that you are in favor of allowing elementType propertyAliases in correlation. My preference is to require a messageType propertyAlias because I read the spec to say that all web service interactions (<receive>, <invoke> ...etc) use a message variable for sending/receiving data. In cases where the activity provides an element variable or no variable at all (i.e. <fromPart> or <toPart>) there is an anonymous WSDL message variable created to send/receive the data. When the current spec refers to correlation it talks about messages, not variables. As such, it seems consistent to require a messageType propertyAlias.
 
If you or others feel strongly that support for elementType attributes is needed then I'd ask that you (or others) look at adding language to handle the following cases:
1) element variable used but elementType propertyAlias not available. Is this an error or does the engine look for a messageType alias?
2) single part message variable used but messageType propertyAlias not available. Does the processor look for a suitable elementType alias?
3) no variable used (<fromPart>, <toPart>). Do we select an elementType or messageType first? What if both are found and they have different <query> expressions? Is that an error?
 
 

From: Mark Ford [mailto:mark.ford@active-endpoints.com]
Sent: Saturday, June 10, 2006 12:00 PM
To: 'wsbpel@lists.oasis-open.org'
Subject: RE: [wsbpel] Issue - 297 - Does correlation require a propertyAlias with messageType attribute?

I discussed this with Chris Keller last week and he seemed to recall that this was already settled by a previous issue. After doing a little research I found the following issues which touch on this area:
 
Issue 112: Input/Output Elements on Messaging Activities
http://www.choreology.com/external/WS_BPEL_issues_list.html#Issue112
-- This issue added support for elements on message activities
Issue 145: Properties on Non-Message Variables
-- This issue added support for propertyAliases for elements and types. It does not discuss correlation. Perhaps it was mentioned during the face to face in Hawthorne?
 
If the intent was to allow elementType propertyAliases for correlation then this has not made it into the spec. Does anyone else recall the discussion or can they point me to another issue that might address this? Lastly, if I missed a part of the spec that covers this I'd appreciate a pointer to it as well.
 
Thanks.
 

 

From: ws-bpel issues list editor [mailto:peter.furniss@erebor.co.uk]
Sent: Saturday, June 10, 2006 11:47 AM
To: wsbpel@lists.oasis-open.org
Subject: [wsbpel] Issue - 297 - Does correlation require a propertyAlias with messageType attribute?

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 - 297 - Does correlation require a propertyAlias with messageType attribute?

Status: received
Date added: 10 Jun 2006
Date submitted: 09 June 2006
Submitter: Mark Ford
Description: I'd like a clarification as to the use of a propertyAlias for message correlation. My reading is that the spec requires a propertyAlias with a messageType in order to extract values for correlation. In cases where an activity like a <receive> uses an elementType variable for its data the spec explains that an anonymous temporary WSDL message variable is created for the data and its single part is used to populate the element variable on the <receive>. The same wording (anonymous temporary WSDL message variable) is used to explain <fromPart> and <toPart> behavior.

If the intent is to allow propertyAlias with elementType then we would need to define which propertyAlias would be used in the case that there was a messageType and an elementType since they could have different queries.

If the intent is to require a propertyAlias with messageType then some additional text to Section 9.2 could make this explicit.
Submitter's proposal:

In Section 9.2, change

--- from ---

Observe that in order to retrieve correlation values from a message, a processor needs to apply a particular <propertyAlias> to the message. In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

--- to ---

Observe that in order to retrieve correlation values from a message, a processor MUST apply a <propertyAlias> with a messageType value that matches the QName of the message. In the case in which the application of the <propertyAlias> results in a response that contains anything other than exactly one information item and/or a collection of Character Information Items then a bpel:selectionFailure fault MUST be thrown.

Changes: 10 Jun 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 - 297 - [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 - 297 - Proposed resolution", without any Re: or similar.

To add a new issue, see the issues procedures document (but the address for new issue submission is the sender of this announcement).

--------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. You may a link to this group and all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php






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