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