摘 要: 多機(jī)系統(tǒng)中的計算機(jī)間數(shù)據(jù)交互是實現(xiàn)多機(jī)系統(tǒng)協(xié)同工作的關(guān)鍵,也是實現(xiàn)系統(tǒng)備用功能的主要手段。為了分析多機(jī)系統(tǒng)內(nèi)部數(shù)據(jù)交互方法的優(yōu)點和缺點,對專用接口數(shù)據(jù)交互、基于共享存儲區(qū)數(shù)據(jù)交互和分布式數(shù)據(jù)交互3種實現(xiàn)方法進(jìn)行了說明,并簡述了以數(shù)據(jù)為中心的訂閱/發(fā)布機(jī)制的分布式多機(jī)系統(tǒng)開發(fā)過程。
關(guān)鍵詞: 分布式多機(jī)系統(tǒng); 數(shù)據(jù)交互; 訂閱/發(fā)布機(jī)制; 外設(shè)控制器
中圖分類號: TN919?34; TP399 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)10?0071?03
0 引 言
隨著計算機(jī)的廣泛應(yīng)用,需要處理的信息量越來越大,人們對于計算機(jī)的要求也越來越高,各種性能更高的計算機(jī)不斷地被研制及應(yīng)用,如SMP(對稱多處理器)計算機(jī)、MPP(大規(guī)模并行處理)計算機(jī)等[1]。這些計算機(jī)有很高的配置(如大內(nèi)存、海量存儲、可多達(dá)上千個的處理器等),具有很高的處理能力。但與這些計算機(jī)的高性能相對應(yīng)的是它們高昂的價格。
早期人們利用專用接口及多總線把多臺單機(jī)聯(lián)結(jié)起來組成多機(jī)系統(tǒng),以提高系統(tǒng)整體性能。隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步以及處理器性能的提高,越來越多的人開始用相對廉價的以太網(wǎng)等通用網(wǎng)絡(luò)系統(tǒng),把相對便宜的服務(wù)器/工作站聯(lián)結(jié)起來組成多機(jī)系統(tǒng)使用,從而以較少的代價獲得較高的性能。多機(jī)系統(tǒng)是由兩臺以上的計算機(jī),通過共享存儲資源(信息)或通過數(shù)據(jù)鏈路聯(lián)結(jié)在一起的計算機(jī)系統(tǒng)[1]。多機(jī)系統(tǒng)內(nèi)部數(shù)據(jù)交互分為專用接口式數(shù)據(jù)交互、共享內(nèi)存式數(shù)據(jù)交互及分布式數(shù)據(jù)交互等。多機(jī)系統(tǒng)中的計算機(jī)間的數(shù)據(jù)交互是實現(xiàn)多機(jī)系統(tǒng)協(xié)同工作的關(guān)鍵,也是實現(xiàn)系統(tǒng)備用功能的主要手段。
1 專用接口數(shù)據(jù)交互
多機(jī)系統(tǒng)中的單機(jī)(C1,C2)通過專用接口進(jìn)行數(shù)據(jù)交互,常用的接口有串行口、并行口和以太網(wǎng)口等,兩個單機(jī)把各自需要交互的數(shù)據(jù)組織成報文通過專用接口發(fā)送到目標(biāo)機(jī),實現(xiàn)數(shù)據(jù)交互。
系統(tǒng)中C2機(jī)可以是完全備份C1功能的備用機(jī)器,也可以是只與C1機(jī)進(jìn)行數(shù)據(jù)交互的任務(wù)機(jī)(主要完成C1機(jī)發(fā)送過來的數(shù)據(jù)處理)。如果多機(jī)系統(tǒng)設(shè)計成一備一完全備份系統(tǒng)(同時C2機(jī)也要配上相應(yīng)的外設(shè)控制器等),系統(tǒng)的可靠性和穩(wěn)定性將得到提高。
2 基于共享存儲區(qū)數(shù)據(jù)交互
多機(jī)系統(tǒng)中的單機(jī)(C1,C2,C3)通過系統(tǒng)總線訪問公共存儲區(qū),利用公共存儲區(qū)進(jìn)行數(shù)據(jù)交互。公共存儲區(qū)配備兩套獨立的地址、數(shù)據(jù)和控制線,允許2個獨立的CPU或控制器同時異步地訪問存儲單元。其內(nèi)部有訪問仲裁控制,同一時刻只允許一個CPU訪問同一地址單元,在某一時間段內(nèi)由1個CPU對自定義的某一數(shù)據(jù)塊進(jìn)行讀寫操作。某些公共存儲區(qū)還具有信令交換邏輯,數(shù)據(jù)寫結(jié)束后可以硬件中斷的方式通知其他CPU或控制器進(jìn)行讀數(shù)據(jù)操作。當(dāng)無信令交換邏輯時,可以由計算機(jī)系統(tǒng)以硬件中斷的方式通知其他計算機(jī)系統(tǒng)對數(shù)據(jù)進(jìn)行讀取。各單機(jī)把數(shù)據(jù)備份到公共存儲區(qū)可以很容易實現(xiàn)系統(tǒng)的備份功能。如果3個單機(jī)(C1,C2,C3)設(shè)計成二備一,也就是在正常情況下有一個單機(jī)處于備份狀態(tài),當(dāng)工作的2個單機(jī)有1個故障時,處于備份狀態(tài)的單機(jī)讀出公共存儲區(qū)相應(yīng)的數(shù)據(jù)然后轉(zhuǎn)入運行接替故障的單機(jī)繼續(xù)進(jìn)行工作,以提高系統(tǒng)的可靠性。
3 分布式數(shù)據(jù)交互
目前分布式多機(jī)系統(tǒng)的信息交互流行采用以數(shù)據(jù)為中心的訂閱/發(fā)布模型(DCPS)。
DCPS模型構(gòu)建在“全局?jǐn)?shù)據(jù)空間(Global Data Space,GDS)”的基礎(chǔ)之上,DCPS定義了一個“全局?jǐn)?shù)據(jù)空間”,并且指定了發(fā)布者和訂閱者怎么與該空間進(jìn)行通信,如圖4所示。所有的數(shù)據(jù)對象都存在于這個全局共享空間之中,分布式節(jié)點通過簡單的讀或?qū)懖僮鞅憧梢栽L問這些數(shù)據(jù)對象。所有相關(guān)應(yīng)用都可以訪問這個全局?jǐn)?shù)據(jù)空間:想要向該數(shù)據(jù)空間提供信息的應(yīng)用即為“發(fā)布者”,想從該數(shù)據(jù)空間中獲取數(shù)據(jù)的應(yīng)用即為“訂閱者”。每當(dāng)發(fā)布者將新數(shù)據(jù)發(fā)送到這個全局?jǐn)?shù)據(jù)空間,中間件就會把信息傳播給那些對這些數(shù)據(jù)感興趣的訂閱者。
>
基于訂閱/發(fā)布機(jī)制的分布式多機(jī)系統(tǒng)開發(fā)過程主要過程如下:
(1)系統(tǒng)交互需求分析:根據(jù)系統(tǒng)數(shù)據(jù)交互的需求,利用域?qū)⒁粋€物理網(wǎng)絡(luò)進(jìn)行邏輯劃分,沒有數(shù)據(jù)交互的子系統(tǒng)之間被劃分成不同的域,不同域之間不進(jìn)行任何信息交互;對于同一域各個節(jié)點根據(jù)數(shù)據(jù)交互需要,可以設(shè)置一個主題或者多個主題,同時根據(jù)不同類型信息的交互需求不同,設(shè)置相應(yīng)的QoS策略;
4 優(yōu)缺點分析
(1)專用接口數(shù)據(jù)交互,主要優(yōu)點:通信距離遠(yuǎn),軟件控制簡單,系統(tǒng)交互內(nèi)容易于擴(kuò)展;主要缺點:需要占用系統(tǒng)的接口資源,系統(tǒng)點對點方式導(dǎo)致可擴(kuò)展性差,連接線纜多,布線復(fù)雜,數(shù)據(jù)傳輸速率受專用接口限制,實時性受影響。
(2)基于共享存儲區(qū)數(shù)據(jù)交互,主要優(yōu)點:系統(tǒng)實時性好,可靠性高,軟件控制簡單;主要缺點:系統(tǒng)需要提供專用的公共存儲資源,系統(tǒng)可擴(kuò)展性差,通信距離近。
(3)分布式數(shù)據(jù)交互,主要優(yōu)點:提供了一種“松耦合”的系統(tǒng),不存在中心節(jié)點,提供冗余備份機(jī)制,沒有單點故障的風(fēng)險,系統(tǒng)可靠性較高,且系統(tǒng)易于擴(kuò)展;主要缺點:分布式軟件復(fù)雜,開發(fā)、調(diào)試?yán)щy,系統(tǒng)實時性較難保證。
5 結(jié) 語
隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步,分布式數(shù)據(jù)交互得到了廣泛應(yīng)用。本文重點介紹了分布式數(shù)據(jù)交互,并分析了專用接口數(shù)據(jù)交互、基于共享存儲區(qū)數(shù)據(jù)交互和分布式數(shù)據(jù)交互的優(yōu)點和缺點,希望為讀者進(jìn)行多機(jī)系統(tǒng)內(nèi)部數(shù)據(jù)交互設(shè)計實現(xiàn)時提供幫助。
參考文獻(xiàn)
[1] 李學(xué)干,蘇東莊.計算機(jī)系統(tǒng)結(jié)構(gòu)[M].2版.西安:西安電子科技大學(xué)出版社,1994.
[2] 辛春生,陳宗斌.分布式系統(tǒng)原理與范型[M].2版.北京:清華大學(xué)出版社,2008.
[3] 馬龍軍.STC?Ada多機(jī)系統(tǒng)的互連結(jié)構(gòu)及共存管理的實現(xiàn)[J].山東工程學(xué)院學(xué)報,1994(3):17?19.
[4] 張軍本,寧偉,王強(qiáng).基于構(gòu)件的分布式軟件體系結(jié)構(gòu)設(shè)計[J].哈爾濱理工大學(xué)學(xué)報,2001(7):52?55.
[5] 曹建福,周理琴.基于構(gòu)件的軟件開發(fā)模型及其實現(xiàn)[J].小型微型計算機(jī)系統(tǒng),2002(10):29?31.
[6] 韓樂平,薛軍敖,孟洛明.OMG.CORBA系統(tǒng)結(jié)構(gòu)原理與規(guī)范[M].北京:電子工業(yè)出版社,2000.
[7] OpenCCM. CORBA Components, Volume 1 [EB/OL]. [1999?07?01]. http://openccm.ow2.org/doc/resources/orbos.
[8] OpenCCM. CORBA Components, Volume 2 [EB/OL]. [1999?07?01]. http://openccm.ow2.org/doc/resources/orbos.
[9] OpenCCM. CORBA Components, Volume 3 [EB/OL]. [1999?07?01]. http://openccm.ow2.org/doc/resources/orbos.
[10] OMG. CORBA component model specification, final dratf [EB/OL]. [2011?03?01]. http:∥www. omg. org.