W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > October to December 2004

Re: Comments on bind-08

From: Julian Reschke <julian.reschke@gmx.de>
Date: Tue, 30 Nov 2004 21:14:35 +0100
Message-ID: <41ACD4AB.8070207@gmx.de>
To: ejw@cs.ucsc.edu
CC: "WebDAV (WebDAV WG)" <w3c-dist-auth@w3.org>


I'm going back to Jim's original issues list to ensure that we are on 
the page re: answers, fixes, issues and open questions (that are not yet 
on the issues list).

Jim Whitehead wrote:
> ...
> * Terminology section (1.1): There is a reference to
> draft-fielding-rfc2396bis here, and also in Section 3.2 (perhaps it occurs
> elsewhere in the specification as well). References in RFCs need to be to
> documents of RFC level stability (or equivalent). If
> draft-fielding-rfc2396bis hasn't yet been approved by the IESG, we should
> just revert back to RFC 2396.

I think this answered.

> * Section 2, paragraph 3. The language here would preclude the future
> definition of a DESTROY method which had the semantics of removing the state
> of a resource from a server, irregardless of any containment relationships
> that may hold it. Such a method could be quite useful for records management
> functionality, in order to implement a records disposition policy that
> specified deletion at a certain time. My recommended tweak to the language
> of section 2 is minor: add the following sentence to the end of the
> paragraph:
> "It is permissible, however, for future method definitions (e.g., a DESTROY
> method) to have semantics that remove all bindings and/or immediately
> reclaim system resources."


> * Section 2.1. I think it would be more clear to separate out the discussion
> of loops and bindings, and make it a separate section (say, 2.2) This issue
> comes up frequently enough that it would be good to make it easy to find
> this issue in the TOC. Also, a mention of the Already Reported status code
> would be good to have here, since it also mentions 506.


> * Section 2.3. This section doesn't clearly address the semantics of COPY
> with Depth infinity. My recommendation is to add, after paragraph 3, text
> like this:
> "As specified in [RFC2518], a COPY with Depth infinity causes the collection
> resource to be duplicated, all of its bound children to be duplicated, and
> their children's bound children, and so on, to the bottom of the containment
> hierarchy. All of the segments of the bindings of the destination collection
> are the same as for the destination collection. However, the destination
> resource for all bindings in the destination collection are different from
> those of the source collection, since all resources have been duplicated,
> creating new resources with distinct DAV:resource-id properties."

Issue opened 
but unclear whether we really need additional text. Feedback to Geoff's 
and my question appreciated.

> * There should also be some text addressing COPY depth infinity and loops --
> in some instances during a COPY with Depth infinity, the server really wants
> to recreate the binding that causes the loop, rather than continuing to make
> duplicate resources. This is somewhat addressed by the final paragraph in
> Section 2.3, but not exactly.

Issue opened: 

> * One gap in the current COPY semantics is the ability to copy a collection
> and its bindings. COPY depth 0 says copy all non-binding state. COPY depth
> infinity copies all bindings and makes duplicates of all bound resources.
> But, there's no single atomic operation (call it BINDDUP) that duplicates
> the collection and its bindings, but doesn't duplicate the bound resources.
> That is, there is no operation that does a COPY Depth 0 plus BIND for all
> members. So, two questions. Is there a compelling scenario for having a
> BINDDUP method? I confess I'm having a hard time coming up with one. Second,
> assuming there is a compelling scenario, can it be accomplished just using
> COPY, LOCK, and BIND, rather than having a special purpose method. Also
> unclear.

I think we have consensus that we don't need to consider this case as 
important enough to require special discussion or even a new method.

> * It might make sense to create an example covering the situation described
> in the final paragraph of Section 2.3. I'm not 100% sure I know what
> scenario this paragraph addresses, other reading the spec. for the first
> time would presumably have a tougher time.

Issue opened (see above): 
Q: would an example involving a COPY of a BIND loop resolve both issues?

> * Section 2.4, second paragraph. "MUST NOT" is used in the text of an
> example -- seems like it should be lower case here instead.


> * Section 2.6 -- there needs to be some discussion on the interactions of
> DAV:resource-id and versioning. As near as I can tell, the intent is that
> every revision will have a unique DAV:resource-id value.

IMHO still unclear. Awaiting feedback explaining why a reader of both 
specs would come to the conclusion that a version is the "same resource" 
as the VCR.

> * Section 2.6 -- I think it would help clarify the text to say that one
> possible implementation technique is to use a GUID for the unique
> identifier, and then reference the same GUID document as is referenced in
> RFC 2518.

Answered (it's a URI).

> * Section 2.6, final paragraph, last two sentences. Change "must not" to
> "MUST NOT" (and eliminate the "For example" at the start of the sentence --
> perhaps change to "Specifically,"

Issue tracked as: 
Do we need additional changes?

> * Section 2.6. Need to add a note indicating that REBIND does not affect the
> value of DAV:resource-id.

See above.

> * Section 3.2, final sentence -- delete the word "either", add a comma after
> "or".


> * Section 3.2. I think it would be helpful to have an example of this
> property. I'd be happy to help develop such an example.

Issue opened: 

> * Section 4. The intent of the BIND method is for its behavior to be atomic.
> However, this is never actually stated explicitly in the specification.
> Seems like it should be.

Issue opened and resolved:

> * Section 4. Need a new condition to cover the case where the BIND
> half-succeeded, and then needed to be rewound. This condition would address
> the case where Overwrite is true, the destination binding has been removed,
> but the new binding couldn't be created.

Still under discussion.

> * Section 4.1, final sentence. Remove comma after the URI.


> * Section 5. Same comment as for BIND. The intent of UNBIND is that it's
> supposed to be atomic, but that's never explicitly stated.

Issue opened and resolved:

> * Section 5. I think we need a condition for a cross-server UNBIND failure.

Still under discussion.

> * Section 6. Same comment as for BIND, UNBIND. The intent of REBIND is to be
> atomic, but this is not explicitly stated.

Issue opened and resolved:

> * Section 6. Should precondition DAV:rebind-into-collection be named
> DAV:rebind-from-collection, to mirror the similar precondition for UNBIND?


> * Section 6. Precondition DAV:rebind-source-exists is incorrect. The
> DAV:href element identifies the destination binding to be created, not the
> source. Seems like this precondition, and the previous one, reflect an older
> marshalling of the arguments.

Rewritten as:

       (DAV:rebind-source-exists): The Request-URI plus the DAV:segment
       in the request body element MUST identify a resource.

> * Section 6.2. I think it would be helpful to have an example including
> REBIND and locks, showing submission of one or more lock tokens in the If
> header.

Still discussing this...

> * Section 7.1.1. Might just be a personal preference, but I'd rather see
> plain GUIDs rather than opaqulocktoken URI GUIDs in the example.

Still discussing this.

Best regards, Julian

<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760
Received on Tuesday, 30 November 2004 20:15:57 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 20:01:33 UTC