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