- From: Liu, Kevin <kevin.liu@sap.com>
- Date: Thu, 19 Sep 2002 03:53:02 +0200
- To: "'Jacek Kopecky'" <jacek@systinet.com>
- Cc: "'WS Description WG'" <www-ws-desc@w3.org>
Hi Jacek, It seems your concerns can be summarized as: 1. By abstract the binding data to a separate <bindingType> element, though it's not a problem for "machine" which has good understanding of the "inheritance rule", it's harder for a novice user to get guidance about where this info can be applied. 2. Since WSDL hierarchy (sequence of serviceType/portType/operation/input|output|fault) is fixed and quite limited, we can live with just define the bindings under each element, and the benefit of having a modular <bindingType> is not obvious 3. Unless the issue addressed by Sanjiva's proposal can be broken down to several small issues and considered separately, it should be WSDL 2.0 issue For point 1, I think we can address it by adding an optional attribute @target which can be used as a hint about where this bindingType should be applied. so the modified grammar may look like below <bindingType name = "NCname" target = "serviceType|portType|operation|input|output|fault|...">* <!-- binding details --> </bindingType> <binding>* <serviceType name = .. bindingType = "qname"?..>* (depends on the result of the discussion about if binding should be defined in serviceType level) <portType name = .. bindingType = "qname"?..>* <operation name = .. bindingType = "qname"?..>* <input name = .. bindingType = "qname"?..>* <parts name= "nmtokens" bindingType = "qname"?...> * Also, more generic binding types can be modularly defined if we adopt the suggestions from Jeffrey et al for Hoisting SOAP Binding Attributes (see http://lists.w3.org/Archives/Public/www-ws-desc/2002Jul/0058.html). For point 2, I view it differently. IMHO, In WSDL1.1, the binding constructs is quite inconsistent with all other constructs. For example, one defines a type then references it in <part>, one defines a <message> then references it in <input|output|fault>. but when it comes to binding, one has to mingle the binding data inline with the <binding> element. add <bindingType> will make the wsdl component model more consistent and clean. Just like in a relational database, you can definitely live with putting all data in one table, but separating repetitious data to a separate table will make reusability much better. For point 3. I believe <bindingType> can be considered separately from Sanjiva's proposal: the key for the related section of Sanjiva's proposal is about whether we should allow define bindings in the serviceType level. No matter what the WG eventually decided, <bindingType> idea can be applied with just minor changes. Regards, ------------------------------ Canyang Kevin Liu SAP Labs, Palo Alto Technology Architecture 3475 Deer Creek Road Palo Alto, CA 94304 (650) 849-5167 http://www.saplabs.com > -----Original Message----- > From: Jacek Kopecky [mailto:jacek@systinet.com] > Sent: Thursday, September 12, 2002 9:23 AM > To: Liu, Kevin > Subject: RE: proposal for changing binding for WSDL 1.2 > > > Kevin, > please see my replies below. 8-) > > Jacek Kopecky > > Senior Architect, Systinet Corporation > http://www.systinet.com/ > > > > > > I'm afraid that while being more modular and more reusable, your > > > proposal is also more complex to grasp. > > > > I am not convinced that bindingType proposal is harder to grasp. The > > key difference between the two proposasls is whether to define > > resuable info in a separate module. IMHO, thinking in terms of > > relational database, separating resuable data is just like > achiving > > first form normalization. I believe > > the benefits of normalization have been discussed enough > > I'm not convinced either, that was just my initial reaction. > The reason > why I think it may be harder to grasp is below. > > > >The meaning of specifying > > > soap:body on wsdl:service/@bindingType is simple - the > element will > > > apply wherever among the descendants of the service where it is > > > recognized. > > > But there is the IMHO non-obvious expectation that one > extensibility > > > element QName has one global meaning and won't be confused in > > > some WSDL > > > contexts. Even if machine would not be confused, users might. > > > > Maybe I am missing something, but I don't get your point > here. Just > > like a input/@message can reference a message/@name, a > > service/@bindingType can reference a bindingType/@name. I don't see > > anything to do with extensibility Qname. In the grammer below, the > > extensible binding details are wrapped > > inside the <bindingType> element and is referenceable by > the bindingType/@name > > > > <bindingType name = "NCname">* > > <!-- binding details --> > > </bindingType> > > > > <binding>* > > <serviceType name = .. bindingType = "qname"?..>* > > ... > > Let me try to explain using an example: > > First, I'll define a bindingType named 'example': > > <bindingType name="example"> > <soap:body .../> > </bindingType> > > Now, the confusion may stem from the fact that the bindingType above > doesn't say where <soap:body .../> can be used, i.e. where this > bindingType can be referenced in the portType hierarchy > (portTypes with > operations and input/output/faults). > > So now when I have a binding like > > <binding name="eg2"> > <serviceType name="st1" bindingType = "example" > > <portType name="pt1" /> > <portType name="pt2" /> > </serviceType> > </binding> > > a novice user or a user who doesn't know the <soap:binding> extension > doesn't get any guidance from the fragment above about what > soap:body in > fact affects - if it's the service, portType, operation or just one > message in an operation. > > So, back to my previous (quoted) text, by an extensibility > element QName > I meant something like soap:body. > > > > > > Furthermore, WSDL hierarchy is quite simple and not meant to be > > > extended. Therefore I think Sanjiva's proposal is simpler > > > than yours and > > > suitable for almost as many cases. The rare cases where > your proposal > > > would really bring benefits are not worth the additional > conceptual > > > complexity, IMHO. > > > > Again, I am missing your point:(. Can you explain what you mean by > > wsdl hierachy? I don't see why the bindingType proposal is > extending > > WSDL hierachy > > by WSDL hierarchy I mean the sequence serviceType/portType/operation/ > input|output|fault. I wasn't saying that your proposal extends this, I > was saying that because this is fixed and quite limited, your proposal > doesn't bring as much benefit as it would if the hierarchy was > extensible or deep. > > > > Anyway, I think both proposals are very much a 2.0 material, not > > > necessary for 1.2. > > > > Maybe you are right, but I believe we need to address the > problem at > > least to some extend in 1.2 given that serviceType is introduced. > > Both proposals are just starting points for discussion. We > will find > > out how much can be done in 1.2. > > Well, at the moment, I don't think much of your or Sanjiva's proposal > should go to WSDL 1.2. That's mostly because I can't see > these proposals > splitting into smaller pieces that could be applied to the > WSD language > independently. Of course, if you show such a split can be done, then > each piece can be considered on its own merits. > > I hope I've clarified, > > Jacek > > >
Received on Wednesday, 18 September 2002 21:53:30 UTC