Monday, January 14, 2008

Versioning Part 2

In my readings, I found the topic of versioning discussed in Thomas Erl's SOA Principals of Service Design. I wanted to provide a brief mention of Thomas Erl's vantage as it provides another view of the topic.

As I mentioned in the previous post, changes to the WSDL definition causes service consumers to break. Thomas' take on this is for core entity services and their associated contract to remain constant. Extension to those services can be performed which will not affect the service consumer. For Services that need to be dynamic and cannot be developed with longevity in mind, then SOA Governance is applied to manage versioning of services.

SOA Governance solutions that I have heard marketed in the past provided XML Routing solutions which would inspect requests and then use a lookup mechanism to route to the eventual destination. In this case, multiple versions of a service could exist and it would be up to the Governance solution to manage the Addressing aspects.

Another perspective of Service Versioning is James Pasley of Cape Clear and his examination of the current environment. His description of versioning best practices is available at:

http://developer.capeclear.com/versioning

and discusses the options for deploying various service versions concurrently.