The purpose of this document is to provide a quick introduction to the full power of the WebDAV (http://www.webdav.org) data model.
WebDAV support is already widespread, a sampling of products that support WebDAV include:
- Microsoft's entire 2000 product line including – Windows 2000 (in IIS), Exchange 2000 (full server support), OLE DB client class (WebDAV servers look like databases), IE 5.0, HotMail, Outlook Express, etc.
- Oracle's Internet File System
- Adobe's GoLive5, Photoshop 6
- Apache has an open source WebDAV module and Apache 2.0 has native WebDAV support
etc.
My agenda in contributing to WebDAV's design was to provide a protocol that could unify access over the network to the four basic classes of data storage: file systems, e-mail, directories and databases. Unification has justifiably gotten a bad name because it tends to halt innovation and end up in a "bad at everything" solution. However the protocols that enabled access to these various store (SMB/SIFS, NFS, POP, IMAP, SMTP, LDAP, OLE DB, etc.) were well established and very advanced in their standardization thus providing a solid foundation of reliable functionality. I was not trying to unify a moving target. Furthermore many of the core protocols had awful performance over high latency links, were not very flexible nor extensible. New solutions were needed. Rather than inventing a new protocol for each store it was felt the time was ripe for introducing a single solution.
The analysis of the whole pantheon of protocols quickly demonstrated that all the protocols, at the functional level, were extremely similar. Each had:
- the concept of named reference to objects,
- objects that were either containers or "something else",
- an interest in only differentiating between containers and non-containers, the exact nature of a non-container wasn't important,
- the ability to retrieve/add/remove/copy/move both container and non-container objects and
- some notion of properties associated with objects.
Some protocols also provided for locking and unlocking objects. Hence it was felt that unification was possible and reasonable.
WebDAV choose HTTP as its transport. The most compelling reason was HTTP's wide market acceptance but very quickly the authors found that HTTP's message oriented communication, as opposed to the stream based communication favored by other protocols, provided major performance benefits. In addition HTTP's standardization of features such as proxying, security, message format, header parsing rules, versioning, etc. saved the authors enormous time and effort. HTTP turned out to be a wonderful platform upon which to build application protocols.
The WebDAV standard took the GET/PUT/DELETE methods from the HTTP standard and added COPY, MOVE, PROPFIND, PROPPATCH, MKCOL, LOCK and UNLOCK. WebDAV also provided for a standardized set of namespace rules for collections, standardized properties as being expressed in XML, defined locking behavior and perhaps most difficult of all defined consistent behavior for COPY and MOVE independent of resource type.
Each of the four communities embraced WebDAV based on its usefulness to them.
File Systems | Better performance due to caching and single round trip operations over multiple resources (e.g. tree copy/move/delete and single request listings of all the children in a hierarchy) |
Stateless nature provided better performance and design provided easier flexibility than either POP or IMAP | |
Directory | Better performance, extensibility and functionality than LDAP (e.g. each record can have its own properties without modifying a global schema, data is self describing, etc.) |
Databases | Interoperability at the protocol rather than API level enabling clients to have a single protocol stack instead of having to download a different stack for each database product. |
While each community has started to adopt WebDAV for its own reasons the result is an unprecedented level of interoperability. For example, Word 2000 can save a file against Exchange 2000 because they both speak WebDAV. With technologies such as DASL that add search capabilities to WebDAV we can finally see the day when a single client can search, retrieve data and manipulate each data store largely independent of its underlying type.
This is not to say that WebDAV has taken over any of these communities. Investments in current technologies are too deep to be washed quickly away. The transition to WebDAV will take a long time but support is there and growing.