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: ISSUE # 23 Addendum && Re: [wsbpel] implicite links of the runtimeengine (was: Implicit <sequence> macro)


The discussion thread "Implicit <sequence> macro" concludes that a sequence 
construct can be replaced by an equivalent flow construct with sequential 
links. But we haven't talked about the join condition needed to acheive this 
equivalency.

If this group decides to make any spec clarifications as part of the resolution 
to issue 23, it may be worth briefly describing in the spec, under what join 
conditions this equivalency may be acheived. Even though this may be purely an 
implementation exercise, this has some academic value to the casual reader.

There are atleast two cases to consider:

CASE 1: Translating a sequence-without-explicit-links-construct into an 
equivalent flow-with-explicit-links-construct

Let's consider a sequence { a, b, c } with no link dependencies. a, b, c are 
all activities. This may be translated to an equivalent flow { a <- b <- c }, 
using an implicit join condition, inclusive-OR, to evaluate the link 
dependencies a <- b and b <- c.

So, a sequence-without-explicit-links-construct can be readily replaced by an 
equivalent flow-with-explicit-links-construct, using the inclusive-OR operation 
of the implicit join condition rule.

CASE 2: Translating a sequence-with-explicit-links-construct into an equivalent 
flow-with-explicit-links-construct

Let's consider a sequence { a, b, c } with link dependencies b -> x and c -> y, 
similar to the one, Satish pointed to earlier, in the spec. a, b, c, x, y are 
all activities. Note, x and y are activities outside the sequence. Translating 
the sequence to a flow, that is,

      x  y			x    y

      ^  ^			^    ^
      |  |         ==>>     	|    |

{ a, b, c }		 { a <- b <- c }

In this case, it does not seem possible to use the same inclusive-OR operation 
of the implicit join condition rule, on a 
sequence-with-explicit-links-construct, in order to produce an equivalent 
flow-with-explicit-links-construct.

In this case, instead of using the implicit join condition rule, if the engine 
uses an explicit join condition rule of
(getLinkStatus(AtoB) && (getLinkStatus(XtoB) || getLinkStatus(..) || ..))
then these constructs are readily exchangeable.

Note: It is also possible for an execution engine to use for CASE 1, the 
explicit join condition of CASE 2, instead of the implicit inclusive-OR join 
condition. That is, CASE 1 become a special case of CASE 2. This makes 
unnecessary the use of implicit join condition for the translation.

peter.furniss@choreology.com: Peter, could you add this as an addendum to issue 
23, please? thank you.



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