Python, Daemons and D-Bus

Sebastian 'lunar' Wiesner basti.wiesner at gmx.net
Sat May 24 15:46:49 EDT 2008


[ PurpleServerMonkey <PurpleServerMonkey at gmail.com> ]

> Would you use D-Bus or a more traditional IPC method such as sockets?
> Although D-Bus is relatively new it looks interesting, just not sure
> it would work well in this kind of project.

DBus is not really intended for private communication between processes of
the same application, but more for intercommunication between different
applications.  If the IPC interface of your backend daemons is intended to
be used by other applications, DBus is the right choice, otherwise I would
choose something different.

The reason is, that DBus doesn't know about applications.  It exposes all
objects registered on the bus to every DBus client on the system and so
makes you application-private API available to the public (and spams the
bus with lots of generally useless objects ;) ).

In case your IPC interface is application private, a custom IPC protocol
(probably using XML RPC over unix sockets) is better suited.

Moreover you should make your choice dependent on the type of data you
transmit.  Both DBus and XML-RPC wrap calls into XML messages, which is
terribly inefficient for large binary data.

-- 
Freedom is always the freedom of dissenters.
                                      (Rosa Luxemburg)



More information about the Python-list mailing list