Re: [BLISS] [Fwd: I-D Action:draft-roach-sip-http-subscribe-00.txt]
Adam Roach <adam@nostrum.com> Fri, 09 January 2009 21:26 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 BF5DA3A6936; Fri, 9 Jan 2009 13:26:32 -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 198423A6936 for <bliss@core3.amsl.com>; Fri, 9 Jan 2009 13:26:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.398
X-Spam-Level:
X-Spam-Status: No, score=-2.398 tagged_above=-999 required=5 tests=[AWL=0.202, BAYES_00=-2.599, SPF_PASS=-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 Pbr3JBf7lWqp for <bliss@core3.amsl.com>; Fri, 9 Jan 2009 13:26:30 -0800 (PST)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by core3.amsl.com (Postfix) with ESMTP id 10CED3A67EE for <bliss@ietf.org>; Fri, 9 Jan 2009 13:26:29 -0800 (PST)
Received: from dn3-231.estacado.net (vicuna-alt.estacado.net [75.53.54.121]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id n09LQD5r034957 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 9 Jan 2009 15:26:14 -0600 (CST) (envelope-from adam@nostrum.com)
Message-ID: <4967C0F5.6000709@nostrum.com>
Date: Fri, 09 Jan 2009 15:26:13 -0600
From: Adam Roach <adam@nostrum.com>
User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209)
MIME-Version: 1.0
To: Mark Nottingham <mnot@mnot.net>
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> <115660BB-5C4F-4F94-BC45-D8358EE3474D@mnot.net>
In-Reply-To: <115660BB-5C4F-4F94-BC45-D8358EE3474D@mnot.net>
Received-SPF: pass (nostrum.com: 75.53.54.121 is authenticated by a trusted mechanism)
X-Virus-Scanned: ClamAV 0.94.2/8848/Fri Jan 9 07:16:38 2009 on shaman.nostrum.com
X-Virus-Status: Clean
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-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Sender: bliss-bounces@ietf.org
Errors-To: bliss-bounces@ietf.org
I propose that we move further discussion of this to the SIP mailing list. /a On 1/1/09 10:52 PM, Mark Nottingham wrote: > 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