Ice 全称The Internet Communications Engine 。网络互联引擎。
Ice 是一种面向对象的中间件平台。从根本上说,这意味着Ice 为构建面向对象的客户-服务
器应用提供了工具、API 和库支持。Ice 应用适合在异种环境中使用 :客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术
进行通信。无论部署环境如何,这些应用的源码都是可移植的。
他是面向对象的;
他可以构建分布式程序;
有了他,你只需关注业务逻辑即可,不需关注通讯的细节。
他是开源,跨平台的;可以自己用源码编译;
官网:https://doc.zeroc.com
windows下下载https://zeroc.com/download.html。 Ice-3.5.1-6.msi
安装好了有Demo程序;
用C++需要Visual Studio 2010及以上版本;
ICE支持多种编程语言:C++、Java、C#、VB、Python、Ruby,也就是说使用ICE时我们可以让这些语言无缝沟通,不过由于ICE是用C++编写的,不管用什么语言,你都需要先用C++编译出一个ICE才行(或者下载已编译的版本)。
下表是Slice与C++的映射关系
SLICE | C++ |
---|---|
#include | #include |
#ifndef | #ifndef |
#define | #define |
#endif | #endif |
module | namespace |
bool | bool |
byte | Ice::Byte |
short | Ice::Short |
int | Ice::Int |
long | Ice::Long |
float | Ice::Float |
double | Ice::Double |
string | Ice::string |
enum | enum(不支持指定数字) |
struct | struct |
class | class(所有方法都是纯虚函数) |
interface | struct(所有方法都是纯虚函数,没有成员变量) |
sequence<T> | std::vector<T> |
dictionary<Key,Value> | std::map<Key,Value> |
exception Err | class Err:public Ice:UserException |
nonmutating方法限定符 | const方法 |
idempotent方法限定符 | - |
out 参数限定符 | 引用类型 |
* | 对应类型的代理类 |