[omniORB] omniORB 3.0.x

Daniel Popowich popowich@chiliad.com
Wed, 10 Jan 2001 15:03:02 -0500


W. Eliot Kimber writes:
> Daniel Popowich wrote:
> > 
> > Duncan Grisby writes:
> > > On Wednesday 10 January, Ben Miller wrote:
> > >
> > > > In that case, can I use omniORB3 with RMI over IIOP?  I've seen some
> > > > discussion on this list previously that suggested that this could be
> > > > done (http://www.uk.research.att.com/omniORB/archives/2001-01/ - Re:
> > > > [omniORB] RMI over IIOP).  However, the RMI-IIOP discussion on Sun's
> > > > web-site
> > >
> > > I'm pretty certain that omniORB cannot be used with RMI-IIOP at the
> > > moment, no matter what types you use in your Java interfaces. If
> > > anyone knows otherwise, please let us know.
> 
> Just an info question: How is RMI-IIOP different from simply using CORBA
> object through java? I have the latter working with no difficulty (just
> ran idltojava on my IDL and imported the resulting client stub classes)
> against an OmniORB server, so I assume that RMI-IIOP is different from
> just using the built-in java ORB.

Simply, instead of being IDL->java, it's java->IDL.

With RMI-IIOP, java programmers don't need to know a thing about IDL.
They write their interfaces in java and implement their servers in
java, just like RMI.  Java client programmers can use the java
interfaces without having to know any IDL mappings.

It works like this: you write your interface in java, implement your
server in java and then run the rmic compiler with a special switch,
as in: 'rmic -iiop -idl mydomain.Foo' and *poof* you end up with
Foo.idl.  Now c++ or python programmers can compile Foo.idl and
communicate with the java server.

The problem folk are having is this: java passes by reference, so to
express java in IDL required a new IDL type: valuetype. This allows
passing objects by value.  Think of it as a struct with methods, or an
interface with data.  The irony is that no other orb other than Sun's
jdk (that I know of) support the new IDL types.  So, it will be great,
someday.

Daniel Popowich