Z Object Publishing Environment

Search | Download | Documentation | Resources | Members




Join Zope.org
Log in

Developer Home
Get Involved!
The Fishbowl

 Zope Exits

Zope Newbies

page served by app2

Proposals Table of Contents Last edited on Jan 20, 2001 7:53 pm

Write Locking Proposal rev 3.1

See and voice yourselves in the WriteLockingDiscussion. This version of the proposal replaces and supercedes the prior two versions.


Jeffrey P Shell (jeffrey@Digicool.com)

The problem being addressed

Lost Updates are a common problem with editing documents on the web. As one way of dealing with this problem, WebDAV supports exclusive write locks, enabling an author with a WebDAV tool to prevent other WebDAV tool users (and potentially others) from writing to their document while they have the Lock. Zope does not support this level of WebDAV however, while a growing number of WebDAV client tools are starting to take advantage of it.

The proposed solution(s).

Update our WebDAV support in Zope to fully implement the LOCK and UNLOCK methods. Where possible, OFS objects that are WebDAV editable should be updated to alert the user when the object is being edited outside of the LOCK (ie - through the web, FTP) and a LOCK is held by another user.

Zope should provide the management interface support to find and release locks at an administrative level. This interface should be usable in custom applications.

To address lost updates in some situations, namely in editing ZWiki pages, a technique referred to as a seatbelt is used for both through-the-web (HTML Form) and FTP editing. HTTP/1.1 appears to allow a similar technique to be used for HTTP that doesn't require embedding timestamps in documents, and we should investigate this to address Lost Update problems that might not be addressable by WebDAV (non-dav tools, etc.)

The risks

Tool support

Zope is a more advanced system than a file system, but many WebDAV tools are still limited by file-system type thinking. Our write lock support should behave as the more popular versions of these tools expect, and as the WebDAV spec indicates.

Editing locked resources outside of the lock

Zope should try to enforce the fact that a resource is locked when it's being edited outside of WebDAV. There is some low level ZODB technology (Versions) that may be used to enforce this, but it could very easily conflict with the Tool support risk by causing locks to behave in a more advanced and different way than common tools might expect.

Locking folders

It's unclear how a Collection such as a folder should behave if it is locked. The WebDAV community has had some large discussions on this and the results of their discussions should be taken into account when implementing LOCK for Folder and\or ObjectManager style objects.

Forgotten or Abandoned locks

Exclusive locks primarily enforce a particular editing process - take out the lock, get the resource, edit the resource, save changes, release the lock. However, locks are not always properly released due to program crashes, forgetful lock owners, or other reasons. Zope should make it easy for administrators to find locked resources and release one or more locks. Zope should also offer the resources for developers to write custom screens\objects to find and release locks that aren't bound to the Zope management interface (but may still be bound to the web).

The scope

This proposal is now only involved with:

  • Updating our WebDAV support to properly support LOCK and UNLOCK for exclusive write locks. If WebDAV shared locks appear possible to implement, support those as well. However, support for shared locks among clients and other WebDAV servers seems minimal and the spec is fairly ambiguous about them.

  • Updating common OFS objects that are WebDAV editable to be aware of their locks when being edited through other methods.

  • Supporting HTTP/1.1 etags to implement a functionality similar to the seatbelt technique used in ZWiki.

The deliverables

Updated WebDAV support in the Zope core that implements exclusive write locks. This will be tested against popular WebDAV clients such as Adobe GoLive 5 and Microsoft FrontPage 2000 and (perhaps) Goliath to ensure that we're producing behaviour that the tools are expecting.

Documentation on how to use Zope with various tools, addressing how to use Zope with DAV Aware tools, FTP, HTTP (non-dav) editing tools. This document will also discuss how and which Zope permissions affect these editing operations. added in draft 3.1

Updated HTTP/1.1 support in Zope to deliver functionality similar to Jigsaw and Amaya from the W3C. This should address some of the lost updates situations for HTTP/1.1 editing tools that don't support WebDAV.

The references

WebDAV Working Group, http://www.ics.uci.edu/pub/ietf/webdav/

RFC2518 HTTP Extensions for Distributed Authoring - WEBDAV, http://www.ics.uci.edu/pub/ietf/webdav/protocol/rfc2518.txt

W3 notes on the lost updates problem, http://www.w3.org/1999/04/Editing/

View source WriteLocking
Advanced Actions / History
Visitor: Anonymous User
Jump to:
... by pagename prefix or search term.
For a plain search:
Privacy policy       Printable Page       Feedback about Zope.org