Service names and object paths

Alberto Mardegan 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:

path='/org/freedesktop/Telepathy/AccountManager'
type='signal'
interface='org.freedesktop.Telepathy.AccountManager'

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 
detail.

Ciao,
   Alberto

-- 
http://blog.mardy.it <-- geek in un lingua international!


More information about the dbus mailing list