ICE (中間件)

Internet Communications Engine,或Ice,是ZeroC開發的一個面向對象中間件平台。它提供了面向對象的遠程過程調用網格計算發佈/訂閱功能,並有基於GPL雙許可協議和一個私有許可協議。它支持LinuxSolarisWindowsMac OS X等最主要的作業系統,和C++Java.NET語言(如C#Visual Basic)、Objective-CPythonPHPRuby等語言[1]。Ice運行時的一個輕量變體叫做Ice-e,[2]可以運行在流動電話中。如它的名字所表明,該中間件可以被用於應用程式,而不需要使用HTTP協議,並且有能力穿越防火牆(這一點不同於當時的其它中間件)。

Internet Communications Engine
開發者ZeroC
當前版本3.4.2(2011年9月7日,​13年前​(2011-09-07
預覽版本3.5b(2011年5月15日,​13年前​(2011-05-15
原始碼庫 編輯維基數據鏈接
類型遠程過程調用框架
許可協議GPL / 私有
網站www.zeroc.com

歷史

ZeroC於2002年成立於佛羅里達[3]Ice的設計受到了CORBA的影響,並且實際上也是由幾位有影響力的CORBA開發者創立的,包括Michi Henning。不過,按照ZeroC的說法,它比CORBA更小更簡潔,因為它是由一個富有經驗的開發者小團體設計的,而不是難產於委員會設計[4]

2004年,有報道稱,一家名為Mutable Realms的公司在一個叫做「Wish」的遊戲中使用了Ice。[5]2008年,有報道稱,大熊湖太陽天文台從2005年起就在使用該軟件。[6]某些版本作為開放顯微鏡環境的一部分被發佈到了GitHub,直到2011年的3.4.2版本。[7]

組件

Ice的組件包括面向對象的遠程對象調用、響應(replication還是複製?)、網格計算、故障轉移、負載均衡、防火牆穿越和發佈-訂閱服務。為了訪問這些服務,應用程式被連接到一個存根庫或集合,該存根庫或集合產生於一個語言無關的叫做slice的類IDL語法。

參見ICE示意圖(英文)

IceStorm

是一個面向對象的發佈和訂閱框架,它還支持聯盟(federation)和服務質量(quality-of-service)。不同於其它的發佈-訂閱框架如TIBCO軟件公司RendezvousSmartSockets,它的消息內容是由定義良好的類的對象組成的,而不是由結構化文本組成的。

IceGrid

是一套框架,它提供面向對象的負載均衡故障轉移、對象發現和註冊服務。

IcePatch

協助部署基於ICE的軟件。例如,希望部署新功能和/或補丁到多台伺服器的用戶可以使用IcePatch。

Glacier

是一個基於代理的能夠穿越防火牆的服務,因此使得ICE成為一個互聯網通訊引擎。

IceBox

是一個面向服務架構的容器,它包含可執行的由.dll或.so庫實現的服務。這是一個更輕量的選擇,可以對每個服務構建整個可執行服務。 2

Slice

Ice規範語言(Specification Language for Ice)是一個Zeroc私有的文件格式,程式設計師按照它來編輯獨立於計算機語言的聲明和類、接口、結構和枚舉的定義。Slice定義文件被用來作為存根生成過程的輸入。存根依次被連接到應用程式和伺服器,它們應該基於由slice聲明/定義的接口和類進行互相通訊。

不同於CORBA,這裏的類和接口還支持繼承和抽象類。此外,slice還在宏和屬性的表單中提供配置選項來管理代碼生成過程。一個例子是,指令可以生成STL模板list<double>,而不是默認地生成STL模板vector<double>

參見

註釋

  1. ^ 语言支持(英文). [2009-08-03]. (原始內容存檔於2009-07-20). 
  2. ^ Ice-E概述(英文). [2009-08-03]. (原始內容存檔於2009-07-26). 
  3. ^ Zeroc公司. 公司概況(英文). Manta. [2013-07-17]. (原始內容存檔於2019-11-29). 
  4. ^ Ice和CORBA的区别(英文). [2013-01-17]. (原始內容存檔於2013-03-18). 
  5. ^ Michi Henning(英文). 大量游戏者中间件. 隊列 (ACM). 2004-02-01 [2013-07-17]. (原始內容存檔於2013-10-04). 
  6. ^ Sergij Shumko. Ice中间件应用于新太阳望远镜的望远镜控制系统 (PDF). 天文数据分析软件和系统XVII,ASP会议丛书,卷XXX,2008. 加拿大魁北克市. 2008-11-02 [2013-07-17]. (原始內容 (PDF)存檔於2012-08-25). 
  7. ^ ome/zeroc-ice. 源碼下載. GitHub. [2013-07-17]. (原始內容存檔於2018-06-10). 

外部連結