Part of the One Laptop Per Child vision is that children can use the laptop in a very social way. Bringing this vision about involves making it very easy for programs on the laptop (activities in OLPC parlance) to talk to each other. When Collabora was handed the challenge of making this happen, it fit well with an an idea that had been floating around for a while: namely Application Data Channels, a Telepathy interface for sending arbitrary data to your contacts.
While designing a solution for OLPC, we adopted two key simplifications. Firstly, we decided to reuse D-Bus's nice data marshalling and method/signal model, since Telepathy applications will be using D-Bus anyway. Secondly, we dropped the somewhat unwieldy "Application Data Channels" name in favour of calling it tubes.
Last year, Mads Olesen worked on a Google Summer of Code project to introduce Application Data Channels to Jabber. By building on Mads' work, Guillaume laid the groundwork for Jabber tubes in Telepathy. Then, with a bit of libdbus hacking, I got our first tube hooked up.
Since then, we've built an OLPC activity that uses tubes to implement networked board game, Marc Maurer has started on an AbiCollab backend for tubes, and work has begun in Sugar on making tubes really easy for activities to use.
In short: opening a Telepathy tube tube gives you a way to talk D-Bus over the network, without worrying about the underlying protocol. I'm really excited about the sort of things that people will build with this, in OLPC and beyond.
Image © flickr user swafo; licence cc 2.0 by-nc-nd.