A Uniform Interface for Authoring
In the first session of the XML DevCon Fall 2000 conference, Greg Stein delivered an introduction to WebDAV, the Web Distributed Authoring and Versioning protocol. Stein is an open source developer working with WebDAV and Python -- he is the author of the mod_dav Apache DAV support, soon to be an integral part of Apache 2.0.
WebDAV is an open protocol, standardized through the IETF, which uses XML and HTTP 1.1 to provide an interoperable layer for distributed web authoring. Essentially, it provides a uniform layer over filesystems, data repositories, etc. that supports more or less filesystem-like semantics: collections (like directories), resources (like files), properties (resource metadata), and locking.
Benefits of WebDAV
The benefits of this technology, according to Stein, are available for all concerned in the authoring process:
- The reader of a document gets the ability to retrieve metadata about a document, and to retrieve this information from client tools.
- The author of a document gets a standard way to place content on a server, and can use any authoring tools that support WebDAV. They also get the ability to tag documents with metadata and employ locking to ensure documents aren't overwritten by others while they're being worked on.
- The administrator of a server gets a lot of flexibility from running DAV. The URL-space of the server doesn't have to match up with the filesystem, avoiding ugly dependencies on physical media, and authorization is performed by HTTP authentication, meaning users who want to place content on the server don't need to have system accounts, with the concomitant security risks.
Because it's based on top of HTTP 1.1, WebDAV reaps all the pre-existent advantages of HTTP, such as through-firewall operation, security, and authentication features. By adding new verbs to HTTP like PROPFIND, PROPPATCH, etc., WebDAV provides facilities for metadata and locking.
So where does XML fit into WebDAV? According to Stein, WebDAV is the first IETF specification to use the XML standard. XML is used to encode all the messages that WebDAV uses to communicate between client and server, such as the result of a PROPFIND method to discover the properties of a resource. Reminiscent of RDF/Namespace technology, these resource properties are named using a URI to ensure uniqueness.
Of course, what makes WebDAV interesting is not merely its use of XML, but the large advantage to be gained from a uniform interface -- based on open and ubiquitous standards -- to data repositories.
WebDAV now has a reasonable amount of software support in both the commercial and open source areas.
- Apache's mod_dav: Stein's DAV plug-in for Apache provides by default a WebDAV interface to the filesystem. It includes a flexible backend, which means you can write a custom interface to your own repository. Stein reported that IBM has used this technique to provide a uniform interface to many different data repositories within their organization. Oracle and Rational also have mod_dav backends in development for their databases and repositories.
- Operating systems: WebDAV support is now emerging in all the major operating systems. Windows "Web folders," included in Windows 98 and IE5.0, provide an explorer view on DAV servers; the new MacOS X allows DAV servers to be mounted as filesystems, and the new GNOME file browser Nautilus has built-in support for a WebDAV "virtual" file system.
- Microsoft tools: Office 2000 and Exchange 2000 have support for WebDAV; Office tools can author content on a WebDAV server, and Exchange now includes a comprehensive interface to all its content via WebDAV. According to Stein, the interface between Outlook and Exchange is set to become a WebDAV one.
- Adobe tools: since GoLive 5.0 included WebDAV support, Adobe has been integrating it into all its client software.
- Language APIs: Perl, Python, and C libraries exist for writing both WebDAV clients and servers. IBM alphaWorks has an experimental Java implementation of DAV.
More to come
Pragmatically, the WebDAV authors released the initial version of the core specification without including all the features targeted for the project. This means that although authoring and metadata are currently well supported, WebDAV lacks versioning support -- quite critical for distributed software development, for instance.
However, the specifications for advanced functionality are progressing through the IETF right now, and it looks as though versioning will be finalized by the end of this year, with other features such as searching coming either late this year or in 2001. Of course, implementations still need to be built for these specs, but with people like Stein driving them they won't be too far off.
Stein himself is working on the versioning problem with the Subversion project, aimed at providing tools for distributed software development.
For more information on WebDAV, take a look at WebDAV.org, which is a comprehensive news and resource site for WebDAV run by Greg Stein.