Re: [hybi] [Fwd: Comments on draft-hixie-thewebsocketprotocol-35]

Graham Klyne <gk-ietf-hybi@ninebynine.org> Wed, 02 September 2009 11:05 UTC

Return-Path: <gk-ietf-hybi@ninebynine.org>
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 6267928C57C for <hybi@core3.amsl.com>; Wed, 2 Sep 2009 04:05:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 dD2JwcDAVcAJ for <hybi@core3.amsl.com>; Wed, 2 Sep 2009 04:05:51 -0700 (PDT)
Received: from sbh14.songbird.com (sbh14.songbird.com [72.52.113.14]) by core3.amsl.com (Postfix) with ESMTP id E73E33A68ED for <hybi@ietf.org>; Wed, 2 Sep 2009 04:05:50 -0700 (PDT)
Received: from tinos.zoo.ox.ac.uk (localhost.localdomain [127.0.0.1]) by sbh14.songbird.com (8.13.8/8.13.8) with ESMTP id n828vIKu007361; Wed, 2 Sep 2009 01:57:19 -0700
Message-ID: <4A9E2F41.2020109@ninebynine.org>
Date: Wed, 02 Sep 2009 09:39:29 +0100
From: Graham Klyne <gk-ietf-hybi@ninebynine.org>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: Greg Wilkins <gregw@webtide.com>
References: <4A9A3255.90408@gmx.de> <4A9B5BC7.8000205@webtide.com>
In-Reply-To: <4A9B5BC7.8000205@webtide.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0 (sbh14.songbird.com [127.0.0.1]); Wed, 02 Sep 2009 01:57:20 -0700 (PDT)
Cc: hybi@ietf.org
Subject: Re: [hybi] [Fwd: Comments on draft-hixie-thewebsocketprotocol-35]
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: Wed, 02 Sep 2009 11:05:52 -0000

Greg,

[Julian kindly forwarded my comments to this list, as I have been having trouble 
getting messages through (maybe it will work this time)).]

Your comments about viewing this specification as a requirements document is 
fair enough, except that I have no idea from reading the document what 
requirements it is trying to address.  But I do agree it would be helpful to 
have an articulated set of requirements and problems to be avoided to assist 
evaluations.

Although I mentioned BEEP as an example, I can also see why it would be a hard 
candidate to sell.  It seems to me that easy browser-side implementation using 
Javascript would be a requirement, and my intuition is that BEEP requires quite 
a lot of state management that might make a solid browser implementation hard to 
achieve.

BTW, while candidates are being tossed around, I have done some implementation 
work in this area that is entirely open source.  I know it has many 
shortcomings.  The project is at http://code.google.com/p/webbrick-events/.  The 
main use-case for this was using a browser as a real-time control and monitoring 
interface for home automation, etc., which I think is rather like a presence 
protocol. I have aimed for the simplest content model that would support the 
protocol requirements, which is described at 
http://code.google.com/p/webbrick-events/wiki/EventModel.  Mainly, I think that 
if a requirements document were being assembled, I might be able to fillet out 
some thoughts to contribute.

FWIW, my favourite candidate to date is BOSH, mainly as it focuses on protocol 
requirements without imposing much content model, *and* that it works over 
unmodified HTTP.  But I haven't properly reviewed the alternatives.

I took a quick look at your BWTP and my immediate off-the-cuff thoughts are:
  * the spec seems quite easy to read and follow :)
  * it doesn't really indicate the requirements or use-cases it aims to satisfy 
(but it does say that it's intended to provide bi-directional transfers, so 
maybe that's enough, though I'd like to see asynchronous delivery to the client 
explained).
  * I'm not sure that there's an easy migration path from unenhanced HTTP for 
applications that need bidirectional data capabilities.  For example, I'd need 
to think a lot harder than I have time for right now to decide if this could be 
implemented using Javascript in a browser.

Cheers,

#g
--

Greg Wilkins wrote:
> Julian Reschke wrote:
> 
>> I think the specification, in its current form, completely fails to present
>> itself as such a solution.  To me, it reads less like an open protocol
>> specification, and rather more like a programming team internal design
>> memo.
> 
> Julian,
> 
> I too have been very critical of the websocket protocol.
> But I think that the IETF and specifically the hybi group should not
> get become "captured" by trying to correct short comings of this
> protocol and it's specification.   It is very difficult to critique
> the protocol and/or proposal as the authors find it very suitable for
> their specific purposes.
> 
> Instead, I believe that the websocket protocol should be viewed as just
> one  use-case for a bidirectional protocol coming from the whatwg efforts
> on HTML5.  I think it should consider it more of a requirements document
> than a real proposal for an open protocol specification.
> 
> If the IETF were to move forward on a real open protocol specification that
> met the use-case of the websocket proposal (among others), then surely
> all parties would be content with the result.
> 
> 
> 
>> but I find myself asking:  why not just specify a hand-off extension to
>> HTTP
>> that allows bidirectional communication to proceed using a protocol such as
>> BEEP?  I fear there's a certain amount of reinvention going on here.  But I
>> could be wrong.
> 
> I previously advocated BEEP as a possible protocol for the bidirection web.
> See the thread "Is there a traffic jam?" in the hybi list, which briefly
> discussed BEEP before going off topic.
> 
> The argument that eventually convinced me that BEEP was not entirely
> suitable, was that while BEEP framing is simple and suitable, the channel
> management of BEEP is rather complex and requires XML.
> 
> 
> So I draw your attention again to the BWTP draft proposals.  The first
> of these http://bwtp.wikidot.com/main:proposal, was very much influenced
> by HTTP - but the feedback received was that it too was a bit too complex
> for the features that it provided.
> 
> The second BWTP proposal: http://bwtp.wikidot.com/main:proposal1 is modeled
> more off BEEP than HTTP.   I believe it provides a rich bidirectional
> feature set, which maintaining the simplicity of BEEP style framing.
> 
> 
> But even if you find BWTP inappropriate, I believe that the IETF
> should be working from known successful protocols and protocol
> experience to design, test and specify an new bidirectional protocol.
> 
> Surely the IETF should build from it's existing knowledge base
> rather than adopt a binary protocol proposal for a very
> specific purpose that is a radical departure from the style
> and substance of past IETF protocols!
> 
> 
> cheers
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>