潘志安,王金峰,王茂發
(1. 防災科技學院信息工程學院,河北 三河 065201;2. 桂林電子科技大學計算機與信息安全學院,廣西 桂林 541004)
隨著網絡終端設備和處理能力提高,網絡容量也依據數據增加向容量更大、存儲速度更快、讀取效果更好、隱私安全防護更高的方向發展,能通過網絡傳輸的數據信息也就越來越多。由于人們對數據信息交流的需求都各有不同,所以存在各種各樣的信息交流平臺,但隨之也出現了因多種信息導致數據量激增,使網絡存儲與傳輸需要引用網絡控制協議來對突增數據進行處理。
在這種模式下,數據中心創造了內存遷移的可能性方案,許多數據請求和信息請求,將基于所傳輸的網絡發送到數據中心。傳統方法在具有獨立計算功能的機群系統中,計算機與存儲器的轉換不僅要求集成不同存取方式、傳輸不同類型信息、提供不同質量服務、采取不同安全措施,而且還需要實現透明的訪問,令用戶適應對應用網絡的要求,使控制系統更加靈活、開放、高效、簡單。
因此,樂鵬[1]等人為了能夠設計出更快速的存儲數據平臺,根據Apache spark數據構建對應數據計算模型,與分布式數據相結合,經計算得出空間數據中心點,并從分布式空間數據角度來看,將數據儲存的結構和接口進行連接,實現空間數據云儲存;姜韶華等人[2]為了提高多個BIM空間數據的存儲和檢索效率,將云計算與技術云結合,使用靈活的搜索路徑和neo4j對IFC空間數據進行存儲和檢索,利用高效、快速的云存儲搜索巨大的BIM空間數據。
雖然上述兩種方法可以有效實現存儲與檢索,但因沒有考慮到矢量數據,使處理數據過程不流暢,容易導致后續查詢效率得不到保證,因此本文為了實現更好的多進程空間數據存儲管理,利用空間四叉樹模型組織柵格數據,完成空間數據存儲與影像數據實時查詢,同時對HBase中的空間數據創建空間索引,通過索引完成多進程空間數據云存儲。
軟件定義的網絡(Software Defined Networking,SDN)是一種采用數據控制分離和軟件編程的網絡結構。SDN的數據平面由交換機等網元組成,通過不同規則組成SDN網絡數據路徑,構成各網元之間傳輸通道。網絡中控制層是整個網絡架構的指令服務中心,其主要目的是為了能夠更好的控制數據傳輸,并保證網絡運行狀態的穩定,在正常傳輸數據的同時,令網絡視圖抽象地服從網絡運行指令,基本架構如下圖1所示[3]。

圖1 SDN基本架構
底層交換機只是一個數據平面,它維護著數據庫中信息數據和交換信息的速度,而頂層控制決策則是由一個固定的遠程系統節點驅動程序來補充。在這個節點上,網絡管理員可以看到全局網絡信息,并根據這些信息做出最優決策。SDN網絡中的控制器具有全局視圖,可以控制整個管理區域的流量信息,這與傳統的只知道傳輸流量的交換機有很大不同[4]。
在SDN體系結構中,控制平面通過通信接口控制來管理網絡設備。該控制指令的流程是在控制器和網絡設備之間進行的,獨立于終端與設備之間通信產生的數據流,網絡指令通過接收控制命令生成一個數據傳輸表,然后對流量數據進行處理。
標準的SDN協議和onf發布的open flow主要涉及以下關鍵技術。
1)SDN控制器
控制器是構建數據傳輸網絡的重要構成部分,設計控制器的過程中,SND技術也是其中重要的步驟之一。如果設計出現偏差,雖然會構成控制器,但傳輸指令結果卻會因偏差,而出現傳輸數據操作系統不穩定的情況。數據平面通過南方接口協議,用于網絡的基本交換設備,此外控制器通過北方接口為上層應用程序打開許多級別的可編程能力。
2)SDN接口協議
SDN接口協議是該項技術編程實現的主要因素,該協議可以讓傳輸數據系統,通過頻率一致的信號進行連接傳輸,此外經過不斷更新,接口協議甚至可以彌補系統控件和數據之間的數據交互,并且可以通過此功能完成管理與配置[5]。
應用程序接口容納并開放這樣相關操作人員,就可以根據自己的需要靈活地配置、添加或刪除服務,并允許用戶自定義、開發和集成個人服務。應用一個開放的界面,可以使策略管理和用戶快速協作,更好地滿足智能管道時代個性化用戶的不同業務需求,方便用戶進行報表。這些接口協議實現了SDN編程的靈活性,是SDN的關鍵技術連接之一。
3)SDN數據區
快速交換SDN上的數據,可以根據分組控制區控制器,通過南方接口協議將數據傳輸決策均勻分配,從而降低設備的復雜度,提高網絡傳輸效率,為后續存儲云數據奠定基礎,因此管理層,SDN轉換設備的架構,如SDN芯片,SDN設備交換機和SDN軟件交換機應重新設計。
引用SDN技術構建數據中心,便可實現空間數據網絡資源、計算資源以及儲存資源歸一化,這樣就能為上層應用提供便捷的應用接口,為服務開發提供了新的契機。基于SDN的數據中心平臺的體系結構分為三個部分:
1)VDC Manager
虛擬數據中心負責實現整個多位置數據中心的業務邏輯,接口V M manager和Sdonis用于控制計算機資源、內存和網絡,并了解計算資源和資源網絡管理器的同步規劃,最大化的供給虛擬資源網絡與數據應用者之間的配置關系,然后在網絡中輸入管理邏輯視圖,這樣每個用戶都可以按照自己的思維邏輯查找或管理自己的虛擬網絡[6]。
2)SDNNOS
構建數據中心平臺時,SDN控制層是整個平臺的中心點,控制層完整合理是判定數據網絡是否可以快捷傳輸數據的主要條件,控制層還可以控制全網絡的數據資源。由于中心系統中每條傳輸數據都需要經過SDN技術控制,所以此處使用接口協議來對其進行控制,在保證數據傳輸效率的同時,也需要保證中心傳輸設備的運行速度。該軟件包括NOS核心,即網絡核心、當前環境和系統服務,允許在網絡上運行不同的應用模塊。Sdnnos為vdcmanager提供了一個開放的API。
3)VM Manager
Virtual machine manager負責管理計算和存儲資源。
隨著互聯網的廣泛推廣,來自實時傳感器的不同數據正在迅速增長,與此同時傳輸數據集合的存儲范圍也在不斷擴展,因此空間數據云儲存的需求條件也變得多樣化,使處理空間數據的過程越來越復雜,導致云儲存管理已成為相關研究領域亟待解決的問題。
傳統的SQL數據庫,如My SQL和Oracle,是一種處理海量數據和高并行數據需求的方法。但因操作難度高,導致數據存儲難以控制,具有存儲限制因素。
基于HBase的空間數據存儲主要分為5層,Linux系統、Hadoophe和HDFS層、HBase空間云數據存儲層、空間信息Web服務層和空間數據客戶端,基于HBase的空間數據存儲方案設計如圖2所示。

