Proposal and RFC: DAL, the Desktop Abstraction Layer

Jamie McCracken jamiemcc@blueyonder.co.uk
Fri Jan 14 04:33:32 PST 2005


Kalle Vahlman wrote:
> On Fri, 14 Jan 2005 11:37:13 +0000, Jamie McCracken
> <jamiemcc@blueyonder.co.uk> wrote:
> 
>><moving this to dbus/xdg lists>
>>To sum up, profiles (as in Bluetooth Profiles) allow you to define a
>>common interface with methods and events which would be publically
>>documented.
> 
> 
> Probably I'm missing something, but how is this different from well
> defined, standard services? You would have a specification of an
> service (what interfaces it should implement, parameters and so on
> with guidelines to create a program to offer that service),
> preferrably sanctioned and maintained by some group of people who do
> stuff like that ;)
> 
> In fact, I'm working on just a thing like this which I'll bring to XDG
> once I get the proof-of-concept work done.
> 
> If the additional abstraction is needed, perhaps the service in
> question could use some optimizing love...
> 

Well lets say I write an app that needs to interface with an email 
client. I dont know what email clients a user has so I would need to 
lookup what email services are available on Dbus.

I could look at the dbus service name to decide if something was an 
email service (which is a really informal and unreliable method - 
suppose a wordprocessor implemented an email facility how would I know 
it has email support from Dbus?)

Then how would I know if it implemented a standard interface? I would 
have to write a lot of code to introspect its methods/signals to see if 
it meets my requirements - not good! (Dont forget versioning too - what 
happens if your standard services spec changes? How will I know which 
version they support? etc - sounds like DLL hell to me!)

So alternatively if we have profiles then all I have to do is ask dbus 
which services support a requested profile. Because different versions 
of a profile would have a different profile ID I dont have DLL hell as I 
simply request for a service that I know implements a predefined spec. 
Its simple and just works and theres no need to introspect anything so 
its fast and efficient too.


jamie.


More information about the dbus mailing list