Several classes of WebDAV server also exist. Those presented here are classified the functionality that is the primary focus of the server implementation:
10.2.1 Microsoft Internet Information ServerMicrosoft Internet Information Server (IIS) 5.0, which is part of Windows 2000, is primarily a Web server but includes built-in support for WebDAV. In addition to the methods defined in RFC2518, IIS 5.0 supports the SEARCH method. This looks much like the WebDAV SEARCH proposal [Reschke03b]; however, the search syntax is SQL, rather than the XML structure defined so far by the WebDAV WG. A Microsoft Support article contains a very basic example [q293885] and points to additional resources for more information. IIS 5.0 does not support a few WebDAV required features, however:
A Microsoft Support article [q221600] describes how to enable WebDAV support in IIS 5.0 and how to verify that WebDAV has been enabled. 10.2.2 Apache and mod_davThe first fully compliant WebDAV server was the open-source Apache module mod_dav. It adds WebDAV support to any Apache-hosted Web site, either 1.0 or 2.0. Apache 2.0 ships with mod_dav already included, so many Web sites can support WebDAV just by turning it on. Nearly 400,000 Web hosts advertised mod_dav support as of April 2003 [SecuritySpace03]. Excellent information on the mod_dav architecture and features can be found at the site www.webdav.org/mod_dav/. Mod_dav supports all the features in RFC2518, including locking and custom property support. It is viewed as an exemplary implementation of the WebDAV specification and referenced often for interoperability questions. With the addition of the Catacomb extension module, mod_dav can be configured to support searching as well [Kim02]. Mod_dav is also used as a basis or platform for other WebDAV servers or applications. Oracle, IBM, and Rational have all used mod_dav in development. It is highly extensible, supporting such customizations as a plug-in storage module or "repository layer." Graduate students at the University of California at Santa Cruz implemented the Catacomb database-backed storage module for mod_dav, which plugs in using this repository layer. Several software companies have rebundled mod_dav with extensions. Apple based its Mac OS X WebDAV server on mod_dav and uses it as a basis for its iDisk service. The IBM HTTP Server product includes mod_dav. Oracle has plugged mod_dav into an Oracle database solution for file storage. The Apache/mod_dav solution works on many platforms, including Mac OS X, Windows, Linux, and Unix operating systems. 10.2.3 Microsoft Exchange 2000Exchange 2000 is a mail, calendaring, and newsgroup hosting server that supports WebDAV (with some extensions) for access to all its application information. The WebDAV support is part of what is called the Microsoft Web Storage System, supporting a consistent representation of resources and metadata accessible over several protocols (including HTTP, WebDAV, IMAP, and POP). Because Exchange 2000 offers much more functionality than a regular WebDAV server, it has many custom extensions. Many of these features are somewhat specified in support articles, Software Development Kits (SDKs), documentation, and books [Martin00]. New Properties and NamespacesCustom properties exist to represent email messages, contacts, tasks, appointments, and news messages as regular resources with extended metadata. Custom properties also exist for specialized collections, such as collections that contain appointments (calendars). For example, on an email resource, the sender and recipient properties contain email addresses. A few of the new properties were published as an Internet Draft [Hopmann98]. Others are published in Microsoft product documentation or support articles.[1]
PUT Can Send EmailTo send an email, Microsoft Exchange supports the PUT method to create a new resource inside a special email submission collection. Support article q296713 has examples showing how to discover which collection to submit email to and how to send the PUT. POST Can Create ResourcesPosting a document body to a collection creates a new resource with that content. The server chooses a unique resource name. This frees the client from having to choose a unique resource name for actions like adding a new appointment, where the subject, location, and time are more important than the resource name. PROPPATCH Can Create ResourcesPROPPATCH can be used to create a new resource, not just to change properties on an existing one. A support article [q308373] explains how to use PROPPATCH to create a new appointment, which the server will forward to meeting attendees. Data TypesExchange 2000 makes extensive use of datatypes on its properties (using the same technique that Web Folders does for data-typing timestamps). Any datatype beginning with mv. is a multivalued property. For example, string datatype is obviously a string, but mv.string indicates a property that can contain multiple string values, each string encased in an XML element. Subscription/Notification SupportSUBSCRIBE, UNSUBSCRIBE, NOTIFY, and POLL are new HTTP methods described in the Exchange SDK documentation at msdn.microsoft.com, allowing subscriptions to event notifications (these also use some custom headers). Thus, an email client can be notified when mail arrives, rather than sending periodic, expensive PROPFIND requests. Ranged Row RequestsA new syntax for the HTTP/1.1 Range header, working with SEARCH and PROPFIND, allows clients to retrieve partial results for these kinds of requests. For example, an email client can choose to download information for exactly 20 email messages, no matter how many are in the mailbox, if screen space only allows 20 to appear at a time. SQL SearchLike IIS 5.0, Exchange supports the SEARCH method with custom SQL syntax [q293885], rather than the standard syntax defined by the WebDAV SEARCH proposal [Reschke03]. MKCOL Request BodyThe MKCOL method can take a couple of custom bodies. Article q289871 has an example of a MKCOL request body, similar to a PROPPATCH request body, to set certain property values on the directory as soon as it is created. Another type of body is similar to the SEARCH request body. This creates a persistent search folder, with the contents of the folder continually updated to contain the current matches for the search criteria [Lee00]. Access ControlAccess control properties are exposed through WebDAV [q317891]. However, these properties are not compliant with the official WebDAV ACL proposal and are not even similar in syntax or names. 10.2.4 Xythos WebFile ServerXythos WebFile Server (WFS) is a stand-alone WebDAV repository product. As a current employee of Xythos, I have led the development of WFS since 2001. WFS is intended to replace existing repositories where users share files. WFS can be run as is to provide WebDAV file storage and sharing. WFS provides a Java API to extend or modify server capabilities. WFS includes a Web UI for its WebDAV server. In cases where users may not have a fully featured WebDAV client available and installed on their local computers, they can connect to the Web UI with any browser and manage their documents on the repository or browse or search for other documents. WFS supports the DeltaV standard, including core versioning and some of the optional DeltaV features. It supports the Access Control protocol (which is in the process of standardization). The Access Control protocol requires the WebDAV server to expose user and group information (so that permissions can be granted to either users or groups), so Xythos WFS offers a module to connect to an LDAP server in order to get that user and group information from a central user database. WFS also supports several features documented in Internet Drafts, which may or may not be progressing to Proposed Standard:
10.2.5 DAV4JThe DAV4J WebDAV servlet, running on a platform including the WebSphere AppServer and Apache, provides WebDAV server functionality. A neat feature of this combination is that the WebDAV support can be enabled on only part of the hosted site. For example, a production site and an authoring or testing site can be hosted on the same server, and only the authoring/test part of the site allows WebDAV requests. 10.2.6 Tamino WebDAV ServerSoftwareAG produces the Tamino WebDAV Server along with the Tamino XML Server. SoftwareAG and the Tamino developers site explain and illustrate how these two products can be used together to rapidly develop data-oriented client/server applications. Tamino WebDAV Server supports the access control protocol extensions and the DeltaV standard as well as the base WebDAV protocol. The server also supports the Java Content Repository API for extending content management with custom business rules. 10.2.7 Microsoft SharePoint Portal ServerMicrosoft SharePoint Portal Server 2001 advertises support for "Microsoft WebDAV." What this actually means is that it supports Web Folders access and uses some WebDAV methods. However, it isn't interoperable with most WebDAV clients for even the simplest functionality, because Sharepoint uses many proprietary methods, headers, and properties. It supports versioning but uses mechanisms very unlike those of the DeltaV standard for WebDAV versioning (discussed in Chapter 11, Versioning). It may not be possible for a non-Microsoft-based client to interoperate completely with SharePoint Portal Server, because some of the server's properties include binary representations of properties meaningful only on the Microsoft platform. 10.2.8 Other Known ServersWebDAV support has been reported for a number of other Web site and document management server products, server components, and server applications. This list includes CoVia, Intraspect, Virtuoso, the Opentext LiveLink gateway, MagiDAV, CyberTeams, and Microsoft BizTalk. |