Re: [caldav] Informal Last Call: CalDAV Scheduling Extensions to WebDAV [Fwd: I-D Action:draft-desruisseaux-caldav-sched-07.txt]

Julian Reschke <julian.reschke@gmx.de> Tue, 14 July 2009 13:44 UTC

Return-Path: <julian.reschke@gmx.de>
X-Original-To: caldav@core3.amsl.com
Delivered-To: caldav@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B19483A6E7C for <caldav@core3.amsl.com>; Tue, 14 Jul 2009 06:44:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.922
X-Spam-Level:
X-Spam-Status: No, score=-3.922 tagged_above=-999 required=5 tests=[AWL=-1.323, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Fn4IWomQ45Z1 for <caldav@core3.amsl.com>; Tue, 14 Jul 2009 06:44:20 -0700 (PDT)
Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by core3.amsl.com (Postfix) with SMTP id E2F043A6EAE for <caldav@ietf.org>; Tue, 14 Jul 2009 06:44:02 -0700 (PDT)
Received: (qmail invoked by alias); 14 Jul 2009 12:43:26 -0000
Received: from mail.greenbytes.de (EHLO [192.168.1.117]) [217.91.35.233] by mail.gmx.net (mp011) with SMTP; 14 Jul 2009 14:43:26 +0200
X-Authenticated: #1915285
X-Provags-ID: V01U2FsdGVkX187bdsKpZ47ZQe6GzMh/9uzXAIAca0DiwyI5+VYpT VWp/bb1PCnlwri
Message-ID: <4A5C7D64.1000109@gmx.de>
Date: Tue, 14 Jul 2009 14:43:16 +0200
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.4) Gecko/20060516 Thunderbird/1.5.0.4 Mnenhy/0.7.4.666
MIME-Version: 1.0
To: Bernard Desruisseaux <bernard.desruisseaux@oracle.com>
References: <4A40F50F.3030002@oracle.com> <4A5B1E76.7020803@gmx.de> <4A5B9526.1010900@gmx.de>
In-Reply-To: <4A5B9526.1010900@gmx.de>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Y-GMX-Trusted: 0
X-FuHaFi: 0.54
Cc: w3c-dist-auth@w3.org, caldav@ietf.org, calsify@ietf.org, Alexey Melnikov <alexey.melnikov@isode.com>, Lisa Dusseault <Lisa.Dusseault@messagingarchitects.com>
Subject: Re: [caldav] Informal Last Call: CalDAV Scheduling Extensions to WebDAV [Fwd: I-D Action:draft-desruisseaux-caldav-sched-07.txt]
X-BeenThere: caldav@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <caldav.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/caldav>, <mailto:caldav-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/caldav>
List-Post: <mailto:caldav@ietf.org>
List-Help: <mailto:caldav-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/caldav>, <mailto:caldav-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jul 2009 13:44:21 -0000

Julian Reschke wrote:
> Julian Reschke wrote:
>> ...
>> 8.  Conditional Requests on Scheduling Object Resources
>>
>>    In order to do that, this specification introduces a new WebDAV
>>    resource property CALDAV:schedule-tag with a corresponding response
>>    header "Schedule-Tag", and a new "If-Schedule-Tag-Match" request
>>    header to allow client changes to be appropriately merged with server
>>    changes in the case where the changes on the server were the result
>>    of an "inconsequential" scheduling message update.  An
>>    "inconsequential" scheduling message is one which simply updates the
>>    status information of Attendees due to a reply from an Attendee.
>>
>> JR: that sounds really heavy-weight; I think it would be good to discuss
>> this scenario over on the HTTPbis working group's mailing list. Even 
>> if new
>> state tokens need to be added it is not totally clear why the RFC4918
>> can not be used for checking.
>> ...
> 
> Sorry. I meant to say: "...why the RFC4918 'If' header can not be used...".
> 
> BR, Julian

Expanding on that...:

The spec currently introduces a new type of etag, the "schedule-tag", 
exposed as a live WebDAV property, and a new HTTP response header, plus 
a new conditional HTTP request header.

WebDAV (RFC 4918) however already supports "state tokens" in the "If" 
header; right now only lock tokens are used, but there is no reason why 
a protocol wouldn't be able to introduce new state tokens, and allow 
them to be checked using the "If" header. -- That would at least avoid 
introducing a new conditional request header.

That being said, it would be nice to get rid of the new state tokens ( 
schedule tags altogether.

I do understand the problem with many clients updating the attendee 
information simultaneously.

Two thoughts on this:

1) In general, issues like that can be avoided by enhancing the 
granularity of the resource that needs to be updated. For instance, the 
status for each attendee could be modeled as a separate resource, that 
could then respond to GET/PUT/DELETE. (I guess the server could 
advertise its URL as a parameter on the ATTENDEE).

2) It may also be possible to use PATCH for updating the attendee 
status; we would just need to define a simple payload format which can 
guard the client from unintentionally changing the status on an event 
that just changed (my understanding is that PATCH is likely to be 
finished in time for this spec).

Best regards, Julian