DBus for Generic Data Access Methods?
Jim at mcdee.net
Mon Jan 29 18:20:03 CET 2007
I've been reading about the idea of generic access to a data store
for configuration information but was wondering if there are plans to
have generic access to actual data. There are two reasons why I believe
this is key to development of a system like OpenMoko:
* It allows developers to generate drop-in replacements for existing
functionality (don't like the existing contacts manager and want
to write your own? As long as you meet the interface contract
then no problems)
* It allows applications to obtain data (and also update it, of
course) without needing to know much about the external program(s)
out there. More importantly, it allows applications to obtain
data from arbitrary providers
Picking TomTom as the last example where the lack of the above annoyed
me, when setting up a route there was no way of saying "I want to go to
Fred's house" even though Fred's information was sitting there in the
contact DB of my 'smart'phone. So I had to load up my contacts manager,
copy Fred's postcode, and then go back to TomTom to paste that in. Then
of course I had to type in the house number, which I also didn't have,
so ended up having to jot it down on a bit of paper. Ugly ugly ugly.
The obvious communications mechanism for this is DBus, and in this
environment the interface contract would be a list of methods and
signals to implement on a given object path. Combining well-known paths
and methods with publish/subscribe starts to become very interesting.
For example, in your navigation app you ask for Fred's information.
This sends out a message to all address-capable applications.
Unfortunately although you have Fred's contact info on your 'phone you
don't have his address. Fortunately one of the apps listening to the
message is designed to hit a number of well-known directory services out
on the 'net and it finds the info you are looking for from one of those
and so you get the data you were after.
So what's special about the above example? It's modular: the person
who owns/writes the main contacts manager app doesn't know or care about
talking to directory services and focuses on generating the best app
they can. Separately, someone else writes the app that just queries
directory services for information given a key (email address, for
example). And although these two apps don't necessarily even know about
each other, or the navigation app, they all play happily together.
Anyway, I guess that my point is if there is some attempt to make
this work then the key things that needs to be sorted out is a set of
well-known object paths, methods and signals so that this type of thing
would work. Are there any moves afoot to look at setting up such
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the openmoko-devel