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 9 - proposal draft for discussion


Hi Paco,

As you mention, there is a fuzzy boundary between checks that are purely syntactic and checks that require "static analysis". On the other end, it is also difficult to set crisp boundaries between the static checks that are required and those checks that will not be mandatory because they are not at the same level of complexity as the others. For example, should we leave the following constraint aside?
"A link MUST NOT cross the boundary of a while or forEach activity, an event handler or a compensation handler."
Also, I understand that the following statement was included in the list because static analysis is explicitly requested in the body of the spec:
"It is illegal for a link to have an activity as a target if the source activity of the link is an ancestor of the target activity of the link."
But this is just a special case of a more general rule that could also be checked statically:
"A link MUST NOT create a control cycle, that is, the source activity must not have the target activity as a logically preceding activity"
Basically it means that the relational union of the "control link" relation and the "structured activity-subactivity" relation must be an acyclic relation. And even though this is not hard to check, it may be left out of the "required static analysis" list since it is not a "simple check". But again, the boundary here is a bit fuzzy.

marlon


-----Original Message-----
From: Francisco Curbera [mailto:curbera@us.ibm.com] 
Sent: Tuesday, March 14, 2006 7:49 AM
To: wsbpel@lists.oasis-open.org
Subject: Re: [wsbpel] Issue 9 - proposal draft for discussion


Vinki and I took turns to go over the spec and collect places where static
analysis (SA) is required or might be granted. A draft of a SA appendix is
attached. It is of course only a first draft we can use for a discussion of
issue 9 on Monday.

About how the list was compiled: Vinki went included statements where
"static analysis" is explicitly requested. After that I went over places
where MUST/must occurs. This forced me to make judgements about which of
those MUSTs would require SA; in particular, I tried not to include purely
syntactic statements (i.e. about the "form" of individual elements), even
if some of those cannot be represented in XML Schema. The boundary between
what is pure syntax and what is not is relatively fuzzy so I believe we'll
be discussing that point.

Paco

(See attached file: Appendix - Static Analysis.doc)




                                                                                                                                        
                      Alex Yiu                                                                                                          
                      <alex.yiu@oracle.        To:       Danny van der Rijn <dannyv@tibco.com>                                          
                      com>                     cc:       wsbpeltc <wsbpel@lists.oasis-open.org>, Alex Yiu <alex.yiu@oracle.com>         
                                               Subject:  Re: [wsbpel] Issue 9 - proposal draft  for discussion                          
                      03/13/2006 03:10                                                                                                  
                      PM                                                                                                                
                                                                                                                                        





Hi Danny,

I am OK with your suggested rephrasing of the last sentence of the second
paragraph.

Thanks!

Regards,
Alex Yiu


Danny van der Rijn wrote:
      I need to give this some thought, but right off the bat, I would
      remove any notion of a configurable switch to stay consistent with
      not mentioning the elephant.  Maybe even just rephrase to:

      Such an implementation SHOULD be configurable to disable these
      non-specified static analysis checks.

      Alex Yiu wrote:

            Hi all,

            As mentioned in the conf call last week, the way I interpret
            Yaron's proposal more than a year ago was:  ...
            http://lists.oasis-open.org/archives/wsbpel/200409/msg00167.html
                  To: BPEL4WS takes it as a general principle that
                  compliant
                  implementations MAY choose to perform static analysis to
                  detect and
                  reject process definitions that may have undefined
                  semantics. Such
                  analysis SHOULD be performed optimistically, that is,
                  assuming the
                  process has no syntactic errors then if there exists at
                  least one
                  execution path from each start activity in the process
                  that can complete
                  successfully then the process MUST be accepted for
                  execution.

            ... basically to suggest (RFC SHOULD) WS-BPEL implementation
            become a scripting engine like interpreter. E.g. say there is
            an if-then-else block and the else-block has a syntactic
            correct  process definition (i.e. passing XSD validation), a
            WS-BPEL process should still accept it, no matter how serious
            semantic error the else-block code contains (e.g. failure to
            resolve variables or partnerLinks).

            I am not sure this is a preferred direction that the spec
            should indicate to implementators, while I understand Yaron's
            intention to ensure certain forms of portability.

            Here is my attempt (as Diane requested) to rephrase that
            paragraph to encourage a higher level of portability without
            resulting into encouraging interpreter implementation.

            From:
                  WS-BPEL takes it as a general principle that conformant
                  implementations MAY choose to perform static analysis to
                  detect and reject process definitions that may have
                  undefined semantics. Such analysis is necessarily
                  pessimistic and therefore might in some cases prevent the
                  use of processes that would not, in fact, create
                  situations with undefined semantics, either in specific
                  uses or in any use.
            To:
                  WS-BPEL takes it as a general principle that conformant
                  implementations MUST perform basic static analysis listed
                  in Appendix [TBD - xref to Issue 84] to detect and reject
                  process definitions that has undefined semantics. Please
                  note that such analysis might in some cases prevent the
                  use of processes that would not, in fact, create
                  situations with undefined semantics, either in specific
                  uses or in any use. For example, a WS-BPEL implementation
                  will reject a process with <invoke> activity referring to
                  an undefined variable, where the <invoke> activity may
                  not be actually reached during execution of the process.

                  A WS-BPEL implementation MAY perform extra static
                  analysis checking beyond the basic static analysis
                  required by this specification to signal warnings or even
                  reject process definitions. Such an implementation SHOULD
                  provide a configurable switch to disable these non-basic
                  static analysis.


            Note:
                  I avoided the term "pessimistic" vs "optimistic". Without
                  a clear definition what "pessimistic" and "optimistic"
                  mean precisely in the BPEL context, using those terms
                  would just create unnecessary confusion and contention.
                  The spec should just point out the cases of static
                  checking those clear violation of spec semantics. (aka
                  black cases).  Definition of grey cases should rest on
                  vendors' shoulders.  Grey area cases would diminish as
                  the spec and technology mature.

            I hope the above draft proposal sounds right to most people on
            the TC.
            Thanks!


            Regards,
            Alex Yiu



      ---------------------------------------------------------------------
      To unsubscribe from this mail list, you must leave the OASIS TC that
      generates this mail. You may a link to this group and all your TCs in
      OASIS at:
      https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php



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