Changes between Version 92 and Version 93 of GSoCIdeas2010


Ignore:
Timestamp:
2010-03-16T21:27:57Z (14 years ago)
Author:
davidsarah
Comment:

more about webdav

Legend:

Unmodified
Added
Removed
Modified
  • GSoCIdeas2010

    v92 v93  
    7777Invent your own Summer-of-Code project by building a new web app on top of Tahoe-LAFS. The [#SecureDecentralizedWiki Secure Decentralized Wiki] is one example of a Cloud App. See [wiki:GSoCIdeas/CloudApps] for other ideas.
    7878
    79 = WebDAV =
     79= WebDAV support =
    8080
    81 Implement a WebDAV front-end for Tahoe-LAFS so that files and directories stored in a distributed grid can be accessed by operating systems (including Windows, Mac, and Linux) and applications that speak the WebDAV protocol. For details see #451 which describes what the Tahoe-LAFS web server does now, how this differs from what a WebDAV web server does, and how to get started experimenting with the relevant source code.
     81Difficulty: medium to hard, depending on how much of an existing WebDAV implementation you are able to reuse
     82
     83Implement a WebDAV front-end for Tahoe-LAFS so that files and directories stored in a distributed grid can be
     84accessed by operating systems and applications that speak the WebDAV protocol. WebDAV is specified in
     85[http://tools.ietf.org/html/rfc2518.html RFC 2518] and [http://www.ics.uci.edu/~ejw/authoring/ a few other documents];
     86it essentially extends HTTP to act as a filesystem access protocol. For details see #451 which describes what the Tahoe-LAFS web server does now, how this differs from what a WebDAV web server does, and how to get started experimenting with the relevant source code.
     87
     88The main attraction of implementing a WebDAV interface is that
     89several operating systems have bundled and somewhat integrated support
     90for it, including Windows, Mac OS X, and most distributions of Linux.
     91In fact WebDAV may turn out to be an easier alternative to
     92[http://en.wikipedia.org/wiki/Server_Message_Block SMB/CIFS]
     93for allowing filesystem access from Windows.
     94
     95However, there is currently no working WebDAV implementation in Twisted
     96Python. There used to be one (the {{{web2.dav}}} package),
     97[http://twistedmatrix.com/trac/ticket/3081 but it bitrotted].
     98You'll have to decide whether to help fix that implementation, use a
     99non-Twisted implementation such as [http://code.google.com/p/wsgidav/ WsgiDAV]
     100that might be more difficult to integrate wth the existing Tahoe code,
     101or write your own. In any case, WebDAV is a complicated protocol and
     102you will need to decide what subset of it gives most "bang for the buck"
     103and is practical to support in the time available. For example, locking
     104is optional in the WebDAV spec; is it needed to interoperate with commonly
     105used WebDAV clients?
     106
     107Unlike most filesystems which are constrained to be trees, the structure
     108of a Tahoe is in general a cyclic graph.
     109[http://tools.ietf.org/html/draft-ietf-webdav-bind draft-ietf-webdav-bind] is
     110an Internet Draft that clarifies how WebDAV servers should handle cycles.
     111
     112[http://savannah.nongnu.org/projects/davfs2 davfs2] is a FUSE-based
     113WebDAV filesystem client for Linux. To ensure that this runs correctly
     114over your implementation of WebDAV, you'll probably need to adapt the
     115tests for the existing Tahoe
     116[source:contrib/fuse/impl_c/blackmatch.py "blackmatch"] FUSE interface
     117(this would not be redundant since the blackmatch implementation has
     118limitations, especially for write access, that davfs2 would not have).
     119
     120The [http://en.wikipedia.org/wiki/WebDAV#Microsoft_Windows WebDAV mini-redirector]
     121is the component of Windows providing its WebDAV filesystem support. It is
     122actually the less buggy of
     123[http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/ two implementations], but it still has had
     124[http://greenbytes.de/tech/webdav/webdav-redirector-list.html bugs] and
     125[http://www.microsoft.com/technet/security/bulletin/MS08-007.mspx security vulnerabilities]
     126that you may need to take into account.
     127
     128[http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~webdav Tickets labelled 'webdav']
     129
    82130
    83131= Distributed Introduction =