圖2 基于HBase的空間數據存儲設計
根據圖2可知,最底層的是Linux集群層,上層是Hadoophe和HDFS層,然后是HBase空間云數據存儲層;第二層是空間信息Web服務層,空間數據信息服務在空間數據客戶端以下,一方面可以接收客戶端的請求,另一方面指示數據的地理位置來訪問云端資源;第一層為空間數據客戶端,該客戶端包括空間數據索引操作、空間數據訪問等基本功能[7]。
與其它數據不同,空間數據可能不會直接存儲在硬盤或關系數據庫中,而是存儲在由HBAse集群組成的云平臺上。當傳統存儲方案被海量數據訪問時,其讀寫記錄會遠遠超出本身容量的范圍,同時在橫向擴展和錯誤恢復時變得尤為復雜。
Hbase能夠擴展空間數據的存儲,提升HDFS的錯誤檢測和自動恢復能力。當集群中服務器節點關閉或不工作時,主機節點會根據數據分發策略和防錯處理機制,自動在線向其它節點傳輸數據。這種運行方式在一定程度上降低了系統維護的復雜性。
由于在空間數據存儲過程中,必須尋找出適用于其數據的集合,所以便可以引用對應的空間數據索引對數據進行預處理。在空間數據存儲項目中HDFS是基于HBAse的地理索引的核心向量,提升空間查詢性能和索引搜索結果;網絡數據的檢索、存儲和管理以某種方式組織的空間圖像數據庫接收相關數據[8]。
四叉樹模型是空間數據物理領域劃分的一種典型模式,它將空間周期性劃分為四個相等的部分,并達到目標水平。四叉樹模型結構如圖3所示。

