Ice 服務(wù)器開(kāi)發(fā)史:從誕生到成為分布式架構的中流砥柱
Ice服務(wù)器是一個(gè)開(kāi)放源代碼的跨平臺面向對象的RPC框架,由ZeroC公司開(kāi)發(fā)。自2003年發(fā)布以來(lái),它已經(jīng)成為許多高度分布的、復雜的分布式系統的核心組件。本文將以Ice服務(wù)器開(kāi)發(fā)史:從誕生到成為分布式架構的中流砥柱為中心,分別從誕生背景、版本更新、應用領(lǐng)域、未來(lái)展望這四方面詳細闡述Ice服務(wù)器的發(fā)展歷程。
1、誕生背景
與其他RPC機制相比,Ice的主要優(yōu)勢是其靈活的通信層和可插拔的協(xié)議棧。1998年,ZeroC公司的Martin Schultz 和Michi Henning開(kāi)始著(zhù)手設計一款基于對象模型和BLOB的通信協(xié)議,并在2002年發(fā)布了第一個(gè)公共版本。這個(gè)版本被稱(chēng)為Slice,它提供了一種向程序員抽象出通信協(xié)議的方法。然而,許多人發(fā)現冰的真正力量在于它的可插拔性。ZeroC公司的創(chuàng )始人意識到可以為其他語(yǔ)言和操作系統實(shí)現語(yǔ)言和協(xié)議適配器,以增加靈活性。這就是Ice的靈活性所在,也是它較早用于Internet環(huán)境中較大和更復雜基礎設施的原因。
在最初的版本中,為了保持程序員的靈活性,Ice采用了這樣一個(gè)重要原則:不要讓任何一種編程語(yǔ)言需要依賴(lài)于其他語(yǔ)言來(lái)實(shí)現它自己的功能。Ice的目標是:讓所有用戶(hù)都能使用他們喜歡的編程語(yǔ)言來(lái)編寫(xiě)其應用程序代碼和服務(wù),但這些服務(wù)必須能夠相互通信。隨著(zhù)版本的不斷更新,Ice逐漸成為了一款完善的分布式系統構建工具。
2、版本更新
Ice的版本更新非常頻繁,每個(gè)版本更新都會(huì )加入新的功能。其中,特別是v3.3版本帶來(lái)了重大的變革。Ice v3.3的最大變化是將所有主要的Ice組件都移動(dòng)到了一個(gè)完整的Ice框架中。這些組件是:核心共享庫ice, C++運行時(shí)庫iceutil, slice編譯器slice, Java運行時(shí)和編譯器,.NET運行時(shí)和編譯器冰。這就使得Ice成為一個(gè)真正的跨平臺框架,可以促進(jìn)更多的語(yǔ)言集成,并簡(jiǎn)化操作和升級過(guò)程。
此外,Ice還實(shí)現了對泛型編程的支持,包括新的容器類(lèi)和通用算法庫。C++11和C++14的新特性,比如智能指針、Lambda表達式和變長(cháng)參數模板的支持,也被標準C++接受。從Ice v3.7開(kāi)始,共享庫被用于將Ice編譯成靜態(tài)鏈接庫和動(dòng)態(tài)鏈接庫,以滿(mǎn)足不同用戶(hù)的不同需求。
3、應用領(lǐng)域
Ice已經(jīng)被應用于各種分布式系統中,包括銀行和金融交易系統,MMS合規框架,多人在線(xiàn)游戲服務(wù)器,集群任務(wù)調度器,電信運營(yíng)系統等等。其中,以下三個(gè)應用領(lǐng)域是Ice最為優(yōu)秀的體現。
3.1 金融交易系統
在金融交易系統中,Ice的運用主要體現在以下三個(gè)方面:首先,Ice的高可用性保證了系統的穩定性。
其次,Ice的異步框架極大地提高了金融交易的效率。
最后,Ice的跨平臺特性使其能夠適應多種不同的架構。
3.2 MMS合規框架
MMS(Managed Mutual Securities)合規框架是在美國金融監管機構嚴格管理要求下開(kāi)發(fā)的。它是一個(gè)面向對象的分布式架構,由客戶(hù)端組件、服務(wù)器組件和后臺組件組成。Ice在本框架中扮演了一個(gè)核心角色,負責連接這些組件和協(xié)調通信。
3.3 多人在線(xiàn)游戲服務(wù)器
Ice在多人在線(xiàn)游戲服務(wù)器中的運用,主要體現在以下兩個(gè)方面:一方面,由于服務(wù)器程序需要經(jīng)常與客戶(hù)端通訊,因此Ice提供的高效通信機制可以極大的提高游戲服務(wù)器性能。
另一方面,Ice提供了一套完整的分布式系統架構和一系列高度可擴展的工具,可以靈活地構建和管理大規模分布式游戲世界。
4、未來(lái)展望
盡管Ice已成為分布式系統開(kāi)發(fā)中最重要的框架之一,但是它仍然需要不斷演進(jìn)來(lái)滿(mǎn)足新的需求和挑戰。下面將簡(jiǎn)單描述Ice未來(lái)的三個(gè)發(fā)展方向。
4.1 面向微服務(wù)的框架
微服務(wù)是一種高度模塊化、可組合的方式來(lái)構建分布式應用程序。Ice在未來(lái)的發(fā)展方向中,需要進(jìn)一步加強支持微服務(wù)的能力,這將有助于在移動(dòng)、互聯(lián)網(wǎng)和物聯(lián)網(wǎng)應用中更好地使用Ice。
4.2 支持Web應用程序程序接口(API)
由于Web API是一種易于橫向擴展和分布式系統的構建方式,因此在未來(lái),Ice還需要進(jìn)一步支持Web API。Ice可以為開(kāi)發(fā)者提供更高效、更安全、更輕量級的分布式服務(wù),以滿(mǎn)足未來(lái)的軟件開(kāi)發(fā)需求。
4.3 支持現代語(yǔ)言特性
未來(lái),Ice需要支持更多的面向對象語(yǔ)言,并適應現代的編程風(fēng)格和設計模式,為開(kāi)發(fā)者提供更加自由的編程選擇。總結:
總的來(lái)說(shuō),Ice的出現徹底顛覆了傳統的客戶(hù)端/服務(wù)器模式,將其變成了一個(gè)真正協(xié)同工作的系統,允許多個(gè)系統可以透明、高效地交互。簡(jiǎn)單靈活的Slice描述語(yǔ)言,強大的傳輸架構和跨平臺支持,成為許多復雜的分布式系統的核心技術(shù)。未來(lái),Ice還將繼續發(fā)展,以適應不斷變化的分布式系統的需求。