Re: D-Bus



On 4 Mar 2003, Michael Meeks wrote:

> > Yes, it is true that by using ORBit-specific non-CORBA functionallity you 
> > can in fact get connection-based lifetime handling for a simple 
> > daemon-style setup (such as a message bus). However, it is much less 
> > useful when handling for instance embedded UI components, or any other 
> > case where object ownership is "interesting". 
> 
> 	Sure - I'm happy to extend the ORBit2 functionality beyond what CORBA
> specifies, that's no real issue. However - you say that the lifecycle
> problem exists - and that it's much less useful for handling embedded UI
> components - and yet you appear to propose no solution - short (I
> imagine) of glupping everything into one big fragile process.

The reason I don't propose a solution is that its a really hard problem, 
and I have no good solution to it.

Darin once experimented with changing the distributed refcounts to 
object leases. That may be on possible solution, or perhaps its just 
changing one set of problems into another set.

At the moment, with what we have now, I think the reasonable thing to do 
is to put as much as you can in a single process, and when you need 
out-of-process components you need to make the ownership model as simple 
as possible. Try to have clean small ownership-webs, with no 
back-references. This way it might be possible to use the ORBitConnection 
"broken" signal to avoid getting stale processes. Be very careful with 
how and when you use Bonobo_Unknown_ref and don't pass object references 
around unless you really really need to.

[Warning, personal opinion, Potentialy flame inducing:]
I also want to point out, although I know we disagree on this, that I 
think the whole "fragile single process" idea is completely wrong. A 
multiple process app is just as fragile. To a user the idea of "only half 
the process crashing" is basically the same as the whole app crashing. If
this doesn't make the other half totally confused and crashy it probably 
at least makes the app unusable to the user. You might get a chance to 
save part of your work, but I wouldn't trust a half-crashed app to save my 
data correctly. In practice, we just have to fix all crasher bugs, and 
multiple-process app just adds more failure modes.

However, I do think that there are times when out-of-process components 
are useful. Such as document embedding in an office suite. I do think its 
pretty uncommon for it to be useful though.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's a scarfaced skateboarding card sharp for the 21st century. She's a 
cold-hearted psychic vampire with the power to bend men's minds. They fight 
crime! 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]