Re: [vwrap] thinking about LLIDL and the future

Meadhbh Hamrick <ohmeadhbh@gmail.com> Sat, 17 July 2010 06:27 UTC

Return-Path: <ohmeadhbh@gmail.com>
X-Original-To: vwrap@core3.amsl.com
Delivered-To: vwrap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9F1693A688A for <vwrap@core3.amsl.com>; Fri, 16 Jul 2010 23:27:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.082
X-Spam-Level:
X-Spam-Status: No, score=-2.082 tagged_above=-999 required=5 tests=[AWL=-0.083, BAYES_00=-2.599, J_CHICKENPOX_24=0.6]
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 FyTDLGRBGsPi for <vwrap@core3.amsl.com>; Fri, 16 Jul 2010 23:27:21 -0700 (PDT)
Received: from mail-qw0-f44.google.com (mail-qw0-f44.google.com [209.85.216.44]) by core3.amsl.com (Postfix) with ESMTP id 6D0343A687F for <vwrap@ietf.org>; Fri, 16 Jul 2010 23:27:21 -0700 (PDT)
Received: by qwe5 with SMTP id 5so1023719qwe.31 for <vwrap@ietf.org>; Fri, 16 Jul 2010 23:27:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=uH+Td5wxOoJ7B/kEkzquL0kGmMK1xT7gcg6UiDEe98A=; b=QkDHsVW/CQuylsMU6dcQrySxj2gl4kOvV2tbB/hf2bpFDtEr8Bcsgq4c9hm3hWFNui qrnqVExNkdABGhsKNQ+oqyJpiXjvBntpiEWy+mS3sjr9aRv+VRGWMM5wxOPsdfFmql+a dH1CTAn2PyLqLEuo86qx9aKJ0dSaHAkpGzems=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; b=WfVstYxZVAz0XhNmD8151Yp7RZ0VKP977HsFDU2jJSBWjHYptePtMJc5+w2Oidm797 tdV+vJVJf/9X6glHMhuwkQMA8Zy3cfRjKPObcXU8Bjn8dxTxrdshtudHDDM+0SoXmDke xI+QFC+TS9GGMReHYBhuiUaKJNeEZYP4AE5m4=
Received: by 10.224.106.149 with SMTP id x21mr1735482qao.16.1279348053222; Fri, 16 Jul 2010 23:27:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.229.13.225 with HTTP; Fri, 16 Jul 2010 23:27:12 -0700 (PDT)
In-Reply-To: <AANLkTilU8rIdaK7WZdsqv8wcSSkiELGR4eSB6SFyOSmG@mail.gmail.com>
References: <AANLkTimqzIaVbirYFQc7LAb-u2BJF7UEy9oODznstg7z@mail.gmail.com> <AANLkTikmHb43MLmgEdXegTteLoz6oaqLJjNDSncZTBxT@mail.gmail.com> <AANLkTilBdc3PYb3-v2PSjMISzDLpdKmz57GStiUssElE@mail.gmail.com> <AANLkTimhqTIpVcgtFBQ5dfYRVdh_5ESo7hOlFEKN7KF2@mail.gmail.com> <AANLkTilBlzGG2iVL77osQeMwEDVWlU36noAjU39HPfRb@mail.gmail.com> <AANLkTimCa2-TZDlda-s-wlegYgnXtRJOB_89v1AjkUwO@mail.gmail.com> <AANLkTino8r7lXeRy5msEY2dgQ4nzMy0x5ScgpghheH6I@mail.gmail.com> <AANLkTilU8rIdaK7WZdsqv8wcSSkiELGR4eSB6SFyOSmG@mail.gmail.com>
From: Meadhbh Hamrick <ohmeadhbh@gmail.com>
Date: Fri, 16 Jul 2010 23:27:12 -0700
Message-ID: <AANLkTilmky5ev5MdgfYWbq0XpDZKOjOumcTS7fkCS98d@mail.gmail.com>
To: Morgaine <morgaine.dinova@googlemail.com>, Dzonatas Sol <dzonatas@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: vwrap@ietf.org
Subject: Re: [vwrap] thinking about LLIDL and the future
X-BeenThere: vwrap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group <vwrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/vwrap>
List-Post: <mailto:vwrap@ietf.org>
List-Help: <mailto:vwrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 17 Jul 2010 06:27:23 -0000

okay. i think i understand you and dzonatas well enough to go out and
write another, completely unofficial, possibly experimental draft for
the group. then maybe a little bit of PHP and JavaScript to
demonstrate a few of the features.

again, thanks for the comments (and this is by no means the end of the
commentary on my extended type system.) i think it's just easier for
me to have a conversation about it after having real documents and a
sample implementation to look at.

i'm going to probably drop out of the conversation for a week as i go
off and work on this stuff. i'll keep a lookout for additional
comments, and try to address them in my next draft. but i probably
won't have bandwidth to discuss them for a week or so.

-cheers
-meadhbh
--
meadhbh hamrick * it's pronounced "maeve"
@OhMeadhbh * http://meadhbh.org/ * OhMeadhbh@gmail.com



