Re: [hybi] ws and bwtp thoughts

Greg Wilkins <gregw@webtide.com> Wed, 21 October 2009 06:26 UTC

Return-Path: <gregw@webtide.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 501383A697A for <hybi@core3.amsl.com>; Tue, 20 Oct 2009 23:26:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.394
X-Spam-Level:
X-Spam-Status: No, score=-1.394 tagged_above=-999 required=5 tests=[AWL=1.205, 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 OLxEfF8mRIef for <hybi@core3.amsl.com>; Tue, 20 Oct 2009 23:26:35 -0700 (PDT)
Received: from mail-ew0-f228.google.com (mail-ew0-f228.google.com [209.85.219.228]) by core3.amsl.com (Postfix) with ESMTP id AE5423A69CC for <hybi@ietf.org>; Tue, 20 Oct 2009 23:26:34 -0700 (PDT)
Received: by ewy28 with SMTP id 28so7377205ewy.42 for <hybi@ietf.org>; Tue, 20 Oct 2009 23:26:40 -0700 (PDT)
Received: by 10.216.89.6 with SMTP id b6mr2731714wef.100.1256106398968; Tue, 20 Oct 2009 23:26:38 -0700 (PDT)
Received: from ?10.71.0.129? (216.112.110.2.ptr.us.xo.net [216.112.110.2]) by mx.google.com with ESMTPS id x6sm1934375gvf.1.2009.10.20.23.26.35 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 20 Oct 2009 23:26:37 -0700 (PDT)
Message-ID: <4ADEA997.10705@webtide.com>
Date: Tue, 20 Oct 2009 23:26:31 -0700
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.23 (X11/20090817)
MIME-Version: 1.0
To: "Thomson, Martin" <Martin.Thomson@andrew.com>
References: <8B0A9FCBB9832F43971E38010638454F0F1EA1D4@SISPE7MB1.commscope.com>
In-Reply-To: <8B0A9FCBB9832F43971E38010638454F0F1EA1D4@SISPE7MB1.commscope.com>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] ws and bwtp thoughts
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, 21 Oct 2009 06:26:36 -0000

Martin,

Thomson, Martin wrote:
> I've been following the discussions on WS and BWTP (awful name, BTW) with some interest.
> 
> The differences are many, but aside from a few they probably make little difference from a technical standpoint.

I totally agree.

Most differences between BWTP and Websocket a non-semantic

For example websocket encodes length in a binary integer of arbitrary
length, while BWTP uses a ascii decimal number of arbitrary length.
The difference is pretty much just a style choice.

I think websocket can be improved to have the capabilities
I'm advocating and the other differences are not important.
See my blog on this exact subject:

   http://blogs.webtide.com/gregw/entry/how_to_improve_websocket



> ==Channels
> Channels are not the issue - ...
> Channels are just one way of addressing the problem.

+1

Channels are just a means to an end and not an end in
themselves.


> Delegating any responsibility to a higher layer is
> another way.

That depends what you think is "the problem". :)

I consider the problem is that applications should
not have to manage TCP/IP connections nor have the
ability to directly request them.

I don't think delegating to a higher layer solves
this problem.


> HTTP doesn't have channels.  There's no multiplexing.  
> If you need multiplexing, you open a new connection.

HTTP does support multiplexing - but not with channels.

If you open another XHR in js, the browser will look
for an idle connection, which may have been opened
by another application in another frame/tab/window
(or in same frame, but previous page).

Also there are proxies and other intermediaries that
multiplex many clients onto shared connections.


> So I have a (half-baked) suggestion: Use MIME and 
> allow requests to be addressed.

If by "request" you mean "message", that is indeed
another possible solution abstract away from the
actual TCP/IP connections - and is probably simpler
than channels.

However, like HTTP, you would need some meta data
with each and every message.

If you are concerned about reducing data usage,
then channels (or at least BWTPs implementation of them)
allows meta data to be sent only once per channel
and then each message can be just data and no meta
data.

If you are less concerned about data usage, then
meta-data per message works ok for HTTP



But your  point is well taken.  There is more
than one way to skin a cat - and we should be
prepared compromise on the means we use to
achieve the outcomes that we want.

cheers