RE: REX and XUP

> That's my fault. When I started looking at similar solutions existing
> elsewhere to see if the need had already been addressed, I looked in
> many places... but not W3C! XUP looks like a very nice start for a
> specification, it's a shame that while W3C accepted your Member
> Submission (back then called "Notes") but that it was not put on the
> Recommendation track by a WG. Do you know why that was the case?

I guess XUP got buried into hundreds of W3C Notes. It's indeed hard to sort
through them these days. Back then (2002) Dave Raggett reviewed the XUP Note
and forwarded it to MMI and XForms working groups, but there weren't enough
interest to take any further actions within W3C at that time. Now with the
"AJAX" buzz word, rich web user interfaces finally got people's attention.

> > In XUP, UI updates are the same as mutation events in REX's
> > terminology. Basically, UI updates are just remote DOM
> > manipulations (add, remove, update elements, etc.) of a UI model,
> > which is a DOM instance of an XML UI language. In XUP, the UI
> > updates are bi-directional. That is, the user agent
> > sends UI updates to server, containing end user's direct
> > manipulations as well as the UI changes made by scripts; and
> > the server sends UI updates to the user agent, containing
> > server-side application's changes to the UI model.
> 
> This can be done in REX as well: there is no assumption that the
> communication is only unidirectional (although that mode is supported
> since it's a strong requirement). If there are intended request/
> response semantics, they are expected to be at the protocol binding
> layer (so for instance if someone made a SOAP binding for REX, I
> would expect it to have some strong similarities with XUP).

Yes, I agree. It's a good idea to separate out the protocol layer. Actually
I'm a member of the IETF Widex working group, which is working on the
protocol layer for remote UI.

> > In addition, XUP supports multiple event models. It supports DOM-style
> > capture / bubbling events, as well as Java Swing-style delegation-
> > based events.
> 
> For REX we decided to only support DOM Events as that is simpler and
> is more likely to integrate well with the event infrastructure used
> by many W3C UI technologies. Can you think of specific things that
> could not be done by using only this model?

Actually I consider DOM's event model (capturing / bubbling) to be more
complicated than the delegation-based event model found in desktop toolkits
such as Swing (event listener) and .NET Windows Forms (event handler).
Further, capturing / bubbling works well locally in a client, but not in a
networked UI environment where UI events need to be transported over the
internet. Having said that, DOM event model is fine if the implementation
disables capturing / bubbling; then it is pretty much the same as
delegation-based event models.

The other thing I want to mention is the terminology used in the REX working
draft. It refers to updates to the DOM as "mutation events". I think this is
very confusion and it has also been pointed out by Maciej Stachowiak earlier
on the list. I would clearly separate out the two concepts:

- DOM updates

It is the DOM updates which cause the mutation events, so we should call it
"DOM updates". In the rich web client context, we should call it "UI
updates", which is the term used by XUP and the Widex working group.

- UI events

These are the UI related events caused by end user actions; e.g. button
click, checking a check box, key stokes, etc. This concept is well defined
in Widex, but not in REX.

In the rich web client context, we shall no longer be limited by HTML DOM
events, which were created for page-based applications. A more fluid,
desktop-like user interface requires rich UI events, such as those found in
Swing, XUL, and XAML. Of course, the event details should be left to the
respective XML UI languages (or whatever comes out of Application Formats
WG). However, REX should have a "UI event" concept that is extensible and
flexible.

> > I hope XUP will be a useful reference material for this WG.
> 
> It definitely is, thank you very much. In fact, we intend to "steal"
> some of its features at some point :) Of notable interest are session
> initiation (for protocol bindings) and listener manipulation.

We have built an open source project (<http://www.openxup.org>) on top of
XUP. On that web site you can find an implementation prototype as well as
some research papers we have published. In addition, the version 2 of XUP
spec is available at <http://www.openxup.org/TR/xup/>. It contains numerous
improvements to the original W3C XUP Note.

I'd very much like to work on REX. But unfortunately Martsoft is no longer a
W3C member and the OpenXUP project doesn't have the funding to join W3C. So
in the near term I can only participate in REX-related discussions on the
public list.

Regards,

Jin
________________________________________
Jin Yu
OpenXUP.org

Received on Monday, 22 May 2006 11:04:55 UTC