Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http-subscribe-00.txt]
Mark Nottingham <mnot@mnot.net> Fri, 02 January 2009 05:25 UTC
Return-Path: <bliss-bounces@ietf.org>
X-Original-To: bliss-archive@optimus.ietf.org
Delivered-To: ietfarch-bliss-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0BAC928C1A4; Thu, 1 Jan 2009 21:25:01 -0800 (PST)
X-Original-To: bliss@core3.amsl.com
Delivered-To: bliss@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BCAE028C15F for <bliss@core3.amsl.com>; Thu, 1 Jan 2009 20:52:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level:
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=0.299, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 dgSu0SLcCbIF for <bliss@core3.amsl.com>; Thu, 1 Jan 2009 20:52:28 -0800 (PST)
Received: from mxout-08.mxes.net (mxout-08.mxes.net [216.86.168.183]) by core3.amsl.com (Postfix) with ESMTP id 7A16028C194 for <bliss@ietf.org>; Thu, 1 Jan 2009 20:52:28 -0800 (PST)
Received: from [192.168.2.103] (unknown [71.179.34.209]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 06744D05A0; Thu, 1 Jan 2009 23:52:11 -0500 (EST)
Message-Id: <115660BB-5C4F-4F94-BC45-D8358EE3474D@mnot.net>
From: Mark Nottingham <mnot@mnot.net>
To: Adam Roach <adam@nostrum.com>
In-Reply-To: <4942FCF5.1090509@nostrum.com>
Mime-Version: 1.0 (Apple Message framework v929.2)
Date: Thu, 01 Jan 2009 23:52:10 -0500
References: <4925F054.5020205@nostrum.com> <167dfb9b0811201703i3162dbbbpabfc085ccef6754b@mail.gmail.com> <4926351B.6000907@nostrum.com> <167dfb9b0811210007q46e938b3y9d1f9589b271bed6@mail.gmail.com> <4926D995.2010508@nostrum.com> <4D3036ED-3CDC-4FEE-ABB1-AE2D341AA3FC@mnot.net> <4942FCF5.1090509@nostrum.com>
X-Mailer: Apple Mail (2.929.2)
X-Mailman-Approved-At: Thu, 01 Jan 2009 21:24:59 -0800
Cc: bliss@ietf.org, Theo Zourzouvillys <theo@voip.co.uk>
Subject: Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http-subscribe-00.txt]
X-BeenThere: bliss@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Basic Level of Interoperability for SIP Services \(BLISS\) BoF" <bliss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/bliss>, <mailto:bliss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/bliss>
List-Post: <mailto:bliss@ietf.org>
List-Help: <mailto:bliss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bliss>, <mailto:bliss-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1188049551=="
Sender: bliss-bounces@ietf.org
Errors-To: bliss-bounces@ietf.org
Hi Adam, Sorry for the holiday-induced delay. On 13/12/2008, at 11:08 AM, Adam Roach wrote: > >> * Following on that thought, the idea behind the most recent Link >> draft is to talk about link relations generically, and make Link >> headers one use of them. > > I understand what you're saying, but I'm somewhat sensitive to > having many optional ways of doing the same thing in the same > protocol. In my experience, you either end up with everyone > supporting every way of doing things (driving up implementation > costs), or with people selecting only their favorite mechanisms > (driving down interoperability). There is, of course, an unhappy > medium between those two extremes, in which you get both an increase > in implementation complexity and a decrease in interoperability > (albeit to a lesser degree). I agree, and wasn't proposing that multiple discovery mechanisms be called out (I see others drafts doing this and wince too); rather, just that the door be left open for other ways to be used if someone wants build on top of this in the future. >> * 3.4 Subscription Duration -- just a thought, is it worth tying >> the default subscription duration to the freshness lifetime of the >> HTTP response (as defined by HTTP)? > > I'm not sure. The goal behind selecting subscription durations is to > balance server load against time to recover in the case of a > failure. If you want to propose a concrete formula, I'll be happy to > incorporate it into the document, but I think it is of limited value. I'm not sure enough of it to make a concrete proposal. I can definitely see situations where the subscription lifetime varies significantly, just wondering if it's better to use the expiry time as a default, instead of baking in a (fairly arbitrary) number. >> * 3.5.1 message/httpfrag -- did you consider using application/http >> (defined in RFC2616)? I mention this because HTTP already defines >> how to update a cache entry's headers based upon a HEAD or 304 >> response; it would be nice to reuse that if possible. Also, what >> does making the status-line optional bring? The semantics of the >> message would be clearer if it were required... > > I'm hardly an HTTP expert -- so, on first glance, I feared that re- > using message/http would run afoul of semantic restrictions > associated with that content type (in the same way that omitting > critical header fields from a SIP message would make it invalid; > that is what drove development of the message/sipfrag content type). > > If you think that re-use of message/http is kosher in this context, > then I'd be quite pleased to use that instead of defining a new > content-type. I strongly prefer re-use over re-invention. > > The optional status-line feature was copied from message/sipfrag. It > has little value here, so I'm happy to make status lines mandatory. Not message/http, application/http; > The application/http type can be used to enclose a pipeline of one > or more HTTP request or response messages (not intermixed). I think this will work, provided that the status-line is mandatory. Remember that a HEAD response is allowed to omit a body, so from the purely syntactic standpoint, you should be OK if the body is missing. However, see below. >> * 3.5.2 - Why require an ETag or Content-MD5? Why recommend a Last- >> Modified? > > Philosophically: SIP Events, in general, reports the state of a > resource, not events that change its state (despite its name, which > I have grown to regret). It is true that state is usefully reported > when it changes, but thinking about it as the changes themselves > instead of the resultant state tends to put the cart before the horse. > > Practically: without some means of tying the notification to the > resultant HTTP document, you end up with race conditions in which > the state of a document changes between retrieval and subscription > to its state. There are other ways to solve this race, but they're > messy. OK, that makes sense. Would you be comfortable making these requirements a SHOULD (if they aren't already)? > [from a later message] > >> * Does the NOTIFY message include the URI of the resource that has >> changed (didn't see it, but I may be missing something). It should >> be added if not; otherwise, you're baking in a one-to-one >> relationship between monitoring channels and http URIs. There will >> be use cases where the receiver of the NOTIFY doesn't have enough >> context to associate the message body you're sending with a URI. > > Good point. How would you feel about adding a requirement to include > a "Link" header in the message/http body with a relation type of > "self"? Content-Location is probably more appropriate. >> * The simplest and most efficient notification message to send is >> "this resource has changed"; the client can then decide whether or >> not to fetch an update, and combining any old response with a new >> one is simple. It also assures that the subscribing client isn't >> required to implement a cache. I would very much encourage you to >> support this mode of interaction. > > That is effectively what I'm trying to do; however, see my notes > above about race conditions. If a client doesn't want to cache > anything, they can simply treat each NOTIFY message as an indication > that the resource has (likely) changed. (They would still be well > off keeping track of the Content-MD5 and/or ETag for the brief > period between the HTTP operation and the SIP subscription just to > make sure the resource didn't change between those steps). OK. My concern is when the client does have a cached or otherwise locally stored copy, and they need to combine it with a partial response -- e.g., when the status code isn't present, or partial headers are there, etc. This area is reasonably well-defined when used inside of HTTP, but taken out of context, it doesn't hold up terribly well. >> * Conversely, if you are you intent on allowing transfer of an >> entity with a notification, you may want to consider allowing the >> transfer of multiple entities, to allow the use of content >> negotiation (e.g., both an English and French representation under >> the same URI, or a png and a gif). application/http would support >> this. > > I'm ambivalent about allowing the inclusion of bodies in the > notifications. I would hesitate precluding future specifications > from doing so, but I'm not all that interested in developing a > complicated mechanism in this document that replicates the full set > of HTTP features (such as language and content negotiation). I see. I didn't get that from reading the spec; my concerns were about the more complex cases where people were trying to update headers and bodies using the notifications (as above). Perhaps the right thing to do is to have a very limited new media type that communicates just a few things; * URI (required) * Content-MD5 (optional) * ETag (optional) * Last-Modified (optional) without the option for status-line, other headers or body, to avoid the complexity. More advanced uses could use application/http (but you wouldn't necessarily need to specify how to do this...) Conneg definitely makes things more complex. I think that it's legitimate to say that a notification applies to all representations of a resource, and that you can't selectively send notifications for a particular representation. The only sticky part here is that if there *are* multiple representations for a resource, it's important for the server to keep which one it's using for the ETag and/or Content-MD5 straight. > [responses to previous messages in thread] > >> ... >> That said, I agree that the draft shouldn't preclude other >> discovery mechanisms, as mentioned above. > > I'll reiterate my concerns about too many ways to do something. I'm > adding in the <link> and <atom:link/> mechanisms, but I'd hate to > see an explosion of mechanisms here, as it would make client > implementations untenably complicated. Yes; see above. Cheers, -- Mark Nottingham http://www.mnot.net/
_______________________________________________ BLISS mailing list BLISS@ietf.org https://www.ietf.org/mailman/listinfo/bliss
- [BLISS] [Fwd: I-D Action:draft-roach-sip-http-sub… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Theo Zourzouvillys
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Theo Zourzouvillys
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Theo Zourzouvillys
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Elwell, John
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Theo Zourzouvillys
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Theo Zourzouvillys
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Mark Nottingham
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Mark Nottingham
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Mark Nottingham
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Mark Nottingham
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach
- Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http… Adam Roach