- From: Umit Yalcinalp <umit.yalcinalp@oracle.com>
- Date: Wed, 21 Jan 2004 13:03:17 -0800
- To: WS Description List <www-ws-desc@w3.org>
- Message-ID: <400EE915.6000704@oracle.com>
Folks, Here is the writeup for OperationName feature as fullfilment of my action item. To refresh your memory, this action item came into existence because we wanted to have a mechanism to be able to identify the operation involved in the message exchange since operation names are currently not part of the exchange, but GEDs are. Since multiple operations may contain the same element, just looking at the messges on the wire, it is impossible to distinguish the operation that is currently involved in the exchange. See15:45 Uniqueness on the wire discussion in [1]. Our goal is to remedy this problem. This information can be used for dispatching purposes as well. Attached please find my proposal for OperationName feature (and related property) which are aptly named for what they are trying to represent. Cheers, --umit [1] http://lists.w3.org/Archives/Public/www-ws-desc/2003Nov/0059.html -- Umit Yalcinalp Consulting Member of Technical Staff ORACLE Phone: +1 650 607 6154 Email: umit.yalcinalp@oracle.com
OperationName FEATURE: PURPOSE: The name of an interface operation component in an interface component is required to be specified in WSDL. However, this name is not conveyed in a message exchange, except for operations that are defined using the style property, indicating RPC Style. This information may be useful specifically for indicating the specific exchange when the same message (a GED) is exchanged within more than one operation in an interface, for dispatching purposes, etc. OperationName feature is defined for WSDL implementations to convey the operation name. The operation name in this feature is conveyed as as a URI by utilizing the WSDL component designator syntax that identifies the specific operation that is involved in the message exchange [2]. DEFINITION: OperationName feature is an abstract feature that indicates that the Name of the operation will be conveyed to the receiver in a message exchange. The URI of the feature is http://www.w3.org/TR/wsdl20/features/operationName. (Note: This is a placeholder URI to be finalized by the WSDL wg.) This feature also defines an abstract property that holds the URI of the name of the operation. The URI of the property is http://www.w3.org/TR/wsdl20/features/operationName/Name (Note: This is a placeholder URI to be finalized by the WSDL wg.) Using this feature requires that a value that indicates an operation's fragment identifier will always be sent from the sender to the receiver and this value will be made available by the implementations that use this feature. There may be several different ways to implement this in practice, but this specification defines an implementation for SOAP protocol only by specifying a SOAP module below and also describes how it relates to the optional SOAP Action feature. OperationDispatch MODULE A SOAPModule is used to implement this feature by using a specific SOAP header. The following schema is used to define this header: <xs:schema targetNamespace="http://www.w3.org/TR/wsdl20/features/operationName" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="operation" type="xs:anyURI"/> </xs:schema> The SOAP header must appear in the SOAP Infoset. The value of the header must filled in by the sender by setting the value of the operation element to the component designator that uniquely identifies the operation by utilizing the fragment id syntax [2]. Example: <env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <opName:operation xmlns:opName="http://www.w3.org/TR/wsdl20/features/operationName> http://airline.wsdl/ticketagent/#operation(TicketAgent/listFlights) </opName:operation> </env:Header> When the receiver receives a message with this a header, the value of the header must be used to set the value of the property http://www.w3.org/TR/wsdl20/features/operationName/Name. SOAPAction OperationDispatch Feature: SOAP Bindings may be optionally using the SOAP Action feature, specified in [1]. This feature is not required to be supported by SOAP 1.2 implementations and do not assign a specific value for the SOAP Action property. If SOAPAction feature is available and engaged in the binding, the effect of engaging the OperationName feature in addition would have the following result: The value of the SOAP Action property, http://www.w3.org/2003/05/soap/features/action/Action, is a URI that is constructed by using the value of the component designator that uniquely identifies the operation utilizing the fragment identifier that refers to the specific operation[2]. The SOAP Action feature must be explicitly specified in the binding section in the service's WSDL description for the OperationName feature to affect the specific SOAP Action property value as stated above. A Note about using RPC style: If an operation is defined using the style property indicating RPC style, the Name of the operation is required to be part of the message exchanged, because the QName of the input element must match the operation targetNamespace and NCName and it uniquely identifies the operation. Therefore, the operations within interfaces that utilize the RPC style are considered to be compliant with this feature as operation names are part of the GED. However, if bindings support one of the implementations as stated above, the additional header defined by OperationDispatch module is allowed to be included, but not required, when RPC style is used. [1] http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#ActionFeature [2] http://lists.w3.org/Archives/Public/www-ws-desc/2003Nov/0090.html
Received on Wednesday, 21 January 2004 16:09:04 UTC