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 that you can apply to various stages of your service's evolution. This guidance is applicable to services built with the Service Factory; however, because it is specific to the factors mentioned in this application block, it is not necessarily applicable to all Web services and all scenarios. In addition to describing specific tasks listed in the Versioning Strategy section, 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 over 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 about your experiences to the Service Factory Community site, and expect that this guidance will evolve over time.