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


+1.

This really makes properties more useful, consistent, and will improve 
the readability and maintainability of of BPEL process definitions. I 
like it!

-Ron

Yaron Y. Goland wrote:

> Issue 145 - Properties on Non-Message Variables
>
> Proposal: Allow for the definition of properties on non-WSDL messages.
>
> Rationale: Properties represent a fundamental design approach where 
> information in potentially very complex XML variables is made 
> available in a simple name/value fashion. This feature is just as 
> useful for regular XML variables as it is for WSDL messages and should 
> be available for both.
>
> Changes Required: Change propertyAlias to make messageType and part 
> attributes optional and introduce element and type attributes. Specify 
> that getVariableProperty can take arbitrary BPEL variables as 
> arguments. Update the terminology to make message properties a type of 
> variable properties.
>
> Section 1:
>
> From: WS-BPEL uses a notion of message properties to identify 
> protocol-relevant data embedded in messages.
>
> To: WS-BPEL uses a notion of message properties, which are a type of 
> variable property, to identify protocol-relevant data embedded in 
> messages.
>
> Section 6.4:
>
> From: Process definitions also rely on other constructs such as 
> partner link types, message properties and property aliases (defined 
> later in this specification) which are defined within WSDL 1.1 
> documents using the WSDL 1.1 language extensibility feature.
>
> To: Process definitions also rely on other constructs such as partner 
> link types, variable properties and property aliases (defined later in 
> this specification) which are defined within WSDL 1.1 documents using 
> the WSDL 1.1 language extensibility feature.
> Section 8:
>
> Change title to “Variable Properties”
>
> Note: There are references in the spec to (see Message Properties) 
> this will need to be changed to (see Variable Properties)
>
> Section 8.1:
>
> Create section 8.1.1 titled “Motivation for Message Properties”, 
> insert current section 8.1 text there.
>
> Create section 8.1.2 titled “Motivation for Variable Properties” with 
> the following value:
>
> Message properties are an instance of a more generic mechanism, 
> variable properties. All variables in BPEL can have properties defined 
> on them. Properties are useful on non-message variables as a way to 
> isolate the BPEL process’s logic from the details of a particular 
> variable’s definition. Using properties a BPEL process can isolate its 
> variable initialization logic in one place and then set and get 
> properties on that variable in order to manipulate it. If the 
> variable’s definition is later changed the bulk of the BPEL process 
> definition that manipulates that variable can remain unchanged.
>
> Section 8.2:
>
> From: “Properties can occur anywhere in a message, including in the 
> message context.”
>
> To “Properties can occur anywhere in a variable.”
>
> Insert the following paragraph after the existing paragraph that 
> begins “In correlation, the property name must have global 
> significance…”:
>
> Even in the general case of properties on XML typed WS-BPEL variables 
> the property name should  maintain its generic nature. The name is 
> intended to identify a certain kind of value, often with an implied 
> semantic. Any variable the property is available on is therefore 
> expected to provide a value that meets not just the syntax of the 
> property definition but also its semantics.
>
> End section 8.2 after the schema for property definitions (which this 
> proposal does not change).
>
> Insert section 8.3 titled "Defining Property Aliases", the content of 
> this new section is based on the text that was originally in section 
> 8.2 after the property schema definition:
>
> Properties used in business protocols are typically embedded in 
> application-visible variables. The notion of aliasing is introduced to 
> map a global property to a field in a specific message part or 
> variable value. The property name becomes an alias for the message 
> part and/or location, and can be used as such in Expressions and 
> Assignment in abstract business processes. As an example, consider the 
> following WSDL message definition:
>
> 1234567890123456789012345678901234567890123456789012345678901234567890
>          1         2         3         4         5         6
> <definitions name="messages"
>         targetNamespace="http://example.com/taxMessages.wsdl";
>         xmlns:txtyp="http://example.com/taxTypes.xsd";
>         xmlns="http://schemas.xmlsoap.org/wsdl/";>
>         <!-- define a WSDL application message -->
>         <message name="taxpayerInfoMsg">
>           <part name="identification" element="txtyp:taxPayerInfoElem"/>
>         </message>
>                ...
> </definitions>
>
> The definition of a global property and its location in a particular 
> field of the message are shown in the next WSDL fragment:
>
> 1234567890123456789012345678901234567890123456789012345678901234567890
>          1         2         3         4         5         6
> <definitions name="properties"
>         targetNamespace="http://example.com/properties.wsdl";
>         xmlns:tns="http://example.com/properties.wsdl";
>         xmlns:txtyp="http://example.com/taxTypes.xsd";
>         xmlns:txmsg="http://example.com/taxMessages.wsdl";
>         xmlns="http://schemas.xmlsoap.org/wsdl/";>
>
>         <!-- define a correlation property -->
>
>         <bpws:property name="taxpayerNumber" type="txtyp:SSN"/>
>
>                ...
>
>         <bpws:propertyAlias propertyName="tns:taxpayerNumber"
>
>                messageType="txmsg:taxpayerInfoMsg" part="identification">
>
>                <query>
>                /txtyp:taxPayerInfoElem/txtyp:socialsecnumber
>                </query>
>         </bpws:propertyAlias>
>
>         <bpws:propertyAlias propertyName="tns:taxpayerNumber"
>                element="txtyp:taxPayerInfoElem">
>                <query>
>                /txtyp:taxPayerInfoElem/txtyp:socialsecnumber
>                </query>
>         </bpws:propertyAlias>
> </definitions>
>
> The first bpws:propertyAlias defines a globally named property 
> tns:taxpayerNumber as an alias for a location in the identification 
> part of the message type txmsg:taxpayerInfo.
>
> The second bpws:propertyAlias provides a second definition for the 
> same globally named property tns:taxpayerNumber but this time as an 
> alias for a location inside of the element txtyp:taxPayerInfoElem.
>
> The presence of both aliases means that it is possible to retrieve the 
> social security number from both a variable holding a message of 
> messageType txmsg:taxpayerInfo as well as an element defined using 
> txtyp:taxPayerInfoElem.
>
> The syntax for a propertyAlias definition is:
>
> 1234567890123456789012345678901234567890123456789012345678901234567890
>          1         2         3         4         5         6
> <definitions name="ncname"
>         ... >
>         <bpws:propertyAlias propertyName="qname"
>                messageType="qname"? part="ncname"?
>                type="qname"? element="ncname"?>
>            <query queryLanguage="anyURI"?>?
>            ... queryString ...
>            </query>
>         </bpws:propertyAlias>
>         ...
> </wsdl:definitions>
>
> A property alias element MUST use one of the three following 
> combinations of attributes:
> •    messageType and part,
> •    type or
> •    element.
>
> When a propertyAlias is used with the messageType/part combination 
> then the property MUST be available on all BPEL variables declared 
> with the same messageType. The part attribute and query element is 
> applied against the BPEL messageType variable to either set or get the 
> property variable in the same way that the part attribute and query 
> element are used in the first from and to specs in copy assignments.
>
> If a propertyAlias is used with a type attribute then the property 
> MUST be available on all BPEL variables of that type. The query is 
> applied against the BPEL variable to either set or get the property 
> variable in the same way that the query is used in the first from and 
> to specs in copy assignments when applied against BPEL variables 
> defined using a type.
>
> If a propertyAlias is used with an element attribute then the property 
> MUST be available on all BPEL variables declared using the same 
> element. The query is applied against the BPEL variable to either set 
> or get the property variable in the same way that the query is used in 
> the first from and to specs in copy assignments when applied against 
> BPEL variables defined using an element definition.
>
> Section 9.0
>
> From: Abstract processes are restricted to limited manipulation of 
> values contained in message properties but are permitted to use 
> nondeterministic values to reflect the consequences of hidden private 
> behavior.
>
> To: Abstract processes are restricted to limited manipulation of 
> values contained in variable properties but are permitted to use 
> nondeterministic values to reflect the consequences of hidden private 
> behavior.
>
> Section 9.1
>
> From: If the given property does not appear in any of the parts of the 
> variable's message type, then the semantics of the process is undefined.
>
> To: If the referenced property is not defined or if there does not 
> exist a propertyAlias to associate the property with the referenced 
> variable then the semantics of the process is undefined.
>
> Section 9.3
>
> From: The third from-spec and to-spec variants allow explicit 
> manipulation of message properties (see Message Properties) occurring 
> in variables.
>
> To: The third from-spec and to-spec variants allow explicit 
> manipulation of variable properties (see Variable Properties) 
> occurring in variables.
>
> Section 10.2
>
> From: They are abstract in the sense that their occurrence in messages 
> needs to be separately specified (see Message Properties).
>
> To: They are abstract in the sense that their occurrence in variables 
> needs to be separately specified (see Variable Properties).
>
> Section 14.1
>
> From: If the given property does not appear in any of the parts of the 
> variable's message type or the given property definition selects a 
> node set of a size other than one, then the standard fault 
> bpws:selectionFailure MUST be thrown by a compliant implementation.
>
> To: If the referenced property is not defined, if there does not exist 
> a propertyAlias to associate the property with the referenced variable 
> or if the given property definition selects a node set of a size other 
> than one, then the standard fault bpws:selectionFailure MUST be thrown 
> by a compliant implementation.
>
>
> To unsubscribe from this mailing list (and be removed from the roster 
> of the OASIS TC), go to 
> http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php. 
>
>

S/MIME Cryptographic Signature



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