Minutes, 30 July 2003 FTF Raleigh

--------------------------------------------------------
Wednesday 30 July
--------------------------------------------------------
09:00 Introductions and logistics
--------------------------------------------------------
Present:

 David Booth            W3C
 Roberto Chinnici       Sun Microsystems
 Glen Daniels           Macromedia
 Youenn Fablet          Canon
 Steve Graham           Global Grid Forum
 Tom Jordahl            Macromedia
 Philippe Le Hégaret    W3C
 Amelia Lewis           TIBCO
 Jonathan Marsh         Chair (Microsoft)
 Jeff Mischkinsky       Oracle (TH-F)
 Dale Moberg            Cyclone Commerce
 Arthur Ryman           IBM
 Jeffrey Schlimmer      Microsoft
 Igor Sedukhin          Computer Associates (TH-F)
 Jerry Thrasher         Lexmark
 Steve Tuecke           Global Grid Forum
 William Vambenepe      Hewlett-Packard
 Sanjiva Weerawarana    IBM
 Umit Yalcinalp         Oracle
 
Observers:
 Martin Chapmann        Oracle (W)
 
Phone:
 Steve Lind             AT&T
 Kevin Canyang Liu      SAP
 Allen Brookes          Rogue Wave Software

Regrets:
 Jean-Jacques Moreau    Canon
 Bijan Parsia           University of Maryland MIND Lab
 Adi Sakala             IONA Technologies
 Bryan Thompson         Hicks & Associates (DARPA)
 (may be others, registration system hiccups prevent a complete list...)

--------------------------------------------------------
- Assignment of scribes

Draft Scribe List:
Wednesday   AM Jerry
            PM Glen
Thursday    AM Amy (swapped with Jeffsch)
            PM Sanjiva (swapped with DBooth)
Friday      AM Arthur
            PM JeffSch (swapped with Amy)

--------------------------------------------------------
Agenda Review:
--------------------------------------------------------
09:10 Publication plan
--------------------------------------------------------
Survey of remaining work

Part 1: Open proposals:

Major work items for Part 1:

 1. Removing message
 2. Binding enhancements
 3. Attributes
 4. Endpoint references

Other Part 1 ToDo items:

 1. Properties & features guidelines
 2. Describing binary data
 3. ServiceGroup ?
 4. Open issues:
    misc (~7)
    editorial (2)

Part 2: 

Open proposals:

 1. Patterns TF recommendations:

Open issues:

 none known

Part 3: 

Open issues:

 SOAP 1.2 support (~7)
 HTTP binding (~3)
 misc (~11)
 editorial (~11)

Primer: Outline only

Expected Last Call dates?

JMarsh discussed the possibility of last call in the November time frame.
This is dependent on the results of the this F2F (closing remaining
issues in part 1 is requirement). Last call may end up slipping a couple
of months.


--------------------------------------------------------
09:30 Patterns Task Force (report/recommendations)
--------------------------------------------------------

DBooth presented the recommendations of the WSD Patterns TF.
Document located at:

http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/meps-vs-iops/recommendations_clean.htm

--------------------------------------------------------
Background:
--------------------------------------------------------

4 MEPS in WSDL 1.1
Earlier F2F we decided to look at 8 MEPS.
TF assigned to recommend what MEPS are required/desired 
for WSDL 1.2 and to look at what "properties" of each MEP 
distinguish from another.

--------------------------------------------------------
Presentation:
--------------------------------------------------------

DBooth presented and the group discussed the 12 variations of the 
Input/Output pattern and the motivation of each variation (see 
presentation slides).

Current definition of In/Out does not specify the target of the 
Output messageor any generated fault. Hence the variation explosion.

Question? How does Party A(client) in the diagrams know whether to 
expect/wait for a reply/fault from Party S(service) in the In/Out MEP. 
How is this described in the WSDL document?

Outline of the recommendation:

1. Patterns describe MINIMAL behavior.
   (See definition of this concept in the presentation slides)
  
