The number of approaches to writing WebDAV client software is surprisingly high. Each approach involves different models for whether the files are stored only on the server or are cached locally or even primarily stored locally. Each approach involves a different way of presenting the user interface. Stand-Alone WebDAV ExplorerA few WebDAV clients are designed primarily as WebDAV clients, but they are in the minority because most users don't want yet another client application unless it's a really important one. The standard approach seems to be to implement a graphical user interface to mimic the way an existing file system explorer tool works, such as Windows Explorer. Typically, users browse through folders by clicking to open them. Cadaver, although not a graphical tool, is similar to these Explorer tools because it exists only to send WebDAV commands. Mounted Drive ClientA client that acts a mounted drive makes a remote repository appear as if it is a locally mounted hard drive or other storage device. On Windows, a mounted drive client typically allows the client to enter a WebDAV URL to a collection and then assigns a local drive letter to that remote repository. Then any application that opens or saves files can theoretically use the remote repository. This works even for applications that do not support WebDAV. A mounted drive client may also keep a local cache of remote files and directory structure, synchronizing these with the server. When the user is online, local caching can allow a file and folders to be reopened more quickly. The files may even be available offline. However, it's quite difficult to keep property values synchronized offline, because WebDAV provides no reliable way to tell when properties change. The user interface for a mounted drive client may be quite minimal, like those for Web Folders, Windows XP WebDAV Redirector, and Xythos WebFile Client. All that is needed is a way for the user to mount a new repository, because there can be much reuse of the existing navigation user interface on the client operating system. Authoring Applications Using WebDAV for Primary StorageThis is the largest category of WebDAV client software. Most Microsoft and Adobe authoring applications now have the ability to store documents on a WebDAV. The approach can be very straightforward, simply allowing the file to be saved to a remote location identified by an HTTP URL rather than a local folder. However, in practice it may be a little more complicated. For example, MS Office requires the user to set up a Web Folder first and does not allow the user to save directly to a named URL. Authoring Applications Using WebDAV to PublishThe Adobe authoring applications typically allow the user to publish documents directly to a WebDAV location. The user is expected to publish the document to the repository only when it is complete, and so the application does not save the file to the repository periodically while it is being edited (unlike Office). This is because the Adobe usage scenarios are different from the Office usage scenarios:
Given these different assumptions, Adobe chose a slightly different user model. Rather than incorporate WebDAV support directly into the File Open and Save dialogs (which are still only used to save locally or to a locally networked file system), these applications present a publishing "workflow" interface to users. Applications Using WebDAV to Store Custom Shared DataA few applications are capable of storing not their primary document data but secondary, shared data, on a WebDAV repository. Adobe Acrobat does this with annotations to Acrobat documents. Site Management ToolsSome Web site management tools are now capable of using WebDAV to manage the site. The simple but powerful command-line tool "sitecopy" is an example. 10.1.1 Microsoft Web Folders and OfficeMicrosoft added WebDAV client functionality to Office and Windows by extending Internet Explorer (and thus, the regular Windows Explorer) to allow it to mount WebDAV repositories. Office cannot use WebDAV without one of these mount points, called a Web Folder. Stand-Alone Web FoldersWeb Folders is an extension to Microsoft Explorer, the file and folder navigation user interface that comes with Microsoft Windows. A Web Folder makes a WebDAV repository appear like a local file folder. Users can open and create subfolders and move and copy files as though the files were local. Files can be moved and copied within the repository, between the repository and a local drive, or between two repositories. Web Folders supports SSL, and it can use either Basic or Digest authentication. When given the choice between Basic and Digest, however, it chooses the first one it sees, rather than the most secure. Web Folders does a little more than just WebDAV. It can also mount an FTP repository, a Windows network directory share, a Web server running Office Server Extensions, or a Web server running the FrontPage protocol. In the Microsoft literature, it's sometimes difficult to distinguish between features supported via WebDAV and features available only via FrontPage or Office Server Extensions using proprietary mechanisms. For example, the discussion and subscription features of Office Server Extensions are not available using WebDAV. Office 2000When Office 2000 (or later versions) is used along with Web Folders, more functionality becomes available. It's now possible to open and save to and from the repository directly within the authoring application. When files are opened and closed, they are automatically locked and unlocked, thus greatly improving the experience for multiple authors. It's still not possible, however, to view or change properties. Even properties defined in RFC2518, such as creationdate, are not visible. Other ApplicationsMost Windows applications do not really work with Web Folders. Web Folders appears to be a drive, so the user can double-click on a file within a Web Folder to open it in the appropriate application. However, most Windows applications are incapable of saving the file back to the Web Folder (the application would have to use a special library component to do so). Instead, the file is opened as if it were a regular Web resource, not a WebDAV-capable resource. There are two possible behaviors:
Still, Web Folders is a useful way to access files on a WebDAV server. Even without the ability to directly save files from these applications, the user can edit and save files locally and then use Web Folders to copy the content to the WebDAV server. How to Get Web FoldersWeb Folders is available with IE 5.0 and 5.5 as an optional Web authoring feature, available to select during installation. Thus, any Windows platform that can install IE 5.0 or later can use Web Folders. Windows IE 6.0 does not include Web Folders as an install option, because Windows 98 Second Edition, Windows 2000, and WinME come with Web Folders already installed. The user might find it a little difficult to find information about Web Folders because it's not a product; it's a feature that is available with several products. It's probably easiest to go to the Microsoft Web site (www.microsoft.com) and start searching. Microsoft Support articles explain how to install and use Web Folders in IE 5.0 [q195851] and how to get Web Folders [q298637]. Web Folders LimitationsIn addition to working only with Office (so far), Web Folders has some limitations as a WebDAV client:
Server Support for Web FoldersMicrosoft IIS 5.0, Apache mod_dav, and Xythos WebFile Server have all demonstrated support for Office Web Folders. However, it can't be assumed that a server supporting WebDAV can automatically support Web Folders. There are a number of tricks to making Web Folders work most important, returning the MS-Author-Via header and using the custom data types discussed in Sections 9.2.4 and 9.8.4. 10.1.2 Windows XP WebDAV RedirectorWindows XP integrates WebDAV more directly into the file system. A user can create a mount point, or network drive mapping, to a WebDAV repository. Once this mapping is created, the WebDAV repository is assigned a drive letter and can be used just like any network drive. This includes opening and saving files directly from regular applications such as Notepad and WordPad, as well as creating files and folders and moving and copying files between drives, so the Redirector is more powerful than Web Folders. The XP Redirector works from the command line as well as from the Explorer GUI. Users can enter commands to mount drives: net use * http://www.webdav.org/ passwrd /user:username Unfortunately, early versions of the redirector had a few problems:
Hopefully, these problems will be fixed in service packs or Windows XP updates. 10.1.3 Mac OS X WebDAV-FSMac OS X was the first operating system to ship with full built-in WebDAV client support that any application can use. The WebDAV-FS client acts as an explorer, displaying the remote repository much as if it were a local file folder. There are a few known problems:
10.1.4 Adobe Authoring, Graphics, and Web Design ProductsAn increasing number of Adobe products use WebDAV to share images, Web pages, and other files among a group of collaborators. In many of Adobe's authoring products, the WebDAV support may be a little hard to find because the protocol is part of its "workflow" support. For example, in Photoshop, the user must follow the "workflow" process in order to publish documents to a WebDAV server. Some product highlights:
10.1.5 Xythos WebFile ClientXythos WebFile Client is a drive-mounting client for Windows. It supports FTP as well as HTTP/WebDAV. The Xythos client allows some offline capability as well. Even when the computer with the Xythos client software is no longer connected to the network, the user can modify cached resources. When the Xythos client regains access to the network, cached resources are synchronized. The Intellittach feature makes it easier for users to share files via email. Rather than email the entire file and end up with multiple (perhaps inconsistent) stored versions, Intellittach encourages users to email each other links to WebDAV resources. The Xythos client offers advanced WebDAV functionality: custom property manipulation, versioning, and access control management. 10.1.6 kStore ExplorerThe kStore Explorer client from kCura is a remote repository explorer for Windows, or a tool for managing documents on a repository. It supports standard WebDAV repositories in general as well as Exchange and Sharepoint servers, including some of the nonstandard features of those servers. kStore Explorer has powerful search and filtering functionality, making it an exceptional client for navigating large repositories with many files. It also has strong metadata support to make it particularly useful when the repository uses custom properties. 10.1.7 Goliath for MacintoshGoliath is an open-source WebDAV browsing client for Macintosh. It was the first application to implement WebDAV on Macintosh. 10.1.8 Dreamweaver 4Macromedia Dreamweaver is a popular Web site development application. Version 4 of Dreamweaver includes support for WebDAV in order to improve interactions between Dreamweaver and a content management system. 10.1.9 WebDriveSouth River Technologies sells another drive-mounting client for Windows platforms. It supports FTP and FrontPage extensions as well as HTTP/DAV. WebDrive allows any file-based application to store and access files on a WebDAV repository. 10.1.10 XML SpyXML Spy is an Integrated Development Environment (IDE) for applications based on XML. Like many modern IDE packages, XML Spy can store files directly on a shared code repository. WebDAV is one of the protocols supported for communication with the code repository. 10.1.11 DAV ExplorerDAV Explorer is a straightforward WebDAV browser, developed in Java at the University of California at Irvine (www.ics.uci.edu/~webdav/). It presents a tree view of a WebDAV repository and supports many advanced WebDAV features. 10.1.12 DavfsDavfs is the WebDAV Linux File System (http://dav.sourceforge.net/). It allows the user to mount a WebDAV repository as a local disk drive. Davfs is part of the Mandrake Linux distribution (as of version 9.0). 10.1.13 CadaverCadaver is a free Unix command-line tool written by Joe Orton. Cadaver acts much like a traditional FTP client by making a connection to a server and then accepting commands directly from the user. A cadaver example was part of the extended interactions covered in the last chapter. 10.1.14 DAVeDAVe is another free Unix command-line tool. It is written in Perl, so it may be easily used on other platforms. It operates in much the same manner as cadaver or FTP: The user starts the tool and gets a special "dave" prompt. Then the user can type commands to download or upload files, lock, set properties, copy or move resources, or create collections. |