WaveOne, the new wave server developped by ProcessOne, has been demoed at Google I/O.
ProcessOne has been invited to join the Wave area in Google Developer Sandbox at Google I/O 2010 in San Francisco.
Mickaël Rémond, the founder of ProcessOne, has been invited by Google in the context of the Google I/O event, to write a blog post to introduce WaveOne, our own wave server implementation.
WaveOne is basically an ejabberd module, so it is written in Erlang. It features an Operationnal Transform engine, as well as a Wave Store. It means that with the help of a client, you can – on your own WaveOne server installation – create, edit, store and share wavelets.
The WaveOne extension to our XMPP client OneTeam enables you to manage your wavelets (and blips), like create, edit, as well as add participants to wavelets, still on your own WaveOne server installation.
With the WaveOne client and server, you can collaborate in real-time internally, as well as externally, thanks to the federation capability. WaveOne supports federation with Google Wave in both directions. You can host the wavelets on your local server and have remote participants or you can do the reverse and participate to wavelets hosted on the Google server. This enables you to add participants, or be added as participant, to wavelets hosted on any wave server. Everything works in real time with character by character support.
Here is a screenshot that shows a wavelet (containing two blips) edited both on Google Wave and ProcessOne’s WaveOne:
The result is much like having your own e-mail or XMPP client and server under your own control. This is built on the power of XMPP-based federation.
A handy feature of our WaveOne implementation is the capability to share a textarea of a webpage, for collaborative real-time text editing. This has been demoed at Google I/O, and has received much interest. Here are some sample screenshots.
The user right-clicks in a textarea, and shares it:
He adds participants to the wavelet:
All participants can collaboratively edit the text in real-time: