3.6 Web Service Versioning
When customers start to integrate with OHI Components applications Web Services, there is a need for versioning these. Parts of a Web Service that are likely to change and for which version control needs to be put in place are:
- The (abstract) WSDLs; these are typically fairly stable.
- The XML Schema content that describes the types for the service's message definitions; these are more likely to change.
3.6.1 Compatibility
A new version of a Web Service contract that continues to support client software that was designed to work with the previous version is said to be backward-compatible. Examples of backward-compatible changes to an XSD are:
- The addition of an optional element.
- Changing an existing element from being required to optional.
These have no impact on existing consumers of the service.
If a contract changes in such a way that it can no longer be used by existing consumers of the service without making changes to the consumer programs, it is an incompatible change. Examples of incompatible changes are:
- Renaming or removing an existing WSDL operation.
- Adding a new required XML Schema element or attribute to a message definition.
- Renaming an optional or required XML Schema element or attribute in a message definition.
- Removing an optional or required XML Schema element or attribute from a message definition.