- From: Jacek Kopecky <jacek.kopecky@deri.org>
- Date: Fri, 09 Feb 2007 14:14:40 +0100
- To: TAG mailing list <www-tag@w3.org>
Dear TAG members, others, as the TAG has requested some time ago (see the WSDL issue [1]), WSDL 2.0 now has an annotation on interface operations that indicates whether the operation is known to be safe, in terms of the Web architecture. The syntax looks like this: <wsdl:interface name="printer"> <wsdl:operation name="readCapabilities" wsdlx:safe="true"> ... </wsdl:operation> </wsdl:interface> Within WSDL itself, this annotation is used by the HTTP binding which will default to using the GET HTTP method for safe operations and POST for those not marked as safe. Recently it occurred to me, as a participant in both the WS-Description WG and the Semantic Annotations for WSDL WG, that safety falls squarely within the scope of Semantic Annotations [2] (at least IMHO), and that it should be expressed as <wsdl:operation name="readCapabilities" sawsdl:modelReference="http://www.w3.org/2006/01/wsdl-extensions#SafeInteraction"> ... </wsdl:operation> As you are the main body that requested that WSDL has this annotation, it's only prudent to ask you, what do you think about this alternative way of marking operation safety? There have been reservations to this change in the WS-Desc WG: WSDL is a Candidate Recommendation and safety is not a feature marked as "at risk", so removing it could mean a set-back to WSDL timeline. However, I'm not sure how the W3C would look at moving a feature from one CR spec to another CR spec (SAWSDL is in CR as well), and whether getting back to Working Draft would be necessary. The SAWSDL syntax is much longer, making it harder for designers hand-coding WSDL files to mark operations as safe. Also, the safety annotation URI can get visually lost in other annotations, should the operation be annotated with multiple semantic concepts; a casual reader of the WSDL would not necessarily notice that an operation is marked as safe. WSDL HTTP binding requires that processors understand the wsdlx:safe extension in order to be able to do the defaulting; making SAWSDL required (and a dependency for WSDL) would likely be an overkill. I'm sure that some kind of optionality could be introduced (not changing any current intent anyway) that would make SAWSDL not required. And finally, the WSDL component model has a property {safe} on Interface Operations to represent abstractly the safety annotation, and this could be redundant to the presence of the ...#SafeInteraction URI in the {model reference} property introduced by SAWSDL. There are a number of options that we can see, and we'd like to see whether you have any preference: 1. status quo, no safety in SAWSDL, only in WSDL 2. WSDL defines safety using SAWSDL for syntax (ending up with the {safe} and {model reference} abstract redundancy) 3. WSDL drops the definition of safety, SAWSDL adds it in the normative spec, WSDL HTTP binding still uses the annotation for defaulting 4. WSDL keeps safety as it is (wsdlx:safe="true"), SAWSDL adds a competing annotation in its non-normative Usage Guide; we'd let the stronger one survive, but we might get lack of interop between processors that support one or the other. It might be useful also to mention that it currently seems SAWSDL should go to Rec only shortly after WSDL, if not together. Best regards, Jacek Kopecky member of WS-Desc WG and chair of SAWSDL WG [1] http://www.w3.org/2002/ws/desc/5/cr-issues/#CR021 [2] http://www.w3.org/TR/sawsdl
Received on Friday, 9 February 2007 13:14:49 UTC