目录
一、 什么是ICE
二、 安装
三、环境变量配置
四、来一个Demo,小试牛刀
1、编写Slice接口
2、 编写用于C# 的Slice 定义
3、 编写和编译服务器
4、 编写和编译客户
5、 效果
五、正式项目应用
1、前期准备
2、 添加ICE客户端类库
3、 选择路径
4、 开始生成CS文件,出错
5、 再次生成,成功
6、 使用
六、 扩展知识
1、JAVA
2、PHP
3、Python
4、Ruby
七、 概念和原理
1、Ice Object
2、ObjectAdapter
3、Ice Proxy
4、Location Service
什么是ICE
ICE(Internet Communications Engine)是出自ZeroC之下一种面向对象的RPC中间件平台,主要用于网络通讯。它为面向对象的“客户端-服务器”模型的应用提供了一组很好的工具和API接口。目前在全世界被应用于很多项目之中。ICE中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火期穿透,通讯屏蔽。因此相比Corba,DCOM,SOAP,J2EE等的中间件技术,自然是集众多优点于一身,而却没有他们的缺点。
安装
在官网下载https://zeroc.com/downloads/ice/3.5; 但在官网下载一般需要商业许可,在此我提供了我网盘内资源可供大家学习使用,地址如下:
如果有需要的小伙伴,请留言或私信
下载后根据提示进行安装即可,在安装的过程注意下自己选择的安装路径,便于后期配置环境变量时使用。
安装后,进入到我们安装路径后,可以得到如下图所示:
我们可以看到,Ice可能支持的开发语言等信息。
三、环境变量配置
配置ICE_HOME ice的安装目录
在path中配置 %ICE_HOME%bin
然后以 slice2java -v 验证
四、来一个Demo,小试牛刀
此文档我们以C#为例子来进行讲解;通过以上目录一“什么是ICE”我们知道面向对象的“客户端-服务器”模型... 我们需要搭建服务端和客户端来进行效果一演示和验证。
1、编写Slice接口
首先我们第一步我们要编写一个Ice Object在服务端具体化为一个Servant实例,即我们用某种具体编程语言实现的一个Slice接口,如下图:
源码
module Family
{
interface print
{
void printString(string s);
};
};
我们把这段文本保存为Printer.ice 的文件,为了便于演示我本地直接放在了Users文件夹下。
编写用于C# 的Slice 定义
要创建我们的C# 应用,第一步是要编译我们的Slice 定义,生成C#代理和骨架。在Windows上,你可以这样编译定义:
slice2cs.exe Printer.ice
slice2cs 编译器根据这个定义生成一些.cs 源文件。我们目前无需关注这些文件的确切内容——它们包含的是编译器生成的代码,与我们在Printer.ice 中定义的Printer 接口相对应。
开始-->运行-->cmd-->slice2cs.exe Printer.ice(记得将你写的ICE文件拖入运行cmd看到的对应文件夹)-->回车
下图为刚生成的.cs文件:
编写和编译服务器
首先,我们要添加对ICE的引用,右键添加引用,选择ICE安装目录下的Ice.dll,例如我是(D:Program Files (x86)ZeroCIce-3.5.1Assemblies...)
其次,要实现我们的Printer 接口,我们必须创建一个servant 类。按照惯