Hi Everyone

The idea of realtime collaboration, and the thought of it being implemented
on MediaWiki based sites has amazed me ever since I read about it in the
strategic proposal about Realtime collaboration here[1].
I really wanted to work on it as my GSoC project and through some fruitful
amount of discussions with devs on IRC, this has got me all the more
excited about it.

With the way, Visual Editor has been fundamentally constructed, it should
support effectively building realtime collaboration over it. The
combination of its transactions and annotations provides a structure that
is similar to what is implemented in Google Wave. Operational
Transformation and composition concepts as used by Google Wave can be put
in action on Visual Editor to consolidate the concurrent operations and
prevent conflicts.

The project should include implementing a collaboration server(built on
Node.js), which would serve to the connected clients the wiki page content
in form of a DOM structure and receive the editor transactions from the
clients, transform them against the converging document state and broadcast
them to the other clients. A client adapter would be built which would hook
into the editor's transaction system and transmit them to the server.

With the help of suggestions by Trevor and Gabriel, I've been able to start
some work on this idea. I've wireframed a raw collaboration server and the
client adapter, which works by naively communicating the transactions among
the clients via the server. I'm now working on implementing some sort of
concurrency control on the transactions. All my experimentation work lives
in my GitHub repository[2].

Inviting feedback. Thank you.

Links:
[1] -
http://strategy.wikimedia.org/wiki/Proposal:Collaborative_Google_Wave-based_Wikipedia_editing
[2] - https://github.com/dash1291/VE-collaboration

More:
http://www.mediawiki.org/wiki/Future/Real-time_collaboration
http://www.mediawiki.org/wiki/Visual_editor/Realtime_collaboration

-- 
Ashish Dubey
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to