OLPC asked us to help with communications technology for their Sugar platform, and in response, we built collaboration tools into Telepathy.
The nonprofit One Laptop Per Child organisation, in developing the Sugar operating system and application suite for the XO computer, wanted extraordinary collaboration capability. They decided that Sugar's collaboration features had to go beyond simple one-on-one text chat, or even text and video chat (which Collabora added, using XMPP/Jingle). So OLPC joined with Collabora to develop a broader spectrum of collaborative capabilities, based on the Telepathy framework.
OLPC and Collabora aimed to make collaboration a lightweight service available to an application (or "Activity"). What if users and applications could communicate in terms of people, not in terms of network protocols? As Collabora developer Dafydd Harries explains, the Telepathy framework was an ideal abstraction layer:
This was attractive to OLPC because they had use cases that were suited to different protocols: XMPP, for when the kids are in school, because it scales better to lots of kids, and link-local XMPP (implemented via the Salut connection manager of Telepathy), for when the kids are away from school and don't have access to a server.
Collabora recognised that Telepathy could also take care of the protocol details of application-to-application communication, allowing users to collaborate seamlessly. Towards this goal, Collabora invented Tubes, a component of Telepathy that enables programs on different computers to talk to each other in terms of D-Bus. Prior to Tubes, the standardised D-Bus API was only useful inside a desktop session, so that one user's desktop applications could talk to each other. Since Telepathy already specified communication in terms of a D-Bus API, Collabora extended the usefulness of D-Bus to connect desktops. Harries explains:
Tubes come in two flavours: one looks like TCP, the other one is D-Bus. What D-Bus tubes do is make it so that programs on different computers can talk D-Bus to each other. So the D-Bus part is working on two levels. First, you use D-Bus to talk to the thing that gives you the tube. And then you use it to talk to the thing on the other end of the tube, once you've set it up.
Tubes became the standard building block of OLPC activity collaboration. With Tubes, my copy of program X doesn't need to care about the details of how it's going to talk to your copy of program X.
With Sugar's collaboration framework, users could play a Connect 4 game against each other or even measure the distance between their two laptops with the educational Acoustic Tape Measure.
TCP Tubes allow reusing already existing networking code, which helped add collaboration features to Abiword: users on different laptops could read a document together.
Sugar Labs has continued to promote the Collabora model, and now collaboration is incorporated into most Sugar Activities, as well as the Sugar data store. And Tubes hasn't stayed confined to Sugar.
For example, the Share My Desktop feature is just one Linux desktop project taking advantage of Tubes, and the Etoys project uses the Collabora model from within a Smalltalk environment.
Thanks to Collabora, those children have even more ways to share and learn together.