W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > April to June 2001

Re: Issue: WRITE_DAV_PROP

From: John Glavin <john@riverfrontsoftware.com>
Date: Mon, 16 Apr 2001 16:48:03 -0700
Message-ID: <001c01c0c6cf$adfe54b0$6701a8c0@win2k>
To: "Jim Whitehead" <ejw@cse.ucsc.edu>, "John Glavin" <john@riverfrontsoftware.com>, "WebDAV WG" <w3c-dist-auth@w3.org>
----- Original Message -----
From: "Jim Whitehead" <ejw@cse.ucsc.edu>
To: "John Glavin" <john@riverfrontsoftware.com>; "WebDAV WG"
<w3c-dist-auth@w3.org>
Sent: Monday, April 16, 2001 12:24 PM
Subject: RE: Issue: WRITE_DAV_PROP


> John Glavin writes:
> > I agree about the "getlastmodified" property.  I would love to be able
to
> > set this so that file synchronization software will work properly.  My
> > product maps a network drive to a DAV server and unless I can set the
> > "getlastmodified" property file synch software won't work right.  I only
> > know of one server that allows this now, it would be nice if this could
be
> > standardized.
>
> Hmm, it's not at all obvious to me why writing to getlastmodified helps
> synchronization. Naively I would think the synchronization algorithm on
> resource R would be:
>
> - retrieve getlastmodified and getetag properties on R
> - IF local copy of R unchanged AND ((getlastmodified > R file timestamp)
OR
> (getetag != stored value of R's etag from when it was originally
> downloaded)) THEN get file from server & update cached etag value ELSE
leave
> local copy of R unchanged (it is the latest version)
> - IF local copy of R is changed THEN
>   - IF (getlastmodified > value of getlastmodified from last download of
the
> resource) OR (getetag != stored value of R's etag from when it was
> originally downloaded) THEN note a conflict, since the file has been
updated
> on the client and the server
>   - ELSE write the client file to the server, since the client file has
been
> changed, and the server file hasn't
>
>
> I don't ever see a case here where changing the value of getlastmodified
> helps. When writing the client file to the server using PUT, the server
> automatically updates getlastmodified.
>

This is where the problem lies.  If you PUT  a file to the server, the
server will update getlastmodified.  The way that existing Windows
applications synchronize files is to copy the file to the server and then
set the modified time to match the existing modified time of the file that
is say on the users hard disk.  This way when it next checks to see if the
file is in synch it will just check the last modified property.  I know that
DAV isn't specific to Windows or any file system in particular, but it would
be nice if there was a way in DAV to allow existing file synchronization
software to work.  A simple way to do this is to allow the getlastmodified
property to be set.

The algorithm mentioned above by Jim would work fine if the synchronization
software was written with DAV in mind.  My product maps a network drive
under Windows to a DAV server, so I can't really change the method that
applications use to synchronize files, nor could I expose these additional
DAV properties to them.

The DAV server for www.mydocsonline.com does this and it works very well
with my product and some other products out there that count on this for
file synchronization.

Thanks,

John Glavin
RiverFront Software
http://www.webdrive.com
Received on Monday, 16 April 2001 19:38:05 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:43:56 GMT