Python, Daemons and D-Bus

PurpleServerMonkey PurpleServerMonkey at gmail.com
Sat May 24 20:04:27 EDT 2008


On May 25, 5:46 am, Sebastian 'lunar' Wiesner <basti.wies... at gmx.net>
wrote:
> [ PurpleServerMonkey <PurpleServerMon... 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)

Thanks Sebastian,

Your comments make a lot of sense. I was thinking of creating a custom
session channel and using that for my purposes but as you mentioned
it's not very secure and I do want to keep the server to daemon
traffic private, the server has an XML-RPC interface with a public
API.

Will definitely look at using a different IPC mechanism for this part
of the project.



More information about the Python-list mailing list