Comments on the baboon plugin spec



This stuff will be really nifty, since it will let people use shared
libraries from any language supported by orbit. When my C++ bindings are
finished, stupid people (like me) will be able to write components in
C++ and the C people will be able to use them without having to write
nasty wrappers or de-mangling dodgy C++ method names - Hurrah! 

I was just wondering whether it might be better not to have the api
explicitly deal with shared libraries (i.e. dlopen etc..), but instead
register the component as a shared library with the implementation
repository. The client then treats it as a standard corba object (i.e.
uses nameservice/trader or stringified-IOR).

How it could work:

1) Client attempts to use IOR which contacts the Implementation
repository (IMR) - see my mail about IMRs for details

2) IMR checks the vendor TAG in the IOR (do we do that yet?) to see if
the client is an ORBit orb. If so it contacts the orb through a
proprietary interface and returns the path to the sharedlib.

3) The orbit orb dlopens the shared lib and then handles activation and
deactivation of the server - it collates the client with the server.

If the client isn't an ORBit orb, the IMR starts up a seperate orbit
process which dlopens the sharedlib and then provides external access to
it via IIOP - this means other orbs will transparently be able to use
the component (hurrah).

Hmmm... actually this isn't an either/or problem - we can use both APIs
(the transparent corba reference API would simply use the gnome_plugin
api internally). 

BTW I'm not sure that gnome_plugin is the right word for this
functionality - what we are implementing here is shared library orbit
corba servers. Perhaps 'orbit component' might be a better name.

Cheers,

Phil.

P.S.  is there a baboon mailing list yet?

P.P.S  Has anybody looked at the corba lifecycle stuff in relation to
creation and deletion of components. Some sort of reference-counting/
garbage-collection may be needed.



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