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的方法。