just what is a Tube? (was: demarshalling messages)

Simon McVittie simon.mcvittie at collabora.co.uk
Fri Mar 23 12:20:34 PDT 2007


On Fri, 23 Mar 2007 at 19:31:26 +0100, Kevin Krammer wrote:
> I am either missing a couple of postings of this thread or this information 
> has so far not been available to the majority of discussion participants.
> 
> Hmm, thinking about it, it could also be a clever joke along the "the Internet 
> is a series of tubes" fun.

That's where the name came from - we'd originally called the technology
"AppConnect", but while discussing it with some OLPC people we decided
"Tubes" was much catchier!

Some background: I work on the Telepathy instant messaging framework, in
which "connection managers" (daemons implementing IM network protocols)
communicate with GUI clients over D-Bus. As well as letting the same GUI
client use any protocol by talking D-Bus to a suitable connection
manager, this lets you do interesting things like having a chat UI and a
VoIP UI share a connection to the IM server - this is already implemented on
Nokia's 770 and N800 Internet tablets, and is on the way to a Linux
desktop near you :-)

"AppConnect" (as it was originally called) was devised as a way to
enable collaboration using some sort of collaboration plugin to existing
apps (AbiWord and Inkscape are often used as examples) which would
communicate with the other user's app by tunneling data through the IM
protocol, either through the server or peer-to-peer. We've recently
revived that project under the name "Tubes" because the One Laptop Per
Child people are interested in using it for collaborative writing,
drawing, browsing and anything else they can think of.

AppConnect was originally going to provide reliable TCP-like streams,
but we've realised that using tubes as a D-Bus transport ("D-Tubes")
actually gives us a much nicer protocol - in particular, we can do a
multi-participant conversation by treating the IM protocol like a bus
daemon. On XMPP we can even emulate the bus daemon with a chat room,
send signals as broadcast messages to the room (re-broadcast by the
server), and send method calls and replies as unicast messages to individual
participants; if we set up a mapping between unique bus names and
the identities of participants, and have the connection manager enforce
that mapping to prevent spoofing, we get something that looks a lot like
a decentralised bus daemon. Obviously it's not quite D-Bus (it's
somewhere between a real bus daemon and D-Bus' peer-to-peer mode), but
it should be close enough to enable some very interesting applications.

Do talk to #telepathy on Freenode, or telepathy at lists.freedesktop.org, if
you're interested! Dafydd Harries (daf on IRC) is leading tube development
at the moment. The specification so far can be found in the Darcs repository
at <http://projects.collabora.co.uk/darcs/telepathy/telepathy-spec/>.

	Simon
-- 
Simon McVittie, Collabora Ltd.: http://www.collabora.co.uk/


More information about the dbus mailing list