26 Jun 2007 dgh   » (Journeyer)

Building tubes



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.

Syndicated 2007-05-10 17:39:41 (Updated 2007-05-10 19:45:01) from Dafydd

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!