On Fri, Jul 16, 2010 at 10:41 PM, Morgaine
<morgaine.dinova@googlemail.com> wrote:
> That's correct, I was describing flows at the capability level, not at the
> transport level.  The transport is exactly as you deduced, namely with
> separate transports for capability request-response and for asynchronous
> event messaging.
>
> When you send an ENABLE to the capability that controls a particular
> asynchronous event stream, you receive back the normal capability OK
> response on the same channel as the request (as expected), but the event
> messaging that this enables occurs on a distinct channel at the transport
> level.
>
> This makes a lot of sense for practical implementations, because event
> messaging requires high bandwidth and low latency and so it is best handled
> on a separate transport and using the most efficient form of serialization.
>
> As an implementation example, the OK response from the request to the
> capability could return the IP address and port of the event messaging
> source host, the client would open a TCP stream to it, the source host would
> send events asynchronously down the pipe, and the client's event listener
> would dispatch the event frames to appropriate event handlers as the
> messages arrive.
>
> Different event-generating capabilities could choose to return different
> IP:port pairs to harness dynamic load-balanced server pools and to provide
> parallel pathing, or they could choose to share a common event transport ---
> these would be simple site configuration choices.
>
> Note that this is highly scalable, since it allows any number of servers to
> participate in event generation and distribution.  No longer do updates have
> to come from a single, horribly overloaded and totally non-scalable
> simulator host.
>
> Consistent with David's regular exhortations, nothing in the above precludes
> this model from working in the legacy deployment architectures of SL and
> Opensim:  single simulator operation is still supported by the design, but
> it offers additional capability for more scalable deployments.
>
>
> Morgaine.
>
>
>
>
>
> =====================================
>
> On Fri, Jul 16, 2010 at 7:45 PM, Meadhbh Hamrick <ohmeadhbh@gmail.com>
> wrote:
>>
>> Interesting. I had been thinking that the message semantics would require
>> a response on the same channel as the request. What you're talking about
>> seems to be a little higher level than what I'm pitching. (Thx for pointing
>> out I wasn't clear about this)
>>
>> So.. the way I'm modeling it is that you have message interactions that
>> are tied to the same transport session. So if you ask for something with
>> http(s), you get it back via http(s) on the same connection.
>>
>> But it's definitely true that an application layer entity can coordinate
>> messages, only I think we should make a "virtual" connection that spans
>> actual connections.
>>
>> But I still think it's advantageous to think of interaction patterns in
>> terms of message flows over specific connections, otherwise we have to start
>> adding application layer transaction id's to correlate responses to
>> requests. Also, since trust seems to be associated with connections (by way
>> of (D)TLS), it's probably a good idea to not cross trust boundaries in
>> interactions across connections, otherwise we would have to model that in
>> the application layer as well.
>>
>> At the end of the day, we have message patterns that look like:
>>
>> * send, no reply expected
>> * request, response expected
>> and
>> * unsolicited message.
>>
>> The first two can be modeled with request/response, but the last one has
>> unique characteristics that must be modeled.
>>
>> -cheers
>> -meadhbh
>>
>> On Jul 16, 2010 11:05 AM, "Morgaine" <morgaine.dinova@googlemail.com>
>> wrote:
>>
>> Considering asynchronous messages to be emitted in response to a CRUD
>> operation on an appropriate resource fits in perfectly with the notion of
>> Capabilities though.  They ARE solicited, by a request to a resource.
>>
>> As in my earlier example of the text-only client, the CRUD operation
>> UPDATE(scenegraph_updates_capability, ENABLE) was not invoked by the client
>> (or it was invoked with the argument DISABLE), and hence that resource saves
>> time and bandwidth by not sending the unwanted scenegraph updates.  If
>> instead the resource were set to ENABLE, those update messages would
>> certainly be appearing in response to the ENABLE request, so it's a natural
>> interpretation.  And of course it's very helpful to have such events
>> controlled by a capability.
>>
>> The alternative model in which events are considered normal CRUD
>> operations on an event queue in the reverse direction is actually incorrect,
>> because then those operations would require responses themselves, and that's
>> not what we want.  Events don't fit the synchronous request-response model,
>> because they're not synchronous, and are ill-suited to a 2-way
>> request-response paradigm for every event message.
>>
>> That's why I prefer the unidirectional model in which events occur as a
>> sequence of zero or more messages in response to a normal CRUD operation.
>> It's a clean model because the responses travel in the reverse direction
>> perfectly naturally (since they're responses) and do not themselves require
>> further ACKs.  It's also justified because, after all, we will require a
>> means of enabling / disabling updates and other asynchronous event
>> notifications.  This model kills two birds with one stone, and it's a
>> natural fit for capabilities.
>>
>>
>> Morgaine.
>>
>>
>>
>>
>> ==================================
>>
>> On Fri, Jul 16, 2010 at 5:09 PM, Meadhbh Hamrick <ohmeadhbh@gmail.com>
>> wrote:
>> >
>> > > EVENT is not a...
>>
>> _______________________________________________
>> vwrap mailing list
>> vwrap@ietf.org
>> https://www.ietf.org/mailman/listinfo/vwrap
>>
>
>
> _______________________________________________
> vwrap mailing list
> vwrap@ietf.org
> https://www.ietf.org/mailman/listinfo/vwrap
>
>