From: jamsden@us.ibm.com To: ietf-dav-versioning@w3.org Message-ID: <85256767.004F8217.00@d54mta03.raleigh.ibm.com> Date: Tue, 4 May 1999 10:26:24 -0400 Subject: Re: Notes from 5/3/99 Versioning TeleConf "Geoffrey M. Clemm" <gclemm@tantalum.atria.com> on 05/03/99 04:39:58 PM To: ietf-dav-versioning@w3.org cc: (bcc: Jim Amsden/Raleigh/IBM) Subject: Notes from 5/3/99 Versioning TeleConf - Configurations There was basic agreement with the proposed approach to configurations, but the following issues were still outstanding: Jim Amsden suggested that we replace the DAV:scope property with a collection that is bound to the versioned-resources that would have been listed in the DAV:scope property. <jra> What I was suggesting is that the collection members are what was listed in the DAV:scope property. </jra> I personally think this is a good idea, because a binding is a more stable locating mechanism than a URL. We would still need some property containing a list of URL's to allow cross-server configurations (since cross-server bindings are unlikely to be supported by many servers). Jim further suggested that the configuration revision actually *be* this collection. I'm a little more hesitant about that, since I'm concerned that there will be other "collections" that we will want to associate with a configuration revision. I don't have anything particular in mind yet, but I'm still concerned that something will turn up. <jra> I think we should be free to define whatever specializations of collection are needed to provide the functions we want. Having a configuration be a kind of collection isn't really a restriction, it just reuses collection semantics to manage configuration members. </jra> We then discussed the "create a configuration revision without using a workspace" issue. Chris indicated that the "configuration workspace" described in the agenda makes sense, but is concerned that there are complexities associated with introducing another flavor of workspace, since we already have "checkout-token workspaces" and "version-selection workspaces". Jim Amsden suggested that we just allow a list of revisions to be specified when creating the configuration revision. My concern with this approach is that the server should confirm that the list of revisions is a "legal" configuration (e.g. that it specifies at most one revision of each versioned-resource, and that it selects a revision of each internal member of a collection revision), and that many servers will need a workspace to perform this computation efficiently. <jra> Yes, a server must support collection and configuration semantics when a member is added to a configuration. These are: - can't have the same member twice - member must exist and specify either directly through a label, or indirectly through a workspace an existing revision. - adding a collection recursively adds all its members (subject to the same rules) - member must be an immutable revision. There is some question on this one. These rules don't seem that hard to check incrementally on each edit to a configuration. There is really nothing else a server can do in terms of validating the consistency of the selected revisions. Only the client can know through testing if the right revisions have been selected. </jra> An alternative approach is to let the client specify a label to be used to pick revisions that should go into the configuration revision, but this requires the client to actually put a label on all revisions to go in the configuration, and requires the server to scan every versioned-resource in the configuration to see what revision the label would select. <jra> There's no choice if workspaces aren't available. Clearly configurations are a more advanced concept in DAV versioning. But as has been pointed out a number of times on the mailing list, simple versioning may be simple for the server, but it won't be so simple for clients. Configurations may be very useful even in servers that don't support workspaces or activities. They aren't just a revision selector in a workspace revision selection rule, but may also be used: - to query their members to see what revision made up a consistent set - for deployment of a web application - web publishing - archiving - site organization I think of configurations as providing a "single version" view of a multi-versioned space. This is what most users will want most of the time, even if the server only supports simple versioning for creating the various revisions. Those servers will likely require a publish step that copies specific revisions to some other namespace for production access. Configurations eliminate the need for this publish step. </jra> - Repositories The next topic was a "repository" resource. The purpose of a repository is to provide browse access to all the versioning meta-data, such as versioned-resources, activities, and workspaces. Although it is feasible to eventually locate most information by following the graph of inter-object references, since there are an infinite number of paths through this cyclic graph, some mechanism that indexes the key resource types in an interoperable way is very important. The repository resource provides such a mechanism. In particular, the repository is a collection which contains at least four standard subcollections, named "activity", "versioned-resource", "configuration", and "workspace". A member of the versioned-resource or configuration collections would have a server-generated versioned-resource-id as its name, while an activity or workspace would have a client specified name. <jra> Configurations should not have server-generated names. These are user created and controlled resources whose meaning is completely user defined. I don't see the need for a repository to have a special mechanism for querying configurations. A DASL search should be adequate. </jra> The repository also provides a convenient mechanism for naming versioning metadata in a way that is accessible to non-versioning-aware clients. The "property-collection" proposal was a way to avoid picking specific names for these subcollections, but rather have the names of the subcollections be specified as properties of the repository. Jeff McAffer suggested that this level of naming flexibility is not needed, and the group agreed. - Details for Upcoming Design Team Meeting Dates: May 26-27 Sponsor: Rational Software Location: Concord's Colonial Inn, Concord, MA Phone: 978-369-9200 Room Rate: $125/night Room Reservation Deadline: May 14, 1999 Nearest Major Airport: Boston Logan Directions from Boston: Sumner Tunnel to Rte. 93N to Rte. 95S exit to Exit 29B (West Rte. 2) follow signs for Concord Center to Monument Sqare. Note: The rooms at the Colonial Inn will probably disappear by May 15, so reserving early is recommended. Cheers, Geoff