Message-ID: <01BE9B1B.4E7957B0.dbarrell@opentext.com> From: Dylan Barrell <dbarrell@opentext.com> To: "'Geoffrey M. Clemm'" <gclemm@tantalum.atria.com> Cc: "ietf-dav-versioning@w3.org" <ietf-dav-versioning@w3.org> Date: Sun, 9 May 1999 23:52:47 +0200 Subject: RE: Version issues > Your points about the benefits of several versioning levels in various > aspects of versioning support are valid. These benefits must be > weighed against the cost of the combinatorial explosion in complexity > that this induces in the specification and in an interoperable client. > Two versioning levels is actually three, since "no versioning support" > is one of the alternatives. This means that there are eight > combinations that the specification and vendors must be concerned with: > > level-0 client -- level-1 server > level-0 client -- level-2 server > level-1 client -- level-0 server > level-1 client -- level-1 server > level-1 client -- level-2 server > level-2 client -- level-0 server > level-2 client -- level-1 server > level-2 client -- level-2 server Purely combinatorially, I agree, but actually a level 0 client will only receive level 0 responses from a server regardless of the server's support level, as it will only send level 0 requests. The same goes for every other level. > > I encourage you to enumerate all the combinations resulting from a particular > set of levels and variants you propose, and an effective way for the > protocol writers, server vendors, and client vendors, to deal with them. I want 2 levels level 0 - only versioning and nothing else - no workspaces, change sets or configurations level 1 - whatever else you want to throw-in > > It is also important to note that two levels of versioning support actually > provides a significant degree of flexibility to a vendor that is providing > both a client and a server. In particular, if the vendor provides at least > level-1 support in their server, then they can add any subset of level-2 > support to their server, and design their client around that subset. The > following interoperability will then be guaranteed: Exactly, I am just arguing about what should go into level 0. > > vendor client -- vendor server > level-1 client -- vendor server > vendor client -- level-2 server > > In order to maximize the choices available to such a vendor, the design team > is working hard to ensure that level-2 functionality is divided into > logical pieces of functionality that are as orthogonal to each other as > possible, so that a variety of vendor choices between level-1 and level-2 > are feasible. I don' see how this could possibly make sense - unless level 2 (I have referred to this as level 1) requests can all legally send an unsupported response and the server still be considered compliant. Cheers Dylan