Minutes WS Choreography WG conference call 19th October 2004

Roll Call
------------

roll call: abbie, charlton, gary, martin, nick, peter, srt, yves and carine

Tony Fletcher (Choreology), Steve Ross-Talbot (Co-Chair - Enigmatec), Gary Brown (Enigmatec), Greg Ritzinger (Novell), Martin Chapman (Co-Chair - Oracle), Nickolas Kavantzas (Oracle), Monica Martin (Sun), Charlton Barreto (webMethods - IRC only), Yves Lafon (W3C staff).
Admin

irc log at http://www.w3.org/2004/10/19-ws-chor-irc

Scribe:  Charlton agreed to scribe.

Agenda
-----------

http://lists.w3.org/Archives/Member/member-ws-chor/2004Oct/att-0010/Agenda20041019-0.txt

Previous Minutes
-------------------------
        Minutes 12 october 
                http://lists.w3.org/Archives/Member/member-ws-chor/2004Oct/att-0012/MeetingMinutes20041012-0.txt
        Amendments
                role call addendum: tony
                issue 631 - removal of comments in brackets
        Amended minutes approved
                http://lists.w3.org/Archives/Member/member-ws-chor/2004Oct/att-0014/MeetingMinutes20041012-1.txt

Next Face To Face meeting
-------------------------
Next F2F is at Oracle HQ on 17th, 18th and 19th November


Action Item Review
------------------
ACTION 1: Take the TWIST example we're working on, add part of the flow what can go wrong, see what happens when things go wrong.  
        SRT: No. It is the highest priority item at this time.
        NO PROGRESS

ACTION 2: Chairs to sort out examples work.
        NO PROGRESS

ACTION 3: on Martin to propose text on clocks (Issue 885).
        NO PROGRESS

ACTION 4: Nick to clarify the text wrt NOT and OR operators in guard conditions.
        DONE (see minutes from last meeting)

ACTION 5: on the chairs to discuss part 2 of the specification
        Lower priority.
        NO PROGRESS

ACTION 6: Bob/Choreology to come back with a definitive proposal with editing instructions on PROPOSAL ONE
        IN PROGRESS

ACTION 7: above question (is finalizer role bound?) needs to be answered in a proposal on PROPOSAL FOUR
        IN PROGRESS

ACTION 8: Martin to produce UML model of WS-CDL for the editors to include in spec.
        IN PROGRESS

ACTION 9: Monica to check if 687 has been resolved in latest draft.
        Put on agenda today or next week.
        IN PROGRESS

ACTION 10:  send Bugzilla Issue 870 packaged up to Nobuko/Honda see if they can help.  Steve to do.
        SRT to get on the case tomorrow for this. 
        IN PROGRESS

ACTION 11: Gary/Steve to propose text change (if any) to specification to support out-only. 
        Proposal http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0040.html
        DONE

ACTION 12: the chairs to consider this topic (fault handling) again next week 
        DONE

ACTION 13: Steve to tidy up proposal on locally defined variable (issue 691) and send  (including Schema changes) to the editors.
        IN PROGRESS

ACTION 14:  Greg to re-assign issue 913 to primer and / or Part 2
        IN PROGRESS


Issues resolution and proposals
-------------------------------

