webDAV or Web-based Distributed Authoring and Versioning is starting to rock my world. It is turning out to be a fantastic way of interacting with live databases. Before I get to that, lets start at the beginning.
webDAV is a protocol that leverages existing HTTP semantics in order to interact with a remote filesystem. Not particularly interesting, but one of webDAV’s key benefits is it’s ubiquity. It is not only supported by every major operating system, but when you interact with a remote webDAV server, it simply looks like you’re mounting a remote drive with all the folder and file goodness that provides. Folders and files are a fantastic metaphor for users as they are very used to dealing with it on a daily basis. Once you’ve mounted a remote drive anyone who has used a computer can interact with the content stored there.
Now comes the interesting part. webDAV is a protocol, and as such need not be backed with a real file structure. Indeed, there are a number of open source libraries that will allow you to quickly develop a webDAV server and attach it to anything you wish. In my case a database.
In recent projects some of the interaction is simply about attaching files to a resource and then squirting these back out into a pdf. Rather than force a user through a cumbersome upload process on a website putting a webDAV front end on this is quick and easy. You can even give them access to the reports that you generate from the database as files.
More than this, things get even more interesting if you start to look into the content of the files as they are placed into the webDAV logical filesystem. The process we are seeking to support uses word documents and excel spreadsheets to organise itself. There is nothing fundamentally wrong with this process other than a great deal of time is spent on getting an overview of the process state (who has done what) and producing an aggregate view of all the documents produced. With the magic of webDAV our customers can carry on with a process which they are comfortable with, while we suck the data out of the docs and provide the analytics at the top.