Next in thread → Next in month →

RE: [sca-bpel] Issue 5 - The algorithm for deciding whether a partnerLink is a service or a reference needs to be deterministic

From
Patil, Sanjay <>
Date
2007-11-01T16:19:14+00:00
ID
Thread
RE: [sca-bpel] Issue 5 - The algorithm for deciding whether a partnerLink is a service or a reference needs to be deterministic
Couple of comments inline below ...

-- Sanjay

  

  
  From: Danny van der Rijn 
  [mailto:] 
Sent: Thursday, Nov 01, 2007 8:46 
  AM
To: Michael Rowley
Cc: Alex Yiu; 
  
Subject: Re: [sca-bpel] Issue 5 - The 
  algorithm for deciding whether a partnerLink is a service or a reference needs 
  to be deterministic

  

Proposal:  Change the wording as follows:

" 
  
Defininition:  An SCA 
  A simple static analysis 
  is any analysis of the control flow, which does not 
  involve determining the values of any expressions, 
  will be used to determine which role can send the first message.  

  
<Sanjay> I think in addition to 
  describing what SCA static analysis does not involve, we should perhaps add a 
  clause/sentence to describe what it involves, or what its purpose is, 
  etc.</Sanjay>

  
<!--[if 
  !vml]-->
<!--[endif]-->  

  

  
Services: If a an SCA static 
  analysis of the process determines that it is possible that the first message 
  for a partner link will be received in a <receive> activity, the 
  <onMessage> element of a <pick> activity or the <onEvent> 
  element of an event handler then the partner link MUST be 
  wired to has a 
  corresponding SCA service in the component type. If the partner link 
  declaration has initializePartnerRole="yes", 
  then the service MUST 
  must be wired using a binding that knows the 
  identity of the partner as soon as the partner link becomes active (e.g. the 
  binding cannot depend on using a “reply-to” field as the mechanism to 
  initialize partner role.). " 

  
<Sanjay> I think we are using 
  the term 'wire' for different purposes in the above text. As I 
  understand, the SCA specifications in general use the term 'wire' 
  to relate a service with a reference. In the above text, we are 
  using the term wire for relating a SCA service with a BPEL parternLink, 
  and also for relating SCA service with a binding element. I propose 
  that we use the following alternative phrases:

  
s/the partnerLink MUST be wired to corresponding SCA 
  service/the partnerLink MUST be associated with the corresponding SCA 
  service

  
s/the service MUST be wired using a binding/the service 
  MUST be configured using a binding

  
< /Sanjay> 

  

Danny van der Rijn wrote: 
  You've hit upon 
    my major concern, and pointed out that it may be moot.  I might be 
    comfortable with a rewording that defines the static analysis in the same 
    area as the algorithm.  All of the requirements need to be reworded, 
    anyway, to use RFC 2119 (as amended).  I need to think about it a bit 
    further, though, if I may.

Michael Rowley wrote: 
    
      
      

      

      

      
I would propose 
      that we close this issue with no action.  I believe the concern is 
      with this section:

      

      
"If a static analysis of 
      the process determines that it is possible that the first message for a 
      partner link will be received in a <receive> 
      activity...”

      

      
If you only look 
      at this sentence, you could imagine runtimes with different level of 
      sophistication for their static analysis coming to different conclusions 
      for this question.

      

      
However, later in 
      the specification (line 75) says: “A simple static analysis 
      of the control flow, which does not involve determining the values of any 
      expressions, will be used to determine which role can send the first 
      message.” 
       

      

      
I believe that 
      with this caveat, everyone’s static analysis should come to the same 
      conclusion.

      

      
Michael

      

      

      

      

      
      

      
From: Alex Yiu 
      [mailto:] 
Sent: Thursday, October 04, 2007 
      12:16 PM
To: Danny van 
      der Rijn
Cc: ; 
Subject: [sca-bpel] Issue 5 - Title: 
      The algorithm for deciding whether a partnerLink is a service or a 
      reference needs to be deterministic

      

      
Alex Yiu wrote: 
      

      

Issue entered:
http://www.osoa.org/jira/browse/BPEL-5

Alex 
      Yiu wrote: 

      

Hi, Danny, 
      

The way that I read that section is: the logic there is quite 
      deterministic already: 

      
If a partnerLink can be 
      determined as a service, 
then that is a service ... 
If not, 
      
    if reference case#1, then ...
    
      if not #1 and if #2, then ... 
    if not 
      #1 or #2 and if #3, then ..
    if not #1, #2, 
      #3, then ... 

      

Let me give you an 
      example. If a partnerLink is used in both invoke and receive activities 
      without any logical ordering enforced in the process definition, it 
      will go into the reference case. Because, the static analysis CANNOT 
      determine the partnerLink is a service. 

My thought is: if 
      different implementation come out a different componentType definition 
      after static analysis of the same process, it sounds to me that it is more 
      like a bug in an implementation, not the case of the spec being unclear. 
      (unless you can give me a concrete example of our existing rules are not 
      sufficient)

And, I think if users do not want to rely on static 
      analysis of a BPEL process to calculate the componentType, it may be a 
      better idea to ask users to supply an explicit componentType artifact. 
      (That is an issue raised by 
      Anish.)

Thanks!

Regards,
Alex 
      Yiu

Danny van der Rijn wrote: 

      
TARGET: SCA C+I WS-BPEL spec, General 
      

DESCRIPTION: Section 2.1 currently states "If a static analysis of 
      the process determines that it is possible that the first message for a 
      partner link will be received in a <receive> activity, the 
      <onMessage> element of a <pick> activity or the 
      <onEvent> element of an event handler then the partner link has a 
      corresponding SCA service in the component type." 
I have concerns that 
      this will leave cases where one vendor can make such determination, where 
      another vendor, with a less sophisticated static analysis can not.  
      This will leave the algorithm implementation-dependent.  The goal of 
      the algorithm is to produce a component type from a BPEL file in a 
      deterministic way, with no external dependencies. 

PROPOSAL: 
      none
Next in thread → Next in month →