2. Patterns describe parties as variables
   Any pattern containing more than one message must specify the 
   sender and recipient of each message.

   JeffS pointed out that this implies that some bindings may limit the
   ability to use some MEP's with this specification requirement.....
   (agreed)

3. The recommendation for specific MEPs(6 to adopt, 2 to drop)
   TF recommends adopting the following:

 a. Pattern p1a-nf (In-Only pattern)
    ()

 b. Pattern p2e-nf (classic In-Out pattern)
    (separate fault rules determine what the output or faults 
    messages can be)  
    (the fault rules that are "matched to the MEP" describe whether the 
    fault terminates the message exchange or not (i.e. can the In-Out 
    generate both a fault and output)
        
    After discussing in depth the way the faults are treated/applied 
    in this pattern, it was decided (Dbooth) to continue with the 
    pattern discussion/adoption and look at how/what fault rules apply 
    later.

 c. Pattern p4c-nf (In-Multi-Out pattern)
    One message (all of the same type) sent zero or more times.

    JeffS asked if there is an implied order to the multi-out messages. 
    
    DBooth asserted that the "pattern" should specify if order should be 
    preserved. Others asserted that this is a result of the pattern and 
    it's associated binding.
    
    Was an assertion that MEPs should specify this to allow client code 
    to be written without regard to binding details.

    No decision on whether order is implied or not or how that might
    occur.....revisit if this MEP remains in the specification....

--------------------------------------------------------
10:45 am  Because of time limits it was decided to press on with the 
          presentation.....
--------------------------------------------------------

  Other MEPS recommended by the TF include:    

  d. Pattern p5a-nf (Out-Only)

  e. Pattern p6b-nf (Out-In)

  f. Pattern p7b-nf (Out-Multi-In)

  TF recommends dropping the following previously defined MEPs:

  a. The "Request-Response" pattern
    (superceded by p2e-nf)

  b. The "Multicast-Solicit-Response" pattern
    (subsumed by p6b-nf)

--------------------------------------------------------
11:00 - ~11:20 Break
--------------------------------------------------------

Dbooth presented the patterns that were NOT recommended by the TF and
then outlined the reasoning behind that. (see presentation slides)

Remaining issues form the TF recommendation:

1. Fault Rules.  Could they be simplified to a single message triggers
   fault rules? Current fault rules need to be re-examined.

2. Correspondence/correlation with SOAP MEPs


--------------------------------------------------------
Discussion on the presentation:
--------------------------------------------------------

JeffS asked for a clarification on the definition of minimal in the 
first TF assumption.

The concept allows that additional messages and behavior may occur
between client and the service, or between either the client and 
service and other parties, whose details are outside the MEP 
description.

There was some discussion about the idea that a MEP may not fully 
describe ALL interactions between parties.

--------------------------------------------------------

Sanjiva wants time to further investigate/discuss the TF's recommended
MEPs before deciding to adopt the recommendation. Particularly with
respect to the binding definition of each of the MEPS in the 
specification. Sanjiva asserts that ANY MEP that's included as 
normative in WSDL 1.2 must contain a normative binding definition 
as well.  

There was some consensus, however there was concern that output only 
and output first type MEPs may require extension to the SOAP over HTTP 
binding to be defined.

--------------------------------------------------------

There were some that wanted to not include any of the "multi" MEPs (i.e.
p4c-nf and p7b-nf) 

--------------------------------------------------------

It was decided to defer any further change to the TF's recommended MEPs
until they are reviewed further by the group.

--------------------------------------------------------
TF Recommendations summary (with group opinion):
--------------------------------------------------------

1. Pattern does not exhaustively define all messages between the named
parties (general consensus)

2. Patterns define only details relevant to more than one party.
(general consensus)

3. As a result of this (2), the participants involved in the pattern 
must be listed. (general consensus) (open issue on it's syntax, what 
attribute etc. and the fault if it's not there)

4. Using recommendations 1 and 2, refine the list of MEPS down to 6 
(see presentation or above for list). (not yet general consensus that 
these are the appropriate MEPS, need more review by the group)

5. Given the MEPs chosen, need to now revisit fault generation rules. 
(consensus that this must be done, but there is currently no proposal 
to review)

--------------------------------------------------------
*** Action: Amy to generate proposal for (5).
--------------------------------------------------------  

Additional guiding principle that wasn't include by the TF 
recommendation.

6. ANY MEP that's included as normative in WSDL 1.2 must contain a 
normative binding definition as well. (not yet complete consensus)

--------------------------------------------------------
*** Action: Editors to incorporate the first three recommendations 
into the draft.
--------------------------------------------------------

The Patterns TF is congratulated for it's efforts and is temporarily 
suspended.


--------------------------------------------------------
12:30pm Recess for Lunch.
--------------------------------------------------------
13:30 Removing message.
      Investigating idea to cleanly separate interop at the message 
      format level from interop at the programming model level. Proposal
      from Sanjiva [4].  Programming hints [5, 6]

  [4] http://lists.w3.org/Archives/Public/www-ws-desc/2003Jul/0025.html
  [5] http://lists.w3.org/Archives/Public/www-ws-desc/2003Jul/0114.html
  [6] http://lists.w3.org/Archives/Public/www-ws-desc/2003Jul/0120.html

Scribe: Glen

Sanjiva's Presentation re: removing (or not) <message> 
(see archive for PPT) 
Sanjiva:  Complexity (multiple ways of doing things) encourages profiles.
          Might be nice if we did a good enough job to avoid requiring 
          profiling.  Would be great to essentially go with old proposal - 
          duplicate functionality of <complexType> for exactly what we 
          need.
Umit:     Yes!
Sanjiva:  Can't prescribe usage; you can always drop to schema/single-
          part systems. Both patterns are already in use today. 
Arthur:   Can't neatly describe some things (unions, com areas, overlays), 
          need full schema. Since these things aren't simple you can't 
          break them into simple parts. 
Umit:     Don't push off the work about defining this stuff to the wsdl 
          authors.
Sanjiva:  If we retained part, part could ONLY be simpletypes, and you 
          use multiple parts to get structure... people would just go 
          back to 1.1.
In order to support this proposal, you need to add a lot of syntax to 
WSDL on to current proposal. Drop <message>, point <input>/<output>/
<fault> at single <xsd:element>s.
Umit:     Are the body/header QNames disjoint? 
Sanjiva:  Not necessarily 
Amy:      How does header apply outside of SOAP? 
Philippe: Current HTTP binding is based on part names - that's how 
          replacement works.  How does that work?
Sanjiva:  Good Q.  Same question for java binding, etc.... Couldn't send 
          XML over HTTP easily using old bindings.
Philippe: You can with SOAP 1.2.
Tom:      If you specify a fault details QName, you need to put multiple 
          pieces of info inside a wrapper?
Sanjiva:  What does WS-I state?
Jeffsch:  Other stuff (fault code etc) we need to specify about faults, 
          let's hold off on this for a bit.
Sanjiva:  OK not to support more than one element inside <soap:Body> - 
          WS-I already profiled it away, Noah M doesn't so much like it, 
          etc...
Tom:      There are examples of this in use...

(SOAP encoding discussion)

Tom:      Lots of people working with RPC who want to move to WSDL 1.2.

(consensus to hold off on encoding issue)

(RPC discussion... signature round-tripping, metadata)

Jeff:     Microsoft's position is that we shouldn't be exposing 
          programming models in a normative way... it's about wire msgs.
Martin:   It's not just about roundtripping, it's also about dispatching/
          upcalls.
Sanjiva:  Wire is fixed, so the discussion is about bindings.
Jeffsch:  Wire format was, essentially, always fixed, but the fact that 
          there were potentially multiple ways of expressing that in WSDL 
          was a problem.
Martin:   If Signatures -> WSDL is many -> one and WSDL -> Sig is one -> 
          many, we're fine.
Umit:     No, we shouldn't let people generate different signatures from 
          the same WSDL.
Jeffsch:  Our companies may agree on wire formats but we won't agree on 
          programming models - can't force that.
Martin:   By eliminating the operation name on the wire, it means "the 
          name of an instance of an MEP".  So now if I have a schema element 
          representing data (employee record), I need wrapper elements 
          around them to disambiguate operations....
Sanjiva:  The old style="rpc" had the same semantics, just built in to 
          the language.
Jeffsch:  Several names in WSDL that are never evinced on the wire.... 
          we could make that clearer.
Martin:   People do infer semantics from operation names...
Sanjiva:  Could rename <operation> to <interaction> - element syntax to 
          group a set of messages which go back and forth.
Roberto:  WS-I says you need to disambiguate with something that exists 
          in the body itself.
Sanjiva:  SOAPAction can help with this - <interfaceURI>#<operationName>
Roberto:  Operations are more than just groupings if they have element-
          based dispatch (RCP, BP).
Glen:     Why not just say for ALL operations (literal or RPC) you will 
          always see the QName of the operation as the SOAP body child?
Amy:      It's getting SOAPisher and SOAPisher!
Glen:     Dispatch should be on operation information (QName) - doesn't 
          matter how it gets there.
Roberto:  The unique requirement today doesn't force you to wrap, it's 
          just a suggestion.
Sanjiva:  If you don't have a schema for it, it's hard to validate.
Jeffsch:  This is a synthetic element, and there's some overhead there.
          Let's discuss this - it's a choice between automatically adding 
          mechanism at some expense for the middleware, and using a 
          workaround which is known but at some expense for the users.

(moving on to Sanjiva's RPC signature proposal)

Sanjiva:  Use encodingStyle to indicate following a certain set of 
          conventions in the schema.  No default for this attribute.
          Rules are basically SOAP RPC rules, wrapper element with local 
          elements inside, response is "<operation>Response", etc...
Jonathan: Can use custom values for this as well?  What about a list?
Sanjiva:  No lists, was in the original proposal but removed.
Jonathan: What about other metadata people might want to define?
Umit & Roberto: parameterOrder is important - you can have an output 
          param that appears 1st in the signature, for instance...
Jeffsch:  Is it possible to define a single set of rules, tagged with a 
          URI, that encapsulates everything necessary?
Umit:     Maybe, but as my mail said this isn't sufficient yet.
Sanjiva:  This isn't final yet.
Umit:     These rules are OK for RPC over doc/lit - you put the burden on 
          the user to describe the messages.  Everything has to be added 
          and rules have to be followed by the user.  WSDL 1.1 lets us do 
          this "automatically", and this suggestion forces the user to do 
          it.
Glen:     Have we gotten rid of style yet?:)
Umit:     I'm afraid writing WSDL by hand will be error-prone and more 
          difficult.  Users will need to convert old WSDLs (write wrapper 
          elements, etc).

(Sanjiva types furiously)

(Sanjiva demonstrates a 1.1 vs 1.2(w/o message) example which looks pretty darn similar)

Tom:      This is wrapped doc/lit.
Roberto:  Messages are already so abstract that people name them fooRequest/
          fooResponse anyway (based on the operation).
Sanjiva:  The problem is that for a given SOAP message, there were/are 
          two different ways to describe it.  This proposal attempts to 
          have one way to do it which is happy for both the RPC (same 
          signature on both sides) and the doc/lit folks.
Martin:   RPC should be a subset of the pure messaging usage.
Umit:     But putting the wrapping burden on the user is bad.
Jeffsch:  Is Oracle more concerned about WSDL generated from code, or 
          WSDL written from scratch?
Martin & Umit: both
Jeffsch:  Since an operation is potentially a group of related messages 
          (not just req/resp), applying method call semantics to it is 
          not necessarily correct.
Martin:   Hey, if we get rid of operation it could be "GET", "POST", 
          etc...:)  (laughter)
Jonathan: How about a break?
Sanjiva:  Can we move forward in this direction?
Tom:      Does this get rid of style?  If not, you can wrap twice (once 
          by user, once by style="RPC")
Amy:      What's happening is that we're moving binding out of binding 
          and into interface.

--------------------------------------------------------
15:00pm Break
--------------------------------------------------------

Martin:   Two design centers - start from code, or start from WSDL....
Sanjiva:  If not starting with signatures, there's no huge value to 
          defining schemas to particular rules.  If manually writing 
          WSDL, user has to learn and follow the rules if they have a 
          signature in mind that they wish to encode in the schema
Amy:      Message is dead simple form of schema, and part of the reason 
          for keeping it is that it's easy to understand.  Personally, 
          would like to see WSDL get out of the business of writing a 
          schema language... current stuff is hard to validate, 
          confusing, etc....  would like result (WSDL 1.2) to be easier 
          to plug into a validator.  Maybe instead of removing message 
          we define it such that it's a simple transform away from 
          actual schema....
Roberto:  Message stuff doesn't interact well with existing schema 
          tools - syntactic sugar (new stuff) doesn't help with this
Arthur:   I think we're going to end up starting from schemas, and 
          generating proxies from those, not starting from classes and 
          generating from there.
Umit:     what is the real harm in a syntactic sugar and translation 
          approach?  If rules are simple for machine to follow, should 
          be able to write it....
Sanjiva:
	<operation name=ncname>
	 <input [element=qname]>
	  <part name=ncname type=qname/>*
	 </input>
	</operation>
Umit:     No minOccurs/maxOccurs....
Sanjiva:  Slippery slope - forget it.
Umit:     But this was the original problem....
Jeffsch:  Lack of expressiveness of message/part - but didn't want to 
          reinvent schema.
Sanjiva:  This is a simplification - especially wait until you see the 
          binding stuff... that gets much easier.
Arthur:   Makes things simpler/clearer
Umit:     we're talking about WSDL', expanded from syntactic sugar.
Sanjiva:  This is a pain for tools vendors, who need to understand the 
          "subset" of schema that part etc. defines.
Amy:      (tossing her "cat among the canaries") Forget about SOAP, 
          consider the next Big Thing... are we writing something that 
          can handle arbitrary other forms of exchanges?
Sanjiva:  This isn't much of a restriction.
Umit:     This is pretty SOAP specific.
Sanjiva:  No, you can bind (for instance) to Java directly....
Tom:      So where are we?

(discussion of syntactic sugar pros/cons)

Amy:      Don't like syntactic sugar because it gets us back into 
          defining a schema language.... maybe we need something 
          different for RPC, but defining wire messages should be 
          delegated to schema/relaxNG/etc.
Umit:     I agree - but it should be simple to translate the "sugary" 
          version to the "real" version.
Sanjiva:  Tools vendors need to support the sugar.
Jeffsch:  But this is really about a human writing the WSDL.
Umit:     I'm not talking about full schema... just min/maxOccurs, 
          nillable, and that's about it.
Sanjiva:  Can we vote about accepting this and perhaps adding syntactic 
          sugar for making it easier for WSDL 1.1 users to write this 
          stuff?
SteveG:   Syntactic sugar isn't a good idea - too complex.  Whole 
          proposal in general is good.
Philippe: Complexity we're removing by getting rid of part, we add again 
          by putting it into the schema.  Syntactic sugar is good.  Don't 
          want <choice>, etc....
Youenn:   Can use XPath with just schema, so syntactic sugar would make 
          that a little harder...
Sanjiva:  If they need to know the mapping from sugar -> elements anyway 
          (to refer to them in bindings, etc), and both exist in the same 
          document (sugar in <input>, reference to the "real" element in 
          binding), that's difficult and confusing.
Jeffsch:  If you want to reach into a particular operation and talk about 
          it in a binding, you need to refer to it in the same way you do 
          at the definition time, OR you need to know the translation 
          rules.  HTTP binding for instance, putting sub-elements into 
          query-string params....
Umit:     OK, it might be not quite ready for prime time.
Tom:      If we're going to get rid of message (which I'm not 100% on), 
          then I don't think we should put stuff in the operation.