(i) Fault Handling
        Two proposal on the table are:
                http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0013.html
                http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0026.html

        Gary: No changes to language in 0013.html
        Gary: In choice block can spec. different responses from a request
        Gary: Can take path based upon which response types have been returned - including faults
        Nick: What does fault handling mean here? Is this proposal covering fault handling?
        Gary: Yes in the respect that faults are message types in wsdl
        Nick: It is not about throwing or handling faults.... And how does this tie with work units, etc.?
        Gary: We are looking at this as different type of response message - modelling this as three different types of responses.
        Peter: This proposal covers treating faults a different type of message, which raises an exception condition.
        Gary: You want to be able to handle fault messages as business messages which affect control flow.
        Nick: If you perform CDL to BPEL - there are semantics w.r.t. whether an exception is raised on the other side via mapping to the WSDL fault type.
        Gary: You can have only one normal response from in-out/request-response - but >= 0 alternatives/faults
        Martin: WSDL defines an input message, and output message, and >= 0 faults
        Nick: If you map something to a WSDL fault, something special happens - some special magic has to occur at this endpoint - such as jump to an exception block
        SRT: Is this a design choice?
        Gary: Not all faults represent exceptions - but responses which affect control flow - requiring pursuit of an alternative path
        Nick: There are special semantics to faults where you have to jump out of the normal control flow
        Nick: When you associate a message with a fault, the semantics tell you that you jump out of the normal control flow
        Peter: Just as applies with using someone elses object which throws an exception, you may be using someone else's protocol
        Nick: You may choose to perform fault handling or not - where not, everything is managed in the normal control flow
        Martin: I don't think Gary's proposal gets into any of these details - he is proposing that you model the exchanges w.r.t. out fault
        Nick: In my proposal is a super set of this
        Nick: Faults are not global - my proposal covers this - in WSDL 2.0 this isn't a problem, since you have have named faults. In WSDL 1.1, my proposal for Information Type addresses the lack of global naming for faults
        Gary: My proposal was looking primarily at WSDL 2.0, but for WSDL 1.1, we may need to reconcile Nick's and my proposals to address the global naming issue
        Martin: Let's look at both proposals, see if they can be reconciled
        Nick: My proposal - issue 565 - address what does it mean to perform exception propagation?
        Nick: How is this done?
        Nick: How does this relate to WSDL 1.1 and 2.0?
        Nick: Do we need variables that hold exception data?
        Nick: We need to know how to handle exceptions thrown in a chor, and how to map it?
        Nick: I want to unify faults from WSDL 1.1 and 2.0
        Nick: InformationType creates this abstraction
        Nick: Introduced concept of exception variables, causeException (if true, we can jump to an exception block)
        Martin: If there is a business level fault you have the choice not to turn it into an exception per this definition
        Nick: Let's come back to this one - let's see what is the combination where this may be encountered
        Nick: Introducing a new function: used when you want to map an exception
        Nick: Included is an example causing an exception using send/receive in a two party chor
        Nick: When I say an exception is caused, the chor enters an exception state, and control jumps to an exception block
        Gary: Seems to be overloading the use of a variable as a trigger
        Nick: This is exactly the same mech used in most languages for handling exceptions
        Gary: In Java, it is very explicit how this is handled
        Nick: I don't see a major difference between on and the other
        Gary: It seems this proposal serves to hide this sort of mechanism somehat
        Nick: This is the design model for CDL - variables are populated, and work units are activated - the ? here was how to activate exception work units - I think it is very natural if you look as systems operating similarly to how CDL operates, you have variables are populated with exception events.
        Monica: Can you handle different types of exceptions in the work unit?
        Martin: yes we already have this in the spec including a catchall
        Nick: If the exception block is defined, it can have >= 1 work units, in which you can define different exception types (via informationType) - whatever is thrown, the proper exception work unit w/b used per the blocks' matching of exceptions to these units
        Nick: We still have the ? of what happens to the top level chor if we don't have matching?
        Nick: But this is in the chor lifeline - completing normally vs. abnormally
        Martin: We have the catch all for this
        Yves: This is more a design decision in CDL
        Yves: This a catchAll should be explicit
        Martin: Let's ensure the spec covers this
        Yves: Design decision of a written cdl, if cleanup is wanted, then a catchall is needed
        Yves: If not then the cdl stop in an abnomral state
        Charlton: right
        SRT: Can I change mutability in a variable in CDL?
        SRT: My understanding is this is a 'set-only' model - variables are inherently immutable
        SRT: Are there semantics which restrict the use of this variable in a variables definition
        Nick: No, there are none
        SRT: So I can change the value of this anywhere?
        Nick: You can change it in the exception block
        Martin: Serving as a form of rethrow
        Nick: You want to be able to capture what has gone wrong - e.g. WSDL details - and you want this to be captured in some container, where it will be handled - i.e. in a work unit - where it can perform a specific action to be associated with these details
        SRT: I want to explore with you the right semantics we want such variables to have
        Martin: Let's come back to this next week.
        Martin: I don't believe we can resolve this tonight
        Martin: Between now and next week - let's go over this in detail - it is a big thing to do and we have many other big things to do

