Date: Fri, 21 May 1999 23:44:22 -0400 Message-Id: <9905220344.AA05803@tantalum> From: "Geoffrey M. Clemm" <gclemm@tantalum.atria.com> To: ietf-dav-versioning@w3.org In-Reply-To: <3FF8121C9B6DD111812100805F31FC0D0879322C@RED-MSG-59> (message Subject: Re: WeDAV Versioning Summary - Factoring! From: Yaron Goland <yarong@microsoft.com> In general the versioning specification has grown so feature laden that I despair of very many groups ever being able to actually create a WebDAV compliant versioning system. Something which probably wasn't made clear is that the versioning summary Jim posted is full "level 2" or "configuration management" versioning. In the protocol, we identify a "level 1" or "version management" protocol which is *much* simpler subset of level 2 functionality. Yaron's suggestions are very close to the current level 1 specification (and in some cases, it has even less than he asked for :-). I think the problem is factoring. Here are some heretical questions: Question 1 - Would Delta-V be a failure if the base versioning case only allowed HTTP/1.1 and WebDAV Level 1/2 clients to read but not change a versioned store? An HTTP/1.1 client should sufficient to be able to read a versioned-store (one of my motivations for representing the history of a versioned-resource as a collection), and to have limited write capability (the "auto-version" property on a versioned-resource). Question 2 - Would Delta-V be a failure if mutability was punted off to a completely separate specification so that the majority of systems which only have to deal with versioning can concentrate just on versioning? We've narrowed the impact of "mutable revisions" on the protocol to be very small. If after reviewing the protocol you still feel the impact is too great, please let us know (not that I thought you wouldn't :-). Question 3 - Would Delta-V be a failure if the base versioning case didn't support workspaces? In the "level 1" case, workspaces effectively provide a "checkout token" and are the only way to identify a working resource, so they couldn't be deleted. Using a workspace to support user-defined version-selection rules isn't required until level 2. Question 4 - Would Delta-V be a failure if the base versioning case didn't support configuration management (read: can't version collections) Level 1 does not support versioned collections. Level 1 also does not support activities or configurations! So basically, level 1 is just versioned-resources, revisions, labels, and workspaces. The new methods are CHECKOUT/CHECKIN/UNCHECKOUT/MKRESOURCE. Today Delta-V is turning into a monster with more features that anyone save the very highest end vendors could ever hope to support. I know of at least one million+ line operating system that is being developed using a versioning system that can't version collections, doesn't allow down level clients to make changes, doesn't support work spaces, has no clue what the hell a "mutable" resource is, wouldn't know an activity if it hit it between the eye balls and can't even generate explicit histories! Yet the system works and unbelievably complex products manage to ship. Clearly there is a strong and thriving market for low end versioning systems. My fear is that even the "basic" Delta-V system will be too complex. Even the summary took 7 bloody pages! How can anyone ever hope to every perform a comprehensive review of such a complex spec much less implement it? I am having ISO flashbacks. Those guys produced the best specs nobody could implement. Hopefully level 1 is more what you had in mind. Note also that the new resource types in level 2 have been designed to be as orthogonal as possible, with the idea that a vendor should be able to supplement their level 1 server with a subset of the level 2 resource types. For example, they could just add a "configuration", or just add the ability to put a revision-selection-rule in a workspace, or just add the notion of a vesioned-collection. In this way, they could ensure that their client/server provides the appropriate level of functionality for their customers, while knowing that any level-1 client could run against their server, and their client can run against any level-2 server. Cheers, Geoff