[jdev] Whiteboard functionality for xmpp protocol in pidgin.

Tom Pusateri pusateri at bangj.com
Mon Nov 15 15:27:38 CST 2010

I've implemented XEP-0284 on the iPad and its in the App Store as jabberPad (http://itunes.apple.com/us/app/jabberpad/id372857200?mt=8). Initially, currently it only has support for serverless messaging (XEP-0174) but I'm working on adding jabber server configuration.

I definitely think SVG documents are the right way to represent the Whiteboard. It provides an open standard to share the whiteboard document which I think is important. You can also export it as a file to users who don't have a whiteboard capable client and they can still follow what's going on. I have kept the timing information in place to allow playback of an SVG document with real time in a browser (which is supported by Chrome, Safari, and Firefox). I've attached a sample SVG document that was generated by my implementation with timing that you can play back in a browser.

Once you see the benefits of SVG (which is XML), then you're basically talking about shared editing of an XML document. The question then is how do you ensure synchronization between users. There are two common ways. One is Operational Transformation which is what Google used for Wave. It was very slick and had a theoretical correctness proof but it was not easy to implement. The other is referred to as Post OT schemes using unique symbol identifiers and timestamps. This is what is used by Eclipse and also chosen for XEP-0284. It is much simpler to implement but no correctness proof exists. It relies on time synchronization between participants which may not exist.

My implementation only understands a subset of SVG and expects certain characteristics like 'xml_id's to carry the unique identifier. I probably should write up the assumptions so it can be interoperable. I'd be willing to share any info I can with you if you decide to proceed with XEP-0284.


On Nov 15, 2010, at 11:22 AM, Rohan Jain wrote:

> Hi all,
> We are planning to implement a Whiteboard functionality in pidgin, which presently extends to only Yahoo Doodle and Silc. Our plan is to do it on the XMPP protocol. There is a POC we wrote for Pidgin at: http://www.rohanjain.in/blog/whiteboarding-with-xmpp-google-talk/#updates. You might pick up the repository from: github.com/dcrodjer/pidgin_whiteboard
> Now we are concentrating on a standard protocol for the same.
> The problem that we are basically facing is that there is no accepted protocol, and most of the XEP's are not recommended, or diverge in ways that it is difficult to choose one. When I say most, they include:
> http://xmpp.org/extensions/xep-0284.html
> http://xmpp.org/extensions/xep-0228.html
> http://xmpp.org/extensions/xep-0113.html
> http://xmpp.org/extensions/inbox/whiteboard2.html
> What we would like to know from the community is that, which of the protocols are really going in production into various whiteboards for XMPP. I would assume gajim, coincella and the like have implemented some versions of the same! Also considering interoperability into account, which of the XEP's are the best to go ahead with.
> Hope to hear from you soon.
> Rohan Jain
> _______________________________________________
> JDev mailing list
> Forum: http://www.jabberforum.org/forumdisplay.php?f=20
> Info: http://mail.jabber.org/mailman/listinfo/jdev
> Unsubscribe: JDev-unsubscribe at jabber.org
> _______________________________________________

More information about the JDev mailing list