One of the reasons I got involved with building real-time web based communication applications with messaging, audio and video audio was because it was a stepping stone on my journey to find the holy grail of cooperative real-time web applications. These are web applications can be used in an N:N model (each user can simultaneously interact with all the other users). These type of applications are closer to real-life and are not restricted by the limitations of technology. As humans, we achieve a lot more when we work in teams and as a community . Now, thanks to the excellent work of the active Jitsi and retired Mozilla Labs teams, I have enabled the Openfire Meetings Collaboration API, a platform to explore real-time collaboration.
Openfire Meetings is an Openfire plugin that combines JItsi Meet, Jitsi Videobridge and TogetherJS to create a web-based platform with unified mutli-user communications (presence, messaging, audio and video) from which real-time collaborative web applications can be developed.
As each meeting participant can see and hear each other and share digital content in real time, we now have a working environment very close to real-life interaction. As a starting point, I have added the following demo/sample applications. The real power is when proper business applications are used, enabling tasks to be completed cooperatively by a team working together in real-time and not in a queue or by tag-teaming as we currently do today with email, social software and most web based business applications.
Co-Browsing
This is the simplest type of application that can be developed. It is a web site that enables joint navigation by all participants in the meeting. It is using the TogetherJS engine to track and show the multiple cursors and administer remote mouse clicks on each page. In the screen-shot above, I am co-browsing the ignite real-time web site which is not completely co-browse friendly as JIve SBS (for security reasons) does not permit itâs pages to be loaded in an iframe. Consequently, the community link click does not work.
Cooperative Editing
This is a modified version of âwootâ, a rich-text collaborative editor by kroky. There are tons of stuff on this subject matter. Just look up âgoogle waveâ. Etherpad is the most popular and mature implementation so far. I found this presentation very informative especially explaining operational transformation and why woot (without operational transformation) is simpler.
Cooperative Drawing
This is the TogetherJS drawing sample application. Openfire Meetings automatically saves the contents of each application for each meeting on the server as XMPP private data against each user that creates the content. Next time you have the meeting, the drawing or rich text pad opens at where you left it from the last meeting.
Scrum-Board for Post-It Notes
This an adaptation of Ali Asariaâs scrumblr application. It is a very visually appealing application with real-time animation and reminds me of my previous life as a multi-user virtual reality applications developer with VRML.
I have promised to explain in detail how to use Openfire Meetings and over the coming months I plan to post a few more blogs on this and how to use the collaboration api for those who may be interested in taking this journey with me.