Systematization of cross-context communication systems for web browsers

10 views
Skip to first unread message

Ivan Zuzak

unread,
May 12, 2010, 8:04:41 AM5/12/10
to Talk about Widgets
Hey widget lovers,

This has been on my TODO list for a long time, and now I'm finally
getting around to it -- I'm compiling a list of all cross-context
communication systems available for web browsers and categorizing them
by following a set of criteria. Cross-context communication is
communication between different context in the browser, where a
context is either a window, iFrame or a web worker. Since widgets are
often implemented as iFrames, this systematization is relevant to
people involved with widget technologies. There exist widget
technologies/portals which don't implement widgets as isolated
iFrames, rather as content inline with the widget container (as DIVs)
-- this systematization of little use for those. In other words, this
systematization is a lower level one in comparison to a possible inter-
widget communication systems one.

The motivation for doing this is 1) it doesn't exist yes, 2) there is
a growing need for it (e.g. this group) and 3) it's part of a research
I'm doing for my Ph.D. and I wanted to share + get input from the
community (sharing is caring). There have been research and industry
papers covering some areas of cross-context communication (security
aspects, simple in-browser mechanisms, motivation for this kind of
communication) but most of these papers are at least a few years old
and offer no kind of systematization or overview of the whole
ecosystem.

The work in progress is available here: http://code.google.com/p/pmrpc/wiki/IWCProjects.
It's not nearly finished, but it's good enough to get feedback.

I'd appreciate any comments in any way: have I missed a system, did I
wrongly evaluate a system, is a criterion missing in the
categorization, etc etc. Sean Kinsey (developer of the easyXDM cross-
context communication framework - http://easyxdm.net/wp/) already
helped with many comments.

That's it. Hope someone finds this useful :)

Cheers,
Ivan

--
You received this message because you are subscribed to the Google Groups "Talk about Widgets" group.
To post to this group, send email to talk-abou...@googlegroups.com.
To unsubscribe from this group, send email to talk-about-widg...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/talk-about-widgets?hl=en.

Sean Kinsey

unread,
May 12, 2010, 8:58:08 AM5/12/10
to Talk about Widgets
And as a quick primer on how easyXDM can be used as the foundation for
a widget system:
A WidgetManager and a Widget class has been created as a proof-of-
concept that supports the basic sub/pub model.
This can be seen in action here http://consumer.easyxdm.net/v2.0.1/example/widgets.html,
and since _all_ browsers are supported, it works just as well in IE6
as in Chrome (although a bit slower).

This is as I said only a proof-of-concept so its very rudimentary, and
could with small adjustments be made to use the much faster (close to
postMessage) window.name transport for older browsers, instead of FIM
as it does now.
And for those who want to judge the speed of the window.name
transport, check out http://consumer.easyxdm.net/current/example/methods.html
(this sample will use postMessage where available and window.name
where not).
> context communication framework -http://easyxdm.net/wp/) already

Scott Wilson

unread,
May 14, 2010, 10:11:54 AM5/14/10
to talk-abou...@googlegroups.com
Looking good, Ivan!

>
> I'd appreciate any comments in any way: have I missed a system, did I
> wrongly evaluate a system, is a criterion missing in the
> categorization, etc etc. Sean Kinsey (developer of the easyXDM cross-
> context communication framework - http://easyxdm.net/wp/) already
> helped with many comments.

I think on the "Wookie" line:

- the name of the project is Apache Wookie (incubating)
- the system used is actually just an implementation of the Google Wave Gadget API; there was an earlier, functionally equivalent protocol we'd invented previously, but we discarded it in favour of adopting the one Google came up with.
- So its probably best described as "Apache Wookie (incubating) Google Wave Gadget Feature" to be consistent with the other entries.
- AFAIK Google's implementation also uses Comet for pushing states to wave gadgets (it uses XMPP for the federation protocol itself)

Also, I wonder where JMS-style solutions such as ActiveMQ might fit. E.g.:

http://activemq.apache.org/ajax.html

>
> That's it. Hope someone finds this useful :)

Definitely - I think there is a meetup planned around Wookie where IWC features are going to be one of the topics, so this would be a great starting point.

Ivan Žužak

unread,
May 14, 2010, 10:55:54 AM5/14/10
to talk-abou...@googlegroups.com
On Fri, May 14, 2010 at 16:11, Scott Wilson
<scott.brad...@gmail.com> wrote:
> I think on the "Wookie" line:
>
> - the name of the project is Apache Wookie (incubating)
> - the system used is actually just an implementation of the Google Wave Gadget API; there was an earlier, functionally equivalent protocol we'd invented previously, but we discarded it in favour of adopting the one Google came up with.
> - So its probably best described as "Apache Wookie (incubating) Google Wave Gadget Feature" to be consistent with the other entries.
> - AFAIK Google's implementation also uses Comet for pushing states to wave gadgets (it uses XMPP for the federation protocol itself)

Thanks, Scott -- I've updated the info.

> Also, I wonder where JMS-style solutions such as ActiveMQ might fit. E.g.:
>
> http://activemq.apache.org/ajax.html

Yeah, me too -- I'm thinking about how to classify all the many
similar server-side solutions based on a publish-subscribe model via
COMET polling a server component. I'm guessing there's a lot of those,
even simple chat applications used as demos for those servers would
fit into the classification. In any case, those will definitely make
it into the list.

If anyone has any suggestions how to fit those in without making the
list a 100 times bigger -- shoot :). Also, if you know of any other
systems besides activemq -- just e-mail me or leave a comment on the
wiki page.

>> That's it. Hope someone finds this useful :)
>
> Definitely - I think there is a meetup planned around Wookie where IWC features are going to be one of the topics, so this would be a great starting point.

Cool, hope it will be of some help!
Reply all
Reply to author
Forward
0 new messages