Re: [Widex] Working group last call (WGLC) for Requirements: draft-ietf-widex-requirements-01.txt

"Jin Yu" <jyu@openxup.org> Thu, 11 May 2006 00:04 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Fdyf8-0003JU-Gi; Wed, 10 May 2006 20:04:14 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Fdyf6-0003JP-J2 for widex@ietf.org; Wed, 10 May 2006 20:04:12 -0400
Received: from smtp104.sbc.mail.mud.yahoo.com ([68.142.198.203]) by ietf-mx.ietf.org with smtp (Exim 4.43) id 1Fdyf4-0000er-1k for widex@ietf.org; Wed, 10 May 2006 20:04:12 -0400
Received: (qmail 88157 invoked from network); 11 May 2006 00:04:08 -0000
Received: from unknown (HELO 3150hw) (jinyu1@sbcglobal.net@64.186.173.202 with login) by smtp104.sbc.mail.mud.yahoo.com with SMTP; 11 May 2006 00:04:08 -0000
From: Jin Yu <jyu@openxup.org>
To: widex@ietf.org
Subject: Re: [Widex] Working group last call (WGLC) for Requirements: draft-ietf-widex-requirements-01.txt
Date: Wed, 10 May 2006 17:04:00 -0700
Organization: OpenXUP.org
Message-ID: <000301c6748e$68fa25c0$0202fea9@martsbs.local>
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 11
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807
Thread-Index: AcZ0jmffaPtnBu+qSUW0vT/v89333Q==
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 92df29fa99cf13e554b84c8374345c17
X-BeenThere: widex@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Working list for the WIDEX working group at IETF <widex.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/widex>, <mailto:widex-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/widex>
List-Post: <mailto:widex@ietf.org>
List-Help: <mailto:widex-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/widex>, <mailto:widex-request@ietf.org?subject=subscribe>
Errors-To: widex-bounces@ietf.org

Hi all,

I have a few comments about the requirements draft, mostly based on my
experience in working on XUP and X11.

* Event Selection

In a networked UI environment, efficient event delivery is as important as
updating the UI itself. The requirements document already discussed that
certain events can be handled locally at the renderer (e.g. a mouse click on
a menu bar will display a submenu) and therefore there is no need to send
those events to the server. However, in addition to that, it is very
important that the renderer only sends events that are *interested* by the
application logic on the server side. For example, typing in a text field
generates a key press event for each key stroke. But the application may not
care about each key stoke; it only wants to receive the entire text when the
user clicks on a button labeled "submit". In this case, the application is
interested in the mouse click event on the "submit" button, but not
interested in the key press events in the text field.

So what's needed is an event selection mechanism, and I believe this is
needed at the protocol level, not at the XML UI language level. That is,
this event selection mechanism should be independent of the actual UI
language in use.

I think we could define a new type of message - widex event selection
object. This is a one directional message that goes from the server to the
renderer, allowing the application to instruct the renderer to send only
selected events. The widex event selection object would specify the type of
event as well as the UI component that fired the event. And the event type
would be a namespace-qualified event from any concrete XML UI languages (not
limited by DOM events; it could come from XUL, XAML, etc.)

Note that the new event selection object would be very different from
WO.Event. The event selection object specifies the event delivery criteria;
whereas WO.Event specifies the actual event fired, with timestamp, etc.

Similar design can be found in XUP, where it has the notion of "event
selectors" (<http://www.openxup.org/TR/xup/#elem_selector>).

In addition, X11 also allows the selection of events, via the library
function XSelectInput().

* UI State Synchronization

The diagram at the beginning of section 2 shows the UI update interface as
one way messages from the server to the renderer. However, for the UI state
to be synchronized, the renderer should also send UI update messages to the
server.

The server-side UI state is manipulated by application code (e.g. create a
new window, change background color of a label, etc.); this results server
to renderer UI updates messages.

On the other hand, the renderer's UI state is manipulated by the end user.
For example, when the user is typing text in a text field, the UI state of
that field is getting changed. This change needs to be synchronized to the
server. Other examples include resizing a window, checking a check box, etc.
Note that the synchronization needs not to be immediate, as the application
may just care about the entire text input, not each key stoke. But how and
when to synchronize should be left to the application to decide. Again, this
could be done by using the widex event selection object proposed above.


Regards,

Jin
________________________________________
Jin Yu
OpenXUP.org


_______________________________________________
Widex mailing list
Widex@ietf.org
https://www1.ietf.org/mailman/listinfo/widex