- From: Jonathan Marsh <jmarsh@microsoft.com>
- Date: Tue, 9 Mar 2004 08:40:30 -0800
- To: "WS Description List" <www-ws-desc@w3.org>
Web Service Description Group Minutes, FTF meeting 4 Mar 2004 Cannes-Mandelieu, hosted by W3C. irc: http://www.w3.org/2004/03/04-ws-desc-irc Present: David Booth W3C Roberto Chinnici Sun Microsystems Glen Daniels Sonic Software Paul Downey British Telecommunications Youenn Fablet Canon Martin Gudgin Microsoft Hugo Haas W3C Tom Jordahl Macromedia Jacek Kopecky Systinet Kevin Canyang Liu SAP Jonathan Marsh Chair (Microsoft) Jeff Mischkinsky Oracle Jean-Jacques Moreau Canon David Orchard BEA Systems Bijan Parsia University of Maryland MIND Lab Arthur Ryman IBM Igor Sedukhin Computer Associates William Vambenepe Hewlett-Packard Asir Vedamuthu webMethods Sanjiva Weerawarana IBM Umit Yalcinalp Oracle Observers: Martin Chapman WSChor Yves Lafon W3C Philippe Le Hegaret W3C Coralie W3C Paul Biron Health Level 7 Anish K Oracle In addition to the above observers who were present for most of the meeting, we had a number of other observers who observed parts of the meeting. scribe: Igor Sedukhin -------------------------------------------------------- Thursday 4 March -------------------------------------------------------- 08:30 Introductions and logistics - Assignment of scribes Igor Sedukhin, Umit Yalcinalp, Youenn Fablet, Kevin Liu Paul Downey, Jeff Mischkinsky, Asir Vedamuthu, David Orchard Hugo Haas Igor, Umit, Youenn, Kevin - New scribe policy: Since the chair is maintaining the issues list, but not the edtodo, the two can easily get out of sync. Our minutes should henceforth include explicit actions to the editors as well as resolutions of issues. - Agenda review -------------------------------------------------------- 08:40 WSDL Component Designators: Trolling through old minutes does not reveal clearly whether WSDL Component Designators should be added back into the draft as an Appendix. My memory says "yes, we decided that" but the minutes are unclear and the edtodo does not mention this. If you clearly remember something different, this is your chance to scream. Jonathan: WSDL Component Designators should be added back into the draft as an Appendix. [No objection] ACTION: Editors to add back the WSDL Component Designators back to the spec as SHOULD. -------------------------------------------------------- 08:43 Correction to minutes on wsdl:ServiceType [2]. Confirm correction to the minutes as enumerated by Umit. [2] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0224.html Glen: This was my proposal and this was resolved at the last F2F. Umit: Checked and this was done. Sanjiva: Spec is not clear on when service name attribute is required. Glen will look at that ACTION: Glen to look at schema derivation in the current draft -------------------------------------------------------- 08:45 Issue 79: How much validation? [3] Jacek posted a relevant proposal [4]. David's analysis [5] [3] http://www.w3.org/2002/ws/desc/2/06/issues.html#x79 [4] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0121.html [5] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0234.html [dbooth: My presentation: http://www.w3.org/2004/Talks/0304-dbooth-wsdl-lang-vs-proc/] DB presentation: WSDL Language vs Processor DBooth: Separate section in the spec on the processor. Roberto: Then we need to add a WSDL editor too. DBooth: Yes, maybe. Extract all the statements about what WSDL processor should do and put them together. Such statements are already in the spec, but scattered. Jonathan: Another pro I was expecting is simplification of the spec. Will address the complexity problem by addressing the language in the main spec. Arthur: We can spec the language without necessarily calling on the processor. DBooth: WSD is a set of assertions about interacting agents. WSD only partially describes the interaction. Umit: You seem to imply that WSDL is not a complete contract. Does not agree with that. Glen: That is actually true, it is not complete. [JacekK: Bijan, does David have the defn of monotony right? 8-)] Umit: It should be true by looking at the WSDL which must be the base. Bijan: The original contract may not be sufficient, but why is it not complete? Glen: There could be out of band things that WSDL does not capture. Sanjiva: WSDL is necessary, but may not be sufficient. DBooth: WSDL is a contract, but there could be additional obligations Extensions: extensions are non-monotonic. Glen: Extension may change the original 'assertion'. Jacek: That should not be true. Bijan: It depends on the extension. It defines if it is monotonic or not. DBooth: Yes, but we cannot assume. Jacek: Binding extension only affects the binding. Glen: Except that if it adds default operations in which case it also affects other description component DBooth: (from TAG) extension is ID'ed by a qname, target namespace must identify the meaning. Proposed clarification text for 6.1.1. Limiting the scope of understanding to the component to which mandatory extension is applied to. Arthur: That means existence of such extension may affect the whole document. Glen: Like in SOAP, look for those .. addressed to you and then look for what you must understand. Bijan: The doc means different things depending on how one processes it. Roberto: At least it coerces it. Kevin: Is the meaning of the whole component affected by a mandatory extension? DBooth: Essentially yes Glen: mustUnderstand = required = mandatory. You don't change the meaning of what the binding is. Bijan: You could. DBooth: Mandatory extension may change some of the assertions expressed in the WSDL spec Gudge: Ext mandatory not = it changes the semantics. Do we expect those things to so fundamentally change what is expressed in WSDL. Glen: Yes that is possible and we need to craft this into the spec. Bijan: What does this mean for validation of the WSDL doc? Glen: You can't validate what you don't understand. Bijan: If the meaning of the component is changed its validation rules may change too. DBooth: The spec is directed towards the meaning of the WSDL document. Glen: Difficult part is to describe the rules for the extension writers and make sure that does not screw up. Jeff: If binding ext adds ops why is it changing the interface? What is being validated: the document or how it is processed? Turning this into the context-sensitive language. Have to express what the context is. Kevin: Agrees with Jeff. If there is a binding and an ext and if I only need to understand the binding only and not the ext then why should I care about the ext? With the proposed changes I will need to. Roberto: The meaning of the component containing the ext is changed? What if the component was 'built' before the ext was added? DBooth: Maybe component is not right word, may be the element. Jeff: It feels like the 'foundation of sand' Jacek: .. lost ya... Gudge: Why is important for service to say the extension is required? DaveO: Isn't it that the client just does not want to have the error msgs? It wants to know up front what is required. Gudge: Do we anticipate exts that are optional. Are there use cases? [KevinL: In the "late bound" case, if there are multiple binding extensions defined under the wsdl:binding component and are all marked with wsdl:required, for a processor who only care about one of the binding extension, why should it be failed if it doesn't understand a binding it doesn't care at all? Especially in the "late bound" case where the WSDL file is discovered at run time, and artifacts are generated at run time to communicate with a service.] Jonathan: Let DBooth proceed. DBooth: Optional exts [pdowney: Trying things out and faulting can reveal your hand - like playing Cluedo..] DBooth: Those that do not change the meaning of the WSD assertions. Glen: That is not necessarily true. Bijan: It is not monotonicity, it is the "ignorability" that is doing it here. Being monotonic is not a sufficient characterization. Roberto: Then adding implicit ops to the interface by an ext will not be optional now? Glen: The ext adds those ops if you want to process it. [JacekK: <wsdl:binding> <soap:binding/> <http:binding/> ... </wsdl:binding> is this allowed?] [Bijan: I.e., optional extensions are optional only for the service client, not the provider.] Kevin: Required by who: the consumer or the provider? Jonathan: WSDL is from the service POV we agreed. Sanjiva: Move on [Bijan: It's *not* the case that the server is obligated to support all that. At least, that's not the right way to put it. It's a fact of the *language*, that the document won't be *true* unless the server supports all the extension,etc. etc.] Glen: Add an issue: is there a difference with client or service obligation with regards to ext. [Jonathan: New Issue: What is the scope of extensions?] DBooth: WSDL defines the way two agents interact and the way to test it is to actually verify if the interactions are as described. Arthur: Test case: WSDL and the message and assert if the message is conformant to the WSDL. Another one is to give a sequence of messages and assert that against the WSDL. Glen: Unless there is an ext that says something about the semantics of the op. Arthur: 1) is the WSDL consistent 2) is message conformant 3) is the sequence of messages conformant. DBooth: We should be able to test anything that the spec says the processor should or should not do. Bottom line: separate the processor from the language. Jonathan: We can adopt this and close the issue 79. Tom: Will this make the spec more or less readable? Is Jaceks proposal on including statements on validation in the spec also with this issue? Jacek: Was looking to separate it out. Glen: Also wants to keep it separate. DBooth: There are simple questions 1) separation of the definition of the language and assertions about the processor. Glen: Cares that we have clear expression of that whether or not it is in a separate section. DBooth: Can modify the doc and generate the changes that the WG can look at. Jonathan: Is this simply an editorial issue? [Bijan: +1 to cleaning specifying the *semantics* from various bits about arbitrary processors but not moving text around :)] Tom: Just state what has to be validated and add this text anywhere in the spec. [Bijan: I.e., for each section, you can just add a "Note: A processor that blahblahblah would blahblah blah with this component"] Hugo: There is no impact of what DBooth is proposing on the WG schedule. Glen: Let DB do it or reject. Tom: Does making these editorial changes address issue 79? Jonathan: Yes. Umit: Will the statements include "conformant processor"? [GlenD: as opposed to say "buggy processor"... All buggy processors MUST put $500 into Jacek's bank account.] Sanjiva: That would require defining classes of processor, there should be one for clarity. Jeff: There has to be the definition of what processor is meant. Start with those things that matter for interop. [.. snip ..] Jonathan: Just define the meaning of the language :) Bijan: Can't entirely *ignore* processing issues when specifying the semantics& different semantics can make processing sane or not. Sanjiva: Needs clarification 1) scope of required and that is it. Arthur: We are transplanting SOAP approach to WSDL. SOAP has processing model and WSDl doesnt. Define how processor maps infoset to the component model and that defines conformant processor. Gudge: How is that different from the way the spec is now? [DaveO: Glen, btw my point about "optional" bindings is that you and I might use the same WSDL, but I implement one binding and you don't. That to me should be ok. If we are both "required", then I should have to.] Glen: The issue of "requiredness" is different from separating the processor assertions. [GlenD: If we both claim to implement the same WSDL, we both need to be prepared to accept anything which is produced by clients which process that WSDL. So with bindings, you're right, in that it's unlikely I'm going to implement a WSDL that actually has your endpoint address in it.] [DaveO: If they only use required. The whole point of "optional" is that it isn't necessary. :-)] [GlenD: But if I put an optional extension in an interface which allows two different behaviors, ANY implementation of that interface must accept both. That's my point.] [Bijan: Hmm. Glen, with features and properties, one can, in some sense, avoid the global scope of extension changes in this way. Extensions can always set properties. So a binding could set a property. And in the interface, I have a feature parameterized by that property. Which say, adds an operation (or "enables" an operation).] [DaveO: Glen, I disagree. If there are 2 different behaviors that must be accepted, then they should be required, not optional.] [GlenD: DaveO: the whole POINT of the optionality is that the client can do EITHER.] Sanjiva: "Processor must do x" is ok to use except the extensions part. DBooth: Should we continue to mix definition of the language and processor assertions? Sanjiva: Yes, that is ok. [GlenD: And if the client can do one of two behaviors (avec ou sans extension), any implementation which claims to be conformant must accept both.] Gudge: Are there places where the processor is implied, but not asserted? DBooth: Not sure about that. Sanjiva: Right now the processor comes up only in types and extensions. Let's just fix the exts section. Processor assertions in the types section are ok right now. DBooth: This does not clarify the requirements on the conformant processor though. [GlenD: This discussion has instilled in me a deep and sincere, and in no way optional, desire for caffeine.] Sanjiva: No-one has complained about it so far, but there are a lot of complaints about the exts section. [Gudge: Gudge concurs with glen] [JacekK: Do we keep discussing it or do we just trust the editors, since we're not yet really going to LC?] Jonathan: However we can have a section on conformant processors that has all the necessary assertions. Introduce the conformant processor section and solve the two outstanding issues. -------------------------------------------------------- 11:00 Break -------------------------------------------------------- 11:30 Issue 79 continued. Current proposal, add conformance section with: 1) document conformance: conform to schema, etc. 2) infoset conformance 3) processor conformance (types, exts, Jacek's proposal) Sanjiva: 3 builds on 1 and 2. DBooth: Add to 3) accepts any conformant WSD. Jonathan: Proposed to the group to accept this Group did not disagree RESOLVED: Add conformance section as above. [DBooth: PROPOSAL ACCEPTED! WE HAVE PROGRESS! HALLELUJAH!] ACTION: Editors to incorporate the above proposal. ACTION: DBooth to propose specific changes needed for processor conformance text] [Issue 92, Issue 133 skipped for now.] -------------------------------------------------------- 10:50 Issue 112: Headers at the abstract level [9] - Headers as first-class citizens [10] - Glen's OOB feature proposal [11] [9] http://www.w3.org/2002/ws/desc/2/06/issues.html#x112 [10] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0004.html [11] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0053.html DaveO: Headers are fundamental at the protocol level. Most protocols have headers. Glen: Two mechanisms now: F&P and the binding. F&P may attribute what data needs to go into the application and then binding could lay it out into the header. Jonathan: There may not be disagreement that we do it via F&P. Umit: The proposal is that F&P is used, but there is an additional 1st class construct Jonathan: There was agreement that we will add such a feature. Close with AI on Glen and Yaron to reconcile? DaveO: We're not near the consensus there. Glen: It is simply side band data, why constrain it at the abstract level? DaveO: Having it at the abstract level may help apps to decide where to look for such information. We should take advantage of the SOAP model. Glen: It is not good to encourage people to say something must be in the header or not. Sanjiva: Can the same feature be used in the component? Jonathan: Same feature URI can be used repeatedly, yes. Glen: F(P*) not necessarily (FP)*. My proposal has one header (composed of various data) Sanjiva: We agreed on F&P mechanism for defining headers on the wire. Glen: We still wanted to have a header and not multiple. Roberto: If the feature components are different that may be multiple. Sanjiva: These proposals have to converge. Glen/DaveO: That's the problem. Jonathan: Clarification: application headers vs protocols headers. Tom: Defining headers is what people do with WSDL. Sanjiva: HTTP has mechanism for both sorts of headers. WSA defines headers for SOAP. [Yves: Point of clarification, cookies are NOT in rfc2616 (HTTP/1.1 spec), so there are not 2 ways of doing extensions in the spec.] DaveO: We're building toolkit that allows both kinds of headers. Tom: It should be possible to mix headers and it should not be constrained by WSDL. DaveO: To get to consensus: we want a generalized facility and then the other well defined ones. Glen: It does not work that way, 1) there are the headers or 2) here is the data that appears in the headers [Will attempt to reconcile positions during lunch.] -------------------------------------------------------- 12:15 Lunch Scribe: Umit -------------------------------------------------------- 12:40 Issue 112 cont. [GlenD: <soap:Header> <myDangerousStuffMasqueradingAsApplicationData soap:mustUnderstand="true"/> </soap:Header>] Jonathan welcomes the schema group members as observers. Issue 112: Glen suggests that it should be closed with a future proposal Glen suggests a strawpoll: 1. one bag one header for an application header 2. There can be multiple headers for applications. 3. abstain Paul: Is this about SOAP binding or WSDL in general? Glen: We can resolve this by defining one single feature. Jonathan: We can solve this by one feature, but we don't have to solve whether this resolves into one or more headers right now. [Anish: Does proposal one prevent proposal two and vice versa, or is it a question of what we want to encourage?] Glen: We will define how it gets resolved in the future for SOAP binding. DavidO: Objects because it makes Glen's proposal accepted. Correction: Third option is to do nothing, not abstain. DavidO: The question is whether there is one place to put app data or be flexible as BEA proposes. Sanjiva: We should close the issue, continue to work on the action item for Glen. We are not done yet with respect to the action item since there are two proposals. RESOLUTION: Close this issue. Open another one to decide whether there should be a single header vs multiple headers (or both). -------------------------------------------------------- 14:00 Issue 109: WSDL versioning [12] - Use cases (DavidO) [13] - Requirements (PaulD) [14] - Scenarios [***** ACTION: DaveO to write up a proposal for augmenting schema information to enable versioned data. *****] [12] http://www.w3.org/2002/ws/desc/2/06/issues.html#x109 [13] http://lists.w3.org/Archives/Public/www-ws-desc/2004Jan/0016.html [14] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0082.html PaulD: Must understand with tag finding should be discussed. [DaveO: My post to schema is at http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0124.html] PaulD: If we have WSDLs with versions, the next thing that needs to be discussed how do we refer to them? DavidO: There are multiple things that are in WSDL that the Schema group do not care about, but issues about what we do with Schema is relevant to the schema group. Adding operations, etc should be addressed separately. Jonathan: The issue is what do we do with documents that have the same namespace. DavidO: We use XML schema to describe the messages. Is there a different interpretation of Schema we can use? Is there a dial in the schema that we can use that allows the extensibility desired? PaulB: If you use a restricted schema, this is possible. If content model is flat and the extra content is at the end, it is deterministic and easy to accept a document. There are two attributes: Validation attempted and validity. [HenryT: Their relation is discussed in detail in the following informal note, which WSD WG members may find helpful: http://www.w3.org/XML/Group/2001/06/validity-outcomes] [asir: http://www.w3.org/XML/2001/06/validity-outcomes.html is the public version] PaulB: If the root node is invalid, you can look down the tree and strip the nodes that are valid unknown. CMSMCQ: Paul's algorithm is applicable with Schema 1.0 with the restrictions that are defined. Jonathan: There may be a convention we can recommend in WSDL. Is this true? [DaveO: There's a really cool benefit, you don't need wildcards..] HenryT: Use global elements and validate twice. Use 1st time what Paul recommends, and validate again. Sanjiva: Why are we talking about this? This is not about WSDL. Jonathan: Versioning of schemas is relevant for us. Sanjiva: Perhaps a note from the schema group DavidO: If we want to enable someone to take advantage of the double validation, etc. we need to say explicitly say it in WSDL. Jonathan: Use a style. JeffM: We can be more prescriptive about the way the Schema is used. [DaveO: Q: does this require special schema tools] Paul: The result of a schema processor should make more information available but it is doable by the current processors CMSMCQ: Use top level elements. Use what you learn with regular languages. The techniques may be recommended for schema authors. HenryT: WSDL should recommend WSDL normalized schemas. With wildcards added at the end. Jonathan: If this is solved in Schema 1.1, we can recommend moving to Schema 1.1 HenryT: We can recommend best practice. [HenryT: The advantage of the two-pass story doesn't require authors to take action.] DavidO: Two pass processing does not require the WSDL author to include a wild card. [HenryT: Paul Biron points out that receivers are in control in e.g. the two-pass+surgery story. Whereas in the auto-insert-wildcard(+boundary) story, the receiver has lost control of how strict they want to be.] PBiron: Is the extra stuff in the same namespace or not? What are the requirements for the extra stuff? DavidO: If there are constraints, that may allow us to get to the point needed. Sanjiva: This is not problem for WSDL. [HenryT: So I understand MSM's suggestion as saying -- "Give me a schema for a WSDL language -- I'll use redefine by extension to make every type, or any subset of types you name, extensible, by redefining by extension with the above] Sanjiva: The schema is not defined by WSDL, it comes from somewhere else. [HenryT: Note this rules out schemas which use 'all' groups (no bad thing :-)] DavidO: If there is a mode, WSDL 2.0 can define a WSDL application of schema with the validation rules that are discussed. DavidEzell <scribe misses some points>. DavidO: We have extensibility and versioning. It is not clear how they overlap. There are instances when versioning and extensibility collide. It is very hard to decide where the boundaries of versioning are. DavidEzell: You need to give a hint up front when you have a new version up front, with a new namespace. JeffM: We have not decided what we mean by versioning. Asir: Says that the WSDL does not care about the underlying type system, why are we discussing schema specific issues? Jonathan: We need to specify at least Schema for interop. Bijan: Can we take this out of critical path for Part 1 to meet our timeline? Jonathan: If we can adopt a marker and best practices, it would help the problem. DavidO: I will get my customers to send a last call comment if this is not handled here. [Bijan: Ah, that was what I wanted :)] DavidO: we are describing the validity of the message, this is part of the description. JeffM: You have not established what the requirements are. Get a definition of versioning first to move on. PaulD: We are not only using schema, this is intrinsic to WSDL. We generate messages as well. DavidO: If it is done with the primer, the functionality will not be in. Put this on the back burner as an issue. If we can close all the other issues, we can come back to this. Bijan: Q for David. Lets say have a task force and come up with recommendations? Should they be normative? DavidO: Yes. There are range of solutions Bijan: If we need to solve this problem, this will affect Part1. DBooth: This is a best practices issue. This can not be normative. Sanjiva: Close this issue right now. We already restrict the messages with XML rules. If there is additional constraints within the schema expressed by schema, it will be perfectly fine. This is a solution offered by schema. Jonathan: We need a definite proposal. DavidO: Why aren't the people in this group interested in pursuing with this with Schema wg? JacekK: I am interested in pursuing WSDL construct versioning. Lets move this issue to the primer. [KevinL: +1 to move on. I don't believe we agreed to move data versioning to primer.] [Discussion on whether we should have a joint task force goes on. ] Jonathan: The mission of the task force is to come up with improvements to Part1 and Part2 or Schema itself? [sanjiva: I have completed the action item to insert a conformance section - would appreciate if DavidB and others would take a look and propose additional conformance constraints.] RESOLUTION: Joint tf with Schema and WSDL to investigate whether there may be mechanisms developed. RESOLUTION: Close the issue. ACTION: Primer to include best practices and the Schema group to review the best practices language. -------------------------------------------------------- 15:10 Issue 140: Version attribute [15] - Tom's initial proposal [16] and follow-on proposal [17] [***** Paul to develop clear enumeration of options *****] [15] http://www.w3.org/2002/ws/desc/2/06/issues.html#x136 [16] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0049.html [17] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0069.html [pdowney: Has posted an attempt to synthesize the versioning discussion: http://lists.w3.org/Archives/Public/www-ws-desc/2004Mar/0014.html] CMSMCQ: My perception is that there is a need to point to the version of the schema language. KevinL: Three issues: attribute for defn, define how to use it, version attribute for interface. PaulD: If there are two documents with the same namespace, how do you differentiate? You need to know which is the newer version. Gudge: The usage of namespace is the same as in schema. DavidO: The reason for a version attribute is to allow compatible changes to be introduced without changing a namespace. Changing a namespace is costly for introducing compatible changes. We also need to construct a uri from the version attribute in addition. [pdowney: So is the definitions namespace synonymous with the interface major version ?] Sanjiva: We need to make changes to all our components in order to refer to versions of the components. This is drastic change. [Anish: +1 to Sanjiva's comment] Sanjiva: Versioning of the definition is not meaningful. [GlenD: Wow. Sanjiva rocks my world.] JacekK: Version attribute does not help much except when WSDL is downloaded and you need to refresh/regenerate artifacts. [DaveO: +1 to JacekK's pov] JacekK: We don't need to say more than that. [JacekK: dbooth, personally, I think checksum or diff is simple enough, but I guess for some people this might vary.] KevinL: Optional version attribute will be helpful in the defn elements will be helpful for internal development. GlenD: When definitions have to refer to other documents, the referencing will be problematic. You need to carry the version attribute to make sense of what is being referenced. There is not much need for this, other than the use case JacekK brought up. WilliamV: we should not do anything on this, but if we do we should use the namespace URI to convey version info. [TomJ: I think messing with the target namesapce and adding a version convention is not a good idea] [sanjiva: +1 to it not being a good idea] Bijan: There are two aspects to the problem: when to say things are different and how to define relationships between things. JeffM: This problem is an old problem. The version attribute with unspecified semantics is not useful. We need to define substitutability. DavidO: Schema group has looked into the formal defn of substitutability, acceptable sets, etc. [pdowney: wanted to state that David and Norm's TAG finding on versioning matches his practical experience] Igor: Version is useful at runtime. If one needs to maintain relationship between changes, change management is the place to do it. [pdowney: Interesting point from Igor - that actual version could be discovered at runtime.] Tom: Describes the details of his proposal. Version attribute indicates a minor revision. [MSM: For the record, the current rough draft of the schema paper on accept sets, etc. is at http://www.w3.org/XML/2004/02/xsdv] Tom: If WSDL artifacts change, the compatible changes are adding operations, added endpoints. These changes allow the clients with the old versions to still operate. This solves a very well defined set of problems. This is not a solution to the entire versioning problem. [DaveO: big + 1 to Tom.] [KevinL: +2] [igors: Tom, if someone has changed the wsdl or schema then he has to change the namespace. Things won't work otherwise.] [Roberto: A hash computed by the consumer of the wsdl would work just as well as the version attribute (actually better, because the client could decide what the relevant information is)] [DaveO: Tom, don't do that.] RESOLUTION: Close the issue with no action. -------------------------------------------------------- 15:45 Break -------------------------------------------------------- 16:30 Joint Session with TAG (Web arch [21]) - Saying more about QName mapping (?) [22] - Error recovery vs. not having to "validate" parts of the doc not used or examined by a processor. [23] - Comparison of XML namespaces with Schema and WSDL namespaces. [23] - Cracking a component designator URI. [23] - Operation safety? (Issue 117) [24] [21] http://www.w3.org/TR/2003/WD-webarch-20031209/ [22] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0164.html [23] http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0180.html [24] http://www.w3.org/2002/ws/desc/2/06/issues.html#x117 [dbooth: Jacek's WebArch comment from http://lists.w3.org/Archives/Public/public-webarch-comments/2004Feb/0030 .html: 4.5.5 below the Good Practice: QName Mapping - the section (or some other) should probably say more on the interaction of QName Mapping, fragment identifiers in XML (4.5.8) commonly used for this mapping and namespace documents (4.5.4)] JacekK: We need a new scenerio to connect sections. [dbooth: WebArch section on QNames: http://www.w3.org/TR/2003/WD-webarch-20031209/#qname-uri-syntax] [plh-lap: (sections 4.5.5, 4.5.8, 4.5.4)] Stewart: If Qnames are going to be used for identification, you need a mapping to URI space. JacekK: However, there is no requirement to use these mapped URIs somewhere. [Chris: http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0180.html] DanC: The discussion is still going on, there is an error (number?) and the architecture document just reflects the current state. Next issue: http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0180.html DanC: Should be clarified if not clear enough. [Gudge: http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0180.html] Jonathan: We name abstract components in a targetnamepace. We have taken the namespace to a different level. DanC: How does the qnames and targetnamespace interact? Have you specified how Qnames mapped to URIs? If you have done this, you are done. Jonathan: Do we need the mapping for URIs for the importing mechanisms in WSDL? It is ambiguous whether the namespace should be absolutized before adding to the component model. [Gudge: Likes the notion of mandating that targetNamespace URIs be absolute to begin with.] [DaveO: +1 to absolute URIs. ] [asir: +1 to absolute URIs. Simple things should be simple.] umit: +1 to absolute URIs [dbooth: +1 to absolute URIs] [jjm: +1 to URIs, absolutely] [Chris: +1 to absolute URIs fwiw] [Anish: +1 to absolute absolutely :-)] [alewis: +1 to absolute URIs in targetNamespace] DanC: Don't canonicalize, just absolutize then compare string by string. Jonathan: There needs to be one mechanism for interop. [Stuart: URI comparison bit in RFC2396bis is at http://gbiv.com/protocols/uri/rev-2002/rfc2396bis.html#comparison] ChrisL: Agrees with DanC (if scribe got it right) [asir: My +1 was to mandating that targetNamespace URIs be absolute to begin with] [Chris: Mostly - except dan expressed that comparing IRIs either by character or by hex escape was undecided whereas actually the IRI spec says to compare them by character] Jonathan: Is the relative URI allowed for schema [namespaces] imports? [Stuart: Basic idea is that there are multiple comparison functions. There is one 'identity' function (absolute and then compare character-by-character). Other compariisons must respect 'identity'.] [DaveO: rfc 2616 says http://www.abc.com and http://www.ABC.com are the same.] [Chris: Yes, and http says that foo.org and foo.org:80 are the same.] [DaveO: yup.] MSM: If it is not an absolute, it will not work. [Stuart: ie. beyond an identity comparison, other comparisons that compare 'identical' URIs must not say they are different (I think).] MSM: Schema does not prescribe behaviour for absolutization. DBooth: QName is ambiguous by itself. The mapping should be sensitive to partitioning. Stuart: You need to incorporate partitioning. Component Designator URIs: http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0180.html [Chris: you don't have to use http. But a transport that reports the media type is easier, naturally. So (to summarize) webarch says that the interpretation of a fragid depends on the media type of the resource representation. if you don't fetch one, you don't know which set of rules to apply.] [Bijan: (except if you have that information from some other means)] Issue 117: Operation safety [dbooth: Hugo's message: http://lists.w3.org/Archives/Public/www-ws-desc/2004Feb/0246.html] [DanC_jam: idempotent(P) iff forAll X P(X) == P(P(X)). # the definition I carry around in my head] [Bijan: http://en.wikipedia.org/wiki/Idempotent. Yep.] [dbooth: Hugo's slides: http://www.w3.org/2004/Talks/0304-hh-wsdl/] [Bijan: Which isn't what Hugo said. Or, at least not clearly.] hugo: Idempotent messages get the same result regardless of the number of times they are repeated. [Roberto: The bit about side effects for idempotent operations was suspect.] [Bijan: "same side effect" must mean *the* very same *one*.] [caribou: http://www.w3.org/TR/2003/WD-ws-gloss-20030808/#idempotent] [Roberto: right, just one in number] DanC: Motivation for safe is important. The lower levels need to know whether the operation is safe or not defined by the person that defines it. [Stuart: There is clearly more to be said about idempotency - see http://www.amazon.com/exec/obidos/tg/detail/-/052155344X/qid=1078416611/ /ref=sr_8_xs_ap_i1_xgl14/104-6324547-4209537?v=glance&s=books&n=507846 :-)] Bijan: Is this the only place where we define something about semantics of an operation/Message exchange? Discussion ensues whether GET operation is safe or not. [Stuart: Idempotency and Safety enter the vocabulary from RFC 2616 Section 9.1 (HTTP 1.1 spec) http://www.faqs.org/rfcs/rfc2616.html] Bijan: Safety is context dependent. Sanjiva: From WSDL perspective, the question is whether we should do the marking of safeness at the abstract level or not. [Stuart: BTW defn of idempotency n RFC 2616 is not very adequate either (side-effect free)] Arthur: Most of the Web is for information retrieval. It is a good idea to mark safety at the abstract level. Glen: Is it possible to break the safeness in different levels in WSDL by adding additional headers, etc? JacekK: It's not yet clear if an operation identifies a piece of functionality or not, because if not, we cannot mark an operation as safe as that depends on the functionality behind the operation.] [Chris: Yeah, it has the same result every time ....] Stuart: There is no way to make the WSDL generator to define an operation to be safe for bottom up case. [DanC_jam: Yeah... what he's saying.] [Chris: Modula-3 allows modules to be marked as 'unsafe' meaning they use untyped memory access.] Arthur: For top down, it is relevant to be able to mark operations as safe. [pdowney: +1 to Arthur] [DanC_jam: I heard Arthur mention several programming languages with a relevant notion of safeness: const in C++, .Net attributes, Java 1.5 something.] KevinL: What is the safeness mean for the client of the service? Why is this useful? [asir: according to Hugo, e-mail, - a safe operation is cacheable; it may be serializable as an HTTP GET (or even HEAD) request; if so, the request can take advantage of the Web infrastructure such as caches. A toolkit could make the choice of using an HTTP GET or SOAP GET binding for such operations (e.g. GetStockQuote) if there where marked as such. Knowing that an operation is safe or idempotent can allow poor-man's message reliability, or message reliability optimizations: safe and idempotent operations can be repeated without additional side-effects, and therefore this eliminates the problem of ensuring that a message is received only once.] [Chris: http://en.wikipedia.org/wiki/Idempotent] Jonathan: An example is when your credit card is going to be charged and you are informed on the web. [Chris: In user interface design, a button can be called "idempotent" if pressing it more than once will have the same effect as pressing it once. For example, a "Pause" button is not idempotent if it toggles the paused state. On the other hand, if pressing it multiple times keeps the system paused and pressing "Play" resumes, then "Pause" is idempotent. This is useful in interfaces such as infrared remote controls and touch screens where the user may not be sure of havin...] [plh-lap: http://www.w3.org/TR/2003/WD-webarch-20031209/#safe-interaction] DanC: Web Architecture has already defined. SAnjiva: It is not covered for all the MEPs that exist in WSDL. We have to define it for any pattern. [Stuart: FWIW see RFC 2616 "9.1.1 Safe Methods"] [Arthur: I said that Java 1.5 will have code attributes, so even though there is no language syntax to mark a method as safe, you could define a code attribute to mark a method as safe. In C++ you can mark a method as const which means it doesn't modify the object.] [Roberto: minor nitpick: they are called "program annotations", or simply "annotations"] Chris: Safe does not mean that anything bad will not happen, for example downloading illegal material from the web may be a safe operation. [Chris: because no additional obligations were incurred] [Arthur: In .NET there are code attributes and these are used for Web services, so you could also define a new .NET code attribute to mark a method as safe.] PaulD: Worries that 'safe' is just one instance of a generic problem - how to publish policy. DBooth: We need to clarify that the safety is from the perspective of the client for any MEP. DAnC: The only requirement that I can speak for is the Request/Response (In-out) pattern [plh-lap: http://www.w3.org/TR/2003/WD-webarch-20031209/#safe-interaction] Phillipe: Section 3.5 of the Web Arch docuement will suffice [DanC_jam: (I don't know whether "input messages" get exposed sufficiently to designers)] Jonathan: Lets refer to HTTP or web architecture document. [dbooth: DanC, yes in WSDL they do get exposed to the designer to the same degree as operations.] Glen: Has an issue for addressing interactions with extensions. JacekK: Do we expect/agree when we have an operation in an interface that we can assign semantic to an operation? This is the same problem, because assigning safeness is adding semantics. -------------------------------------------------------- [Chair recalls Joint session TAG ended at about this point.] [Discussion onto whether the operation carries semantic or not.] Gudge: What are we looking for? To label an operation "safe" in the same way the HTTP GET is safe? Sanjiva: This may not work in general, but we are asked just to add a mechanism to enable marking safeness. [TomJ: If we have to add it because the tag will demand it, lets just stick some syntax in there and we can be done with it.] [KevinL: +1, but that syntax must be optional] [plh-lap: 1. safe='yes' 2. safe='http://..../safe' 3a. feature/properties (we define the uris) 3b. feature (we define the uri) / property (we reuse soap/get)] [sanjiva: +1 for (1)] The wg starts discussing whether the safeness should be expressed via feature (hugo), a simple property (Tom), feature at the abstract level (and property at the binding), etc. [anish: +1 to feature -> webMethod] Proposal: Add an attribute on operation, default to false to indicate the safeness. [KevinL: against default to false. If not specified, it means no claim is made.] [asir: SOAP 1.2 - Underlying protocols designed for use on the World Wide Web provide for manipulation of resources using a small set of Web methods such as GET, PUT, POST, and DELETE. These methods are formally defined in the HTTP specification [RFC 2616], but other underlying protocols might also support them. Bindings to HTTP or such other protocols SHOULD use the SOAP Web Method feature to give applications control over the Web methods to be used when sending a S...] Glen: This is the same as setting the webMethod to GET. [plh-lap: -1 to reuse the webMethod get property] Jonathan: We will have duplicate information if we need to specify the web method in the binding as well as the abstract level. Sanjiva: Proposal: Add a safety property to the interface operation component. [plh-lap: Property?] [anish: Is the WSDL then going specify exactly what is meant by "safe"?] [plh-lap: We point to the web architecture] Roberto: Property syntax is better because it can mark interfaces to be safe instead of defining it on operation. [plh-lap: And if people don't like the definition of safe in web architecture, they should fix the web architecture.] Glen: There is no reason to add anything to the component model. The wg continues to discuss properties in component model vs features & properties. [Arthur: e.g. ASP.NET happily exposes every operation of a Web service as SOAP/HTTP, HTTP GET and HTTP POST] Straw Poll: 1. boolean property to operation component 2. use property (from F&P) to designate safety. 7 in favor of 1 8 in favor of 2 Resolution: We don't have a strong preference. Bijan: redo the strawpoll. Boolean property in favor 8 F&P : 8 [Chair asks who cannot live with the approaches, there are some on each side. Chair adjourns meeting, will figure out a procedure for moving forward before tomorrow.] [hugo: Hugo's slides: http://www.w3.org/2004/Talks/0304-hh-wsdl/] [Issues 123, 117, @wsdlLocation skipped for now.]
Received on Tuesday, 9 March 2004 11:41:06 UTC