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 - 107 - Proposal to Vote


One of the outcomes of the discussion around issue 81 is that it 
actually makes sense to allow for empty to occur before start 
activities. But I recognize that this is not a normative statement of 
the spec.

But in any case the other issues mentioned in my letter still stand.

Assaf Arkin wrote:
> Yaron Y. Goland wrote:
> 
>> Imagine I have the following abstract process:
>>
>> process abstract="true"
>>    sequence
>>       opaque
>>       receive
>>
>> I want it to be undefined in the abstract process definition if the 
>> receive is a start activity or not. After all, if opaque is replaced 
>> by empty then it would be legal for receive to be a start activity.
> 
> 
> A start activity cannot follow a base activity, and the empty activity 
> is a base activity.
> 
> Assaf
> 
> 
>>
>> The default value for createInstance is no. Therefore it is impossible 
>> for me to leave the receive activity's status as a potential start 
>> activity as undefined. Only if there was a createInstance="opaque" 
>> would the ambiguity be possible.
>>
>> Similarly if I want to define a messaging operation but be ambiguous 
>> as to what exactly message I'm sending or receive, I just want to 
>> specify who I am communicating with, there is no way to do that if I 
>> can't say operation="opaque".
>>
>> By not providing for opaque attributes I am required to specify 
>> aspects of an abstract process that in a templating scenario I 
>> wouldn't want to have to specify.
>>
>>         Yaron
>>
>>
>> rkhalaf wrote:
>>
>>>
>>>
>>> This proposal affects spec section 15 (Extensions for Business
>>> Protocols). I'm not going to do spec wording. This is split into four
>>> parts: base, activities, expressions, and attributes.
>>>
>>> ---
>>>
>>> Base (w/ background):
>>>
>>> In abstract processes, operational details may be abstracted away
>>> either through the omission of specific BPEL elements or attributes
>>> listed in the specification, and/or through the use of opaque tokens.
>>> Its abstract status states that any concrete realizations of it may
>>> perform additional processing steps that are not relevant to the
>>> audience to which it has been given.
>>>
>>> It must be stressed that opaque entities (activities, etc) are not the
>>> only points of extension allowable in creating a process derived from or
>>> related to an abstract process that uses them. In particular, a related
>>> executable process MAY contain additional processing steps (activities,
>>> fault handlers, etc) and  parterLinks including the extras that may be
>>> required to carry these out(correlation sets, variables).
>>>
>>> Opaque entities:
>>>
>>> Part  A - Opaque activities:
>>>
>>> An activity called 'opaque' shall be introduced for the exclusive use of
>>> abstract processes. An opaque activity explicitly hides a concrete BPEL
>>> activity whose behavior is not relevant to the recipient/user of the
>>> abstract process.  An opaque activity is a BPEL activity and therefore
>>> has the same standard elements and attributes that all BPEL activities
>>> have (see spec section 11.1 and 11.2).
>>>
>>> Examples of using opaque activities include, but are not restricted to,
>>> creating process templates (marking the points of normative extension
>>> in a process) and edge cases where simple omission of an activity
>>> creates a syntactic problem, e.g., if the omitted activity is a join
>>> point for several links.
>>>
>>> At first glance, it seems that this could instead be done using "empty"
>>> , but the difference is that "empty" explicitly says "I do nothing
>>> here," whereas "opaque" is really saying "some magic occurs here but
>>> it's hidden on purpose".
>>>
>>>
>>> PART B - Opaque expressions (incl assignment):
>>>
>>> Opaque assignment (<from opaque="yes") is used for capturing variable
>>> creation/modification in a yet-to-be-concretized mechanism/fashion. An
>>> example of usage is to express non-determinism: the obvious case being a
>>> process that needs to show a decision point with alternative outcomes
>>> without specifying how the decision is reached. In this case the
>>> expressions that constrain each branch may need to be left unspecified,
>>> but it may also be convenient to make a specific value or quantity such
>>> as a price threshold unspecified, so that explicitly specified
>>> conditions relative to the threshold become non-deterministic as a
>>> result of the threshold value being unknown.
>>>
>>> In addition to <from opaque="yes"/>, this proposal asks for allowing
>>> transitionConditions  to be opaque. This avoids the default "true"
>>> value. If an expression is opaque, the expressionLanguage attribute on
>>> it is meaningless since there is no expression syntax to refer to.
>>>
>>> -sample syntax:
>>> <transitionCondition opaque="yes"/>
>>>
>>> PART C - Opaque attributes:
>>>
>>> No change to the spec.
>>>
>>> (background info on why not attributes: They were originally proposed to
>>> make all hiding explicit but there was a lot of resistance to that.
>>> Then, they were proposed  for attributes that have defaults in BPEL -
>>> but all the examples that were put forward created more agony than the
>>> uniformity  using opaque would have brought to the table. The reason was
>>> that they are core to the semantics of the constructs they are attached
>>> to. Examples include suppressJoinFailure, isolated (scopes),
>>> createInstance, and initiate (correlation sets). Therefore, I propose no
>>> change to the spec.)
>>>
>>>
>>> --- Rania
>>>
>>>
>>> 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. 
>>>
>>>
>>
>> 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. 
>>
>>
> 
> 


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