- From: Jean-Jacques Moreau <jean-jacques.moreau@crf.canon.fr>
- Date: Thu, 15 Feb 2007 15:02:48 +0100
- To: Philippe Le Hegaret <plh@w3.org>
- Cc: www-ws-desc <www-ws-desc@w3.org>
Overall, this looks good (and quite detailed!). I mostly have or 2 minor questions. Comments inside. JJ. Philippe Le Hegaret wrote: > OK, here is a try at issue CR112 [1], a proposal to make editorial > changes to a text approved in CR144 [2], and some other > recommendations/comments. > > My action item mentions "come up with a more detailed proposal for CR112 > if possible". Yes, I believe it is possible, but certainly not easy. > Hopefully, this proposal makes some sense. Readers should read the > entire proposal before judging each recommendation. I copied a lot of > text from the specification to simplify the task of reviewing the > changes. > > > > 5. WSDL SOAP Binding Extension > [[ > A subset of the HTTP properties specified in the HTTP binding extension > defined in section 6. WSDL HTTP Binding Extension are present in a SOAP > binding when the SOAP binding uses HTTP as the underlying protocol, for > example, when the value of the {soap underlying protocol} property of > the Binding component is > "http://www.w3.org/2003/05/soap/bindings/HTTP/". These properties MUST > NOT be used unless the underlying protocol is HTTP.† The properties that > are allowed are the ones that describe the underlying protocol (HTTP): > > * {http location} and {http location ignore uncited} on Binding > Operation components, as defined in 6.5 Binding Operations and 6.8.2.2.2 > Controlling the serialization of the query string in the request IRI, > respectively. > ]] > > RECOMMENDATION: Do nothing. This is good. > +1 > 5.10 WSDL SOAP 1.2 Binding > 5.10.2 Description > [[ > When the SOAP Message Exchange Pattern is the SOAP 1.2 Response MEP and > the underlying protocol is HTTP, the Binding Operation may use the {http > location} property defined in section 6.4 Binding Operations. When this > property is present on the Binding Operation component, the Endpoint > component also follows the rules for constructing the address from the > {address} property and the {http location} property values. > ]] > > RECOMMENDATION: we should remove the paragraph entirely. The first > sentence is a repeat of what is in section 5 (see previous > recommendation) and is misleading anyway since we use {http location} > for all SOAP MEPs (see section 5.10.4 below). In the second sentence, I > don't know what it means for the "Endpoint component to follow a rule" > and again the combination of {address} and {http location} are mentioned > in 5.10.4 for the > "http://www.w3.org/2003/05/soap/mep/ImmediateDestination" property. > +1 > 5.10.3 SOAP 1.2 Binding Rules > [[ > HTTP IRI Generation. [...] If the SOAP MEP selected is > "http://www.w3.org/2003/05/soap/mep/soap-response/" then the value of > the SOAP "http://www.w3.org/2003/05/soap/mep/ImmediateDestination" > property MUST be generated using the HTTP binding extension's rules for > generating an IRI for HTTP GET (see 6.8.1 Serialization of the instance > data in parts of the HTTP request IRI). The input serialization format > of application/x-www-form-urlencoded is the only supported serialization > format for HTTP GET in the SOAP Response Message Exchange Pattern. > ]] > > QUESTION: We map all WSDL MEPs into the SOAP Request-Response MEP in > section 5.10.4, but we stay silent at mapping them into the SOAP > Response MEP. Is that intentional? How do one map the WSDL In-Out MEP > into the SOAP Response MEP? It seems to me that the text we have for > HTTP IRI Generation is in fact meant to define partially that mapping. > Isn't the text you quote above already covered elsewhere (e.g. 5.10.4.xxx)? Can't we simply drop it? > NOTE: the remark on application/x-www-form-urlencoded is very subtle. > Section 6.8.1 includes that "Additional rules for the serialization of > the HTTP request IRI MAY be defined by a serialization format" and the > remark triggers the application of section 6.8.2. It also implies that > we don't apply 6.8.2 for other SOAP MEPs since we never mention a > serialization format for them. I don't believe (hope?) we need to change > anything here but readers better read the specification carefully. > > 5.10.4 Binding WSDL 2.0 MEPs to SOAP 1.2 MEPs > > 5.10.4.1 WSDL In-Out to SOAP Request-Response > 5.10.4.1.1 The Client > [[ > The SOAP "http://www.w3.org/2003/05/soap/mep/ImmediateDestination" > property takes the value of the WSDL {address} property, modified by the > {http location} property following the rules described in section 6.8.1 > Serialization of the instance data in parts of the HTTP request IRI. > ]] > We find the same text in the following sections: > 5.10.4.2 WSDL In-Out to SOAP SOAP-Response > 5.10.4.3 WSDL In-Only to SOAP Request-Optional-Response > 5.10.4.4 WSDL In-Only and Robust-In-Only to SOAP Request-Optional-Response > > RECOMMENDATION: Rename section 5.10.4.4 to "WSDL Robust-In-Only to SOAP > Request-Optional-Response" > DONE. This was a left-over from a previous editing session. > RECOMMENDATION: the notion of SOAP Request-Optional-Response as a SOAP > MEP doesn't exist as far I know Indeed. (For the curious: the expression Req-Opt-Resp is present in the introduction the PR for SOAP 1.2 SE, but was removed in a subsequent editor draft.) > and we map them all to the SOAP Request-Response anyway. But not to the exact same Req-Resp MEP! (although they share the same URI and, probably?, the same behaviour) See my earlier message [3]. [3] http://lists.w3.org/Archives/Public/www-ws-desc/2007Feb/0096.html > So we should use "SOAP Request-Response" instead of "SOAP Request-Optional-Response" in the title of sections 5.10.4.3 and 5.10.4.4. > > RECOMMENDATION: the text should indicate that {address} is used as a > base URI. Using the new section 6.4.6, I propose the following for each > MEP mapping: > [[ > The SOAP "http://www.w3.org/2003/05/soap/mep/ImmediateDestination" > property takes the value of HTTP Request URI, as defined in 6.4.6 HTTP > Request URI, and modified as described in section 6.8.1 Serialization of > the instance data in parts of the HTTP request IRI. > ]] > +1 > 6. WSDL HTTP Binding Extension > 6.4 HTTP Binding Rules > > RECOMMENDATION: I propose to add a new section 6.4.6 HTTP Request IRI as > follows: > [[ > 6.4.6 HTTP Request IRI > > When formulating the HTTP request, the HTTP Request IRI is an absolute > IRI reference and is the value of {http location} property, resolved > using the value of the {address} property of the Endpoint component as > the base URI (see section 5 of [IETF RFC 3986]).† If the {http location} > property is absent, the HTTP Request IRI is the value of the {address} > property of the Endpoint component. Input serializations may define > additional processing rules to be applied to the value of {http > location} before applying the process of reference resolution, ie before > combining it with the {address} property to form the HTTP Request IRI. > For example, the three serialization formats defined in section 6.8 > Serialization Format of Instance Data define a syntax to use the {http > location} as a template using elements of the instance data. > > If the HTTP Request IRI uses the https scheme, then HTTP over TLS [IETF > RFC 2818] is used to secure the HTTP connection. > > The HTTP Request IRI identifies the resource upon which to apply the > request and is transmitted using the Request-URI, and optionally the > Host header field, as defined in [IETF RFC 2616]. > ]] > +1 > NOTE: the last paragraph was triggered by the following text in section > 5.2 of RFC 2616: " An origin server that does differentiate resources > based on the host requested (sometimes referred to as virtual hosts or > vanity host names) MUST use the following rules for determining the > requested resource on an HTTP/1.1 request: 1. If Request-URI is an > absoluteURI, the host is part of the Request-URI. Any Host header field > value in the request MUST be ignored." > > 6.5 Binding Operations > 6.5.2 Relationship to WSDL Component Model > [[ > {http location} OPTIONAL. An xs:anyURI, to the Binding Operation > component. It MUST contain an IRI reference and MUST NOT include a > fragment identifier component.† If this IRI is a relative reference, the > value of the {address} property of the Endpoint component is used as a > base URI to resolve it, as defined in section 5 of [IETF RFC 3986].† As > a consequence, if this IRI is an absolute IRI, the {address} property of > the Endpoint component is ignored. Input serializations may define > additional processing rules to be applied to the value of {http 5. WSDL > SOAP Binding Extension > [[ > {http location} and {http location ignore uncited} on Binding Operation > components, as defined in 6.5 Binding Operations and 6.8.2.2.2 location} > before combining it with the {address} property of the endpoint element > to form the HTTP request IRI. For example, the three serialization > formats defined in section 6.8 Serialization Format of Instance Data > define a syntax to use the {http location} as a template using elements > of the instance data. > > If the resulting IRI uses the https scheme, then HTTP over TLS [IETF RFC > 2818] is used to send the HTTP request. > ]] > > RECOMMENDATION: This should now read: > [[ > {http location} OPTIONAL. An xs:anyURI, to the Binding Operation > component. It MUST contain an IRI reference and MUST NOT include a > fragment identifier component.† > ]] > +1 (assuming you mean replacing the 1st paragaph and deleting the 2nd and 3rd). > 6.8.1 Serialization of the instance data in parts of the HTTP request > IRI > 6.8.1.1 Construction of the request IRI using the {http location} > property > > SIDE COMMENT: Do we really need to have a subsection if there is only > one? > > [[ > Each encoded template (encodedTemplate production in the grammar above) > NOT preceeded in the {http location} property by a "?" or a "#" > character, is encoded as follows: > [...] > > Each uncited element (i.e. each element not referenced in a template), > OR each encoded template (encodedTemplate production in the grammar > above) preceeded in the {http location} property by a "?" or a "#" > character, is encoded as follows: > ]] > > RECOMMENDATION: Do nothing. I don't think it's good design to have ? or > # in the {address} property and it would complicate the description too > much to be able to describe this, so let's stick with {http location}. > You mean: keep the above 2 paragraph as is? If so +1. > 6.8.2.2.3 Serialization in the request IRI > [[ > If the {http location} property is not present, or if it is present and > its value does not contain a "?" (question mark) character, one is > appended to the request IRI. If it does already contain a question mark > character, then the value of the {http query parameter separator} > property, if present, or the value of the {http query parameter > separator default} property otherwise, is appended. > ]] > > RECOMMENDATION: Do nothing. I don't think it's good design to have ? or > # in the {address} property and it would complicate the description too > much to be able to describe this, so let's stick with {http location}. > Ibid. +1 if no change. JJ. > > Philippe > > [1] http://www.w3.org/2002/ws/desc/5/cr-issues/#CR112 > [2] http://www.w3.org/2002/ws/desc/5/cr-issues/#CR144 > > > >
Received on Thursday, 15 February 2007 14:03:07 UTC