Question on service activation

Havoc Pennington hp at redhat.com
Fri Feb 23 06:24:28 PST 2007


Celso Pinto wrote:
> When a 3rd party application, let's say OOo, wants to send an email,
> it asks the broker for the default provider of the org.fd.Email by
> invoking the broker.GetDefaultProvider method. This method returns the
> "activatable" service name (which is, _by convention_, the same as the
> bus name: org.gnome.Evolution) and the path for the object once it's
> accessible (e.g. /org/gnome/Evolution, again a convention).
> 
> With this information, OOo can ask DBUS to activate the dbus service
> org.gnome.Evolution.

I wouldn't do it this way; it's significantly worse than normal dbus 
activation, if only because it's more complicated for the app. Also 
though, right now you can activate just as a side effect of talking to a 
name, that is, with *zero* round trips - which means both efficiency and 
no race conditions.

What we should do instead, IMHO, is modify the dbus daemon so the 
current desktop environment can tell the daemon which provider of a 
given bus name is preferred by the user. This will leave everything 
unchanged from an application perspective and mean that if you talk to 
org.fd.EMail it "just works" because the bus daemon knows which email 
app is the user's preferred one and starts that app to own the service.

Havoc




More information about the dbus mailing list