all groups > dotnet web services > february 2005 >
You're in the

dotnet web services

group:

Web Service Versioning



Web Service Versioning Modica82
2/25/2005 8:35:01 AM
dotnet web services: Hi all,

Does anyone have any views/information on the best way to version web
services. I am writing a proposal on how the company should handle
versioning of its web services and would like some of your views.

I dont have much at the moment, i am going to gather some research but as i
said, any info would be greatly appreciated.

Regards,

Re: Web Service Versioning Dilip Krishnan
2/28/2005 7:21:32 PM
Try this [0]. Its basic and should get you started

[0] -
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservice/html/service10152002.asp

[quoted text, click to view]

--
HTH
Regards,
Dilip Krishnan
MCAD, MCSD.net
dkrishnan at geniant dot com
Re: Web Service Versioning Modica82
3/1/2005 7:19:04 AM
Thanks Dilip,

I have read the article, several times now, and the only conclusion i can
come up with is that you have to create a new end point (asmx file) everytime
you make a change to the existing web service to ensure that you allow for
legacy users of older versions. The problem with scotts "delegation" method
is that you still have to keep the old version alive as it were for the
forseable future, so how do you phase that older versions out? I guess it
does make sence as you will only have to maintain related functions once, but
if you release say seven versions then they have to delegate back and back
and back untill they get to version 1?? Am i missing the point here, i have
spent 2 days researching web service version as i have to present a report to
my line manager, but have written only 400 words and still have no direct
path.

If anyone has done this sort of thing and know how to do it, i would be
greatly appreciated.

Rob

[quoted text, click to view]
Re: Web Service Versioning Dilip Krishnan
3/1/2005 8:59:35 AM
Hello Modica82,
The article is only a starting point. Essentially there are different
things you need to consider as regards versioning. The delegation model is
only if you want to reuse the existing functionality. And its possible/efficient
only if the changes are not breaking changes. By breaking changes I mean,
removing an type, adding required types etc. Also you dont HAVE to keep old
versions alive... In the real world you probably wouldnt have to support
7 versions concurrently... its more likely that you support 3 versions at
most, one backword compatible version, one forward compatible version and
the current version itself. So I guess that leads to the fact that you would
need to have your refactoring of your existing applications move towards
that goal. Also the whole notion of versioning is very subjective in the
sense that it is business driven
Also you would design your system so that the url is constant and either
routed based on some routing logic or use UDDI to get locate appropriate
endpoint (ideal). So clients would always access http://some-service and
would be redirected to http:/some-service/v1 or http://some-service/v2 based
on some form routing logic. That removes the clients dependency on the version
of the service.

HTH
Regards,
Dilip Krishnan
MCAD, MCSD.net
dkrishnan at geniant dot com
http://www.geniant.com

[quoted text, click to view]


AddThis Social Bookmark Button