[hybi] Comments on draft-loreto-http-bidirectional-01

"Thomson, Martin" <Martin.Thomson@andrew.com> Tue, 10 November 2009 03:31 UTC

Return-Path: <Martin.Thomson@andrew.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8CE353A68E6 for <hybi@core3.amsl.com>; Mon, 9 Nov 2009 19:31:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.571
X-Spam-Level:
X-Spam-Status: No, score=-2.571 tagged_above=-999 required=5 tests=[AWL=0.028, 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 xVsXDK7mfNAh for <hybi@core3.amsl.com>; Mon, 9 Nov 2009 19:31:46 -0800 (PST)
Received: from csmailgw2.commscope.com (csmailgw2.commscope.com [198.135.207.244]) by core3.amsl.com (Postfix) with ESMTP id 9A9013A68C2 for <hybi@ietf.org>; Mon, 9 Nov 2009 19:31:46 -0800 (PST)
Received: from [10.86.20.102] ([10.86.20.102]:38190 "EHLO ACDCE7HC1.commscope.com") by csmailgw2.commscope.com with ESMTP id S66437AbZKJDcN (ORCPT <rfc822; hybi@ietf.org>); Mon, 9 Nov 2009 21:32:13 -0600
Received: from SISPE7HC2.commscope.com (10.97.4.13) by ACDCE7HC1.commscope.com (10.86.20.102) with Microsoft SMTP Server (TLS) id 8.1.393.1; Mon, 9 Nov 2009 21:32:12 -0600
Received: from SISPE7MB1.commscope.com ([fe80::9d82:a492:85e3:a293]) by SISPE7HC2.commscope.com ([fe80::58c3:2447:f977:57c3%10]) with mapi; Tue, 10 Nov 2009 11:32:11 +0800
From: "Thomson, Martin" <Martin.Thomson@andrew.com>
To: "hybi@ietf.org" <hybi@ietf.org>
Date: Tue, 10 Nov 2009 11:32:09 +0800
Thread-Topic: Comments on draft-loreto-http-bidirectional-01
Thread-Index: AcphpQ1cR3UiXR1oS1KAablGYSRIfA==
Message-ID: <8B0A9FCBB9832F43971E38010638454F0F339546@SISPE7MB1.commscope.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-BCN: Meridius 1000 Version 3.4 on csmailgw2.commscope.com
X-BCN-Sender: Martin.Thomson@andrew.com
Subject: [hybi] Comments on draft-loreto-http-bidirectional-01
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2009 03:31:47 -0000

==Two connection limit:

No mention is made on why this limit exists; it's an important concern that is not captured elsewhere 

I also note that httpbis still haven't decided on whether this limit will be lifted: <http://trac.tools.ietf.org/wg/httpbis/trac/ticket/131>

==Intermediaries:

I noted in the breakfast BoF that there was a need for a way for an end client or host to indicate to intermediaries that long-polling is in use.  One thing I see a lot of is complete suppression of HTTP caching, which might be unnecessary in many cases, except for the fact that intermediaries could provide a cached response.  

What would be really nice is a set of extensions, or maybe just some recommendations for existing headers, that allow clients to give intermediaries the hints they need to act in a constructive fashion.  Caching is one thing - connection management is another (i.e. allocate a new connection for this: it's going to take a little while).

Mark Nottingham suggested that he might write something like this up last meeting.

=="A request header to determine timeouts":

This presumes a solution, which might be good, but I'm not sure that a header truly is necessary.  Why not simply express the problem: "Provide a mechanism, or describe a method that allows a client to determine the most appropriate (or longest) time that a long poll can be outstanding.  Any mechanism must work without support from intermediaries..."

==REST:

How much of this is intended to fit with the a resource-based data model (i.e., REST)?  It's an important constraint on the solution space that we need to consider.  To my mind, there is less value in simply providing a transport for bi-directional transport; we can probably do better by ensuring that this fits within the model...for those who care for the benefits that provides.

For me at least, this means that a mechanism is provided whereby a client can learn of state changes in a resource.  Long polling allows this to be relatively low latency without the overheads of repeated polling.

==Building an API:

During Lisa's REST presentation yesterday, she noted that APIs aren't often done by the IETF.  Aside from the fact that these were pretty hard, her thesis was that APIs tend to build tight coupling and that they constrain implementations.  Based on this (and the fact that the W3C already does XMLHttpRequest) the API piece can be dropped.

==Improved addressing for the entities involved:

I'm not clear on what this means any more.  Entities at the server end are resources identified by URIs.  That doesn't seem inadequate to me.  I've seen discussions where the idea that a client is divided into multiple logical, addressable entities, but the question has to be asked: is this truly necessary?