一 簡介
Ice(Internet Communications Engine)是ZeroC公司的杰作畏吓,是新一代的面向?qū)ο蟮姆植际较到y(tǒng)中間件缸匪。Ice是RPC通訊領(lǐng)域里最穩(wěn)定、強(qiáng)大敏簿、高性能、跨平臺铭段、多語言支持的老牌開源中間件,特別適合于當(dāng)前互聯(lián)網(wǎng)領(lǐng)域中一個平臺存在多種開發(fā)語言編程蛾号,以及網(wǎng)站和app應(yīng)用并存的復(fù)雜大型項目稠项。
RPC(Remote Procedure Call Protocol 遠(yuǎn)程過程調(diào)用協(xié)議),是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機(jī)程序上請求服務(wù)鲜结,而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC假定某些傳輸協(xié)議的存在活逆,如TCP或UDP精刷,為通訊程序之間攜帶信息數(shù)據(jù);在OSI網(wǎng)絡(luò)通訊模型中蔗候,RPC跨越了傳輸層和應(yīng)用層怒允。
Ice通過與編程語言無關(guān)的中立語言Slice(Specification Language fro Ice)來描述服務(wù)的接口,從而達(dá)到對象接口與其實現(xiàn)想分離的目的锈遥。
目前Ice平臺支持客戶端API的語言有C++纫事、.NET、Java所灸、Python丽惶、Object-C、Ruby爬立、PHP钾唬、JavaScript等。在服務(wù)器可以使用C侠驯、.NET抡秆、Java、Python等來開發(fā)吟策。
二 環(huán)境搭建
1.在 ice官網(wǎng) 下載 Ice-3.6.3.msi ?并安裝 ?
2.配置環(huán)境變量 ? ?
新建變量 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
自動幫我們導(dǎo)入了Ice的jar包着撩,并生成兩個文件夾
generated 為自動生成的slice2java文件目錄
slice為我們存放ice文件的路徑
2.在Slice文件夾中新建一個后綴名為ice的文件,如printer.ice
用slice語言編寫我們的ice代碼(ice中只申明接口效床,不做實現(xiàn))
module Demo {
? ?interface Printer {
? ? ? ?void printString(string s);
? };
};
3.generated文件夾中會自動生成下列文件(使用cmd命令 ?slice2java編譯printer.ice文件也是一樣的效果)
4. 創(chuàng)建servant class睹酌,實現(xiàn)ice接口
官方文檔如圖
我們按照文檔所示,在項目中新建一個類剩檀,命名為xxxxxI ,并繼承自 _xxxxDisp憋沿,實現(xiàn)接口中的方法
5.創(chuàng)建server類 (注釋很詳細(xì),就不做過多講解)
6.創(chuàng)建client類
如果服務(wù)端和客戶端分離開來沪猴,則在stringToProxy中加入 ?-h 192.168.1.62(你的ip地址)即可
7.先運(yùn)行server辐啄,然后運(yùn)行client采章,即可看到服務(wù)端輸出Hello World 了