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.
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 new 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.