Proposal and RFC: DAL, the Desktop Abstraction Layer
David Eriksson
twogood@users.sourceforge.net
Fri Jan 14 07:23:51 PST 2005
On Fri, 2005-01-14 at 14:44 +0000, Jamie McCracken wrote:
> Looking at the API, I cant see a function that retrieves a list of
> services that implement an interface.
>
> Dont forget we are not just dealing with services that are running and
> looking at the API I also can't see an easy way of saying activate a
> service that implements the interfaces x,y and z (maybe I have missed
> something? - The impression I get is Dbus knows bugger all about
> interfaces).
I consider it a feature that D-BUS has a very dynamic approach and does
not impose specific interfaces on its services. If I wanted strictly
specified interfaces, I could write IDL files and use CORBA! :-)
Speaking of CORBA, pre-defined interfaces for doing this and that exist
there already and are called "CORBAservices":
http://www.omg.org/technology/documents/corbaservices_spec_catalog.htm
Anyway, if someone feel the need to be able to activate a service that
implements interfaces x, y and z I suggest something like the following.
It does not require any changes to D-BUS:
1. Create a D-BUS service with interfaces to:
a) register what interfaces a service provides
b) activate a service that implements interfaces x, y and z
2. Let the services be responsible for providing the interface they say
they provide.
3. Encourage those who implements FreeDesktop.org's and others'
standardized interfaces to have their applications register with the
above D-BUS service.
By the way, I don't think interface versioning is such a big issue with
D-BUS. If, for example, a method gets a new parameter, the server can
check for the presence of that last parameter and use it if it was sent
by the client. If the data type for a parameter changes, the server can
check the data type before reading the data.
--
Regards,
-\- David Eriksson -/-
SynCE - http://synce.sourceforge.net
ScummVM - http://scummvm.sourceforge.net
Desquirr - http://desquirr.sourceforge.net
More information about the dbus
mailing list