← Prev in month ← Prev in thread

RE: [wsbpel] Issue 6 - Rough draft of proposal for vote

From
Trickovic, Ivana <>
Date
2004-09-01T14:33:12+00:00
ID
Thread
RE: [wsbpel] Issue 6 - Rough draft of proposal for vote
Alex,

Regarding the 
proposed semantics: Would you elaborate how the fault 
(bpws:earlyCompletionFault) will be 
signaled to other incomplete flow activities? Those activities are enclosed 
within the flow activity. If I understand the fault handling model 
correctly there is no possibility to communicate faults to nested 
activities/scopes except canceling the enclosing activity (in this case, the 
flow activity). 

Regards,

Ivana

  
-----Original Message-----
From: Alex Yiu 
  [mailto:]
Sent: Mittwoch, 1. September 2004 
  04:28
To: Satish Thatte
Cc: ; 
  ; Alex Yiu
Subject: Re: [wsbpel] Issue 6 
  - Rough draft of proposal for vote

Hi, Yaron and 
  others, 

I agree with the concern of Edwin and Satish. We should define 
  a general mechansim to express early completion condition. Then, define the 
  "orJoin" attribute or other syntax as a macro/special syntax short 
  cut.

If you guys don't mind, I can supplement some alternative ideas to 
  this issue. I am in the thinking-out-loud mode again. That means, I need to 
  verify whether this idea makes sense to other people at Oracle.  [ But, 
  as Ron said, this thinking-out-loud mode has worked quite well for me in the 
  past. ;-) ]

We should allow a <completeCondition> subelement 
  attached to parallel-flow-starter activity (e.g. <flow> or future 
  potential parallel <forEach>). 

Syntax of 
  completeCondition:
It has two forms:
(1) 
  <completeCondition>a_boolean_expr</completeCondition> 
(2) 
  <completeCondition minFlow="a_number" /> 
    
          ...  or ...
    
     <completeCondition 
  countMinFlow="yes">a_number_expr</completeCondition> 

The 
  first form is the most generic form of completion condition. 
The second 
  form provides a convienent shorthand to achieves the N out of M semantics. 
  

The suggested orJoin="yes" is equivalent to: 
  
<flow>
    <completeCondition minFlow="1" /> 
  
     ... 
</flow>

Semantics of 
  completeCondition:
The complete condition will be evaluated at the 
  completion of each flow. If the condition is true, a standard fault 
  bpws:earlyCompletionFault will be signaled to other incomplete flow 
  activities. Each incomplete flow activity can potentially be compensated if 
  each flow is a scope activity. (Potentially, we can add static analysis to 
  enforce that when a completionCondition is used in <flow>, <scope> 
  must be used as activities within the flow.) 

The completeCondition 
  itself is executed in the same scope context of the <flow> 
  activity.  [ And, the completeCondition should be executed serially, to 
  avoid racing condition among flows (?)]

I hope this rough draft of 
  ideas serves as a good base of discussion for this 
  issue.

Thanks!

Regards,
Alex 
  Yiu

Satish Thatte wrote:

  
    
    
    
    

    
I echo Edwin's 
    second question.  Yaron, your proposal clearly doesn't address the 
    intent of 6.  It seems too narrow to just address this corner case of 
    completion of one among many (corner case from my 
    perspective).

    

    
Satish

    

    

    

    

    

    
    

    
From: Edwin 
    Khodabakchian [mailto:] 
Sent: Friday, August 27, 2004 
    5:38 PM
To: 
Subject: RE: [wsbpel] Issue 6 - Rough 
    draft of proposal for vote

    

    

    
Hi 
    Yaron,

    
2 
    questions:

    
1) are we sure that termination 
    is the desired behavior for the non completed 
    activity?

    
2) what happens if the join rule 
    is: "the first search result which is non empty or includes at least 3 
    entries with more than 85% accuracy"? The point here is that a lot of join 
    patterns might have logic in them. I know that in the past we talked about 
    having something like <break> for flow. (This is something that a lot 
    of our customers are asking us and might address the same us case is a more 
    flexible way specially if the <break> can be configure to tell the 
    engine to compensate or terminate).

    
Best,

    
Edwin
← Prev in month ← Prev in thread