W3C | Submissions

Team Comment on Web Services Transfer (WS-Transfer) Submission

W3C acknowledges receipt of the Web Services Transfer (WS-Transfer) Submission from BEA Systems, Computer Associates, Microsoft, Sonic Software, and Systinet, A Mercury Division.

WS-Transfer is a SOAP-based protocol for manipulating resources and their representations. One can create, modify, delete resources, as well as retrieve representations of those resources.

Resources are defined as entities addressable by an endpoint reference that provide an XML representation. For the purpose of creating new resources, resource factories are introduced, defined as Web services that can create a new resource from an XML representation.

This protocol is built using the SOAP messaging framework, both version 1.1 which is a W3C Member Submission and version 1.2 which is a W3C Recommendation, and the WS-Addressing Member Submission. It does not define, however, a URI to identify the SOAP module defined as per the SOAP 1.2 specification.

There is an obvious parallel between WS-Transfer and the Hypertext Transfer Protocol (HTTP/1.1) and the Web itself:

WS-Transfer can therefore be seen as an underlying protocol-independent version of HTTP, i.e. bringing the capabilities and properties of the Web and HTTP in contexts where HTTP is not used. The use of WS-Transfer is not limited to non-HTTP transports, and can also be used when HTTP is used as a communication tunnel.

While the resources manipulated are entities that provide an XML representation, the use of the SOAP Message Transmission Optimization Mechanism along with WS-Transfer would allow one to efficiently manipulate other types of entities such as binary ones.

However, there is one important difference between WS-Transfer resources and Web resources: their identification. While resources are identified by URIs on the Web as explained in section 2 of the Architecture of the World Wide Web, Volume One, WS-Transfer identifies them with endpoint references as defined by the WS-Addressing Member Submission, which means that WS-Transfer resources are potentially identified by more than just a URI, making them unsuitable for referencing and use in other Web technologies, e.g. in the context of traditional Web links or RDF assertions.

The WS-Addressing Member Submission, referenced in this specification, is at this time (March 2006) undergoing standardization work at W3C. In the current draft of the standards track document, the reference properties identifying aspect of an endpoint reference has been removed, and the following guidance has been added:

The Architecture of the World Wide Web, Volume One [AoWWW] recommends [AoWWW, Section 2] the use of URIs to identify resources. Using abstract properties of an EPR other than [destination] to identify resources is contrary to this recommendation. In certain circumstances, such a use of additional properties may be convenient or beneficial; however, when building systems, the benefits or convenience of identifying a resource using reference parameters should be carefully weighed against the benefits of identifying a resource solely by URI as explained in [AoWWW, Section 2.1] of the Web Architecture.

This recommendation is very much applicable in the context of WS-Transfer.

WS-Transfer does not have all the features of HTTP regarding the manipulation of representations, such as caching, or content and language negotiation. However, the extensibility of SOAP would allow to add such capabilities incrementally, and it can benefit from the use of existing SOAP extensions such as WS-Security for security, or WS-Reliability or WS-Reliable Messaging for reliability.

Next steps

The W3C Team plans to notify the Web Services Coordination Group of this Member Submission but has no plans to start a Working Group in this area. The Team also plans to ask the Technical Architecture Group (TAG) to investigate the impact of this technology on the architecture of the Web [Update 2006-10-24: see also WS-Transfer and HTTP].


Authors: Philippe Le H├ęgaret, Hugo Haas
$Date: 2006/10/24 21:21:09 $