« Uncommon idea for consumer proxies | Main | Convertible and unconvertible Web service changes »

June 12, 2006

Web service versioning

There are several approaches to allow Web service versioning.

My idea:

If a consumer sends a SOAP message to the provider that conforms to an earlier version of a WSDL than the current one it may be not accepted by the Web service stack.

It should be possible to create an interceptor/proxy that is aware of the old and the new WSDL (and knows how to convert from old to new messages). The old message (which is not conform to the current WSDL) is converted (maybe XSLT is a good choice) to a new message that conforms to the current WSDL and then it is send to the service.


The part I am not sure about is how the WSDL and a SOAP message can be labelled with a version information. Some possibilities are stated in Best practices for Web services versioning.

It is possible to use a new target namespace for the WSDL, but all data is changed to the new namespace this way. Another possibility is to use a version-aware UDDI registry.


It would be fine if the WSDL had a version field. Maybe it is possible to define a version information somewhere in the WSDL. The SOAP message may be labelled with a version information in a SOAP header...

Posted by Dominik Marks at June 12, 2006 9:53 AM