W3C home > Mailing lists > Public > www-ws-desc@w3.org > October 2006

Re: Some MTOM precisions

From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
Date: Thu, 19 Oct 2006 01:28:25 -0700
Message-ID: <45373729.6010705@oracle.com>
To: Youenn Fablet <youenn.fablet@crf.canon.fr>
CC: Jonathan Marsh <jonathan@wso2.com>, www-ws-desc@w3.org, "'Jean-Jacques Moreau'" <jean-jacques.moreau@crf.canon.fr>

Youenn,

Few comments on the proposal:

1) Section 2 says:
---
This extension allows describing the capacities and requirements of a 
service related to the use of MTOM. This specification defines the 
semantics of this extension when used in conjunction with:

    1. WSDL2.0 SOAP Binding, as defined in [WSDL 2.0 Adjuncts]
    2. HTTP being set as SOAP transport protocol
---

When I first read this I interpreted the above to mean that this 
extension is used only when WSDL 2.0 soap bidning *AND* HTTP is used.

After reading the rest of the proposal it was clear that this extension 
can be used for non-HTTP transports.

I would suggest removing the 2nd bullet.

2) Table 2-1, 2nd row, 2nd column says:
---
MTOM MUST be supported and SHOULD be engaged by the client. Typically, 
MTOM MAY be disengaged when NO binary data is to be sent.
---

There are two cases when the client may not want to engage MTOM:
a) there is no binary data to be sent (for example, the binary part has 
minOccurs="0").
b) the binary data that is to be sent is so small that the MTOM 
optimization results in a larger message ('cause of all the MIME 
overheads). I.e., base64 encoding is more efficient than MIME packaging 
with raw binary MIME part

I would suggest modifying the above stmt as follows:
MTOM MUST be supported and SHOULD be engaged by the client. Typically, 
MTOM MAY be disengaged when NO binary data is to be sent OR when the 
binary data to be sent is too small to benefit from MTOM optimization.

3) I'm curious as to why the wso:OptimizedMimeSerialization element is 
not extensible via attributes and elements.

4) Section 3.1 says:
---
The wso:OptimizedMimeSerialization element MAY be used in other contexts 
than WSDL2.0 (e.g., as a policy assertion in a policy framework).
---

Can this extension also be used in WSDL 1.1?

Thanks.

-Anish
--


