Re: [hybi] HyBi Design Space
Salvatore Loreto <salvatore.loreto@ericsson.com> Fri, 09 October 2009 14:13 UTC
Return-Path: <salvatore.loreto@ericsson.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 57EC428C11E for <hybi@core3.amsl.com>; Fri, 9 Oct 2009 07:13:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.896
X-Spam-Level:
X-Spam-Status: No, score=-5.896 tagged_above=-999 required=5 tests=[AWL=0.353, BAYES_00=-2.599, HELO_EQ_SE=0.35, 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 4Y6bclzfoS4q for <hybi@core3.amsl.com>; Fri, 9 Oct 2009 07:13:23 -0700 (PDT)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id B94633A6820 for <hybi@ietf.org>; Fri, 9 Oct 2009 07:13:22 -0700 (PDT)
X-AuditID: c1b4fb3c-b7baeae000005f8e-93-4acf45699d62
Received: from esealmw126.eemea.ericsson.se (Unknown_Domain [153.88.253.124]) by mailgw3.ericsson.se (Symantec Mail Security) with SMTP id A5.BC.24462.9654FCA4; Fri, 9 Oct 2009 16:15:06 +0200 (CEST)
Received: from esealmw128.eemea.ericsson.se ([153.88.254.172]) by esealmw126.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 16:15:05 +0200
Received: from mail.lmf.ericsson.se ([131.160.11.50]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 16:15:05 +0200
Received: from nomadiclab.lmf.ericsson.se (nomadiclab.lmf.ericsson.se [131.160.33.3]) by mail.lmf.ericsson.se (Postfix) with ESMTP id 2381724C0; Fri, 9 Oct 2009 17:15:05 +0300 (EEST)
Received: from nomadiclab.lmf.ericsson.se (localhost [127.0.0.1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id DFD7D21A1F; Fri, 9 Oct 2009 17:15:04 +0300 (EEST)
Received: from localhost.localdomain (localhost [127.0.0.1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id 874AD219D4; Fri, 9 Oct 2009 17:15:04 +0300 (EEST)
Message-ID: <4ACF4567.9000005@ericsson.com>
Date: Fri, 09 Oct 2009 17:15:03 +0300
From: Salvatore Loreto <salvatore.loreto@ericsson.com>
User-Agent: Thunderbird 2.0.0.23 (X11/20090825)
MIME-Version: 1.0
To: "Thomson, Martin" <Martin.Thomson@andrew.com>
References: <4ACE50A2.5070404@ericsson.com> <E51D5B15BFDEFD448F90BDD17D41CFF1065B6142@AHQEX1.andrew.com>
In-Reply-To: <E51D5B15BFDEFD448F90BDD17D41CFF1065B6142@AHQEX1.andrew.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV using ClamSMTP
X-OriginalArrivalTime: 09 Oct 2009 14:15:05.0480 (UTC) FILETIME=[E62DF880:01CA48EA]
X-Brightmail-Tracker: AAAAAA==
Cc: hybi@ietf.org
Subject: Re: [hybi] HyBi Design Space
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: Fri, 09 Oct 2009 14:13:25 -0000
Hi Martin, see in line. Cheers Sal Thomson, Martin wrote: > While I agree that constraining the design space is probably a necessary part of our work, there are aspects to this text that concern me. > > I like the effort that is going into identifying the servers, clients and intermediaries that are involved and the constraints that are involved. That part of the text seems valuable. > thanks > However, it seems like there was consensus to address two problems in the WG: > > A - right here and now, HTTP extensions > B - sometime later, new protocols that interact somehow with HTTP > right, there was consensus for both! and the HyBi will eventually work to address both! > From the abstract and early sections of the document, the draft right now seems to be concentrated on the side of A. > > This analysis seems divorced from this goal, so much so that it seems a little unfocussed. > > For instance, the usual laundry list of desires surfaces: Complexity, Capability, Extensibility, Latency, Bandwidth, Scalability, Footprint, AAA, Security, Interoperability (!), Compatibility. > > These are constraints on any design exercise. They don't add any value unless they are directly related to the work at hand. > > My initial view of this document was a problem statement for A. To that end, this could all be much more specific. For instance, compatibility is highly important for solution A. Or, more specifically yet: it is important that solution A can be deployed to the web in the short-term, so compatibility with existing implementations is crucial. > > The example of "Non-browser, non-HTTP" immediately jumps out as a problem for this document. A reasonable reaction might be that this is way out of scope. But then, I know that it isn't necessarily the case. Insufficient context has been provided to assess this item rationally because it's talking about B, not A. > > Because the constraints are significantly different on A vs. B, a separate problem statement for B seems appropriate. That would help this be a little less vague. > the confusion most probably come from the fact that the draft was thought to address the problem -A- . maybe instead of insert the Design Space analysis text in the existing draft it would be better include it in a new draft; and then include in the existing draft (draft-loreto-http-bidirectional) a much more specific text for the "right here and now, HTTP extensions". would it make sense? > --Martin > > >> -----Original Message----- >> From: hybi-bounces@ietf.org [mailto:hybi-bounces@ietf.org] On Behalf Of >> Salvatore Loreto >> Sent: Friday, 9 October 2009 7:51 AM >> To: hybi@ietf.org >> Subject: [hybi] HyBi Design Space >> >> Hi there, >> >> at the breakfast BoF in Stockholm it was brought up that it would have >> been helpful to more >> clearly describe the design space, including the programming >> environments (client, server, >> library, etc.), deployed infrastructure (routers, proxies, etc.). >> >> here the analysis that we have written down and we are going to insert >> in the >> draft-loreto-http-bidirectional. >> >> comments, feedbacks and suggestions are very welcome >> >> cheers >> Sal >> www.sloreto.com >> >> >> >> 6. Design Space >> >> In order to define additions to HTTP that could enable improved >> mechanisms for bidirectional HTTP or new bidirectional protocols, it >> is important to map out the design space and potential design >> alternatives, with special attention to deployed infrastructure and >> programming environments. >> >> In existing HTTP-based systems, the typical semantic is client- >> server >> Representational State Transfer (REST), where the resources served >> are closely associated with an entity known by a URI or URL. >> However, the introduction of bidirectionality can significantly >> change the normal HTTP patterns. >> >> As one example, the standard roles of client and server can be >> reversed and a server can request resources from a client. >> Unfortunately, due to a lack of client addressability URL's may not >> be applicable to client entities and new addressing paradigms may be >> required. >> >> Furthermore, bidirectionality introduces a message passing pattern >> into the traditional REST style. >> >> These additional semantics will influence the design of the >> bidirecitonal protocols, addressing, and APIs. Without a strong >> association between an identified entity and a resource, new >> mechanisms for content distribution and caching messages might need >> to be considered. >> >> In the next sections we analyse the design space from several >> different sides of the HTTP deployed infrastructure, including >> clients, servers, and intermediaries such as proxies, caching >> servers, and load balancers. >> >> The process of evaluating eventual improvements to the bidirectional >> solutions or development of new bidirection protocols should take >> into consideration the following concerns and criteria: >> >> Complexity: enables ease of implementation, understanding, and >> debugging >> >> Capability: addresses all/most known bidirectional use-cases >> >> Extensibility: has the capacity to handle new use-cases >> >> Latency: defines minimal, average, and maximal latency for message >> delivery >> >> Bandwidth overhead: minimizes overhead for idle and busy usage >> >> Scalability: has the ability to handle large scale usage >> >> Footprint: has the ability to handle small devices and/or massive >> replication ("cloud") >> >> AAA: enables proper Authentication, Authorization and Accounting >> >> Security: enables strong security for integral, confidential, >> endorsed, and cross domain deployments. >> >> Interoperability: can work with and/or be integrated with existing >> bidirectional implementations >> >> Compatibility: can work with existing web infrastructure for >> distributing, caching, manipulating, and displaying content. >> >> 6.1. Server side >> >> The server side can be decomposed into three categories: >> >> In-band HTTP: Bidirectionality is part of the normal HTTP/Web >> server >> responsibilities. HTTP is used for transporting server events. >> Examples include Comet and (in some deployments) BOSH. >> >> Out-of-band HTTP: Here two servers are involved: bidirectionality >> is >> not part of the normal HTTP/Web server responsibilities, but the >> backend service is offered by a separate server that might not >> even be on the same machine of the HTTP/Web server. HTTP is used >> for transporting server events. When a browser is used on the >> client side, a cross-domain solution is needed to overcome the >> "same-source" web service restriction. Examples include BOSH (in >> some deployments) and Lightstreamer. >> >> In-band non-HTTP: Bidirectionality is part of the normal HTTP/Web >> server responsibilities. However, server events are transported >> on an upgraded HTTP connection. Examples include Bidirectional >> Web Transfer Protocol (BWTP) and WebSockets. >> >> Out-of-band non-HTTP: Bidirectionality is offered by a dedicated >> server using non HTTP protocol for transport server events. >> Examples include WebSockets. >> >> The HTTP transport based servers (in-band and out-of-band) can work >> with existing HTTP standards or enhanced HTTP. Enhanced HTTP would >> be a standardized set of headers and behaviours to assist with >> bidirectionality and cross domain concerns. >> >> At present, a protocol that interacts heavily with JavaScript on the >> client side implies some constraints also on the server side, such >> that they have to use XML or JSON encapsulation. >> >> 6.2. Clients >> >> Clients can be involved in bidirectional transport in the following >> capacities: >> >> In browser open standards with HTTP transport: For applications >> written in a web browser scripting language (e.g. JavaScript) >> within a browser client. Examples include Comet and BOSH. >> >> In browser open standards with enhanced HTTP transport: For >> applications written in a web browser scripting language (e.g. >> JavaScript) within a browser client. Examples include Comet with >> cross domain extensions. >> >> Browsers using either standard HTTP transport or enhanced HTTP >> transport typically use XMLHttpRequest (XHR) API >> [W3C.WD-XMLHttpRequest2-20090820] allowing scripts to perform >> HTTP >> client functionality. The XHR object can be used to perform >> bidirectional HTTP using both "long polling" and "HTTP streaming" >> mechanisms. >> >> XHR also supports the cross domain extension >> [W3C.WD-cors-20090317], which overcomes the same-origin >> restrictions that prevent a Web application running from one >> origin from obtaining data retrieved from another origin. >> However, XHR presents some limitations on the headers that can be >> set by the user. >> >> An alternative to XMLHttpRequest is using the Server-Sent Events >> API [W3C.WD-eventsource-20090423]. This "EventSource: interface >> enables servers to push data to Web pages over HTTP or using >> dedicated server-push protocols. >> >> >> In browser open standards with non HTTP transport: For applications >> written in JavaScript within a browser client. Examples include >> BWTP and WebSockets. >> >> In browser with plugin: This is not of particular interest to IETF, >> but should be noted as part of the design space. Examples >> include >> BlazeDS. >> >> Non-browser HTTP: A bidirectional client may be written outside of >> a >> browser and use bidirectional web transports. Typically this is >> done so that a rich or minimal client can bypass firewalls to >> access public servers over HTTP transports. Examples include the >> Comet Java client and the Second Life Viewer. >> >> Non browser enhanced HTTP: [Definition and examples to follow.] >> >> Non browser non-HTTP: [Definition and examples to follow.] >> >> 6.3. Intermediaries >> >> Intermediaries (e.g. proxies, gateways, caching servers, load >> balancers, etc) can be involved in bidirectional transport in >> several >> capacities: >> >> Legal HTTP relay: Transports such as long polling use >> intermediaries >> to carry legal HTTP requests and response. Any capabilities that >> may interfere with bidirectional flow (e.g. caching) are >> controlled with standard headers or cookies. The intermediary >> may >> be a participant in the transport (e.g., changing framing or >> encapsulation). >> >> Defacto HTTP relay: Some streaming transports use the common >> behavior of HTTP intermediaries to forward content packet-by- >> packet. This relies on intermediaries to not cache or buffer >> content. >> >> Enhanced HTTP relay: Uses yet-to-be-defined HTTP headers to assist >> HTTP based bidirectional transports. The intermediary may be a >> participant in the transport (e.g., changing framing or >> encapsulation). >> >> Upgraded HTTP relay: Uses HTTP upgrade to relay a non-HTTP >> protocol. >> >> Tunneled relay: Uses (or abuses?) the CONNECT mechanism to simulate >> an SSL connection to be used as a tunnel for a non-HTTP >> transport. >> >> >> >> >> [W3C.WD-XMLHttpRequest2-20090820] >> Kesteren, A., "XMLHttpRequest Level 2", World Wide Web >> Consortium WD WD-XMLHttpRequest2-20090820, August 2009, >> <http://www.w3.org/TR/2009/WD-XMLHttpRequest2-20090820>. >> >> [W3C.WD-cors-20090317] >> Kesteren, A., "Cross-Origin Resource Sharing", World Wide >> Web Consortium WD WD-cors-20090317, March 2009, >> <http://www.w3.org/TR/2009/WD-cors-20090317>. >> >> [W3C.WD-eventsource-20090423] >> Hickson, I., "Server-Sent Events", World Wide Web >> Consortium WD WD-eventsource-20090423, April 2009, >> <http://www.w3.org/TR/2009/WD-eventsource-20090423>. >> >> >> >> >> _______________________________________________ >> hybi mailing list >> hybi@ietf.org >> https://www.ietf.org/mailman/listinfo/hybi >> > > ------------------------------------------------------------------------------------------------ > This message is for the designated recipient only and may > contain privileged, proprietary, or otherwise private information. > If you have received it in error, please notify the sender > immediately and delete the original. Any unauthorized use of > this email is prohibited. > ------------------------------------------------------------------------------------------------ > [mf2] >
- [hybi] HyBi Design Space Salvatore Loreto
- Re: [hybi] HyBi Design Space Infinity Linden (Meadhbh Hamrick)
- Re: [hybi] HyBi Design Space Thomson, Martin
- Re: [hybi] HyBi Design Space Salvatore Loreto
- Re: [hybi] HyBi Design Space Salvatore Loreto
- [hybi] Multiplexing in WebSocket (Was: HyBi Desig… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Infinity Linden (Meadhbh Hamrick)
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Graham Klyne
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] HyBi Design Space Stefano Salsano
- Re: [hybi] HyBi Design Space Thomson, Martin
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Graham Klyne
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Jamie Lokier
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Michael(tm) Smith
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Bjoern Hoehrmann
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… SM
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Martin Tyler
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Ian Hickson
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Julian Reschke
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket (Was: HyBi D… Wellington Fernando de Macedo
- [hybi] new drat design-space-bidirectional Salvatore Loreto
- Re: [hybi] Multiplexing in WebSocket Ian Hickson
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Ian Hickson
- Re: [hybi] Multiplexing in WebSocket Julian Reschke
- Re: [hybi] Multiplexing in WebSocket Ian Hickson
- Re: [hybi] Multiplexing in WebSocket Peter Saint-Andre
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Ian Hickson
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Jamie Lokier
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Ian Hickson
- Re: [hybi] Multiplexing in WebSocket Greg Wilkins
- Re: [hybi] Multiplexing in WebSocket Ian Hickson