On the face of it Ice sounds ideal for what you are trying to achieve. If you try to use SOAP then you will have to deal with many things that Ice deals with automatically yourself such as request retry, connection re-establishment. In addition, you will have to deal with the bloated request size, the CPU required to process the unearthly XML, lack of standardized language APIs and, of course, the lack of any real object model, etc.. In addition, you will not be able to take advantage of the significant existing infrastructure components that Ice provides (IceGrid, IceStorm, Freeze, SSL, IceBox, Glacier2).
Quote:
|
Is ICE something more suited to what we are trying to achieve? I'm concerned with some of the blog posts out there indicating that ICE is nice (can I trademark that?) but it's not appropriate for interoperability. However, my reading on your site makes me feel that you've got that covered (as far as Java, C++, Python, C#, etc. are concerned).
|
As to the above comment -- when you speak of interoperability this can mean many different things. Interoperability with what?
Other object systems, for example, with SOAP? What you cannot do is talk natively to a SOAP Server with Ice and vice versa -- that is you need to write some sort of bridge (if indeed you need to bridge). There have been many different automatic bridging products written in the past for other RPC systems which have invariably resulted in failure because of mismatches in the object models, type systems and so on. Hand coded bridges are invariably better -- they present a more suitable object model which is more convenient to use and more efficient.
A better question is why would you want to bridge? Using Ice in your applications certainly does not precludes the use of SOAP. For example, you could write an Ice server that issues SOAP requests to some web service out there, and you can write Ice clients that talk to both Ice servers and SOAP servers.
How about other platforms? Ice is supported on most modern operating systems, such as Linux, Windows, Mac OS, Solaris, etc.
Language interoperability? In this respect I think Ice has all modern popular languages covered.
Another thing you might want to consider is support and documentation. In this respect I think we are second to none. As you can see we provide timely accurate support here on our forums. Our documentation is in many forms -- the Ice book a large tome of knowledge, our monthly connections newsletter where we provide real world advice on how to use Ice, the ZeroC forums and our community of developers.
Hope that helps!