Service names and object paths
mardy at users.sourceforge.net
Tue Jan 11 02:28:38 PST 2011
On 12/29/2010 08:15 PM, Will Thompson wrote:
> On 26/12/10 16:20, Alberto Mardegan wrote:
>> I'm considering implementing a new low-level IPC system, and I'm
>> planning it so that most of libdbus APIs could be implemented on top of it.
> I'm intrigued. What do you have in mind?
I'm still in the stage of planning it on paper, so take it as a very vague idea:
it's an local IPC mechanism with a centralized server which maintains the list
of the connected clients and the active service names, similar to what
dbus-server does. Except that these information would be exposed in shared
memory tables, so that apart from the initial registration all the communication
among clients in the net would happen directly without passing through the server.
When a client registers, it would also tell what IPC mechanism should be used to
send messages to its process: it could be a socket, a FIFO, a POSIX message
queue. But all these transports could be used mostly as signalling mechanisms
only, so they would point to to a shared memory object where the data (the
messages) is to be found.
The net would support a 1-to-many messaging passing, similar to DBus signals,
but with match rules replaced by tag lists: a process can tell the server what
tags it is interested in, and when a client emits a message (which is not
directed to a specific service name), it would deliver it to all clients
interested in a subset of the tags carried by the message. For reimplementing
Dbus on top of this, one would use the components of a dbus match rule as the tags:
Tags would give more flexibility in match rules, and cleaner than the various
argX and argXpath hacks we currently have in D-Bus.
Of course, the match rules would also be exposed in shared memory.
The above is just a very simplified (and confused, probably) description of the
whole. When I'll be more confident about the design, I'll explain it in greater
http://blog.mardy.it <-- geek in un lingua international!
More information about the dbus