David:    Given that the syntax is yukky, a lot of people will be copying 
          and pasting... is there still a need for syntactic sugar then?
Jonathan: What about cut from 1.1 paste to 1.2?
David:    That's a different situation.
Sanjiva:  Doesn't help unless you put it all the way down to bindings as 
          well.
Umit:     syntactic sugar is a boon to WSDL-1.1 focused people, of whom 
          there are many.
Sanjiva:  We should talk about getting rid of message first?
Dale:     Not quite baked yet - headers not defined for non-SOAP bindings, 
          etc.  Other type systems seem to have dropped away...?  Edge 
          cases seem a little unclear.
Jonathan: Do we anticipate problems with bindings?
Dale:     Hopefully straightforward.
Roberto:  Do we need the header attribute at all?
Sanjiva:  In 1.1, headers were parts, so wanted to convey same 
          expressiveness.
Roberto:  So leave it to the binding. This piece goes here, this one goes 
          there.
Glen:     I don't think headers belong in there at all.

(brief discussion about headers / modules, tabled until later)

Youenn:   Can element be relaxNG, etc.?
Sanjiva:  What I had in mind was a QName pointing to schema.... but maybe...
Dale:     encodingStyle rules would need to be different for relaxNG, 
          so you'd need a different URI.
Jeffsch:  I think we could define a set of rules over a known set of 
          schema languages under a single URI.  But we might need a new 
          URI for new unforseen schema languages....
