Databases Reference
In-Depth Information
Initially, the answer may seem obvious. However, if we revisit our earlier definition
of backward compatible, we can see some issues:
A service is said to be backwards compatible if ALL messages that would have been
successfully processed by version 1 of the service, will be successfully processed by
version 2 of the service.
Under this definition, if we add some extra validation to version 2 of the service
(for example, we check that a date is in the future). This would mean some messages
valid under the original version are no longer valid. The same sort of scenario could
again occur if we were to fix a bug (or even introduce one).
Another more surreptitious change is one whereby we change the processing of the
data, so that ALL messages are still processed successfully, but the result is different.
For example, if we had a service which returned the price of an item, but instead of
returning the price in dollars and cents, it now returned the price in cents.
With each of these scenarios, there is no hard and fast rule. However, when you
implement these types of changes, you need to consider whether it requires the
release of a new version of a service and whether that should be a minor or
major version.
Another way of handling this type of change is not to modify the
version of the service, but rather provide a means of notifying the
consumer that there has been a change to the service. One mechanism
for managing this is through the Oracle Enterprise Repository.
Schema versioning
When we modify a schema, we follow the same core principles for major and minor
versions that we outlined earlier: a minor change to a schema indicates that an
instance document, which was created against a previous version of the schema, is
still valid against the new version of the schema, as long as the schemas share the
same major version number. Minor changes include:
The definition of new elements, attributes, and types
Adding optional attributes and elements to existing elements and types
Making existing mandatory attributes and elements optional
Convert an element into a choice group
Making simple types less restrictive
 
Search WWH ::




Custom Search