This forum has been archived. Please start a new discussion on GitHub.

Porting to Ice from Orbacus

We have a legacy project that was written on top of Orbacus. I am looking to use it at the basis of a new open source project, and am looking for a replacement ORB. How much work will it be to port it to Ice, as opposed to finding an open source CORBA ORB? We used the Naming and Event services extensively, and the project was more peer-to-peer than a typical CORBA project.


  • It is difficult to say without knowing a lot more about your project.
    You don't say what language. C++, Java? What IDL types are used for your definitions? (IDL and Slice differ in the types they provide. Are you using type Any, the DII?)

    Ice does not have a naming service (and does not need one) because proxies are not opaque. To get access to initial bootstrapping objects, you can use IceGrid. For other proxies, you can simply construct them using as the object key the name that you would otherwise use to look up an IOR in the naming service. Ice provides IceStorm, which is similar to the CORBA event service, but is simpler and more scalable. In addition, IceStorm does not require the application to be aware of the channel topology for federation.

    In general, Ice is similar to CORBA "in spirit", but quite different (that is, much simpler) than CORBA in detail.

    I suggest that you have a closer look at Ice and write a few simple programs. This will give you a much better feel for what is possible. Most of your CORBA concepts will translate cleanly to Ice. However, because the APIs are quite different, I wouldn't call this a "port". It's more like a "translation".