Re: ORBit (was Re: * mico)




> We can reuse some code from existing projects - for example, the IDL
> compiler can be the standard OMG one with a plugin backend for our ORB.
> The Interface Repository used can be the one in mico.

The Flick optimizing IDL compiler generates very good marshalling code
in C but it has a very poor ORB (it is just a skeleton that allowed
them to test Flick generated stubs).  I talked to the Flick people
about this, and the plan is to plug the Flick marshaller to another
ORB.

Also, flick is known to produce the fastest marshallers in the planet,
by over an order of magnitude to any other competing product. 

Flick is designed as a modular compiler: there is a front-end parser
(one of the front-ends happens to be the OMG IDL (the corba idl)),
there is an optimizer and a back-end (and one of the backends happens
to talk iiop, the CORBA over-the-wire protocol).

This split exists in the form of different executables.  Each pass of
the compiler generates a file for the next pass, so extending Flick to
generate the stubs we require only requires touching a very small part
of the compiler as well as writing our C-based ORB replacing the
minimal ORB that Flick ships with. 

So, we could write a C backend trivially, and Objective-C backend
trivially.  For scripting languages, we need to use DII/DSI, so our
ORB should support those as well.

> >From scratch, we would need to implement:
> 	  The basic ORB itself
> 		  (de)marshalling of all the types
> 		  The core ORB functions
> 		  IIOP

We probably just need the core ORB functions as Flicks provides
already the IIOP and the marshall/unmarshall routines.

> 	  The backend for the IDL compiler

This should probably be a Flick modification.

> 	  The BOA
> 		  Shared library, persistent, and dynamic activation

There is a new adapter from CORBA apparently which addresses some of
the problems in the BOA, it is called the POA I believe.  I have not
looked for it yet, but apparently the MICO team is implementing this
now.



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