← Prev in month ← Prev in thread
Next in thread → Next in month →

Re: [wsbpel] Issue - 92.6 - proposal to vote

From
Alex Yiu <>
Date
2005-05-17T23:52:56+00:00
ID
Thread
Re: [wsbpel] Issue - 92.6 - proposal to vote
Hi all,

Formal proposal to vote: changing from "SHOULD" to "should" highlighed
in GREEN compared with the
last draft. 

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

Proposal Draft for Issue 92.6: need for an explicit syntax token to
apply extension semantics from a NS URI
Last modified: May 17, 2005 - 5 pm PDT

Applied the following the text to the paragraph describing
<extension> syntax:

--------------------------------------------

An extension declaration through <extension> syntax does not
automatically imply the application of any extension semantics defined
in the corresponding namespace to the process definition. It merely
declares the properties of the namespace of extension, such as, using
"mustUnderstand" attribute to denote whether a WS-BPEL processor can
safely ignore related extensions. 

In order to apply an extension semantics to a WS-BPEL process
definition, one MUST use and include the corresponding syntax token
(either in an element form or an attribute form) explicitly in the
WS-BPEL source code and attach the token to a WS-BPEL extensible
construct. 

The extension semantics can ONLY affect BPEL constructs within the
syntax sub-tree of the element where the explicit syntax token attached
to. In other words, extension syntax token MUST NOT "leak" its
semantics outside the subtree. As WS-BPEL source code itself is an XML
document, the definition of syntax sub-tree is trivial and can be
borrowed from self-or-descendant concept from XML world. Here are two
examples to illustrate the above concept further: 

<process>

    ... 

    <scope>

        <sequence>

           <invoke operation="operation1" 

                     foo:invokeProperty="someNature"
... />

           <invoke operation="operation2" ... />

           <invoke operation="operation3" 

                     foo:invokeProperty="someNature2"
... /> 

        </sequence> 

    </scope> 

</process>

The "foo:invokeProperty" extension attribute are applied to
<invoke> activities for "operation1" and "operation3". The
<invoke> activity for "operation2" MUST NOT be affected. 

<process>
    ... 
    <scope>
        <foo:invokeProperty>someNature</foo:invokeProperty>

        <sequence>
           <invoke
operation="operation1" ... />
           <invoke
operation="operation2" ... />
           <invoke
operation="operation3" ... /> 
        </sequence> 
    </scope> 
</process> 

On the other hand, the "foo:invokeProperty" extension element can be
potentially applied to all <invoke> activities within the
<scope> activity where the extension element are attached to. 

Apart from the above "MUST" restrictions, here are some extra recommended
guidelines for the design of extension syntax and semantics:

  
Each extension syntax token should carry
only semantics
that fits
into a relatively modular and elegant boundary. An counter example of
bad design would be: one single extension syntax that carries dozens of
overloaded extension semantics ranging from transaction to security,
from message delivery QoS to XML data manipulation shortcuts. One
should break down the above variety of extension semantics into
different extension syntax token. 

  

  
Each extension syntax token should have
a set of
well-defined attachment points,
instead of making an extension syntax applicable to every BPEL
extensible constructs. Using the "invokeProperty" example above, the
set of attachment points are <invoke> and <scope>
constructs. Designers of extension are encouraged to keep the set of
attachment points small within reasons and to try to avoid using
grander level constructs (e.g. <process> and <scope>) as
attachment points  unless the semantics of extension require. 

--------------------------------------------

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

Regards,

Alex Yiu
← Prev in month ← Prev in thread
Next in thread → Next in month →