DBus over the network; clustered machines acting as one; service discovery

Avery Pennarun apenwarr at gmail.com
Tue Apr 8 18:02:49 PDT 2008


On Tue, Apr 8, 2008 at 8:26 PM, Shawn Rutledge
<shawn.t.rutledge at gmail.com> wrote:
>  Has anybody been running dbus across the network yet, for example to
>  bind together a cluster of machines?

Yes, WvDbusd is an alternative to dbus-daemon which supports DBus over
TCP and SSL.  We plan to add Avahi (or some other kind of) service
location within the next few months.

Note that a very basic way to handle this would be to have a single
central bus that everyone connects to.  If you're not going to do
that, you'd need to have a bus proxy service of some sort (ie.
something to connect two buses to each other).  This ought to be
fairly easy to do with WvDBusd, although nobody has done it yet.  (The
hard part is making sure all the service registration/unregistration
messages get handled correctly.)

>  It seems there must be about 3 levels of discovery in general:
>  [1] discover the buses (local, remote, IP and non-IP)
>  [2] discover the services
>  [3] discover the methods that can be called and signals that can be sent
>  and received

[1] could be done by either putting everything on a central bus and
discovering with Avahi, or by proxying between buses automatically and
discovering *all* of them with Avahi.

[2] is easy since DBus already does that stuff.

[3] is sort of easy, as DBus provides optional ways of doing such
things, although it's not very useful.  After all, if your app doesn't
even know which services are out there, it probably also doesn't know
what to do with them if it *did* find them.

Have fun,

Avery


More information about the dbus mailing list