涂 平 ,朱曉鈴 ,2,滿 旺 ,2
(1.福州大學 福建省空間信息工程研究中心,福建 福州 350002;2.廈門理工學院 空間信息科學與工程系,福建 廈門 361024)
隨著“數字福建”工程建設與政府信息整合、資源的交換與共享的深入,各個機構內部產生的大量業務數據信息、基礎數據庫信息,以及各種圖像文件等需要及時快速地從機構的服務器或終端匯總到數字福建數據中心,以便在各個機構的服務器或終端之間互傳。由于傳輸的數據量巨大,傳輸過程中經過的服務器及網絡環節眾多,因此,對數據傳輸的效率、可靠性、安全等方面提出了諸多要求,同時,現有應用需求對數據資源傳輸的要求也越來越高[1]。而傳統的文件傳輸工具已經無法勝任機構級應用環境的需求[2-3]。為此,快速、安全、穩定地實現大數據量網絡傳輸技術的研究是一個亟待解決的問題。
本文依據數據傳輸端之間所處的網絡環境,提出了大數據量傳輸系統架構,分別研究實現了即時數據傳輸與離線數據傳輸,并進行了性能測試。
依據開放互聯參考模型,本文設計的大數據量數據傳輸系統架構,主要包括網絡監測模塊、數據傳輸模塊、數據管理模塊、數據處理模塊,其系統架構如圖1所示。
(1)數據處理模塊。負責發送、接收數據,根據數據的處理規則,對數據進行一系列加密、解密、壓縮、解壓縮、指定編碼、解碼格式等操作,并將其封裝成若干UDP數據包(反之將若干UDP數據包組合)的內部模塊。
(2)數據管理模塊。負責對經過數據處理后的待發送數據包或剛接收到的數據包進行統一管理分配,負責數據的緩存管理、并發管理以及完整性管理。
(3)數據傳輸模塊。負責數據傳輸路徑的管理,通過對網絡鏈路環境的判斷來決定傳輸路徑(直發、打通直發、通過服務器轉發),并實現數據包準確的收、發過程。
(4)網絡監測模塊。負責監控本地與服務器連接超時,報告服務器下線通知,處理本地網絡異常及對數據傳輸雙方的網絡帶寬進行測試等功能。

即時數據傳輸要求通信雙方均保持在線狀態,經過一次“握手”之后,方能進行數據傳輸。若通信雙方“握手”不成功,發送方會自動將數據發往服務端,由服務端將數據轉發給接收方。同時為應對意外斷線的情況發生,提供了斷線續傳的功能,即使在傳輸過程中意外中斷,用戶仍可從斷點處重新開始傳輸,大大節省了時間和帶寬資源。其工作原理如圖2所示。

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

數據離線下載主要是負責數據下載,其工作原理如圖4所示。
該模塊主要包含HTTP下載組件和業務控制層模塊兩部分。HTTP下載組件是整個離線下載的核心部件,同時它很好地封裝了斷點續傳、線程負載調配、轉地址等操作而只為外部提供了啟動、暫停和關閉3種方法和一種事件委托方法及多個配置屬性,通過組件封裝可以很好地降低工程的耦合;且由于HTTP是一個基于請求與響應模式的、無狀態的、應用層的協議,?;赥CP的連接方式,HTTP1.1版本中給出一種持續連接的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應用以及嵌入其他語言使用。

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

表1 使用說明

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