簡介
歷史
ZeroC於2002年成立於
佛羅里達。Ice的設計受到了
CORBA的影響,並且實際上也是由幾位有影響力的CORBA開發者創立的,包括Michi Henning。不過,按照ZeroC的說法,它比CORBA更小更簡潔,因為它是由一個富有經驗的開發者小團體設計的,而不是難產於委員會設計。
2004年,有報導稱,一家名為Mutable Realms的公司在一個叫做“Wish”的遊戲中使用了Ice。姜榆炒船2008年,有報導稱,大熊湖太陽天文台從2005年起就在使用該軟體。某些版本作為開放顯微鏡環境的一部分被發布到了
GitHub,直到2011年的3.4.2版本。
組件
Ice的組件包括面向對象的遠程對象調用、回響(replication)、格線計算、故障轉移、負載均衡、防火牆穿越和發布-訂閱服務。為了訪問這些服務,應用程式被連線到一個存甩詢旋根庫或集合,該存根庫或集合產生於一個語言無關的叫做
slice的類
IDL語法。
參見ICE示意圖(英文)
IceStorm
是一個面向對象的發布和訂閱框架,它還支持聯盟(federation)和服務質量(quality-of-service)。不同於其它的發布-訂閱框架如TIBCO軟體公司的Rendezvous或SmartSockets,它的訊息內容是由項戀歸定義良好的類的對象組成的,而不是由結構化文本組成的。
IceGrid
IcePatch
協助部署基於ICE的軟體。例如,希望部署新功能和/或補丁到多台伺服器的用戶可以使用IcePatch。
Glacier
是一個基於
代理的能夠穿越防火牆的服務,因此使得ICE成為一個網際網路通訊引擎。
IceBox
是一個
面向服務架構的容器,它包含可執行的由
.dll或.so庫實現的服務。這是一個更輕量的選擇,可以對每個服務構建整個可執行服務。
Slice
Ice規範語言(Specification Language for Ice)是一個Zeroc私有的檔案格式,程式設計師按照它來編輯獨立於計算機語言的聲明和類、接口、結構和枚舉的定義。Slice定義檔案被用來作為存根生成過程的輸入。存根依次被連線到應用程式和伺服器,它們應該基於由slice聲明/定義的接口和類進行互相通訊。
不同於CORBA,這裡的類和接口還支持繼承和抽象類。此外,slice還在宏和屬性的表單中提供配置選項來管理代碼生成過程。一個例子是享櫻旋,指令可以生成
STL模板list<double>,而不是默戀辯認地生成STL模板vector<double>。
參見
IcePatch
協助部署基於ICE的軟體。例如,希望部署新功能和/或補丁到多台伺服器的用戶可以使用IcePatch。
Glacier
是一個基於
代理的能夠穿越防火牆的服務,因此使得ICE成為一個網際網路通訊引擎。
IceBox
是一個
面向服務架構的容器,它包含可執行的由
.dll或.so庫實現的服務。這是一個更輕量的選擇,可以對每個服務構建整個可執行服務。
Slice
Ice規範語言(Specification Language for Ice)是一個Zeroc私有的檔案格式,程式設計師按照它來編輯獨立於計算機語言的聲明和類、接口、結構和枚舉的定義。Slice定義檔案被用來作為存根生成過程的輸入。存根依次被連線到應用程式和伺服器,它們應該基於由slice聲明/定義的接口和類進行互相通訊。
不同於CORBA,這裡的類和接口還支持繼承和抽象類。此外,slice還在宏和屬性的表單中提供配置選項來管理代碼生成過程。一個例子是,指令可以生成
STL模板list<double>,而不是默認地生成STL模板vector<double>。
參見