Alan:     Very wary of the whole idea of syntactic sugar, especially if 
          there are additions above and beyond WSDL 1.1 syntax.  Generally 
          in favor of the rest of the proposal.
Kevin:    Generally in favor, but some concerns about backwards 
          compatibility.... rename to WSDL 2.0?
Umit:     How normative is this?
Jeffsch:  If you care about interfaces, you confirm that they followed 
          the rule.  If you don't, you just ignore it.
Umit:     You should fatally fault if the rules are specified but not 
          followed regardless of whether or not you use the information.
Jonathan: OK, so a document which screwed this up could be considered 
          non-conformant, but still be usefully utilized in some contexts.
          This is a separate issue, let's deal with it separately.

Consensus is that it's OK to ignore invalid stuff contained inside ignored 
(or not understood) extensions.  But it's not OK to have invalid stuff in 
the parts of WSDL you do understand.

Umit:     You need to make this encodingStyle thing required, and all 
          processors must verify it.

ISSUE: What does a WSDL processor do when it encounters invalid constructs 
which it does not care about?

Jonathan: Let's vote.  Two ways to proceed.  1) refine the proposal further 
          (syntactic sugar etc) first, and then vote, or 2) vote on the 
          proposal first and open issues against it.  Would people vote 
          differently depending on which way we went?