圖3 四叉樹模型結構
四叉樹模型的描述如下:
1)區域被劃分,每個區域接收不同的代碼A、B、C和D。
2)上圖3顯示了第1層中四個小節中的第二個四分之一。第一層的第二和第四層活動產生了四個新的區域。代碼是AA、AB、AC和AD。
3)由于第二次除法,它持續了四分之一,即在相反的方向。
網絡圖像具有地理位置,即與地理坐標相鄰的圖像可以同時或按順序提供,例如平移或放大,利用四等分的方式將正方形圖像等分編碼,采用相鄰網格對相鄰網格圖像進行編碼,并將組織類型在邏輯上對應空間數據的地理特征,這樣便可以從根本上降低存儲空間被磁盤訪問的次數,提升數據訪問量。
HBAse使用基于列的存儲模式,剖面由多柱族組成,一個柱族可以包含許多列。不同列不同于“column family:column labels”,列中最小的組件稱為cell,它可能在不同的時間包含同一數據的多個版本,與數據系列一起物理存儲。Ka表示數據行有一個鍵(rowkey),并且數據存儲在一個鍵排序的表中[9]。
因此在一個列族中存儲四個物理附著的圖像,不僅具有相鄰的存儲位置,而且與空間動作自定義相對應,且將空間數據行的數量減少到原始數字圖像的1/4。由于rowkey HBAse是按照樹B+進行排序和存儲的,因此減少了行數,也就是說,樹B+的節點數減少了,需求效率將得到顯著提高。
本文提出一種基于四叉樹的數據組織模型。柵格影像數據根據四叉樹方式進行組織,最后對每個柵格圖片進行四叉樹編碼,并將其存儲于HBase集群中,如表1所示。
四叉樹模型空間數據云儲存步驟如下:
1)網格圖像數據采用四叉樹編碼,每個網格圖像的主節點代碼是數據表行HBAse的關鍵。如果圖像的級別為0,則表示它是四叉樹的根節點,其編碼設置為“根”[10]。
2)HBAse數據表包含IMG列族,它由四列組成。用于存儲具有相同父節點的同一平面柵格的四個圖像。在IMG到A、B、C和D中的列時,如果圖像是0級,則表示它是四叉樹的根節點,則在該級別的IMG列中只記錄一個圖像。
3)空間屬性應存儲在柱族的列中。
4)如果圖像數據格式有多種類型,則通過列標題來區分不同格式的圖像。
5)不同時間域中的同一圖像存儲在不同版本的單元中,并由時間標記。
基于四叉樹模型柵格數據存儲方案的查詢結構如圖4所示。

圖4 四叉樹存儲格柵影響數據查詢
根據上述查詢結構可知存儲后查詢流程如下。
首先,客戶端在詢問和查看光柵圖像時,通過移動和縮放視圖生成視圖中相應的圖像編號和行號,并將指定區域的圖像編號和行號發送給服務器。然后,服務器將層號和行號轉換為相應的四叉樹模型代碼,并根據四叉樹代碼進一步計算數據表中所需圖像的R值。如果根據Robkey,則從HBase地理圖像數據庫中讀取相應的圖像并返回給客戶端。
根據上述存儲模型,四叉樹代碼由兩部分組成

(1)

(2)
式中,將Nrow和Ncol分別描述為行號及列號,其中n代表層號,而rk和ck被描述為行以及列的判斷函數。
為了能夠驗證本文算法的實際有效性,將在仿真中模擬空間數據云存儲及其存儲后的數據訪問效果,實際仿真中所引用的數據來自OSM(Open Street Map)數據庫提供的空間矢量數據,元素數分別為60000、250000、1200000、2700000,仿真數據總量約為2GB。
由于空間數據的特殊性,在實驗正式開始之前,需要在異構基礎上,構建一個HP集群節點。
集群由7個虛擬節點組成,其中2個分布在網絡中心計算機空間(Windows Server 2003和Ubuntu Server 10.04的Lunix操作系統,內核為2.6.32)。
由于兩個計算機空間相比,Ubuntu Server 10.04比Windows Server 2003傳輸數據的穩定性更高,所以設計系統過程中,將其中一個節點安裝在Windows Server2003種,此外四個節點均在Ubuntu server10.04中,這樣當網絡運行傳輸時,就以Ubuntu server10.04計算機空間為主,Windows Server2003為輔。
構建模擬系統之后,對空間數據存儲以及訪問性能進行測試,仿真測試分為兩個步驟,步驟一是本文方法與文獻[1]、[2]方法空間數據存儲安全性對比,步驟二則是將三種方法的空間數據導入存儲空間HBase中,所需要存儲時間的比較。
安全性測試過程中,其中存儲數據最大值為1100MB,成功率為100%,那么安全性對比結果如圖5所示。

圖5 矢量數據安全性能對比圖
根據上述對比圖可以明顯看出,本文方法的數據存儲安全性明顯優于文獻方法,雖然隨著數據存儲量的增加,可能因海量數據存儲指令發生沖突,導致整體安全性能逐漸降低,但仍優于文獻方法。
從多進程空間數據存儲安全性對比結果,便可看出數據云存儲的數據有效性,所以通過效率測試進一步判定該算法的性能。本文所測試的數據范圍在0MB到1024MB范圍內,測試結果如圖6所示。

圖6 空間數據存儲效率對比圖
根據上述對比結果可以看出,本文方法可以用最短的時間將多進程數據存儲至空間中,并且不會出現隨著數據量增加,激增所用時間的情況,由此可以看出本文方法可以并行處理應用,顯著提高地理需求的速度,具有廣泛的應用前景。
本文提出基于SDN技術的多進程空間數據云存儲方法,利用空間四叉樹模型,對存儲于多進程的空間數據組織柵格,然后計算該模型編碼,完成最終存儲查詢。雖然所提方法存儲管理設計得到了一定成果,但仍有需要改進的地方,未來研究重點則是,在保證空間數據存儲性能的基礎上,針對查詢數據消耗時間長進行優化計算。