Re: [ogpx] HTTP(S) and XMPP as transports of OGP application layer messages

Morgaine <morgaine.dinova@googlemail.com> Thu, 13 August 2009 16:56 UTC

Return-Path: <morgaine.dinova@googlemail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 059053A6C43 for <ogpx@core3.amsl.com>; Thu, 13 Aug 2009 09:56:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.38
X-Spam-Level:
X-Spam-Status: No, score=-1.38 tagged_above=-999 required=5 tests=[AWL=0.596, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
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 B8o0i1aOR90T for <ogpx@core3.amsl.com>; Thu, 13 Aug 2009 09:56:24 -0700 (PDT)
Received: from mail-ew0-f214.google.com (mail-ew0-f214.google.com [209.85.219.214]) by core3.amsl.com (Postfix) with ESMTP id C091D3A6A71 for <ogpx@ietf.org>; Thu, 13 Aug 2009 09:56:23 -0700 (PDT)
Received: by ewy10 with SMTP id 10so926677ewy.37 for <ogpx@ietf.org>; Thu, 13 Aug 2009 09:54:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=ytObEFX1rsBeDtrC2INGxYXyZzz+jhAY0rojPFbpeIY=; b=WCV/ccrk/NJq3lp0O0Kh7BI1AGlOYTBjOS6PqbZDF6PgcsKv7h2BuBlrEo6KyUEt8y V4IOfi1dOSbmv3yG5CHb9RIIfUoa916EhJwSW4hzPtkW7eqT/rup2z1ebkO2sOAdU32D x96Rvqzcmke19jlCwBgNEKH1NiNdZ7h/67Gi8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=CZrcrZ60zaiSwChBV7q9QyaZ81Tokpj3LaSZBVXNdoNmP1Z6/SSOz0wq4VhduVgzm+ 5gY7l9nnxBvs7fjimI8GJmNODo3QgnnuW+2WC7FWFG2f69pqS+WkZG4bUTWZtBHnQiWE 7RN6XiuB8rfzUlSzHX/R2U+pep1J6TLy1nbTA=
MIME-Version: 1.0
Received: by 10.210.82.13 with SMTP id f13mr1873781ebb.95.1250182482621; Thu, 13 Aug 2009 09:54:42 -0700 (PDT)
In-Reply-To: <3a880e2c0908121753s34bacba7k59fae708752d3d6a@mail.gmail.com>
References: <3a880e2c0908121753s34bacba7k59fae708752d3d6a@mail.gmail.com>
Date: Thu, 13 Aug 2009 17:54:42 +0100
Message-ID: <e0b04bba0908130954p16da6777n279a462b9cf8a381@mail.gmail.com>
From: Morgaine <morgaine.dinova@googlemail.com>
To: ogpx@ietf.org
Content-Type: multipart/alternative; boundary=0015174c17b4c7f6cc047108cafd
Subject: Re: [ogpx] HTTP(S) and XMPP as transports of OGP application layer messages
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Aug 2009 16:56:26 -0000

On Thu, Aug 13, 2009 at 1:53 AM, Infinity Linden <infinity@lindenlab.com>wrote;wrote:

>
> Original work with OGP used HTTP(S) to carry application messages.
> There's been enough talk about alternate transports that it feels very
> bad to dismiss them without discussion. However, I'm wondering if
> there's anyone out there planning on implementing OGP over XMPP?
>


Asking the question in this form creates a bit of a false dichotomy.
HTTP(S) and XMPP cover different areas of the solution space, so they are
not simple alternatives.  It's better to first disentangle the requirements,
and then see what is applicable to each part.

OGP networking requirements (as far as we know them) comprise at least three
different types of functionality, although the 3rd is a matter of some
debate:


   1. HTTP(S) client-server request/response calls to OGP services.
   2. Server-client streaming object updates, over an unspecified reliable
   transport.
   3. HTTP(S) server-client request/response calls to client-side services.


Type 1 is wonderfully served by HTTP(S), while XMPP leaves a lot to be
desired in this role, for which it was not designed.

Type 2 is not served naturally by HTTP(S) at all, but because this
requirement is so common in many types of applications, the "web everywhere"
fraternity has tried to shoehorn this type into HTTP as well, using a
variety of proposed strategies ranging from COMET's Long Poll and Streamed
Response through to the latest WebSockets, with debateable success.  XMPP
was designed to serve this type of networking functionality, although its
targetted application area is somewhat different to that of VWs.  Whether it
would be able to carry object updates with sufficient efficiency would
require analysis and testing.

Type 3 is poorly specified at present, and it may turn out to be a
non-existent requirement stemming only from a misguided attempt to poll
clients instead of receiving streamed asynchronous updates from them.  On
the other hand it may turn out to be an essential networking facility for
providing symmetry between clients and servers, for instance when decoupled
OGP services run on the client --- this will need much more discussion.
Assuming for now that there is indeed such a requirement, HTTP may serve it
adequately when run over Reverse HTTP, whereas XMPP would leave a lot to be
desired in this role for which it was not designed.

The above is confusing and fragmented enough, but it gets worse.

There is yet another networking type common to VWs which has not even been
mentioned in our two years of AWG and the 6 months of MMOX deliberations,
yet is an essential type with its own properties:   streaming of input
events and objects from client to server.  This is (roughly) lumped in with
Type 2 in current SL and Opensim  implementations, and it appears to be
destined to be lumped in with Type 1 in OGP, where it fits poorly for
reasons of latency on realtime inputs.  Neither HTTP(S) nor XMPP seem ideal
for this, although XMPP has a much closer semantic fit owing to its Jabber
heritage.

So where does this leave us?  Well the first thing that should be clear is
that we are not facing a simple question of  "Should we do it all over HTTP
alone, or also allow for implementation over XMPP?".  The design
requirements aren't like that at all.  In particular, HTTP(S) just doesn't
fit the Type 2 semantic requirement, and XMPP may not either.

Given that our current task is only to define the charter and not to
constrain the solutions, I think that any form of wording that suggests that
HTTP(S) alone is sufficient should be avoided, because it is not sufficient
for Type 2 based on our existing experience in virtual worlds.  To put it
bluntly, it's too slow, and the polling model has inadequate latency
properties.

I suggest therefore that this question of "HTTP(S) and/or XMPP" not be
addressed in the charter, because the requirements have not yet been
examined in sufficient detail to be able to make that call.  Indeed, Type 2
may require a different protocol altogether.


Morgaine.







On Thu, Aug 13, 2009 at 1:53 AM, Infinity Linden <infinity@lindenlab.com>wrote;wrote:

> Hey people!
>
> So... looping back around to some of the comments from the f2f BoF
> meeting...
>
> Original work with OGP used HTTP(S) to carry application messages.
> There's been enough talk about alternate transports that it feels very
> bad to dismiss them without discussion. However, I'm wondering if
> there's anyone out there planning on implementing OGP over XMPP?
>
> The reason I ask is that a number of us who worked on the early
> pre-IETF interop trials are heavily invested in HTTP(S). Though i
> can't speak for everyone involved, i would anticipate resistance to
> mandating a new transport. HTTP(S) has it's weaknesses as a transport,
> to be sure, but it's a well deployed and well understood protocol with
> a mature tool chain. This makes it attractive to many people.
>
> On the other hand, if someone else thinks they want to produce an OGP
> implementation over XMPP, that seems really cool. But if no one's
> going to implement it, an argument could be made that putting the
> effort into specifying it would be a waste of time. On yet another
> hand, going through the exercise of figuring out what aspects of HTTP
> are required to transport OGP messages might reveal subtle
> dependencies between components. Back on the other hand again, can we
> do this without re-writing BCP56?
>
> So I was thinking of this as a proposal:
>
> If there is strong interest in implementing OGP over XMPP, let's
> mention that it's an "officially supported" transport in the charter.
> (for some definition of the words "officially supported.")
>
> If there's not strong interest in implementing OGP over XMPP, let's
> not put it in the charter.
>
> In either case, I think there's sufficient justification for
> describing the set of requirements OGP makes on it's transport. For
> instance, does it REQUIRE request/response semantics? (i.e. - if i'm
> writing a compliant server layering OGP over XMPP, and i receive an
> OGP "request" in an XML stanza, am i REQUIRED to send a response?)
> Or... does it REQUIRE specific content negotiation semantics? (i.e. -
> do we need to explicitly describe or reference a technique for
> identifying the content type of a response in XMPP?) Or... does the
> protocol explicitly depend on caching behavior of some HTTP proxies?
> if so, how? etc. etc.
>
> -sincerely
> -meadhbh
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>