Thursday, January 06, 2005

Versioning Services

I becoming interested in how services can be versioned in a serviced orientated architecture. Doing a google shows quite a lot of activity in the area, only every one seems to think that the problem is restricted to web services, but a more about that later.

One article - Best practices for Web services versioning - from a couple of IBMers proposes versioning the XML namespaces of the messages schema (as defined in the WSDL) and then either issuing errors for requesters using the old schema of using some kind of routing mechanism which picks up on the namespace and directs to the correct version. The authors do, however, go on to say that products to do this type of routing for you are rare on the ground (they mention TalkingBlocks, but this seems to have been taken over by HP and, at a first glance, I couldn't find any explicit mention of how such routing is achieved). They then go on to show how the versioned service definitions can be stored in a UDDI compliant directory.

One consensus which seems to have formed is that you're on your own when it comes to service versioning.

As I mentioned before, the terms services and SOA seem to be synonymous with web services. But what about SOAs which use MOM or use REST styles of communication or mix them all together. Is there a general mechanism or architecture which can bring these all under the umbrella of one versioning scheme?

No comments: