[Lispweb] [Slightly OT] DAV (Was: Araneida)
Edi Weitz
edi at agharta.de
Tue Apr 26 05:03:35 CDT 2005
There's actually something about Lisp at the bottom of this email, so
stay tuned... )
On Tue, 26 Apr 2005 10:38:19 +0200, rm at fabula.de wrote:
> Edi, i'm impressed! (no sarcassm!)
Blush.
> I did extend the Apache module (to store metadata in a "real"
> database) an AFAIR the specs are a nightmare.
They are. What do you expect when XML is involved? :)
FWIW, the DAV server was written to give users of a web organizer
direct access to their files. Prior to that they could only access
(upload/download/move) these files through a web frontend, now they
can "mount" them using the capabilities of their OS or using
third-party software.
The file meta information is stored in an SQL database (Oracle or
PostgreSQL depending on the customer) and the files themselves are
stored on RAID servers which are separate from Apache's document root.
The layout of the files on the disk(s) is also different from what the
user "sees" so that he/she can move a file to a different "folder"
without the file being actually moved on disk. Finally, the DAV
server authenticates the users against the database and it has to keep
track of certain quota - depending on what the users pay they can only
store a certain amount of data and they only have a certain amount of
transfer volume available per month.
Users are accessing the DAV server via the "native" DAV support of
Windows 2000, Windows XP, or Konqueror, via third-party software like
WebDrive or cadaver, or via a Windows Explorer extension written in
Delphi (not by me). We deliberately extended the DAV protocol a
little bit so that the Delphi extension can do things Windows can't -
it can encrypt the DAV traffic, it can display information about the
user's quota, transferred data can be zipped, and - most importantly -
if the user has enabled a "thumbnail" view then the client can request
thumbnails from the server instead of downloading the whole picture
and computing the thumbs locally in order to reduce traffic. (Most of
the documents users store are pictures, yes.)
One of the hard parts was to make the server play nicely with XP's
built-in DAV client. As you might have guessed Microsoft doesn't
really abide by the standard. It took me weeks of experimenting and
guessing to make it work. Then SP2 appeared and the fun started
again... :(
The code is part of the products sold by daybyday Media GmbH and has
been deployed by themselves and several of their customers for almost
two years so I'm reasonably sure it more or less works. Actually, you
can request a 30 day trial account at <http://daybyday.de/> and try it
for yourself if you want... :)
> Did your code implement the full DAV RFC?
At the moment I've only implemented level 1 (plus our own extensions -
see above). It turns out we didn't need locking yet. However, OS X
says the files are read-only, maybe it wants DAV level 2.
Back to Lisp: These guys <http://www.inthan.com/> (website only seems
to work correctly with IE...) say they've implemented DAV on top of
AllegroServe. One of them was in Amsterdam yesterday but I didn't
manage to talk to him (and I only saw the info about DAV after the
meeting anyway).
BTW, I thought that AllegroServe's license would require you to
open-source extensions like that. But it probably doesn't apply if
you're a Franz customer (which is understandable).
> PS: thank's again for this _fun_ conference.
You're welcome. It was fun for us as well... :)
Cheers,
Edi.
More information about the lispweb
mailing list