(ii) Unbounded free variables
        http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0020.html

        SRT: If you have a free variable in a chor - and an enclosing chor does not bind that variable - what is it's state - if may end up not having a valid value, with the resulting unexpected consequences
        SRT: What do the editors, et al., expect the value of a free variable to be if it is unbound?
        Tony: Static analysis should throw this out
        Peter: Isn't this simply an unused hook?
        Peter: An unbound variable is exactly in the same place of variable you cannot see at all
        SRT: The 'great unwashed" may have done this without realising it
        Peter: Surely they remain unbound at the higher level of the chor
        Nick: 2.4.4: "A perform activity...." The enclosing chor is only performed through the perform activity, so all free variables of an enclosed chor must be bound - there is no opporunity for the alternative to occur
        Nick: The third bullet point on this section
        SRT: The second bullet in my version of the ED
        Martin: All variables m/b bound by this definition
        Martin: To not do this is an error that can be caught via static analysis
        Abbie: Happy
        Charlton: Happy
        SRT: I would like the following verbage to be used, "All free variables must be bound"
        Abbie: +1
        Peter: A trivial editorial item - an explanation of why this is done....
        
        *** PROPOSED TEXT ***
        SRT: Before: A perform activity MUST bind a free Variable defined in an enclosed Choreography with a Variable defined in an enclosing Choreography when sharing the Variables information
        SRT: After: A perform activity MUST bind a free Variable defined in an enclosed Choreography with a Variable defined in an enclosing Choreography

(iii) Duration timeout
        http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0023.html
        Martin: No objections to this? 
        NONE RECORDED

        Martin: Editors - do you need any additional information to include this in the spec?
        Martin: Is this enough info for the editors to write into the spec.
        NEW ACTION: Charlton to update the pdf and send it to the editors with the function and variable name changes

(iv) WSDL Support
        http://lists.w3.org/Archives/Public/public-ws-chor/2004Oct/0027.html

        Martin: Overview of the next item: WSDL support from Nick.
        SRT: Gives people time to read the other WSDL proposal as well.
        Nick: Proposal overview: First, there are some extensions: Accomodation of WSDL 1.1 parts, changes in function getVariable to accomodate the WSDL 1.1 part; MEPs nothing radical - basically Charlton's recommendations - expecting others to perform work above and beyond that; interface inheritance
        Martin: Are we going to add something at the package level which signals whether we can handle wsdl 1.1 only, wsdl 2.0 only, or both in a single chor? Should this still be done implicitly, or explicitly?
        Nick: Implicitly, the status quo is that we can handle a mix of the two
        Charlton: And whether we are using 1.1 vs. 2.0 is implicitly determined from the wsdl itself

AOB
---
        SRT: From C&C meeting - David Orchard felt that the perception is that ws-chor is competing with BPEL
        SRT: Expressed concern and dissapointment that this perception still persists.

        Martin: Only three conference calls before the next F2F
        Martin: By the next F2F we only want technical issues related to Last Call addressed
        Martin: Please review proposals on Fault Handling and WSDL in the week before the next F2F

        Martin: On biggie we did not talk about today, which we'll want on the next conf call agenda, is the issue on race conditions.
        Nick: Small observation: Really surprised about what Peter sent on pi-calculus (in a good way :-))
        Peter: One s/b able to read it, and from there perform endpoint projections, etc.
        Martin: Let's put distributed choice on the agenda.

        NEW ACTION: Place distributed choice on next week's conf call agenda.

SUMMARY OF ACTIONS:

ACTION 1: Take the TWIST example we're working on, add part of the flow what can go wrong, see what happens when things go wrong.

ACTION 2: Chairs to sort out examples work.

ACTION 3: on Martin to propose text on clocks (Issue 885).

ACTION 4: on the chairs to discuss part 2 of the specification

ACTION 5: Bob/Choreology to come back with a definitive proposal with editing instructions on PROPOSAL ONE

ACTION 6: above question (is finalizer role bound?) needs to be answered in a proposal on PROPOSAL FOUR

ACTION 7: Martin to produce UML model of WS-CDL for the editors to include in spec.

ACTION 8: Monica to check if 687 has been resolved in latest draft.

ACTION 9:  send Bugzilla Issue 870 packaged up to Nobuko/Honda see if they can help.  Steve to do.

ACTION 10: Steve to tidy up proposal on locally defined variable (issue 691) and send  (including Schema changes) to the editors.

ACTION 11:  Greg to re-assign issue 913 to primer and / or Part 2

NEW ACTION 12: Charlton to update the pdf and send it to the editors with the function and variable name changes

NEW ACTION 13: Place distributed choice on next week's conf call agenda.