More thoughts on making binding detail definition reusable

I made a proposal ([1])  last year to explore the idea of making binding detail definition reusable for multiple bindings. We had some discussion in  the DC F2F.  A straw poll was made later and many people expressed their interest in the idea of making binding detail definitions reusable. We tabled
this issue due to its dependance on other issues.  Since then, the wg has made some progress in clarifying related issues.  This message tries to modify the initial proposal to reflect the recent changes (e.g. no servicetype anymore) and incoporate suggestions from other people (e.g add a "target"
attribute to indicate where the binding detail can appear.).   I also try to list the questions the WG needs to answer to either close this discussion or move it forward.

Status Quo as in current part 1 draft [2]
--------------------------------------
 <binding name="ncname" type = "qname">*
     <!-- binding details -->
       <operation name="ncname"?>*
         <!-- binding details -->
         <input>*
           <!-- binding details -->
         </input>
         <output>*
           <!-- binding details -->
         </output>*
         <fault name="qname"?>
           <!-- binding details -->
         </fault>
       </operation>
 </binding>

Proposed new structure ( I use TBD as place holders, we need to come up with a good name for the new element and attribute)
----------------------------------

<bindingTBD name = "ncname" target = "binding|operation|message">*
     <!-- binding details -->
</bindingTBD>

<binding name="ncname" type = "qname" TBD = "qname">* 
      <operation name="ncname"? TBD = "qname">*
            <input TBD = "qname"/>
           <output TBD = "qname"/>
    	<fault name="qname"? TBD = "qname">
       </operation>
 </binding>


Why should we bother?
------------------------------------
- currently binding details are embeded within binding elements and are not reusable at all		
      - in general, reusability is a good idea
      - other wsdl constructs have been designed for reusability, eg 
             - a message can be reused by multiple operations, 
             - a portType can be reused by multiple bindings
	- a binding can be reused by multiple services
			
- A separate wsdl construct for binding detail definition will make the extension points more manageable
     -  status quo, we have to define 6 substitution groups (see [2]) for binding extensions
     -  with the new construct, only one substitution group is needed


Questions we have to answer
-------------------------------------------
- Does the benefits listed above in this case really worth the cost of adding another wsdl construct?
- if yes, what to call the new element and the new attribute?
	
Dependencies
-------------------
Will a better understanding of soap binding definition make it easier for us to answer the first question?


[1] http://lists.w3.org/Archives/Public/www-ws-desc/2002Aug/0009.html
[2] http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#Binding

Best Regards,
Canyang Kevin Liu
Technology Architecture Group, 
SAP Labs
3475 Deer Creek Road
Palo Alto, CA 94304 
(650) 849-5167 
http://www.saplabs.com/

Received on Tuesday, 21 January 2003 04:02:14 UTC