[Lispweb] RE: DAV (Was: Araneida)

Greger Lindell cgl at inthan.be
Fri May 13 14:12:00 CDT 2005


Hello,

Yes, it is correct that we have implemented WebDAV on top of AllegroServe.
It was intended to be an option/extension to our Inthan Active Web Service,
a Knowledge Management system, also in AllegroServe.

As of now it has been tested, but not made available as part of the service,
since I did not want to release all functionality at once.

We made two versions, one stand-alone as a demonstration. It is backed up by
the file system. Another, integrated with our repository, supporting
metadata, locking, versioning, authorisation etc. 

The repository in turn is working against Oracle or our own "filedb", a
complete SQL implementation in Lisp where CLOBs are stored as files on the
disk. It also supports streaming I/O in order to make the web service as
"lean" as possible, not requiring moving big strings around in memory. Our
measurements on a busy server indicates that this is essential for servers
handling big documents dynamically (and our documents are processed
individually for the web visitor as they are shown, so they cannot be moved
directly from disc to web).

I will check with Franz about our rights and obligations. So far, as an
internal project, I did not imagine we were obliged to publish. We were and
are very pressed for time, would have nothing against it in principle. Are
there many who would be interested?

Regards,

Greger Lindell

E-mail: cgl at inthan.be, gregerlindell at hotmail.com
Web: www.inthan.com 



-----Original Message-----
From: Edi Weitz [mailto:edi at agharta.de] 
Sent: Tuesday, April 26, 2005 12:04
To: rm at fabula.de
Cc: lispweb at red-bean.com
Subject: [Lispweb] [Slightly OT] DAV (Was: Araneida)


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