ice是一个面向对像的中间件平台,所以,这意味着ice提供了一个工具,一些api和一些类库用来构造面向对像蝗基于client-server 的应用程序,所以,ICE适用于在异构环境中使用,他的client和server能够用不一样的语言来写,好比server用java来做开发,client用php来做展示,这样php和java能够能过ice来进行操做。更有意思的是ice能够运行于不一样的操做系统和机器架构,如 winodws,linux,unix...php
我认为最重要的一点就是ice是开源的,他的文档很是的完善,当你看他的文档的时候,你就会感到无比的痛苦,由于他的文档太完善了。java
由于我在winodws上面开发,开发完成后才放到linux上面去跑程序,因此开发与配置都是在winodws上面完成的,等到对ice了解的基本差很少了,会放到linux上面去。linux
在windows上面安装很简单,先去ice的官网下载一个windows安装版本就能够。apache
要注意的是最新版本ice 3.4.1支持的php版本是php5.3.1 下载地址 windows
在windows上面安装很简单,下一步就能够了,要记注你的安装目录,我把它安装到了C:/ZeroC 下面,这里假设你已经安装好了apache和php环境api
第一步,把ice的bin目录添加到环境变量架构
若是设置个jdk的环境变量,那这个也是同样的,如我把这个添加到环境变量“C:/ZeroC/Ice-3.4.1/bin”,设置环境变量的文章google下会不少。工具
第二步,让php支持iceui
修改php.ini文件,在文件中添加以下扩展 extension = php_ice.dllgoogle
把ice下面bin目录下的php_ice.dll copy到了php ext目录
第三步,再php.ini文件中添加 ice对php支持的库
ice对php支持的库文件在ice的安装目录下面的php文件夹中
在php.ini的inclue_path中添加此目录便可如:include_path = ".;E:/php/xampp3/xampp/php/PEAR;C:/ZeroC/Ice-3.4.1/php"
至此,安装与配置已经完成
若是要检验是否安装正确,最好就是来一个“Hello world”
所以ice最主要的目标就是让不一样语言写的程序互通,因此用java 和 php能过ice来互相调用是最好的证实了。
一、定义一个Printer.ice格式的文件,在文件中添加以下代码
二、运行slice2java命令:slice2java Printer.ice
三、你将形成一个Demo的文件夹,里面有不少的java文件
四、新建一个PrinterI.java文件,添加以下代码
五、新建一个Server.java文件,添加以下代码
六、编译java代码,要注意的是要编译和运行都依赖与ice.jar这jar包,因此编译和运行的时候都要把它添加到classpath中去,
编译很简单,我是这样弄的 javac -classpath classes;C:/ZeroC/Ice-3.4.1/lib/Ice.jar; Server.java PrinterI.java Demo/*.java
一、运行命令:slice2php printer.ice 会生成Printer.php文件,
二、新建一个client.php文件,添加以下代码
3、运行
一、首先运行java的Server文件,运行时必定要注意classpath问题
java -classpath classes;C:/ZeroC/Ice-3.4.1/lib/Ice.jar; Server
这时你将不会看到任何输出
二、访问php的client页面,你也看不到有任何输出,可是当你经过访问php的client的时候,你会看到 server的运行窗口输出
“Hello World!”,这证实你的php已经成功的调用了java的方法。