涂 平 ,朱曉鈴 ,2,滿 旺 ,2
(1.福州大學(xué) 福建省空間信息工程研究中心,福建 福州 350002;2.廈門理工學(xué)院 空間信息科學(xué)與工程系,福建 廈門 361024)
隨著“數(shù)字福建”工程建設(shè)與政府信息整合、資源的交換與共享的深入,各個(gè)機(jī)構(gòu)內(nèi)部產(chǎn)生的大量業(yè)務(wù)數(shù)據(jù)信息、基礎(chǔ)數(shù)據(jù)庫(kù)信息,以及各種圖像文件等需要及時(shí)快速地從機(jī)構(gòu)的服務(wù)器或終端匯總到數(shù)字福建數(shù)據(jù)中心,以便在各個(gè)機(jī)構(gòu)的服務(wù)器或終端之間互傳。由于傳輸?shù)臄?shù)據(jù)量巨大,傳輸過程中經(jīng)過的服務(wù)器及網(wǎng)絡(luò)環(huán)節(jié)眾多,因此,對(duì)數(shù)據(jù)傳輸?shù)男省⒖煽啃浴踩确矫嫣岢隽酥T多要求,同時(shí),現(xiàn)有應(yīng)用需求對(duì)數(shù)據(jù)資源傳輸?shù)囊笠苍絹碓礁遊1]。而傳統(tǒng)的文件傳輸工具已經(jīng)無法勝任機(jī)構(gòu)級(jí)應(yīng)用環(huán)境的需求[2-3]。為此,快速、安全、穩(wěn)定地實(shí)現(xiàn)大數(shù)據(jù)量網(wǎng)絡(luò)傳輸技術(shù)的研究是一個(gè)亟待解決的問題。
本文依據(jù)數(shù)據(jù)傳輸端之間所處的網(wǎng)絡(luò)環(huán)境,提出了大數(shù)據(jù)量傳輸系統(tǒng)架構(gòu),分別研究實(shí)現(xiàn)了即時(shí)數(shù)據(jù)傳輸與離線數(shù)據(jù)傳輸,并進(jìn)行了性能測(cè)試。
依據(jù)開放互聯(lián)參考模型,本文設(shè)計(jì)的大數(shù)據(jù)量數(shù)據(jù)傳輸系統(tǒng)架構(gòu),主要包括網(wǎng)絡(luò)監(jiān)測(cè)模塊、數(shù)據(jù)傳輸模塊、數(shù)據(jù)管理模塊、數(shù)據(jù)處理模塊,其系統(tǒng)架構(gòu)如圖1所示。
(1)數(shù)據(jù)處理模塊。負(fù)責(zé)發(fā)送、接收數(shù)據(jù),根據(jù)數(shù)據(jù)的處理規(guī)則,對(duì)數(shù)據(jù)進(jìn)行一系列加密、解密、壓縮、解壓縮、指定編碼、解碼格式等操作,并將其封裝成若干UDP數(shù)據(jù)包(反之將若干UDP數(shù)據(jù)包組合)的內(nèi)部模塊。
(2)數(shù)據(jù)管理模塊。負(fù)責(zé)對(duì)經(jīng)過數(shù)據(jù)處理后的待發(fā)送數(shù)據(jù)包或剛接收到的數(shù)據(jù)包進(jìn)行統(tǒng)一管理分配,負(fù)責(zé)數(shù)據(jù)的緩存管理、并發(fā)管理以及完整性管理。
(3)數(shù)據(jù)傳輸模塊。負(fù)責(zé)數(shù)據(jù)傳輸路徑的管理,通過對(duì)網(wǎng)絡(luò)鏈路環(huán)境的判斷來決定傳輸路徑(直發(fā)、打通直發(fā)、通過服務(wù)器轉(zhuǎn)發(fā)),并實(shí)現(xiàn)數(shù)據(jù)包準(zhǔn)確的收、發(fā)過程。
(4)網(wǎng)絡(luò)監(jiān)測(cè)模塊。負(fù)責(zé)監(jiān)控本地與服務(wù)器連接超時(shí),報(bào)告服務(wù)器下線通知,處理本地網(wǎng)絡(luò)異常及對(duì)數(shù)據(jù)傳輸雙方的網(wǎng)絡(luò)帶寬進(jìn)行測(cè)試等功能。

