Personal tools
You are here: Home Products Plone Roadmap #49: Livepage - realtime bi-directional browser-server communication without page reloads
Document Actions

#49: Livepage - realtime bi-directional browser-server communication without page reloads

Contents
  1. Motivation
  2. Proposal
  3. Implementation
by Alexander Limi last modified March 21, 2007 - 08:48
Proposed by
vinsci
Proposal type
State
draft

Motivation

With Opera 7.60 all major browsers finally have support for XMLHttpRequest. This enables web applications to make use of realtime updates to pages or any part of a page, as well as enabling the server to receive realtime events from the browser, without having to reload the page.

This opens up a whole new class of web application possibilities, such as realtime updates of a calendar view as events are edited, mail and workflow inbox lists, on-page chat without java (see nevow's chatola demo), realtime monitoring of any server-side data, etc, etc.

Proposal

Implement livepage as in nevow 0.3.

Implementation

Look at the implementation in Nevow 0.3. Obviously, things on the server side will be different in zope.

Server side will need its own Thread. For examples of Threaded Zope objects, see for example:

- SecureMailhost, http://cvs.sourceforge.net/viewcvs.py/collective/SecureMailHost/

- ZExternalNews, http://www.zope.org/Members/odeckmyn/ZExternalNews

Why was this rejected?

Posted by Justin Ryan at March 19, 2007 - 18:02
I'm curious why this was rejected, and suspect that it may have had something to do with KSS in Plone3. I want to express support for this idea on two counts:

(a) LivePage and KSS should be able to complement each other
(b) LivePage / Nevow are based on Twisted, which is also now available as of Zope 2.9 or 2.10 as a ZServer implementation via wsgi.

This is definitely at least worthy of exploration, or non-rejection. Maybe it's Plone4 or 5-land, maybe something needs to be done for Zope first? Hard to say, but it might help with some issues I have noticed with even simple things like drag and drop, kss or no, where maybe 30 of requests fail. If we can keep a pipe open to a thread we get two advantages:

(a) lack of random network failure, maybe by locallly queuing messages until a connection is re-established? ui could even allow to cancel pending events.

(b) keeping a live thread may interact well with various memory / object cache(s).

Cheers!

typo

Posted by Justin Ryan at March 19, 2007 - 18:04
Whups, typo, should be "30% of requests fail"

e.g. it took maybe a half hour today to reorder ten or so items in a folder because i had to continually reload a view of the folder, etc.. sometimes items were moved halfway as far as they should.

Re: Why was this rejected?

Posted by Leonard Norrgard at March 20, 2007 - 11:46
According to the hidden History-field (under the headline at the top of the page) it was rejected by Hanno Schlichting with his motivation:

"While the ideas of this proposal have found consideration, the actual implementation requires a bit more work and a more detailed description. There are new PLIP's in the row which offer these, so this old one can be send to PLIP heaven."

For the record, I don't think it's a good idea to reject PLIP:s for these reasons, as it has the side-effect of also hiding the description of the idea/concept. Also, imho rejections shouldn't happen without discussion on the PLIP page.

Another problem we seem to have with PLIP handling is that apparently the author doesn't get notified on events related to the PLIP, such as a new comment or a state change.

Another idea for improving PLIP management (before I forget it):

- add an array of two fields "Related PLIP" (clickable link), with a one-line "relation comment", so that various PLIP:s that describe somewhat similar ideas can be easily found

Thanks!

Posted by Justin Ryan at March 20, 2007 - 19:34
Leonard - thanks for digging under the CSS.

I think Hanno's response is centrally correct, that this needed to be more thought out, which I hope my notes have helped. I would be more than happy to help in revising and driving this plip, and personally contacted the author offline as well as commenting.

Again, this is definitely not Plone3, probably not Plone 3.5, but it would be an exciting development and we can make it happen with a bit of determination.

I also agree with you, btw, that the plip process may hurt from hard rejection. Rejection is absolute, and acceptance never is. submitters should be notified and in fact think this could be helped by proposed notification infrastructure improvement in Plone.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by