Interest in standardizing Batch methods?

Long message follows. Executive summary: Exchange 2000 introduces a set of
"Batch" methods. I'm interested in the sense of the working group as to
whether we should work to provide a complete specification and advance it to
Proposed Standard.

-----------

As many of you know, Microsoft's Exchange 2000 email server provides WebDAV
access into its repository. Outlook Web Access uses WebDAV as its
on-the-wire protocol for remotely accessing an Exchange store. The following
white paper provides technical details on Outlook Web Access:

http://www.microsoft.com/exchange/techinfo/outlook/2000/E2K_OWA.doc

Outlook Web Access is among the most sophisticated uses of WebDAV to date, a
significant engineering accomplishment.

It is my understanding, based on discussions with some of the key developers
of Outlook Web Access, that several WebDAV-related performance issues were
encountered during development. In general, the problem was that it took too
long to perform operations such as "delete 50 messages from my inbox" or
"change the status of these 100 messages to 'read'".  Since the typical
hierarchical organization would make each folder a WebDAV collection, and
each email a Web resource, these operations translated into "issue 50
separate DELETE commands" and "issue 100 separate PROPPATCH commands". Depth
operations could not be used, since the operations were being performed on a
subset of a collection.

To address these performance issues, several "Batch" methods were developed
as relatively simple extensions to existing WebDAV methods. Switching
Outlook Web Access to use these methods resulted in approximately an order
of magnitude performance increase (obviously, the performance benefit of
going from N round-trips to 1 round trip depends on N). From the user
perspective, the observed elapsed time for executing an operation went from
multiple seconds down to close to a second (depending on latency, of
course). It was a signficant performance improvement. The batch methods are:

* BCOPY - batch COPY
* BMOVE - batch MOVE
* BDELETE - batch DELETE
* BPROPFIND - batch PROPFIND
* BPROPPATCH - batch PROPPATCH

Documentation on these methods can be found on the MSDN site, at:

http://msdn.microsoft.com/library/en-us/wss/wss/_webdav_methods.asp

You'll also see some methods listed which pertain to receiving event
notifications from the Exchange server. These are based on Josh Cohen's GENA
proposal, which was submitted to the IETF as an Internet-Draft, but was
never advanced to a Proposed Standard (in large part due to the absence of a
working group in the IETF charged with developing an event notification
standard).

http://www.cs.colorado.edu/~grunwald/MobileComputing/Papers/draft-cohen-gena
-p-base-00.txt

As Co-Chair, I certainly do not approve of the fielding of new,
unstandardized methods, since this leads to poor interoperability.  I also
do not approve of how these are labeled as "WebDAV Methods" on the MSDN
site, since it lends these methods an aura of standardization that they do
not, in fact, possess. But, as a pragmatist, I also recognize that in the
time it took me to write these words, several new Exchange 2000 servers came
online. The genie is out of the bottle.

The fact remains that the batch methods work, and they scale. They provide a
significant performance increase for an significant application of WebDAV.
The specificationof these methods, as provided on the MSDN site, is pretty
good (though they omit issues such as how to handle partial
success/failure). It would not surprise me if, in time, other applications
of WebDAV encountered the same performance problem, and desired a similar
solution.

As a result, I am interested in whether the working group has an interest in
working to fully flesh-out the specification of the batch methods, and
advance this specification to Proposed Standard.

- Jim

Received on Friday, 4 January 2002 16:11:59 UTC