Proposed order of voting/decisions:

1) Remove message per Sanjiva's proposal (@body, @header)
2) Add hints re: method signatures
3) Proposed rules for schema writing
4) Add syntactic sugar for operation -> schema

Umit:     What about the other proposal?  Essentially Sanjiva's old 
          proposal - introduce parts in <input>/<output> with minOccurs/
          maxOccurs, but without the "implied schema" step.  Rename 
          operation -> messageExchange?
Tom:      What about SOAP encoding?
Sanjiva:  This is a binding discussion - wait 'til later, but maybe we 
          can reintroduce use or something....
Tom:      Don't want this to get overlooked.
Arthur:   Part was good for mime types.  Have we decided how to deal with 
          that with schema?
Sanjiva:  We can do the PASWA thing.

Jonathan asks for objections to 1+2+3 above.

Oracle objects.

VOTE: 1 + 2 + 3 above

W3C: Yes
Sun: Yes
Macromedia: Yes
Canon: Abstain
Grid: Yes
Tibco: Yes
Cyclone: Yes
IBM: Yes
Microsoft: Yes
Lexmark: Yes
HP: Yes
Oracle: No
Rogue Wave: Yes
SAP: Abstain

11 yes
1 no
2 abstentions

Straw poll on #4: Should we adopt some form of syntactic sugar to better support the RPC use case in the operation construct?

In favor: 2
Not: 9

Umit Objects to recording consensus to not investigate

--------------------------------------------------------
17:30pm Ajourn
--------------------------------------------------------

Received on Wednesday, 6 August 2003 13:13:56 UTC