楊 勇,薛化建,任 鴿
1(新疆師范大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,烏魯木齊830054)
2(中國科學(xué)院 新疆理化技術(shù)研究所,烏魯木齊 830011)
當(dāng)前,通訊網(wǎng)絡(luò)在人類生活中起著重要作用.由于地形地貌多種多樣和人類活動不均衡等情況,單一的通訊網(wǎng)絡(luò)無法覆蓋所有的應(yīng)用場景,因此存在多種不同的通信網(wǎng)絡(luò),用來滿足多樣化的需求.通常,全球移動通信系統(tǒng)(GSM)和碼分多址(CDMA)之類的移動網(wǎng)絡(luò)常用于人口繁多地區(qū).出于成本的考慮,GSM和CDMA信號通常不會覆蓋人煙稀少的山區(qū)或沙漠地區(qū).天通衛(wèi)星網(wǎng)絡(luò)或北斗衛(wèi)星網(wǎng)絡(luò)通常是沙漠或山區(qū)的最佳通信選擇.在中國新疆等地勢惡劣地區(qū),就使用了許多通信網(wǎng)絡(luò),以滿足人們的通訊需求.不同的通信網(wǎng)絡(luò)同時(shí)使用,從而構(gòu)成混合模式的通信網(wǎng)絡(luò).由于通信機(jī)制不同,因此無法在混合式網(wǎng)絡(luò)之間傳輸消息數(shù)據(jù),降低了信息的即時(shí)性.
隨著通信技術(shù)重要性日漸增加,混合網(wǎng)絡(luò)的研究也變得越來越重要.早期的研究集中在現(xiàn)場總線和工業(yè)局域網(wǎng)領(lǐng)域[1].研究熱點(diǎn)是分析通信過程并建立多協(xié)議轉(zhuǎn)換模型.這些研究集中在如何規(guī)范協(xié)議轉(zhuǎn)換,而不是給出完整的數(shù)據(jù)交換方法.本文提出一種基于發(fā)布-訂閱模型的數(shù)據(jù)傳輸交換方法,為混合網(wǎng)絡(luò)之間的消息數(shù)據(jù)傳輸提供數(shù)據(jù)轉(zhuǎn)換、映射和重組方法.基于該方法實(shí)現(xiàn)的系統(tǒng)由設(shè)備軟件代理、消息內(nèi)容分析組件和負(fù)載平衡組件等組成.設(shè)備軟件代理負(fù)責(zé)加載通信設(shè)備驅(qū)動等初始化工作,并管理這些設(shè)備消息收發(fā)功能.內(nèi)容分析組件對消息數(shù)據(jù)的內(nèi)容進(jìn)行分析,解析消息路由,并根據(jù)指定的規(guī)則將消息發(fā)送到特定的目標(biāo)設(shè)備.由于在混合網(wǎng)絡(luò)中存在低速通信設(shè)備,這降低了混合網(wǎng)絡(luò)的整體通信性能.負(fù)載平衡組件可以管理并聚合多個(gè)低速通信設(shè)備,從而提高混合網(wǎng)絡(luò)的整體消息數(shù)據(jù)吞吐量.
發(fā)布/訂閱模型為上述的系統(tǒng)組件之間的消息數(shù)據(jù)傳輸提供了可靠通信模式.每個(gè)系統(tǒng)組件都與發(fā)布/訂閱方面的主題相關(guān)聯(lián),從而將這些組件間的數(shù)據(jù)通信和通信設(shè)備控制相分離,有利于形成高性能的動態(tài)消息數(shù)據(jù)交換網(wǎng)絡(luò).
本文的其余部分安排如下.第1節(jié)介紹了有關(guān)發(fā)布/訂閱模型的相關(guān)研究工作.第2節(jié)詳細(xì)介紹了基于該方法實(shí)現(xiàn)的系統(tǒng)架構(gòu)以及系統(tǒng)中格式化的消息數(shù)據(jù)結(jié)構(gòu)和負(fù)載平衡算法.第3節(jié)中介紹實(shí)驗(yàn)方法,并分析了實(shí)驗(yàn)結(jié)果.第4節(jié)總結(jié)了論文.
發(fā)布/訂閱是一種消息傳遞模式,由Frank Schmuck在1987年提出[2].在發(fā)布/訂閱模型中,消息的發(fā)送者稱為發(fā)布者,消息的接收者稱為訂閱者.發(fā)布者不直接將消息發(fā)送給特定的接收者,而是對發(fā)布的消息進(jìn)行分類,然后在不了解訂閱者的情況下將消息數(shù)據(jù)按照分類結(jié)果發(fā)到消息中間件.在不了解發(fā)布者的情況下,消息接收者可以訂閱一個(gè)或多個(gè)類別的消息,從消息中間件接收感興趣的消息.上述方法實(shí)現(xiàn)了消息發(fā)布者和消息接收者之間的解耦,使得整個(gè)系統(tǒng)具有良好的擴(kuò)展性和伸縮性[3].發(fā)布/訂閱模型已廣泛用于數(shù)據(jù)分發(fā)[4],中間件[5]和無線傳感器網(wǎng)絡(luò)[6].
存在多種發(fā)布/訂閱系統(tǒng)的變體,分別稱為基于主題和基于內(nèi)容的發(fā)布/訂閱系統(tǒng),這些系統(tǒng)具有不同的性能開銷.基于主題的發(fā)布/訂閱系統(tǒng)中的主題由唯一的名稱(通常是字符串)標(biāo)識,主題抽象易于理解,系統(tǒng)將各個(gè)主題映射到不同的通信渠道,從而增強(qiáng)了平臺的互操作性.基于主題的發(fā)布/訂閱很簡單,僅提供原始的表達(dá)能力.然而,基于內(nèi)容的發(fā)布/訂閱具有很高的表達(dá)力,并在某些研究中得到使用[7].基于內(nèi)容的發(fā)布/訂閱依賴于復(fù)雜的協(xié)議,從而導(dǎo)致更高的運(yùn)行時(shí)開銷[8].
發(fā)布/訂閱已成功在多種分布式應(yīng)用中使用.本文利用基于內(nèi)容的發(fā)布/訂閱模型來分離混合網(wǎng)絡(luò)中的消息發(fā)送者和消息接收者.根據(jù)某些預(yù)定義的標(biāo)準(zhǔn)對消息內(nèi)容進(jìn)行格式化和分類,同時(shí)利用負(fù)載均衡算法將消息內(nèi)容分發(fā)到多個(gè)內(nèi)容分析組件,從而減少了分析消息內(nèi)容時(shí)的整體運(yùn)行時(shí)開銷,提高系統(tǒng)的整體性能.
本文所述的混合網(wǎng)絡(luò)主要應(yīng)用于新疆地區(qū),用來解決新疆戈壁、沙漠等無人地區(qū)的即時(shí)通信問題.該混合網(wǎng)絡(luò)主要由北斗導(dǎo)航衛(wèi)星網(wǎng)絡(luò)、移動通信網(wǎng)絡(luò)(GSM 等)、移動背負(fù)式數(shù)字電臺網(wǎng)絡(luò)和基于TCP/IP的局域網(wǎng)(LAN)等組成.其中北斗網(wǎng)絡(luò)設(shè)備、GSM網(wǎng)絡(luò)設(shè)備、數(shù)字電臺設(shè)備、計(jì)算機(jī)等通信設(shè)備通過以太網(wǎng)或串口接入混合網(wǎng)絡(luò)網(wǎng)關(guān)來完成混合網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)傳輸.通常情況下通過串口接入的通信設(shè)備的通信性能較低,而通過以太網(wǎng)接入的通信設(shè)備是高速通信設(shè)備.為了提高混合網(wǎng)絡(luò)的整體數(shù)據(jù)吞吐量,該系統(tǒng)允許同時(shí)接入多個(gè)GSM設(shè)備和多個(gè)北斗設(shè)備來提高低速通信網(wǎng)絡(luò)的吞吐量,負(fù)載均衡算法會自動管理并分配空閑設(shè)備的通信通道.該系統(tǒng)的體系結(jié)構(gòu)如圖1所示.
如圖1所示,該系統(tǒng)主要分為4層,其中底部的通信設(shè)備層包含不同通信網(wǎng)絡(luò)的通信設(shè)備,用于建立各設(shè)備對應(yīng)通信網(wǎng)絡(luò)的通信鏈路.在設(shè)備層上方的設(shè)備驅(qū)動軟件代理層中,每一個(gè)設(shè)備對應(yīng)一個(gè)軟件代理,通信網(wǎng)絡(luò)類型和對應(yīng)通信設(shè)備標(biāo)識符規(guī)定了軟件代理的標(biāo)識符.在系統(tǒng)初始化時(shí),由軟件代理完成通信設(shè)備的驅(qū)動加載、設(shè)備初始化、通信鏈路建立、建立設(shè)備消息接收和發(fā)送等操作環(huán)境.在系統(tǒng)運(yùn)行中,設(shè)備軟件代理的標(biāo)識符將作為發(fā)布/訂閱模型的主題由軟件代理訂閱.發(fā)往該標(biāo)識符主題的數(shù)據(jù)均由該軟件代理處理并通過對應(yīng)的通信設(shè)備發(fā)送到相應(yīng)的通信網(wǎng)絡(luò)中.其中,低速網(wǎng)絡(luò)的設(shè)備軟件代理的主題選擇由各自的負(fù)載均衡算法完成.
圖1 系統(tǒng)體系結(jié)構(gòu)圖
從通信設(shè)備收到的消息由設(shè)備的軟件代理推送到圖1的消息內(nèi)容分析層.根據(jù)預(yù)定義規(guī)則的數(shù)據(jù)消息格式分析,從數(shù)據(jù)內(nèi)容中提取數(shù)據(jù)的目標(biāo)設(shè)備地址,根據(jù)該地址能夠獲得目標(biāo)通信網(wǎng)絡(luò),從而選擇合適的通信設(shè)備將數(shù)據(jù)推送到相應(yīng)的設(shè)備軟件代理,最終由通信設(shè)備完成在目標(biāo)通信網(wǎng)絡(luò)中的數(shù)據(jù)傳遞.為了更好地利用多核CPU的處理能力,在數(shù)據(jù)內(nèi)容分析層中,系統(tǒng)運(yùn)行時(shí)將構(gòu)建內(nèi)容分析組件的多個(gè)實(shí)例,由負(fù)載均衡算法確定具體的實(shí)例來處理當(dāng)前消息數(shù)據(jù).
該系統(tǒng)規(guī)定了消息數(shù)據(jù)的特定格式,對目標(biāo)設(shè)備地址和消息數(shù)據(jù)內(nèi)容組成數(shù)據(jù)內(nèi)容要求進(jìn)行規(guī)范化,最重要的是對混合網(wǎng)絡(luò)中設(shè)備地址進(jìn)行規(guī)范化.該系統(tǒng)規(guī)定混合網(wǎng)絡(luò)中設(shè)備地址由通信網(wǎng)絡(luò)ID和通信設(shè)備ID 來唯一表示,從而避免不同通信網(wǎng)絡(luò)中設(shè)備標(biāo)識符的重名問題.發(fā)送消息的數(shù)據(jù)格式為“#目標(biāo)網(wǎng)絡(luò)ID:目標(biāo)設(shè)備ID#消息內(nèi)容”,如數(shù)據(jù)“#BD:112546#速返回”表示將數(shù)據(jù)內(nèi)容“速返回”發(fā)送到北斗網(wǎng)絡(luò)“BD”中設(shè)備標(biāo)識符為“112546”的目標(biāo)設(shè)備.
當(dāng)接入系統(tǒng)的通信設(shè)備收到格式化消息數(shù)據(jù)后,軟件代理將相關(guān)的補(bǔ)充信息如發(fā)送消息的源設(shè)備地址和消息順序號添加到消息數(shù)據(jù)中,形成規(guī)范化的系統(tǒng)內(nèi)部數(shù)據(jù)格式為“#目標(biāo)網(wǎng)絡(luò)ID:目標(biāo)設(shè)備ID#消息內(nèi)容#發(fā)送網(wǎng)絡(luò)ID:發(fā)送設(shè)備ID”,直接發(fā)布到內(nèi)容分析組件的訂閱主題上.
內(nèi)容分析組件對該數(shù)據(jù)內(nèi)容進(jìn)行解析,提取目標(biāo)網(wǎng)絡(luò)ID、目標(biāo)設(shè)備ID和消息數(shù)據(jù)內(nèi)容“消息內(nèi)容#發(fā)送網(wǎng)絡(luò)ID:發(fā)送設(shè)備ID”.根據(jù)目標(biāo)網(wǎng)絡(luò)ID 將目標(biāo)設(shè)備ID和消息數(shù)據(jù)內(nèi)容發(fā)布到合適的主題,由訂閱該主題的軟件代理操作對應(yīng)的通信設(shè)備完成目標(biāo)網(wǎng)絡(luò)中的通信操作,將消息數(shù)據(jù)送往目標(biāo)設(shè)備.
組成混合網(wǎng)絡(luò)的通信設(shè)備的帶寬差異較大,有線網(wǎng)絡(luò)的帶寬遠(yuǎn)高于無線網(wǎng)絡(luò)的帶寬,如以太網(wǎng)的帶寬一般為1000 Mbps或100 Mbps;而在移動網(wǎng)絡(luò)中,中國電信運(yùn)營商要求單臺通信設(shè)備在一分鐘內(nèi)發(fā)送的消息數(shù)不能超過200條;對于北斗導(dǎo)航衛(wèi)星網(wǎng)絡(luò)來說,通常一分鐘內(nèi)只能發(fā)送一條140字節(jié)的消息數(shù)據(jù).以百兆以太網(wǎng)作為高速通信網(wǎng)絡(luò)來說,理論上每秒可傳遞125 K的消息數(shù)據(jù);而對于低速網(wǎng)絡(luò)如移動通信網(wǎng)絡(luò),中國運(yùn)營商規(guī)定每條短消息最多140字節(jié),以1 s發(fā)送10條短消息為基準(zhǔn),需接入約89臺移動網(wǎng)絡(luò)設(shè)備才能夠達(dá)到百兆以太網(wǎng)的通信性能.因高速網(wǎng)絡(luò)的通信性能遠(yuǎn)高于低速網(wǎng)絡(luò),因此高速網(wǎng)絡(luò)通信設(shè)備僅需單個(gè)設(shè)備直接接入內(nèi)容分析組件進(jìn)行內(nèi)容分析和消息分發(fā)即可.但是對于低速網(wǎng)絡(luò),則需要接入多個(gè)同類通信設(shè)備聚合為通信網(wǎng)絡(luò)設(shè)備池,提高低速網(wǎng)絡(luò)的帶寬,最終提高消息數(shù)據(jù)的即時(shí)性.
負(fù)載均衡算法用來管理通信網(wǎng)絡(luò)設(shè)備池,負(fù)責(zé)從中選擇空閑設(shè)備進(jìn)行消息數(shù)據(jù)發(fā)送等.除此之外,負(fù)載平衡算法也用于內(nèi)容分析組件的多個(gè)實(shí)例的管理,如圖2所示.
圖2 負(fù)載均衡算法管理內(nèi)容分析組件的流程圖
在基于發(fā)布/訂閱模型實(shí)現(xiàn)的系統(tǒng)中,設(shè)備軟件代理依據(jù)網(wǎng)絡(luò)的不同分別向負(fù)載均衡組件報(bào)告各自連接設(shè)備的狀態(tài),以此為依據(jù),負(fù)載均衡組件實(shí)現(xiàn)了一種基于循環(huán)調(diào)度的通信設(shè)備調(diào)度算法[9],實(shí)現(xiàn)了依據(jù)設(shè)備狀態(tài)對設(shè)備進(jìn)行的合理調(diào)度.該算法假定同類網(wǎng)絡(luò)的接入設(shè)備具有相同的通信能力,因此各設(shè)備具有相同的通信間隔,但實(shí)際使用中,通信設(shè)備的已使用時(shí)間長短、購買時(shí)間會造成一定的實(shí)際使用差異,因此負(fù)載均衡算法考慮了這些問題,利用權(quán)來表示設(shè)備的調(diào)度差異,權(quán)重均為正值.用戶可根據(jù)設(shè)備的實(shí)際使用狀態(tài)為通信設(shè)備賦予不同權(quán)重,實(shí)現(xiàn)通信設(shè)備的合理調(diào)度.如用戶給新設(shè)備賦予高權(quán)重,而給舊設(shè)備賦予低權(quán)重,可用實(shí)現(xiàn)新設(shè)備優(yōu)先使用,舊設(shè)備作為備份的設(shè)備調(diào)度管理方法.
為簡化算法實(shí)現(xiàn),虛擬了一個(gè)權(quán)重為0的通信設(shè)備,表示該類目前沒有接入通信設(shè)備,選中虛擬通信設(shè)備表示消息數(shù)據(jù)發(fā)送失敗.以移動通信網(wǎng)絡(luò)設(shè)備軟件代理的負(fù)載平衡為例,假設(shè)有一組可變的移動通信網(wǎng)絡(luò)設(shè)備軟件代理DV = {(d1,v1),(d2,v2),···,(dn,vn),(d0,0)},其中設(shè)備編號為d1、d2···dn,對應(yīng)的設(shè)備權(quán)重v1、v2···vn均為正值,而虛擬設(shè)備編號為d0,對應(yīng)的設(shè)備權(quán)重為0.變量n表示加入移動通信網(wǎng)絡(luò)的設(shè)備軟件代理數(shù)量.變量t表示設(shè)備需要t秒發(fā)送一條消息.最終該算法總是選擇有序的設(shè)備軟件代理DV 中的第一個(gè)通信設(shè)備.
該算法的偽代碼如算法1所示,偽代碼中定時(shí)器到期時(shí)總是將設(shè)備軟件代理DV中的最后一個(gè)設(shè)備權(quán)重v設(shè)置為-1×v,并按權(quán)重重新對DV排序.
算法1.光流擾動效應(yīng)檢測算法1)輸入:當(dāng)前所用的通信設(shè)備i 2)輸入:當(dāng)前通信設(shè)備DV,按權(quán)重值從大到小已排序3)輸出:算法選中的下一個(gè)可用通信設(shè)備topicID 4)將DV的長度賦予n 5)if n== 1 then 6)topicID = d0 7)執(zhí)行無設(shè)備接入處理8)else 9)將D 中第1個(gè)通信設(shè)備賦予topicID 10)if topicID == d0 then 11)執(zhí)行無空閑設(shè)備處理12)else 13)在DV 中置v topicID = -1×vtopicID 14)按權(quán)重值從大到小排序DV 15)設(shè)置定時(shí)器時(shí)間t,啟動定時(shí)器16)end if 17)end if 18)return topicID
上述算法要求每組設(shè)備軟件代理添加一個(gè)權(quán)重為0的虛擬通信設(shè)備d0,無論系統(tǒng)是否接入該組設(shè)備,均保證每組設(shè)備必有一個(gè)虛擬通信設(shè)備d0可用于通信.這種方式使每組設(shè)備的可調(diào)度設(shè)備數(shù)量比實(shí)際接入設(shè)備數(shù)量多1個(gè),對數(shù)據(jù)交換性能幾乎沒有影響,同時(shí)有利于實(shí)現(xiàn)調(diào)度算法和錯誤報(bào)告.以北斗設(shè)備為例,即使系統(tǒng)中沒有接入北斗設(shè)備,系統(tǒng)中仍存在虛擬的北斗設(shè)備軟件代理d0,當(dāng)其被調(diào)度用于消息發(fā)送時(shí),虛擬北斗設(shè)備軟件代理d0 將向監(jiān)控組件報(bào)告通信設(shè)備接入錯誤信息,同時(shí)在操作日志記錄通信錯誤.
為了評估所提出系統(tǒng)的有效性和傳輸性能,使用Python語言開發(fā)了兩個(gè)系統(tǒng)進(jìn)行實(shí)驗(yàn).其中一個(gè)系統(tǒng)利用Mosquitto[10]作為發(fā)布/訂閱服務(wù)器,實(shí)現(xiàn)了發(fā)布/訂閱模型.作為一個(gè)開源消息代理,Mosquitto 能實(shí)現(xiàn)基于主題的發(fā)布/訂閱消息傳遞模型.內(nèi)容分析組件、負(fù)載均衡組件和各設(shè)備的軟件代理組件均由Python編程語言實(shí)現(xiàn)的;另一個(gè)系統(tǒng)利用Twisted框架[11]實(shí)現(xiàn)了基于事件驅(qū)動的數(shù)據(jù)交換傳輸系統(tǒng).Twisted是Python語言編寫的一種基于事件驅(qū)動的網(wǎng)絡(luò)引擎,可用于實(shí)現(xiàn)事件驅(qū)動的數(shù)據(jù)傳輸.在實(shí)驗(yàn)中,沒有使用真實(shí)的通信設(shè)備.各設(shè)備的軟件代理根據(jù)表1中列出的參數(shù)模擬相關(guān)設(shè)備的通信特性;并且實(shí)驗(yàn)中使用的單條消息數(shù)據(jù)不超過100字節(jié).實(shí)驗(yàn)結(jié)果主要使用批量數(shù)據(jù)傳輸時(shí)間來評估不同系統(tǒng)的傳輸性能[12].所有實(shí)驗(yàn)均在臺式機(jī)上執(zhí)行的,臺式機(jī)的處理器為Intel i5-6500 3.2 GHz,配有16 GB內(nèi)存,運(yùn)行Ubuntu 14.04操作系統(tǒng).實(shí)驗(yàn)系統(tǒng)中使用局域網(wǎng)即時(shí)通信軟件飛鴿作為計(jì)算機(jī)端的通訊軟件,因此實(shí)驗(yàn)中使用Python語言實(shí)現(xiàn)了飛鴿通信協(xié)議作為大批量消息數(shù)據(jù)發(fā)送源.
表1 模擬設(shè)備的數(shù)據(jù)傳輸性能設(shè)定
實(shí)驗(yàn)結(jié)果記錄了從飛鴿通信軟件代理向GSM設(shè)備軟件代理傳輸消息數(shù)據(jù)的花費(fèi)時(shí)間作為傳輸性能的測量依據(jù).實(shí)驗(yàn)中的消息數(shù)量最初為10萬條,然后每次增加10萬條直到最終60萬條.當(dāng)飛鴿通信軟件代理發(fā)送第一條消息時(shí),當(dāng)前時(shí)間點(diǎn)被稱為t1.當(dāng)目標(biāo)GSM軟件代理收到最后一條消息時(shí),此時(shí)的時(shí)間點(diǎn)被稱為t2.那么本批消息的傳輸耗費(fèi)時(shí)間是t1與t2的差值.每個(gè)批次的實(shí)驗(yàn)均重復(fù)10次,所得到的平均傳輸耗費(fèi)時(shí)間列于表2.在表2中也給出了內(nèi)容分析組件的負(fù)載平衡算法的性能.
表2 基于發(fā)布/訂閱模型的系統(tǒng)與基于Twisted 實(shí)現(xiàn)的事件驅(qū)動系統(tǒng)的批量消息數(shù)據(jù)傳輸時(shí)間對比
如表2所示,和基于事件驅(qū)動的系統(tǒng)相比,在僅啟用一個(gè)內(nèi)容分析組件實(shí)例時(shí),基于發(fā)布/訂閱模型的系統(tǒng)的消息傳輸性能差.由于實(shí)驗(yàn)中傳輸?shù)南?shù)量大,基于事件驅(qū)動的系統(tǒng)在運(yùn)行時(shí),處理器的單核利用率達(dá)到了100%,經(jīng)過分析,內(nèi)容分析組件實(shí)例占用了過多的處理器時(shí)間.受Python語言多線程特性的影響,基于事件驅(qū)動的系統(tǒng)無法充分利用多核處理器的并發(fā)功能,但在基于發(fā)布/訂閱模型的系統(tǒng)中,內(nèi)容分析組件實(shí)例運(yùn)行在獨(dú)立進(jìn)程中,通過主題進(jìn)行消息的收發(fā),從而可以通過增加內(nèi)容分析組件實(shí)例,提高多核處理器的利用率.實(shí)驗(yàn)中從一個(gè)內(nèi)容分析組件實(shí)例逐步增加到5個(gè)并行的實(shí)例,這些實(shí)例的管理和選擇由負(fù)載平衡算法處理.如表2所示,當(dāng)消息數(shù)量為10萬條且基于發(fā)布/訂閱模型的系統(tǒng)中內(nèi)容分析實(shí)例數(shù)大于2時(shí),基于發(fā)布/訂閱模型的系統(tǒng)的消息傳輸性能要優(yōu)于基于事件驅(qū)動的系統(tǒng).但消息數(shù)量逐步增加時(shí),兩個(gè)系統(tǒng)的性能均逐步下降,并且基于發(fā)布/訂閱模型的系統(tǒng)下降得更快.隨著內(nèi)容分析組件實(shí)例數(shù)量的增加,基于發(fā)布/訂閱模型的系統(tǒng)的消息傳輸性能隨之增加.在實(shí)驗(yàn)中,當(dāng)內(nèi)容分析組件實(shí)例的數(shù)量為4時(shí),和基于事件驅(qū)動的系統(tǒng)相比,基于發(fā)布/訂閱模型的系統(tǒng)表現(xiàn)出最好的數(shù)據(jù)傳輸性能.
如表2所示,隨著內(nèi)容分析組件實(shí)例數(shù)量增加,系統(tǒng)的消息傳輸性能增加,但傳輸性能的增加幅度下降.有研究表明,當(dāng)通過網(wǎng)絡(luò)傳輸大量消息時(shí),操作系統(tǒng)自身會緩存消息隊(duì)列,從而降低了系統(tǒng)性能,因此影響了負(fù)載均衡算法的有效性,利用低速通信網(wǎng)絡(luò)可以更好地測試負(fù)載均衡算法的有效性.本研究對北斗導(dǎo)航衛(wèi)星網(wǎng)絡(luò)、移動網(wǎng)絡(luò)、無線電臺網(wǎng)絡(luò)分別進(jìn)行負(fù)載均衡實(shí)驗(yàn),實(shí)驗(yàn)中的消息數(shù)據(jù)數(shù)量從1千條逐步增加到7千條.負(fù)載均衡實(shí)驗(yàn)結(jié)果如圖3所示.
圖3 負(fù)載均衡實(shí)驗(yàn)結(jié)果
如圖3所示,在低速網(wǎng)絡(luò)中,隨著內(nèi)容分析組件實(shí)例數(shù)量的增加,消息數(shù)據(jù)傳輸耗費(fèi)時(shí)間明顯減少.圖3中隨著內(nèi)容分析組件實(shí)例的數(shù)量增加,耗費(fèi)時(shí)間曲線幾乎成比例的下降,這表明負(fù)載平衡算法通過聚合多個(gè)低速網(wǎng)絡(luò)通信設(shè)備能有效提高低速網(wǎng)絡(luò)的數(shù)據(jù)傳輸性能.
通信網(wǎng)絡(luò)在人們的生活中得到了廣泛使用.移動通信網(wǎng)絡(luò)已經(jīng)普遍覆蓋了城市、農(nóng)村等地區(qū),但在偏遠(yuǎn)地區(qū)、沙漠、戈壁等無人區(qū),無線電臺、衛(wèi)星網(wǎng)絡(luò)等通信網(wǎng)絡(luò)更加適用,研究混合網(wǎng)絡(luò)之間的高性能數(shù)據(jù)傳輸,實(shí)現(xiàn)混合網(wǎng)絡(luò)即時(shí)消息數(shù)據(jù)傳遞,能夠滿足新疆等偏遠(yuǎn)地區(qū)的現(xiàn)實(shí)需求.本文描述了一種基于發(fā)布/訂閱模型的混合網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,實(shí)現(xiàn)了由移動通信網(wǎng)絡(luò)、北斗導(dǎo)航衛(wèi)星網(wǎng)絡(luò)、無線電臺網(wǎng)絡(luò)和計(jì)算機(jī)局域網(wǎng)形成的混合網(wǎng)絡(luò)之間的消息數(shù)據(jù)傳輸.在該方法中,消息內(nèi)容分析組件、設(shè)備軟件代理和負(fù)載平衡組件均一一對應(yīng)發(fā)布/訂閱模型的主題.其中,消息內(nèi)容分析組件負(fù)責(zé)消息的格式化內(nèi)容分析,解析消息路由;設(shè)備軟件代理負(fù)責(zé)網(wǎng)絡(luò)通信設(shè)備的驅(qū)動加載和管理;負(fù)載平衡組件通過聚合多個(gè)低速通信設(shè)備來提高低速通信網(wǎng)絡(luò)帶寬.經(jīng)過模擬實(shí)驗(yàn),該方法能有效實(shí)現(xiàn)混合網(wǎng)絡(luò)之間的高性能消息數(shù)據(jù)傳輸.目前,利用該方法實(shí)現(xiàn)的混合網(wǎng)絡(luò)傳輸系統(tǒng)已經(jīng)在實(shí)際項(xiàng)目中得到了應(yīng)用.未來,我們將進(jìn)一步優(yōu)化發(fā)布/訂閱模型和負(fù)載平衡算法來提高系統(tǒng)性能.