![]() ![]() 分布式架構(gòu) 分布式計算技術(shù)的應用和工具 分布式架構(gòu)是分布式計算技術(shù)的應用和工具,目前成熟的技術(shù)包括J2EE,CORBA和.NET(DCOM),這些技術(shù)牽扯的內(nèi)容非常廣,相關(guān)的書籍也非常多,本文不介紹這些技術(shù)的內(nèi)容,也沒有涉及這些技術(shù)的細節(jié),只是從各種分布式系統(tǒng)平臺產(chǎn)生的背景和在軟件開發(fā)中應用的情況來探討它們的主要異同。 基本信息
詳細說明 一、分布式計算技術(shù)的形成 CORBA(CommonObjectRequestBrokerArchitecture)是在1992年由OMG(OpenManagementGroup)組織提出的。那時的分布式應用環(huán)境都采用Client/Server架構(gòu),CORBA的應用很大程度的提高了分布式應用軟件的開發(fā)效率。 當時的另一種分布式系統(tǒng)開發(fā)工具是Microsoft的DCOM(DistributedCommonObjectModel)。Microsoft為了使在Windows平臺上開發(fā)的各種應用軟件產(chǎn)品的功能能夠在運行時(Runtime)相互調(diào)用(比如在MicrosoftWord中直接編輯Excel文件),實現(xiàn)了OLE(LinkedandEmbeddedObject)技術(shù),后來這個技術(shù)衍生為COM(CommonObjectModel)。 隨著Internet的普及和網(wǎng)絡(luò)服務(wù)(WebServices)的廣泛應用,Browser/Server架構(gòu)的模式逐漸體現(xiàn)出它的優(yōu)勢。于是,Sun公司在其Java技術(shù)的基礎(chǔ)上推出了應用于B/S架構(gòu)的J2EE的開發(fā)和應用平臺;Microsoft也在其DCOM技術(shù)的基礎(chǔ)上推出了主要面向B/S應用的.NET開發(fā)和應用平臺。 二、使用的協(xié)議 .NET中涵蓋的DCOM技術(shù)和CORBA一樣,在網(wǎng)絡(luò)傳輸層都采用TCP/IP協(xié)議;也都有自己的IDL規(guī)范。所不同的是,在TCP/IP之上,CORBA采用GIOP/IIOP協(xié)議,所有CORBA服務(wù)器以IIOP通信,形成了ORB軟件通道;J2EE的RMI曾經(jīng)采用獨立的通信協(xié)議,目前已經(jīng)改為RMI/IIOP,體現(xiàn)了J2EE的開放性;DCOM也有自己的通信協(xié)議(TCP在135端口的服務(wù)),但微軟沒有公開這個協(xié)議的規(guī)范;同樣,CORBA的IDL采用類C++的定義,是公開的規(guī)范;DCOM的IDL的文件雖然是文本形式的,微軟沒有正式公布它的規(guī)范,在使用中,.NET的IDL是由開發(fā)工具生成的。 三、應用的環(huán)境 關(guān)于.NET,比爾蓋茨這樣說:“簡單地說,.NET是以微軟的各種產(chǎn)品為開發(fā)工具和應用平臺,實現(xiàn)基于XML的網(wǎng)絡(luò)服務(wù)?!庇纱艘部梢钥闯觯?NET在Microsoft的世界里功能強大,但對于Unix和Linux這些在服務(wù)器市場占主要份額的系統(tǒng),.NET顯得束手無策。 因此,J2EE顯示了它跨平臺的優(yōu)勢,為網(wǎng)絡(luò)服務(wù)商提供了很好的面向前端(front-end)的開發(fā)和應用平臺,隨著網(wǎng)絡(luò)服務(wù)進一步廣泛應用和服務(wù)集成度的提高,在網(wǎng)絡(luò)服務(wù)提供商的后臺會形成越來越龐大的分布式計算環(huán)境,CORBA模塊結(jié)構(gòu)更適合后臺(back-end)的多種服務(wù),例如網(wǎng)絡(luò)服務(wù)的計費程序等.因此可以看出,J2EE和CORBA技術(shù)在網(wǎng)絡(luò)服務(wù)(WebServices)這片藍天下,各自有自己的海洋和陸地。如果在前端(front-end)使用了.NET開發(fā)平臺,那么在后端(back-end)的分布式結(jié)構(gòu)中,DCOM就是理想的選擇。 J2EE是純Java技術(shù),很多測試顯示RMI(Java)服務(wù)器的響應速度遠遠低于非Java的CORBA服務(wù)器。因此,在一些對數(shù)據(jù)處理速度和響應時間要求較高的系統(tǒng)開發(fā)中,要對RMI和CORBA的性能進行測試對比后再做選擇。 四、應用軟件的開發(fā)和維護 從應用軟件的開發(fā)過程的角度看,J2EE是完全開放式的平臺,體現(xiàn)為既面向設(shè)計人員,也面向開發(fā)人員的規(guī)范;CORBA也是一種規(guī)范,但更多體現(xiàn)為中間產(chǎn)品,CORBA產(chǎn)品的提供商才是這種規(guī)范的真正執(zhí)行者,對應用開發(fā)的程序員而言,只要了解IDL語言的規(guī)范,不必詳細知道ORB/GIOP/IIOP的協(xié)議細節(jié)。.NET作為Microsoft在網(wǎng)絡(luò)環(huán)境的主打,體現(xiàn)為一系列產(chǎn)品化的開發(fā)工具,比如C#,C++,等。這些開發(fā)工具是直接針對應用開發(fā)人員的。其實Sun公司提供的J2EE也是由許多軟件包(應用API)來面對開發(fā)人員的。 從軟件開發(fā)成本與周期以及軟件的維護角度看,J2EE比CORBA有以上優(yōu)勢。 五、應用前景 對于分布式計算技術(shù)的架構(gòu),不能絕對地說哪一個更好,只能說哪一個更合適。針對不同的軟件項目需求,具體分析才是明智的選擇。 從宏觀市場看,CORBA產(chǎn)品的銷售并沒有想象那樣給CORBA產(chǎn)品提供商帶來可觀的利潤;而J2EE的呼聲也高于.NET;隨著J2EE中RMI/IIOP與CORBA接口的完善,再加上開發(fā)費用的考慮和使用的方便性,J2EE一攬子開放的環(huán)境會是人們首先考慮的選擇;但CORBA標準的強壯的兼容性,也使這種技術(shù)在大型系統(tǒng)開發(fā)中會占有一席之地。 關(guān)于作者 周斌北京時力永聯(lián)科技公司業(yè)務(wù)咨詢和軟件外包服務(wù)部經(jīng)理,曾執(zhí)教于復旦大學計算機科學系,1994年赴美國Oracle總部參加合作項目,后就讀于加拿大哥倫比亞大學 對比 EMCVMAX VMAX架構(gòu)包含1個到8個VMAX引擎(存儲節(jié)點)。這些引擎相互連接在一起,被稱為虛擬Matrix架構(gòu)。每個引擎都可以當作存儲陣列,擁有自己的前端主機端口連接、后端磁盤導向器、高速緩存(內(nèi)部鏡像化)和處理器。VMAX引擎使用Matrix接口主板封裝器(MIBE)連接在一起。MIBE有副本以備冗余。虛擬Matrix可以進行引擎之間的記憶體訪問。當主機訪問端口和數(shù)據(jù)不在同一個引擎上的時候需要虛擬Matrix提供連接性。 3ParInServ 3Par由多個存儲節(jié)點組成。這些存儲節(jié)點匯集到一個高速連接上。3Par稱之為InSpire架構(gòu)。2到8個節(jié)點(按對配置)連接到一個被動背板,每個節(jié)點之間的帶寬可高達1.6Gb/秒。3Par如圖所示展示他們的8節(jié)點架構(gòu),連接的數(shù)量很容易就能看清楚。還看到2節(jié)點、4節(jié)點、6節(jié)點和8節(jié)點部署下的連接是如何增加的。InServ陣列按對寫入高速緩存數(shù)據(jù),因此每個節(jié)點都有一個伴點。如果一個節(jié)點發(fā)生故障,伴點上的高速緩存可以馬上寫入另一個節(jié)點,從而保護高速緩存數(shù)據(jù)。 IBMXIV IBMXIV陣列采用的是另一種節(jié)點設(shè)置方式。節(jié)點直接連接到底層硬件的數(shù)據(jù)保護機制。XIV只使用RIAD-1類型的保護,采用的是1MB大小的數(shù)據(jù)塊,也稱為分區(qū)。數(shù)據(jù)以偽隨機方式均勻分布在節(jié)點上,確保對任何LUN來說,數(shù)據(jù)都是寫入在所有節(jié)點上。本文底部的XIV圖片顯示了這個架構(gòu)。節(jié)點(在XIV中稱為模塊)分成接口模塊和數(shù)據(jù)模塊。接口模塊有自己的高速緩存、處理器、數(shù)據(jù)磁盤和主機接口。數(shù)據(jù)模塊沒有主機接口,但是仍然有高速緩存、處理器和磁盤。每個模塊有12個1TBSATA驅(qū)動器。當數(shù)據(jù)寫入陣列的時候,這些1MB分區(qū)寫入到所有驅(qū)動器和模塊中,確保任意一個分區(qū)的兩個鏡像對不會都處在同一個模塊上。LUN的順序分區(qū)分布在各個模塊上。這樣做的結(jié)果就是所有的模塊都參與服務(wù)所有的卷,且單個模塊的故障不會導致數(shù)據(jù)丟失。 |
|
來自: 邸彥強 > 《軟件架構(gòu)》