即時(shí)數(shù)據(jù)傳輸要求通信雙方均保持在線狀態(tài),經(jīng)過一次“握手”之后,方能進(jìn)行數(shù)據(jù)傳輸。若通信雙方“握手”不成功,發(fā)送方會(huì)自動(dòng)將數(shù)據(jù)發(fā)往服務(wù)端,由服務(wù)端將數(shù)據(jù)轉(zhuǎn)發(fā)給接收方。同時(shí)為應(yīng)對(duì)意外斷線的情況發(fā)生,提供了斷線續(xù)傳的功能,即使在傳輸過程中意外中斷,用戶仍可從斷點(diǎn)處重新開始傳輸,大大節(jié)省了時(shí)間和帶寬資源。其工作原理如圖2所示。

即時(shí)數(shù)據(jù)傳輸實(shí)現(xiàn)了SOCKET通信,其中包括P2P隧道穿梭、帶寬測(cè)試、在線心跳維護(hù)、補(bǔ)充包機(jī)制、數(shù)據(jù)加密校驗(yàn)和多線程組多緩沖區(qū)協(xié)同操作模塊。在線數(shù)據(jù)傳輸?shù)臄?shù)據(jù)分為3種類型:小數(shù)據(jù)塊傳輸、大數(shù)據(jù)塊傳輸和即時(shí)性數(shù)據(jù)傳輸。
文字聊天、操作訓(xùn)令、組織機(jī)構(gòu)和UI控制層指令等稱為小數(shù)據(jù)塊傳輸。硬盤文件、數(shù)據(jù)庫(kù)大數(shù)據(jù)流等稱為大數(shù)據(jù)流,因?yàn)榇髷?shù)據(jù)流只為一個(gè)數(shù)據(jù)流接口進(jìn)行底層讀取數(shù)據(jù),例如文件數(shù)據(jù)傳輸,當(dāng)用戶需要傳輸文件時(shí),只要編輯消息和文件路徑觸發(fā)在線發(fā)送接口就可以完成數(shù)據(jù)傳輸,簡(jiǎn)化了上層序列化等操作,直接提升傳輸效率。即時(shí)數(shù)據(jù)稱為可丟失數(shù)據(jù),如音視頻數(shù)據(jù),因?yàn)闉榱吮U贤ㄐ偶磿r(shí)、不延時(shí)而被迫丟棄延時(shí)數(shù)據(jù)。
即時(shí)數(shù)據(jù)傳輸要求雙方都在線,并且接收方必須確認(rèn)接收后才能開始傳輸。而在繁忙的工作中,數(shù)據(jù)通信雙方不可能一直保持在線狀態(tài),為了能保障數(shù)據(jù)通信的及時(shí)有效性,特別對(duì)離線數(shù)據(jù)傳輸進(jìn)行了研究。當(dāng)通信的一方不在線的情況下,數(shù)據(jù)發(fā)起方也可以向?qū)Ψ桨l(fā)送數(shù)據(jù),該數(shù)據(jù)暫時(shí)存放在數(shù)據(jù)服務(wù)器中進(jìn)行中轉(zhuǎn),當(dāng)數(shù)據(jù)接收方上線時(shí),將自動(dòng)從數(shù)據(jù)服務(wù)器中獲取緩存的離線數(shù)據(jù)。同時(shí)為應(yīng)對(duì)意外斷線的情況發(fā)生,提供了斷線續(xù)傳的功能,即使在傳輸過程中意外中斷,用戶仍可從斷點(diǎn)處重新開始傳輸,大大節(jié)省了時(shí)間和帶寬資源。
數(shù)據(jù)離線上傳功能包括斷點(diǎn)續(xù)傳、多線程并行發(fā)送離線數(shù)據(jù)、內(nèi)部執(zhí)行信令和接收。使用ATL開發(fā)了離線上傳控件,可以嵌入其他語言的二次開發(fā),具有可擴(kuò)展性,其最高速率達(dá)3.5 Mb/s(100 M網(wǎng)卡)。離線上傳包含UI控制層、上傳客戶端組件、上傳組件服務(wù)器端組件和服務(wù)器上傳日志管理中心。離線上傳組件是系統(tǒng)的核心部位,嵌入U(xiǎn)I監(jiān)控層和服務(wù)器業(yè)務(wù)層,只提供特定接口響應(yīng)或被響應(yīng)。數(shù)據(jù)上傳工作原理圖如圖3所示。

