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]
>