Ice, as it’s known, appears to be a relatively new competitor in the middleware communications layer. They compare its performance to TAO and come out better in many respects. It’s always easy to come out better than DCOM since that only runs on Windows! Although they boast a nice package list, it nevertheless appears very reminiscent of the other two in terms of interface definition through some form of IDL and conversion into stub code (they support a wide variety of languages!).
I have said in the past:
“Since [the interface and therefore stub code] can change often in an experimental setting, re-generating/losing changes/etc can become a major pain.
Personally I’ve favoured lower level data handling since it’s more flexible. But then again, ICE, etc, throw in a hell of a lot of stuff (pre-built classes, servers, connection establishment routines, …) that can make creating a larger distributed system less of a frustrating task. I suppose if you can really nail down the interfaces and be sure that integrating their system [ICE] into one’s own, in the midst of other entities (eg: a 3D engine, …), will be at the very least possible (and hopefully a happy affair), it’s all good. Then again, there might be problems where such a ’server’ requires that it run/be called/cycled in such a way that is incompatible with something else’s structure/run loop, unless you hack up ICE, which may in the end require more effort.”
And is there really no way to avoid using Object Adapters?!
If you liked my post, feel free to subscribe to my rss feeds