數(shù)據(jù)離線下載主要是負(fù)責(zé)數(shù)據(jù)下載,其工作原理如圖4所示。
該模塊主要包含HTTP下載組件和業(yè)務(wù)控制層模塊兩部分。HTTP下載組件是整個(gè)離線下載的核心部件,同時(shí)它很好地封裝了斷點(diǎn)續(xù)傳、線程負(fù)載調(diào)配、轉(zhuǎn)地址等操作而只為外部提供了啟動(dòng)、暫停和關(guān)閉3種方法和一種事件委托方法及多個(gè)配置屬性,通過組件封裝可以很好地降低工程的耦合;且由于HTTP是一個(gè)基于請(qǐng)求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,常基于TCP的連接方式,HTTP1.1版本中給出一種持續(xù)連接的機(jī)制,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用以及嵌入其他語言使用。

圖4 數(shù)據(jù)離線下載工作原理圖
數(shù)據(jù)緩存服務(wù)器主要有:離線數(shù)據(jù)上傳服務(wù)組件、WebServer和服務(wù)器管理層模塊。
上傳服務(wù)組件主要功能是接收離線數(shù)據(jù)上傳處理,其功能包括數(shù)據(jù)接收、本地保存以及傳輸進(jìn)度等信息響應(yīng)。
為了構(gòu)建一個(gè)穩(wěn)定而簡(jiǎn)易且功能強(qiáng)大的數(shù)據(jù)服務(wù)器體系,離線傳輸?shù)南螺d客戶端選擇了HTTP下載組件,但由于HTTP下載是基于Web數(shù)據(jù)的下載,由此服務(wù)器必須是基于HTTP協(xié)議的WebServer。因?yàn)閃eb Server在當(dāng)今IT界有許多成熟、穩(wěn)定且配置簡(jiǎn)單的產(chǎn)品。
服務(wù)器管理層模塊負(fù)責(zé)各種業(yè)務(wù)邏輯處理,包括用戶信息存儲(chǔ)、下載進(jìn)度或斷點(diǎn)信息保存,以及上傳組件與WebServer兩個(gè)模塊間的調(diào)度和調(diào)配。
針對(duì)以上提出的傳輸模型,在Windows平臺(tái)下,基于.NET平臺(tái),分別開發(fā)了相關(guān)控件,并在內(nèi)網(wǎng)與政務(wù)網(wǎng)內(nèi)部進(jìn)行了測(cè)試。局域網(wǎng)測(cè)試客戶端為WindowsXP操作系統(tǒng),1 GB內(nèi)存,雙核CPU,10 M網(wǎng)卡;政務(wù)網(wǎng)測(cè)試客戶端為Windows2003操作系統(tǒng),768 MB內(nèi)存,普通100 M網(wǎng)卡。各類控件使用說明如表1所示,測(cè)試結(jié)果如表2所示。

表1 使用說明

表2 測(cè)試結(jié)果
從表2測(cè)試結(jié)果可以看出,無論是在內(nèi)網(wǎng)還是政務(wù)網(wǎng),無論是90 MB文件還是190 MB文件,無論是單個(gè)還是多個(gè)文件,P2P傳輸模式效率都要比HTTP下載控件及離線文件上傳效率高得多;而且數(shù)據(jù)量越大,即時(shí)數(shù)據(jù)傳輸方式的優(yōu)勢(shì)越明顯。
本文提出了大數(shù)據(jù)量數(shù)據(jù)網(wǎng)絡(luò)傳輸架構(gòu),開發(fā)了相關(guān)傳輸組件,并進(jìn)行了測(cè)試。測(cè)試表明,發(fā)送效率最高的為即時(shí)數(shù)據(jù)傳輸模式,而且由于內(nèi)部編程都由手工完成,理論上還能有很大的提升空間。下一步將進(jìn)一步完善服務(wù)細(xì)節(jié)設(shè)計(jì),完善離線數(shù)據(jù)傳輸服務(wù)功能。
[1]徐朝暉,錢樸慧.UDP協(xié)議的海量信息快速傳輸解決方案[J].火力與指揮控制,2005,30(1):46-49.
[2]張忠平,欒建鋒,王昆波.網(wǎng)格環(huán)境下基于P2P的數(shù)據(jù)集成方法[J].計(jì)算機(jī)工程,2009,35(12):54-55.
[3]喻占武,鄭勝,李忠民.一種混合式P2P下的大規(guī)模地形數(shù)據(jù)傳輸機(jī)制[J].測(cè)繪學(xué)報(bào),2008,37(2):243-249.