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


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.

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. 
> 
> 


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