Towards better OAF/Bonobo integration



For some time Michael Meeks and I have been discussing ways to make
OAF and Bonobo more closely integrated.

One key step that we feel would improve the consistency of the
platform is to make all of OAF's IDL interfaces (most particularly the
public Factory interface) inherit from Bonobo::Unknown. This is also a
critical step to developing a future public CORBA API to OAF
activation, another goal Michael and I agree on.

In some ways, the best approach to achieving tight integration would
be to merge the two modules; it really does not make that much sense
to separate activation from the rest of the component model. However,
Michael and I are right now unsure of our ability to work well
together within the space of a single module, given some of our past
disagreements.

So after some discussion I came up with this plan, which we believe
would largely avoid the potential for massive argumentation while
delivering many improvements to the platform. I think the plan
outlined below is pretty good, and Michael said he would consider it
over the weekend. He asked me to mail a write-up of the proposal to
him and gnome-components-list.

Without further ado, here's the plan:

* We would Bonobo::Unknown IDL interface from the libbonobo module to
the oaf module.

* The relevant GObject-based server and client convenience APIs would
remain in libbonobo.

* I would promise that I (or any of my successors as OAF maintainer)
will never change the Unknown interface without the express permission
of Michael (or his successor as Bonobo maintainer). As far as I know
the only proposal even on the table to do this is Darin's lease idea,
and that definitely needs consensus before it goes in.

* All of OAF's IDL interfaces, public and private, would be changed to
inherit from the Unknown interface.

* All of OAF's IDL interfaces, public and private, would be moved into
the Bonobo:: namespace.

* OAF would be renamed to bonobo-base to recognize it's role as part
of the Bonobo component model.

* I'm not certain about this, but perhaps OAF interfaces that pass
around CORBA_Object's could be changed to pass Bonobo_Unknown's. I'm
not sure what level of breakage vs. benefit this would cause just yet.


* Longer-term, OAF would provide a public CORBA interface to querying
and activation in addition to the current C API (and perhaps someday
the C API might be deprecated, who knows).


What will this mean for projects that use OAF but not Bonobo? Probably
not that much. You won't have to change your porject to depend on
libbonobo if you don't absolutely want to (although libbonobo provides
many useful facilities which are highly recommended).

What does this mean for projects that currently use Bonobo? You'll
benefit from more API consistency, tighter integration, and more
reusability for the GenericFactory interface, among other things.

Comments, anyone?


Regards,

Maciej




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