From: Jeff_McAffer@oti.com (Jeff McAffer OTT) To: gclemm@tantalum.atria.com (Geoffrey M. Clemm) Cc: ietf-dav-versioning@w3.org (ietf-dav-versioning) Message-ID: <1999Apr07.182400.1250.1138379@otismtp.ott.oti.com> Date: Wed, 07 Apr 1999 18:28:24 -0400 Subject: RE: configurations and all that... [... snip ...] > I get the feeling that while we acknowledge that > configurations are not necessarily "the entire world" of > immutable > resources, people think of them as workspace things and > assume they are > relatively rare. Certainly it is assumed there are few of > them in the > RSRs. > > Those are two very separate statements. Some of us believe > that configuration > revisions will be created frequently (i.e. possibly several > per day per > client). So it becomes critical that a configuration > revision be amenable > to very efficient implementation. But you only need one of > these "historical" > configuration revisions in your RSR at any one time (just as > your workspace > selects a single revision of a versioned-resource at any one > time). So you > can have lots of configuration-revisions while only having a > few of them in > your RSR at any one time. In principle I agree with you with and note that "frequent" for us is several revisions of hundreds of "components" per day depending on the phase of the project. I agree that individual users only need one revision of each of these components in their RSRs at any one time. Frequency is somewhat orthogonal to granularity. > The workspace is the view onto, or context for, the > resources (i.e., specs revisions via RSRs) but that's it. > > Although that is a pretty important "it" (:-). In > particular, although > a workspace with no resources displayed in it is pretty useless, a > mass of versioned resource revisions is also pretty useless, > unless you select an interesting slice through them (which is what a > workspace does). I don't mean to trivialize workspaces either in complexity or usefulness. My point was simply that workspaces are disposable, resources are not. Users are mostly interested in managing and persisting resources. > This is, I > believe, the operation everyone has been talking about and > calling > "snapshot the workspace within some scope"? > > Not quite. There is the contingent that wants to just talk about a > set of revisions, independent of their membership in any collection. > All contingents agree that there must be some mechanism that selects > which revision of a versioned-resource that goes into the > configuration, > and that "what is currently in the workspace" is one such mechanism. > The disagreement occurs on whether it is the only mechanism. Hmmm, good point. Is there, at some level, a "collection" which represents/indicates the set of interesting resources, for these users? At the very least this might be the "scope" for the snapshot operation? > Thought: Is "snapshot" = "checkin a collection with depth > infinity"? > The collection you check-in is the scope (references the roots > of the collections of interest). The deep check-in updates the > collection to contain all the mappings... > > That's how I look at it, although I would have said "The deep check-in > creates a configuration-revision that contains all the mappings". works for me. > Question: How do I ship a component to someone and retain > revision info > etc.? > > I assume by "shipping a component", you mean "shipping them all the > revisions in a particular configuration revision of that > component". In this > case, it is sufficient to ship the URL of that configuration revision. No. I actually mean, gather up all the bits and bytes that constitute all the revisions of the resources in a set of configurations and send them to someone else who will put them in their compatible webdav server. We really want this to support distributed teams working on the same/related sets of resources but who are unable to share webdav servers. You consume some of my components and I consume some of yours. We each may later pass back these components and users expect identity to be maintained. I don't expect explicit support for this out of WebDAV but I would like it to not stand in my way. > You were neglecting the "activity" concept. Activities are > there to capture > a logical change. Activities can have "needed-activities" to > allow you > to specify a group of logical changes that combine to form a > larger logical > change. > > Configurations are there to snapshot the state of the world after some > number of activities have resulted in a state of the world worth > snapshotting. So although I believe configurations must be > lightweight, > they don't have to be as lightweight as an activity (which must be > *really* lightweight, since it captures the smallest > increments of change). Activities are great and I was thinking about them but they don't enable sharing of revisions in the way we are looking for. I belive that activities can be shared (correct?). So I can put one of your activities in my RSR. How many Activities do we see being in a team environment on average? less than, greater than or equal to the number fo team members? I think it is related to the number of logical things that are going on and that that is >> # of team members (IMHO). So we have to be prepared for many activities in our RSRs. If activities are coarser grained, it is likely that I am not interested in, or perhaps should not have, all of the things that are in your activity. You are updating components A and B and I am working on A and C. I want to see your changes to A but not to B. Further, I am generally not interested in your changes until you have reversioned the *component*. As I understand activities, I will see all the intermediate states of the component's constituents. Activities are a good thing and they do solve real problems for us. I just don't think we are done in this area. > Prerequisites (i.e., needed configs) are useful ways > for users to group/reuse logically coherent resource sets > but BEWARE! > Maintaining these dependencies is a NON-TRIVIAL amount of > work for the > user. Further, users should not be creating these to > satisfy the system > (i.e., webdav) but to help them solve their problems. > This structure may > > or may not fit into some nice hierarchy. I have no > problem with having > this capability in WebDAV but we will not use it (much) > and any problem > that is solved only by using "needed configs" is not solved for us. > > The "needed" configurations are not a general traceability > links. They > are a very simple RSR "composition" relationship. Their > semantics is only > that if you explicitly specify an configuration revision in an RSR, > you implicitly select all its "needed" configurations. If > you explicitly > specify an activity in an RSR, you implicitly select all its "needed" > activities. > > A composition relation is essential if you are going to scale, i.e. if > you have thousands of objects, you need some intermediate > "clumps" so that > at any level of abstraction, you can just deal with "dozens". I agree but note that our experience is that the work in maintaining nested composition relationships which include specific revision information is significantly non-trivial. Jeff