一 简介
Ice(Internet Communications Engine)是ZeroC公司的杰作,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于当前互联网领域中一个平台存在多种开发语言编程,以及网站和app应用并存的复杂大型项目。
RPC(Remote Procedure Call Protocol 远程过程调用协议),是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC假定某些传输协议的存在,如TCP或UDP,为通讯程序之间携带信息数据;在OSI网络通讯模型中,RPC跨越了传输层和应用层。
Ice通过与编程语言无关的中立语言Slice(Specification Language fro Ice)来描述服务的接口,从而达到对象接口与其实现想分离的目的。
目前Ice平台支持客户端API的语言有C++、.NET、Java、Python、Object-C、Ruby、PHP、JavaScript等。在服务器可以使用C、.NET、Java、Python等来开发。
二 环境搭建
1.在 ice官网 下载 Ice-3.6.3.msi 并安装
2.配置环境变量
新建变量 ICE_HOME 值为你的安装路径
在PATH 中加入 %ICE_HOME%/bin
在ClassPath中加入 %ICE_HOME%/lib/bd.jar %ICE_HOME%/lib/Ice.jar
在cmd中输入slice2java 如有信息则成功
3.MyEclipse ice Builder插件下载(以MyEclipse10.7为例)(可跳过此步,直接用命令行形式编译ice文件亦可)
打开菜单栏 Help--》MyEclipse Configuration Center --》SoftWare 输入http://www.zeroc.com/download/eclipse 下载安装后重启MyEclipse即可
4.配置Ice安装路径
三 HelloWorld
1.在MyEclipse中新建一个工程,右键工程,选择Ice Builder --》Add Ice Builder
自动帮我们导入了Ice的jar包,并生成两个文件夹
generated 为自动生成的slice2java文件目录
slice为我们存放ice文件的路径
2.在Slice文件夹中新建一个后缀名为ice的文件,如printer.ice
用slice语言编写我们的ice代码(ice中只申明接口,不做实现)
module Demo {
interface Printer {
void printString(string s);
};
};
3.generated文件夹中会自动生成下列文件(使用cmd命令 slice2java编译printer.ice文件也是一样的效果)
4. 创建servant class,实现ice接口
官方文档如图
我们按照文档所示,在项目中新建一个类,命名为xxxxxI ,并继承自 _xxxxDisp,实现接口中的方法
5.创建server类 (注释很详细,就不做过多讲解)
6.创建client类
如果服务端和客户端分离开来,则在stringToProxy中加入 -h 192.168.1.62(你的ip地址)即可
7.先运行server,然后运行client,即可看到服务端输出Hello World 了