Versioning Use Cases

This is a simplified set of use cases for extensibility/versioning. They are
intentionally loosely specified in order to determine whether coverage is
adequate or not.

Body Extension/Versioning.
The body of a message is extended/versioned in either compatible or
incompatible manner.

Example: Optional element is added to body.
Example: Required element is added to body.
Example: Required element removed from body.

Header Extension/Versioning.
The header(s) of a message is extended/versioned in either compatible or
incompatible manner.

Example: An operation now supports an optional header
Example: An operation now requires a specific header
Example: An operation no longer requires a specific header.

Fault Extension/Versioning
... More work

Body/Header Extension/Versioning
An operation is compatibly evolved by adding an optional header, which if
present changes the response message type.

Example: Adding a range header changes the response message to be a range
response.   HTTP range header is an example in another protocol.

Feature/Property Extension/Versioning.. More work.

Endpoint (binding) Extension/Versioning.
The bindings of a service is extended/versioned in either compatible or
incompatible manner.

Example: An endpoint now supports an additional optional binding.
Example: An endpoint now supports an required binding.

Interface Operation Extension/Versioning.
The operations of an interface are extended/versioned in either compatible
or incompatible manner.

Example: an interface now supports an additional optional operation.
Example: an interface now supports a required operation.

MEP Extension/Versioning
Support new MEPs... More work.

Cheers,
Dave

Received on Tuesday, 20 January 2004 19:41:14 UTC