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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-bpel message

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


Subject: Re: [sca-bpel] NEW ISSUE: SBPEL2022 has an incorrect 'MAY' and isnot applied recursively


Danny van der Rijn wrote:
> [changing subject to include issue #]
> 
> As we discussed on the call, we need to do 2 things:
> 
> 1 - decide what it is we actually want the spec to require here
> 2 - come up with language that specifies that
> 
> IMO it will be much easier to do #1 if we don't do #2 at the same time.

+1

> I'll take a stab at what it is we want to do, using an illustrative (and 
> pathological) example.
> 
> Imagine a process with the following (scopes and) partnerLinks:
> 
> Scope1
>     shipping
>     _shipping_2
>     receiving
>     _receiving_2
>    
> Scope2
>     _shipping_1
>     _receiving_1
>    

Where is the collision here? They all have unique names.

> 
> As context, here's section 2.3:
> 
> "It is possible to declare partner links local to a <scope> in WS-BPEL, 
> besides declaring partner links at the <process> level. The names of 
> partner link declared in different <scope> could potentially share the 
> identical name. [SBPEL2019 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2019_T>] 
> When multiple partner links share the same name, the scheme defined by 
> [SBPEL2020 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2020>]-[SBPEL2022 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2022>] 
> MUST be used to disambiguate different occurrences of partner link 
> declaration.
> 
>           Let "originalName" be the original NCName used in multiple 
> partner link declarations.
> 
>           [SBPEL2020 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2020_T>] 
> The introspected component type MUST include services or references 
> corresponding to these partner links with names: "_orginalName_1" to 
> "_orginalName_N". Whether the partner link corresponds to a service or 
> reference does not affect the name used. [SBPEL2021 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2021_T>] 
> The number suffixes for the partner links MUST be based on the lexical 
> order of the corresponding partner link occurrences in the process 
> definition.
> 
>           [SBPEL2022 
> <imap://TSI-PA%5Cdannyv@imap1.tibco.com:143/fetch%3EUID%3E/Sent%20Items%3E27924#BPEL2022_T>] 
> If any "_orginalName_i" (where 1 <= i <= N) is already the name of a 
> partner link declaration in the process definition, additional 
> underscore characters MAY be added at the beginning of all aliases 
> consistently to avoid collision."
> 
> 
> I read the above rules as resulting in the following:
> 
> Scope1
>     shipping         <-  _shipping_1
>     _shipping_2   <- __shipping_2_1
>     receiving         <- _receiving_1
>     _receiving_2   <- __receiving_2_1
>    
> Scope2
>     shipping         <- _shipping_2
>     receiving         <- _receiving_2
>     _shipping_1   <- __shipping_1_1
>     _receiving_1   <- __receiving_1_2
> 
> 
> Note:  This solution is not handled in a single-pass.  Would a 
> single-pass solution be preferable?
> 
> I'm not sure that this is the prettiest solution, but then again, I'm 
> not sure I care.  I'd welcome other solutions, as well as other 
> interpretations of the text.  However, all that is truly important, IMO, 
> is that we agree on what we want (#1) and then do our best to encode it 
> (#2).  If #2 proves too difficult for our decision on #1, then I propose 
> we change #1.
> 
> Danny
> 
> 
> 
> Danny van der Rijn wrote:
>> If you're going down to this level of detail, I think you need to be 
>> more explicit about what "recursive"  and (where 1 <= i <= N) mean.  
>> Something like
>>
>> "If any "_originalName_i" (where N is the number of partnerLinks of 
>> name 'originalName', 1 <= i <= N) is already the name of a partner 
>> link declaration in the process definition, then the smallest number 
>> of additional underscore characters MAY  MUST be added at the 
>> beginning of all aliases originalNames, consistently to avoid 
>> collision, to avoid a collision."
>>
>>
>>
>> Anish Karmarkar wrote:
>>> Title: SBPEL2022 has an incorrect 'MAY' and is not applied recursively
>>>
>>> Target: SCA BPEL C&I PR 01
>>>
>>> Description:
>>> SBPEL2022 states the following:
>>> "If any "_orginalName_i" (where 1 <= i <= N) is already the name of a 
>>> partner link declaration in the process definition, additional 
>>> underscore characters MAY be added at the beginning of all aliases 
>>> consistently to avoid collision."
>>>
>>> 'MAY' here means that some runtimes may not choose to do this. We 
>>> want deterministic names that are independent of the runtime.
>>>
>>> It is also possible that after an additional underscore is added at 
>>> the beginning it still results in a conflict. SBPEL2022 needs to be 
>>> applied recursive till there is no collision.
>>>
>>> Proposal:
>>>
>>> Replace SBPEL2022 with --
>>> "If any "_orginalName_i" (where 1 <= i <= N) is already the name of a 
>>> partner link declaration in the process definition, then an 
>>> additional underscore characters MAY  MUST be added at the beginning 
>>> of all aliases names, recursively, consistently to avoid collision, 
>>> until a collision is avoided."
>>>
>>> (alternately, we can say something along the lines of "... additional 
>>> minimum number of underscore characters that results in no collision 
>>> MUST be added at the beginning of all names consistently."
>>>
>>> -Anish
>>> --
>>>
>>> --------------------------------------------------------------------- 
>>> To unsubscribe from this mail list, you must leave the OASIS TC that 
>>> generates this mail. Follow this link to 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]