Sunday, March 1, 2009

Version management of web services

You basically have 2 choices: Either use separate URI's or use the "target namespace# for version numbering. Target namespace can also be used for multilanguage support.
Using the tagret namespace way together with a proxy or ESB, you can reduce client dependence on URI's. Say you have:

/Customer
/Customer/v1
/Customer/v2
/Customer/vX

/Customer always gives the client the latest version. The ESB acts here to sort out what WS is the latest version and supplies that WS to the client. Clients call /Customer for services they know is backwardcompatible.

/Customer/vX is for non-backwardcompatible services where the client needs to be sure exactly what version of the service he gets.

The "target namespace" solution follows the Amazon’s recommendation form publication of services (http://docs.amazonwebservices.com/AWSEcommerceService/2005-03-23/ApiReference/ServiceVersioningArticle.html)

© Copyright 2009, Tomas Elfving

0 kommentarer: