January 15, 2004

Theory of Compatibility (Part 3)

In the first two articles of this series, we introduced a theoretical approach to versioning compatibility:

  1. The Theorem of Compatible Extensions - this theorem explains how, if contracts specify pairs of distinct rules for message producers and consumers, both forward and backward compatibility can be easily achieved. This is a departure from the typical approach of defining a single validation mode for both producers and consumers, but it is extremely powerful.
  2. Versioned Contract Languages - this concept pins down the "must-ignore" rule as a way of applying compatible extensions on top of a schema language that has a single concept of validity instead of two. This is the approach taken by both HTTP and HTML (and arguably is the reason for the power of both standards), and in this second article, we analyzed how HTTP deals with version compatibility in detail.

The discussion so far has been theoretical, but our careful theorems and definitions have given us a solid foundation on which we can build permanent full compatibility between versions. This third article in the series is a practical article. We apply these theoretical ideas to versioning XML and XML Schema. Continue reading "Theory of Compatibility (Part 3)"

Posted by David at 08:37 AM | Comments (2)