ICE其实是一整个技术群的合称,国内的资料都是抄来抄去也没有说明白ICE是干什么的。按照ZeroC官方的介绍,ICE其实就是“Ice is a comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python, and more(ICE是一个支持C++、C#、Java、JavaScript、Python等语言的全面的RPC框架)”。
● Zeroc官方对它的定位是:
Ice is a comprehensive RPC framework that helps you network your software with minimal effort. Ice takes care of all interactions with low-level network programming interfaces and allows you to focus your efforts on your application logic. When using Ice, there is no need to worry about details such as opening network connections, serializing and deserializing data for network transmission, or retrying failed connection attempts (to name just a few of dozens of such low-level details)。
● 截止目前ICE所支持的平台如下
Android、iOS、Linux、Linux on embedded devices、Node.js、OS X、Web Browser、Windows、Universal Windows。
● ICE的主要技术特征如下:
Efficient, high-performance binary protocol
Supports a wide range of programming languages and platforms
Easy to use and type-safe API, with your own interfaces and types defined in a programming language neutral IDL, Slice
Supports secure, encrypted communications by taking advantage of your platform's native SSL/TLS stack
Familiar object-oriented programming model, with the ability to transmit proxies (references to remote objects) to remote applications
Supports synchronous and asynchronous calls, for both client-side invocations and server-side dispatches
Automatic discovery of remote objects through UDP multicast
Comes with a number of optional services:
IceGrid - a DNS-like service for Ice objects, with support for server deployment, replication, monitoring, load-balancing and more;
IceStorm - a lightweight topic-based pub-sub service;
Glacier2 - a sysadmin-friendly solution for routing Ice communications through firewalls。IcePatch2 - an efficient software distribution and patching service。