[hybi] Intermediaries
Kris Zyp <kris@sitepen.com> Thu, 13 August 2009 21:13 UTC
Return-Path: <kris@sitepen.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 571C43A62C1 for <hybi@core3.amsl.com>; Thu, 13 Aug 2009 14:13:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 0Ic109TtXn8Z for <hybi@core3.amsl.com>; Thu, 13 Aug 2009 14:13:33 -0700 (PDT)
Received: from rs48.luxsci.com (rs48.luxsci.com [65.61.166.92]) by core3.amsl.com (Postfix) with ESMTP id 4DF123A6972 for <hybi@ietf.org>; Thu, 13 Aug 2009 14:13:33 -0700 (PDT)
Received: from [192.168.0.66] (71-213-93-74.slkc.qwest.net [71.213.93.74]) (authenticated bits=0) by rs48.luxsci.com (8.13.1/8.13.7) with ESMTP id n7DLC0Z0018902 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for <hybi@ietf.org>; Thu, 13 Aug 2009 16:12:01 -0500
Message-ID: <4A84819B.1040500@sitepen.com>
Date: Thu, 13 Aug 2009 15:11:55 -0600
From: Kris Zyp <kris@sitepen.com>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: hybi@ietf.org
X-Enigmail-Version: 0.96.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: [hybi] Intermediaries
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: Thu, 13 Aug 2009 21:13:34 -0000
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 It has been mentioned before that we would ideally like the bidirectional web protocol to be comprehensible at some level by intermediaries. While I know it is not possible to envision every way that an intermediary might be used, I think it is worth considered possible benefits that can be derived from intermediaries and how to facilitate that. Some of the main benefits that intermediaries can provide is in scalability, multiple intermediaries can handle requests, diverting the load from the final server. Providing faster response times for users in various locations with local edge-placed servers is also an important benefit of intermediaries. The designers of HTTP understood this, and I think we would do well uphold a design that can scale well across across multiple machines and locations. I would suggest two possible ideas within the bidirectional web protocol that could help facilitate efficient use of intermediaries: * Subscription mechanisms defined in the protocol - The client/server reverse of proxied caching is essentially multicasting. If an intermediary can understand the protocol for how subscriptions are made (by client request, generally), and they can understand which messages should be delivered to different subscribers, then they can effectively act as a multicaster of server originated messages to clients. A proxy can receive handle multiple clients subscribing to the same topic, create a single subscription to the central server, and then when messages are received from the server for the given topic, they can disseminate the topic to all the subscribed clients. The central server only needs to be concerned with the single client (the proxy server), and the work is offloaded. * HTTP cache updating - I think there is an opportunity for the bidirectional web protocol to more than merely coexist with HTTP, but it could also complement it, if it could participate in the caching infrastructure of HTTP. If a class of messages sent from a server could signal that a resource was create, updated, or deleted, and include an updated representation of that resource, the location and appropriate metadata (media type and any other meta data that the cache must "Vary" on) the message could be used to update HTTP caches with the latest version for the given resource representation. A very common use case for server originated messaging is to notify clients of changes to server-side resources. If such messages were defined by the bidirectional protocol, there would standard mechanism for notifying clients in a way that intermediaries could benefit from. This would also allow HTTP proxies to be more effective; cached entities could be kept in caches for much longer periods of time (indefinitely) if a proxy was maintaining a subscription such that it would be notified if the resource ever changed. It would be possible for users to each create their own custom definition of resource update notification, but if it was not standardized such that intermediaries would understand, the only way for clients to cause the intermediaries to be updated would be to reissue a GET request for the resource, which would result in server-to-client, client-to-server, and server-to-client trips, rather than a single server-to-client trip. I don't think tripling the latency overhead is really practical for most users that are needing bidirectional communication, which should seems unfortunate, as I believe notification of server side resource updates is one of the most common usages of bidirectional communication (even if it is not always stated in RESTful terms). - -- Kris Zyp SitePen (503) 806-1841 http://sitepen.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkqEgZsACgkQ9VpNnHc4zAwRTACcDJjq3Blek1UhyVbIEppe38FV qNIAn1ollcKnsHL4NaQvNUoPme5x6POi =BmkV -----END PGP SIGNATURE-----
- [hybi] Intermediaries Kris Zyp
- Re: [hybi] Intermediaries Greg Wilkins