Skip to Content.
Sympa Menu

grouper-dev - RE: web service versioning strategy

Subject: Grouper Developers Forum

List archive

RE: web service versioning strategy


Chronological Thread 
  • From: Chris Hyzer <>
  • To: "" <>
  • Cc: Scott Koranda <>
  • Subject: RE: web service versioning strategy
  • Date: Wed, 28 Oct 2009 22:26:45 -0400
  • Accept-language: en-US
  • Acceptlanguage: en-US

Hey,

I was asked to give an update on this, so I figured I would broadcast.
We didn't have time to do anything about this for 1.5, so we don't have a
versioning strategy, and we didn't change the WSDL. So we don't have to
worry. It does mean that new features of Grouper aren't available by WS yet.
However, I do have an idea of how to make simple WS operations easy to
build/version, we can discuss that right after 1.5.0 is out the door. And
when we want to change the WSDL we can work on a proper versioning strategy.
If anyone has ideas of versioning that are better than the idea below, please
let me hear it. It seems like WS versioning [especially being locked in to
the Axis library] is trying to find the least worst idea (until Axis supports
some sort of versioning annotation or something :) ).

References:

http://www.ibm.com/developerworks/webservices/library/ws-backward.html
http://www.ibm.com/developerworks/websphere/library/techarticles/0705_narayan/0705_narayan.html

Regards,
Chris

> -----Original Message-----
> From: Chris Hyzer
> Sent: Thursday, August 20, 2009 10:38 AM
> To:
>
> Subject: web service versioning strategy
>
> Hey,
>
> I think 1.5 might have a WSDL change that will make existing SOAP (and
> *maybe* REST) clients not work... unless we do something about
> versioning.
>
> I have been thinking about this a lot, and I think our best strategy is
> to basically make a service for each version, running in the same WS
> webapp (perhaps optionally, not sure). I will make a separate package
> or source folder [might be preferable] for all beans in the service
> (but not the logic). Then for SOAP I will hook up each set of beans to
> the central logic package, and run the AXIS code generation routine.
> This does mean that the new versions will have a different URL than the
> old version, but *nothing* will change in the service contract of the
> old versions.
>
> .e.g the SOAP URL for 1.4 is: /grouperWs/services/GrouperService
> The SOAP URL for 1.5 is: /grouperWs/services/GrouperService_v1_5
>
> I don't think there is any easy way to do this, so what I am trying to
> optimize is:
>
> 1. No changes for existing clients
> 2. One webapp to deploy
> 3. Still use code generation
> 4. Have a WSDL for each version
>
> We can monitor the size of the generated code (it will get larger and
> larger), and I think we should have some end of life on old versions if
> the code gets too large, or have a way to optionally enable past
> versions (I think we can do this).
>
> Anyways, I don't even have a proof of concept of this, but it is what I
> will try.
>
> If anyone has experience with versioning Axis automatically generated
> web services, and has ideas or suggestions, please let me know. I
> asked the Axis mail list a while back and didn't hear anything back.
>
> On the REST side, there is no WSDL, and we have more control, so Im not
> sure we need to take the same approach, I might just be able to code it
> so that it is backwards compatible. We will see what changes exactly,
> maybe the same approach is safest...
>
> Thanks!
> Chris


  • RE: web service versioning strategy, Chris Hyzer, 10/28/2009

Archive powered by MHonArc 2.6.16.

Top of Page