Youenn Fablet wrote:
> To put forward the proposal, here is the proposal reformated as a 
> "specification-like" web page.
> I hope this file will help speed up discussions on this proposal.
> I do not know yet whether I will be able to join the call tomorrow.
> Regards,
>    Youenn
> 
> Youenn Fablet wrote:
>>
>>
>> Jonathan Marsh wrote:
>>>> The same extension element could be used for both MTOM and SWA, the
>>>> switch being based on the soap version in use.
>>>>     
>>>
>>> I don't think that would sufficiently disambiguate the cases, given the
>>> existence of 
>>> http://www.w3.org/Submission/2006/SUBM-soap11mtom10-20060405/.
>>>
>>>   
>> I was not aware of this submission. Thanks for the link.
>>
>>> Are you proposing that we expand our scope to include SwA
>>> (http://www.w3.org/TR/SOAP-attachments)?
>>>   
>> No.
>> I thought I heard this idea during last telcon, but it may just be my 
>> imagination.
>> In fact, I was thinking that if there was room to add support without 
>> any effort, it may be beneficial.
>> Obviously, additional effort would be needed to add Swa support.
>>    Youenn
>>
>>
>>> Jonathan Marsh - http://www.wso2.com - 
>>> http://auburnmarshes.spaces.live.com
>>>  
>>>
>>>  
>>>> -----Original Message-----
>>>> From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On
>>>> Behalf Of Youenn Fablet
>>>> Sent: Monday, October 16, 2006 1:13 AM
>>>> To: www-ws-desc@w3.org
>>>> Cc: Jean-Jacques Moreau
>>>> Subject: Some MTOM precisions
>>>>
>>>>
>>>> Following on last telcon's discussions, here are some potential
>>>> enhancements to the proposal, related to engagement requiredness and
>>>> optionality.
>>>> These precisions may be suited for a primer or something like that.
>>>> For input messages and input faults
>>>>         - required means that MTOM must be supported and should be
>>>> engaged by the client.
>>>>                 Typically, when there is no binary data in a message,
>>>> MTOM is not needed.
>>>>         - optional means that MTOM may be engaged by the client and is
>>>> supported by the service
>>>> For output messages and output faults
>>>>         - required means that MTOM must be supported by the client
>>>>                 Engagement is based on the message content-type as per
>>>> the MTOM specification.
>>>>         - optional means that MTOM is supported and may be engaged by
>>>> the service.
>>>>                 Engagement must only be done when the service knows 
>>>> that
>>>> the client supports MTOM.
>>>>                 This knowledge may come from different sources: MTOM 
>>>> use
>>>> in the input message, policy exchanges, content negociation (HTTP 
>>>> Accept
>>>> header for instance)...
>>>>                 By default, MTOM is not engaged.
>>>>
>>>> There were also some discussions whether to use @wsdl:required to mark
>>>> optionality/requiredness of the extension.
>>>> While I do not recall the exact reasons for not reusing it, I would 
>>>> note
>>>> that the WS-Addr UsingAddressing extension use @wsdl:required with the
>>>> exact same intention.
>>>>
>>>> Finally, I know that SWA can be described by WSDL1.1, but I do not 
>>>> think
>>>> it can be described by WSDL2.0.
>>>> The same extension element could be used for both MTOM and SWA, the
>>>> switch being based on the soap version in use.
>>>> In such a case, we should define a specific uri for the extension
>>>> element and not directly reuse the MTOM URI.
>>>>
>>>> I hope this helps.
>>>> Regards,
>>>>     Youenn
>>>>     
>>>
>>>
>>>
>>>   
>>
>>
> 
> 
> ------------------------------------------------------------------------
> 
> 
>   WSDL 2.0 MTOM Extension
> 
> 
>     Editors' copy $Date: 2006/03/23 10:15:13 $ @@ @@@@ @@@@
> 
> This version:
>     wsdl20-mtom-extension.html 
> Latest version:
>     http://www.w3.org/2002/ws/desc/wsdl20-mtom-extension 
> Previous versions:
>     http://www.w3.org/TR/2006/WD-wsdl20-mtom-extension-20060106 
> Editor:
>     , 
> 
> This document is also available in these non-normative formats: .
> 
> Copyright 
> <http://www.w3.org/Consortium/Legal/ipr-notice#Copyright>  @@@@ W3C 
> <http://www.w3.org/>^ (MIT <http://www.csail.mit.edu/>, ERCIM 
> <http://www.ercim.org/>, Keio <http://www.keio.ac.jp/>), All Rights 
> Reserved. W3C liability 
> <http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer>, 
> trademark <http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks> 
> and document use 
> <http://www.w3.org/Consortium/Legal/copyright-documents> rules apply.
> 
> ------------------------------------------------------------------------
> 
> 
>     Abstract
> 
> WSDL2.0 MTOM extension describes the concrete details for enabling MTOM 
> [SOAP MTOM <#MTOM>] in conjunction with WSDL 2.0.
> 
> 
>     Status of this Document
> 
> *This document is an editors' copy that has no official standing.*
> 
> ------------------------------------------------------------------------
> 
> 
>     Short Table of Contents
> 
> 1. Introduction <#intro>
> 2. WSDL2.0 MTOM extension <#mtom-extension>
> 3. Interactions with other specifications <#Interactions>
> 4. References <#References>
> A. Acknowledgements <#acknowledgments> (Non-Normative)
> B. MTOM Extension Change Log <#changelog> (Non-Normative)
> 
> ------------------------------------------------------------------------
> 
> 
>     Table of Contents
> 
> 1. Introduction <#intro>
>     1.1 Notational Conventions <#notcon>
> 2. WSDL2.0 MTOM extension <#mtom-extension>
>     2.1 Relationship to WSDL Component Model <#mtom-extension-decl>
>     2.2 XML Representation <#mtom-extension-xml-representation>
>     2.3 Mapping from XML Representation to Component Properties 
> <#mtom-extension-mapping>
> 3. Interactions with other specifications <#Interactions>
>     3.1 Other Uses of OptimizedMimeSerialization Extension Element 
> <#mtom-extension-other-use>
>     3.2 HTTP Content Negociation <#http-accept-header>
> 4. References <#References>
>     4.1 Normative References <#Normative-References>
>     4.2 Informative References <#Informative-References>
> 
> 
>       Appendices
> 
> A. Acknowledgements <#acknowledgments> (Non-Normative)
> B. MTOM Extension Change Log <#changelog> (Non-Normative)
> 
> ------------------------------------------------------------------------
> 
> 
>     1. Introduction
> 
> The Web Services Description Language (WSDL) provides a model and an XML 
> format for describing Web services. WSDL2.0 MTOM Extension (this 
> specification) describes the binding extension for MTOM [SOAP MTOM 
> <#MTOM>]. This extension is intended to enable Web Services applications 
> to use MTOM.
> 
> This specification depends on WSDL 2.0 [WSDL 2.0 Core <#WSDL-PART1>] and 
> WSDL 2.0 Adjuncts [WSDL 2.0 Adjuncts <#WSDL-PART2>].
> 
> 
>       1.1 Notational Conventions
> 
> This specification uses a number of namespace prefixes throughout; they 
> are listed in Table 1-1 <#tabprefns>. Note that the choice of any 
> namespace prefix is arbitrary and not semantically significant (see [XML 
> Information Set <#XMLInfoSet>]).
> 
> This specification uses curly brackets (e.g., {property}) to indicate a 
> property in the WSDL component model, as defined in Part 1 [WSDL 2.0 
> Core <#WSDL-PART1>] Component Model.
> 
> 
> Table 1-1. Prefixes and Namespaces used in this specification Prefix 
> Namespace 	Notes
> wsdl 	"http://www.w3.org/@@@@/@@/wsdl" 	A normative XML Schema 
> [XMLSchemaP1 <#>], [XMLSchemaP2 <#>] document for the 
> "http://www.w3.org/@@@@/@@/wsdl" namespace can be found at 
> http://www.w3.org/@@@@/@@/wsdl.
> wsoap 	"http://www.w3.org/@@@@/@@/wsdl/soap" 	A normative XML Schema 
> [XMLSchemaP1 <#>], [XMLSchemaP2 <#>] document for the 
> "http://www.w3.org/@@@@/@@/wsdl/soap" namespace can be found at 
> http://www.w3.org/@@@@/@@/wsdl/soap.
> wso 	"http://www.w3.org/@@@@/@@/wsdl/soap/mime-optimization" 	Defined by 
> this specification.
> 
> 
> Namespace names of the general form "http://example.org/..." and 
> "http://example.com/..." represent application or context-dependent URIs 
> [RFC3986 <#>].
> 
> All parts of this specification are normative, with the EXCEPTION of 
> examples, and sections explicitly marked as "Non-Normative".
> 
> 
>     2. WSDL2.0 MTOM extension
> 
> This extension allows describing the capacities and requirements of a 
> service related to the use of MTOM. This specification defines the 
> semantics of this extension when used in conjunction with:
> 
>    1. WSDL2.0 SOAP Binding, as defined in [WSDL 2.0 Adjuncts <#WSDL-PART2>]
>    2. HTTP being set as SOAP transport protocol
> 
> 
>       2.1 Relationship to WSDL Component Model
> 
> This extension adds the following property to the Endpoint 
> <wsdl20.html#component-Endpoint>, Binding 
> <wsdl20.html#component-Binding>, Binding Operation 
> <wsdl20.html#component-BindingOperation>, Binding Fault 
> <wsdl20.html#component-BindingFault>, Binding Message Reference 
> <wsdl20.html#component-BindingMessageReference> and Binding Fault 
> Reference <wsdl20.html#component-BindingFaultReference> component model 
> (as defined in [WSDL 2.0 Core <#WSDL-PART1>]):
> 
>     *
> 
>       {optimized mime serialization} OPTIONAL. An /xs:token/ with one of
>       the values "required" or "optional". When present, the property
>       indicates that the use of MTOM has been declared. When absent, NO
>       assertion is made on the support and use of MTOM.
> 
> The availability and requiredness of MTOM support and engagement is 
> defined by the closest {optimized mime serialization 
> <#property-Binding.optimizedmimeserialization>} property, where 
> closeness is defined by whether it is at the Endpoint 
> <wsdl20.html#component-Endpoint> component level, the Binding Message 
> Reference <wsdl20.html#component-BindingMessageReference> component, the 
> Binding Fault Reference <wsdl20.html#component-BindingFaultReference> 
> component level, the Binding Operation 
> <wsdl20.html#component-BindingOperation> level, the Binding Fault 
> Reference <wsdl20.html#component-BindingFaultReference> level, or the 
> Binding <wsdl20.html#component-Binding> component level, respectively.
> 
> 
> Table 2-1. Support and Engagement of MTOM 	Required 	Optional
> Input Message/Fault 	MTOM MUST be supported and SHOULD be engaged by the 
> client. Typically, MTOM MAY be disengaged when NO binary data is to be 
> sent. 	MTOM is supported by the service and MAY be engaged by the client.
> Output Message/Fault 	MTOM MUST be supported by the client. Engagement 
> is based on the message content-type as per the MTOM specification [SOAP 
> MTOM <#MTOM>]. 	MTOM is supported and MAY be engaged by the service. 
> Engagement MUST only be done when the service knows that the client 
> supports MTOM. This knowledge MAY come from different sources: MTOM use 
> in the input message, policy exchanges, content negociation (HTTP Accept 
> header for instance)... By default, MTOM is NOT engaged.
> 
> 
>       2.2 XML Representation
> 
> The XML representation for the WSDL2.0 MTOM extension is an element 
> information item as follow:
> 
> <description>
>   <wsdl:binding wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/">
>      <*wso:OptimizedMimeSerialization*
> 	        wsdl:required="xs:boolean"?/>*
>     <wsdl:fault>
>       <*wso:OptimizedMimeSerialization* ... />*
>     </wsdl:fault>
>     <wsdl:operation>
>       <*wso:OptimizedMimeSerialization* ... />*
>       <wsdl:input>
>         <*wso:OptimizedMimeSerialization* ... />*
>       </wsdl:input>
>       <wsdl:output>
>         <*wso:OptimizedMimeSerialization* ... />*
>       </wsdl:output>
>       <wsdl:infault>
>         <*wso:OptimizedMimeSerialization* ... />*
>       </wsdl:infault>
>       <wsdl:outfault>
>         <*wso:OptimizedMimeSerialization* ... />*
>       </wsdl:outfault>
>     </wsdl:operation>
>   </wsdl:binding>
> </wsdl:description>
> 
> This is an empty global element that allows any namespaced attribute, 
> especially the wsdl:required attribute.
> 
> The XML representation for the MTOM extension is an /element information 
> item/ with the following Infoset properties:
> 
>     *
> 
>       A [local name] of |wso:OptimizedMimeSerialization| .
> 
>     *
> 
>       A [namespace name] of
>       "http://www.w3.org/@@@@/@@/wsdl/soap/mime/optimisation".
> 
>     *
> 
>       An OPTIONAL |wsdl:required| /attribute information item/ with the
>       following Infoset properties:
> 
>           o
> 
>             A [local name] of |required|
> 
>           o
> 
>             A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl"
> 
>           o
> 
>             A type of /xs:boolean/.
> 
> 
>       2.3 Mapping from XML Representation to Component Properties
> 
> The mapping from the XML Representation of the 
> |wso:OptimizedMimeSerialization| /element information item/ to the 
> {optimized mime serialization 
> <#property-Binding.optimizedmimeserialization>} property of the Endpoint 
> <wsdl20.html#component-Endpoint>, Binding 
> <wsdl20.html#component-Binding>, Binding Operation 
> <wsdl20.html#component-BindingOperation>, Binding Fault 
> <wsdl20.html#component-BindingFault>, Binding Message Reference 
> <wsdl20.html#component-BindingMessageReference> and Binding Fault 
> Reference <wsdl20.html#component-BindingFaultReference> component model 
> is as described in Table 2-2 <#tab_MTOM_Extension_Mapping>.
> 
> 
> Table 2-2. Mapping from XML Representation to Endpoint, Binding, Binding 
> Operation, Binding Fault, Binding Message Reference, Binding Fault 
> Reference components Property 	Value
> {optimized mime serialization 
> <#property-Binding.optimizedmimeserialization>} 	
> 
> Absent if there is NO |wso:OptimizedMimeSerialization| extension element.
> 
> If a |wso:OptimizedMimeSerialization| extension element is present, 
> "required" if there is a |wsdl:required| /attribute information item/ 
> with a value of "true", "optional" otherwise.
> 
> 
>     3. Interactions with other specifications
> 
> This section is Non-Normative.
> 
> 
>       3.1 Other Uses of OptimizedMimeSerialization Extension Element
> 
> The |wso:OptimizedMimeSerialization| element MAY be used in other 
> contexts than WSDL2.0 (e.g., as a policy assertion in a policy 
> framework). Its use in such contexts is semantically equivalent to the 
> use of |wso:OptimizedMimeSerialization| as a WSDL extension element.
> 
> 
>       3.2 HTTP Content Negociation
> 
> A client MAY indicate that it supports MTOM by using the Accept header 
> field in the request. The service can then decide to engage MTOM or not 
> in the response based on the Accept header field value.
> 
> 
> Table 3-1. HTTP Accept Header Value and Relationship with MTOM Accept 
> Header Value 	Meaning
> Accept: multipart/related;type="application/xop+xml" 	The client wants 
> to receive a MTOM message
> Accept: application/soap+xml 	The client wants to receive a standard 
> soap response
> Accept: multipart/related;type="application/xop+xml";q=0.5, 
> application/soap+xml 	The client prefers receiving a standard soap 
> response but agrees to receive a MTOM response.
> Accept: application/soap+xml; q=0.5, 
> multipart/related;type="application/xop+xml" 	The client prefers 
> receiving a MTOM response but agrees to receive a standard soap response
> 
> 
>     4. References
> 
> 
>       4.1 Normative References
> 
> [SOAP MTOM]
>     SOAP Message Transmission Optimization Mechanism
>     <http://www.w3.org/TR/soap12-mtom/>, Martin Gudgin, Noah Mendelsohn,
>     Mark Nottingham, and Herve' Ruellan, Editors. World Wide Web
>     Consortium, 25 January 2005. 
> [SOAP12 Part 1]
>     SOAP Version 1.2 Part 1: Messaging Framework
>     <http://www.w3.org/TR/2003/REC-soap12-part1-20030624/>, M. Gudgin,
>     M. Hadley, N. Mendelsohn, J-J. Moreau, H. Frystyk Nielsen, Editors.
>     World Wide Web Consortium, 24 June 2003. This version of the "SOAP
>     Version 1.2 Part 1: Messaging Framework" Recommendation is
>     http://www.w3.org/TR/2003/REC-soap12-part1-20030624/. The latest
>     version of "SOAP Version 1.2 Part 1: Messaging Framework"
>     <http://www.w3.org/TR/soap12-part1/> is available at
>     http://www.w3.org/TR/soap12-part1/. 
> [WSDL 2.0 Core]
>     Web Services Description Language (WSDL) Version 2.0 Part 1: Core
>     Language <wsdl20.html>, R. Chinnici, J-J. Moreau, A. Ryman, S.
>     Weerawarana, Editors. World Wide Web Consortium, @@ @@@@ @@@@. This
>     version of the "Web Services Description Language (WSDL) Version 2.0
>     Part 1: Core Language" Specification is available is available at
>     wsdl20.html. The latest version of "Web Services Description
>     Language (WSDL) Version 2.0 Part 1: Core Language"
>     <http://www.w3.org/2002/ws/desc/wsdl20> is available at
>     http://www.w3.org/2002/ws/desc/wsdl20. 
> [WSDL 2.0 Adjuncts]
>     Web Services Description Language (WSDL) Version 2.0 Part 2:
>     Adjuncts <wsdl20-adjuncts.html>, R. Chinnici, H. Haas, A. Lewis,
>     J-J. Moreau, D. Orchard, S. Weerawarana, Editors. World Wide Web
>     Consortium, @@ @@@@ @@@@. This version of the "Web Services
>     Description Language (WSDL) Version 2.0 Part 2: Adjuncts"
>     Specification is available at wsdl20-adjuncts.html. The latest
>     version of "Web Services Description Language (WSDL) Version 2.0
>     Part 2: Adjuncts" <http://www.w3.org/2002/ws/desc/wsdl20-adjuncts>
>     is available at http://www.w3.org/2002/ws/desc/wsdl20-adjuncts. 
> [XML Information Set]
>     XML Information Set (Second Edition)
>     <http://www.w3.org/TR/2004/REC-xml-infoset-20040204>, J. Cowan and
>     R. Tobin, Editors. World Wide Web Consortium, 4 February 2004. This
>     version of the XML Information Set Recommendation is
>     http://www.w3.org/TR/2004/REC-xml-infoset-20040204. The latest
>     version of XML Information Set <http://www.w3.org/TR/xml-infoset> is
>     available at http://www.w3.org/TR/xml-infoset. 
> 
> 
>       4.2 Informative References
> 
> [WSDL 2.0 Primer]
>     Web Services Description Language (WSDL) Version 2.0 Part 0: Primer
>     <wsdl20-primer.html>, D. Booth, C.K. Liu, Editors. World Wide Web
>     Consortium, @@ @@@@ @@@@. This version of "Web Services Description
>     Language (WSDL) Version 2.0 Part 0: Primer" is wsdl20-primer.html.
>     The latest version of the "Web Services Description Language (WSDL)
>     Version 2.0 Part 0: Primer"
>     <http://www.w3.org/2002/ws/desc/wsdl20-primer> document is available
>     from http://www.w3.org/2002/ws/desc/wsdl20-primer. 
> 
> 
>     A. Acknowledgements (Non-Normative)
> 
> This document is developed by the participants of the W3C Web Service 
> Description Working Group <http://www.w3.org/2002/ws/desc/>.
> 
> Many people have contributed ideas and feedback that has improved this 
> document.
> 
> 
>     B. MTOM Extension Change Log (Non-Normative)
> 
> 
> Date 	Author 	Description
> 20061013 	YF 	Created skeleton
> 
> 
Received on Thursday, 19 October 2006 08:30:20 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:42 GMT