Versioning Web Services
The Web Service Software Factory is now maintained by the community and can be found on the Service Factory site.
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
Retired: November 2011
Most software systems evolve over time, and it is always challenging to manage the associated complexity of their evolution. When the relationships between the parts of the software system become less coupled, the complexity increases because they can then evolve independently. And when the parts of the system are built by different teams, even more challenges present themselves. This scenario describes many Web service applications and highlights the need for a conscious versioning strategy to address these challenges.
It is important to understand that the complexities cannot be completely mitigated. This is partially why the groups who have tried to address these challenges through the use of industry standards and technology-specific approaches have not yet succeeded. An appropriate strategy manages and isolates the complexity by restricting it to specific parts of the solution based on certain factors, such as the characteristics, requirements, and constraints of the solution and the organizations involved.
The purpose of this topic is to provide pragmatic guidance you can apply to various stages of your service's evolution. This guidance is not only applicable to services built with the Service Factory, but because it is specific to the factors mentioned earlier, it is not necessarily applicable to all Web services and all scenarios. In addition to describing specific tasks listed in Versioning Strategy, this topic also describes:
- Organizational and technical scenarios for Web services.
- Elements of Web services that evolve and that are considered in scope for this topic.
- Common terms and definitions related to versioning Web services.
- Core motivations and rationale that support this guidance and dissuade other approaches.
Emerging practices are a form of guidance provided when there is an opportunity to gather more evidence in an area before labeling it a proven practice. This topic represents an initial position on how to manage the evolution of many Web services.
An emerging practice differs from most patterns & practices deliverables, which are driven by proven customer and field experience. The patterns & practices team is aware of the success some organizations are having with the approach in this guidance, but the team is still in the process of collecting more evidence.
This type of guidance is subject to change and will eventually be formalized after more evidence is collected. The development team is looking for feedback that will help shape the final release of this guidance. Please provide feedback to the Service Factory Community site on your experiences and expect this guidance to evolve over time.