張 健
(成都文理學(xué)院 信息工程學(xué)院,四川 成都 610401)
如果發(fā)生數(shù)據(jù)保存錯(cuò)誤,可以通過(guò)備份恢復(fù)原始數(shù)據(jù),文獻(xiàn)[1]在此基礎(chǔ)上進(jìn)行了相關(guān)研究,其分析了備份數(shù)據(jù)庫(kù)的緩存過(guò)程,在備份過(guò)程中可以采用如下三種備份策略:去冗余備份、同時(shí)備份和冗余備份。構(gòu)建數(shù)據(jù)資源需求模型,制訂備份策略時(shí),根據(jù)數(shù)據(jù)資源的使用量選擇最少的備份時(shí)間,這種方式備份時(shí)間短,但是備份數(shù)據(jù)庫(kù)的開(kāi)銷(xiāo)大;文獻(xiàn)[2]采用基于資源效用最大數(shù)據(jù)庫(kù)緩存方法,建立數(shù)據(jù)庫(kù)緩存該問(wèn)題評(píng)估模型,改善了數(shù)據(jù)庫(kù)備份機(jī)制,但與此同時(shí)也延長(zhǎng)了數(shù)據(jù)庫(kù)恢復(fù)時(shí)間。
基于以上問(wèn)題,本文提出基于空間數(shù)據(jù)維度劃分的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫(kù)緩存子系統(tǒng)設(shè)計(jì),其創(chuàng)新之處在于,根據(jù)數(shù)據(jù)在空間維度上的分布情況,確定數(shù)據(jù)集對(duì)應(yīng)的維度投影,消除網(wǎng)絡(luò)冗余數(shù)據(jù),降低備份數(shù)據(jù)庫(kù)緩存時(shí)間和成本。
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
由圖1可知,系統(tǒng)硬件結(jié)構(gòu)包括四個(gè)層次,分別是采集層、分析層、展示層和管理模塊與公共服務(wù)層。
1)采集層
采集層包括資產(chǎn)收集器、漏洞收集器、威脅收集器以及收集器管理員。采集管理員在系統(tǒng)中統(tǒng)一管理所有采集者,該部門(mén)負(fù)責(zé)接收收集程序收集的數(shù)據(jù),向分析層提交[3?4]。收集器可部署在網(wǎng)絡(luò)中的各種設(shè)備上,通過(guò)掃描或監(jiān)視獲得數(shù)據(jù)[5]。
圖1 系統(tǒng)硬件結(jié)構(gòu)
2)分析層
分析層負(fù)責(zé)采集數(shù)據(jù),并依據(jù)該數(shù)據(jù)評(píng)價(jià)網(wǎng)絡(luò)安全狀況[6]。通過(guò)對(duì)所收集的原始主機(jī)信息和拓?fù)湫畔⑦M(jìn)行分析,實(shí)現(xiàn)了網(wǎng)絡(luò)資源的動(dòng)態(tài)監(jiān)測(cè)。通過(guò)聯(lián)機(jī)分析和離線(xiàn)分析能夠確定網(wǎng)絡(luò)漏洞和威脅事件,并對(duì)緊急情況作出反應(yīng)[7?8]。脫機(jī)分析也稱(chēng)為兩級(jí)分析,是指對(duì)漏洞、威脅、風(fēng)險(xiǎn)和有關(guān)資料進(jìn)行分析。
3)展示層
展示層是用戶(hù)與系統(tǒng)交互界面,為用戶(hù)提供基礎(chǔ)安全環(huán)境、漏洞分析結(jié)果、風(fēng)險(xiǎn)變化趨勢(shì)、協(xié)議安全狀態(tài)檢測(cè)結(jié)果、安全預(yù)警信息[9?10]等。
4)管理模塊與公共服務(wù)層
管理模塊與公共服務(wù)層可為其他模塊提供數(shù)據(jù)存儲(chǔ)服務(wù)、數(shù)據(jù)緩存服務(wù)、定時(shí)服務(wù)以及各子系統(tǒng)之間通信服務(wù)等公共基礎(chǔ)服務(wù)[11]。
在實(shí)時(shí)通信系統(tǒng)中,控制層網(wǎng)絡(luò)單元需要訪(fǎng)問(wèn)數(shù)據(jù)中心的用戶(hù)數(shù)據(jù)、風(fēng)險(xiǎn)數(shù)據(jù)和相關(guān)的業(yè)務(wù)控制數(shù)據(jù)來(lái)實(shí)現(xiàn)其功能,同時(shí)還需要響應(yīng)大規(guī)模、并發(fā)的實(shí)時(shí)事務(wù)請(qǐng)求。緩存數(shù)據(jù)庫(kù)位于數(shù)據(jù)中心和通信網(wǎng)絡(luò)單元之間,一方面,系統(tǒng)提供通信網(wǎng)絡(luò)組件所需的基本數(shù)據(jù)庫(kù)功能,使其能夠通過(guò)緩存數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)數(shù)據(jù)中心存儲(chǔ)的數(shù)據(jù);另一方面,根據(jù)通信業(yè)務(wù)的實(shí)時(shí)性特點(diǎn),進(jìn)行實(shí)時(shí)事務(wù)處理以及大規(guī)模并發(fā)訪(fǎng)問(wèn)控制[2]。一個(gè)通信系統(tǒng)中用戶(hù)數(shù)據(jù)分層存儲(chǔ)磁帶庫(kù)如圖2所示。
由圖2可知,分布式緩存數(shù)據(jù)庫(kù)為用戶(hù)屬性注冊(cè)應(yīng)用提供了數(shù)據(jù)存儲(chǔ)和訪(fǎng)問(wèn)服務(wù),并與數(shù)據(jù)中心的關(guān)系數(shù)據(jù)庫(kù)綁定,實(shí)現(xiàn)數(shù)據(jù)同步緩存。
單片機(jī)冗余陣列是一種將同一數(shù)據(jù)存儲(chǔ)在多個(gè)硬盤(pán)不同位置的方法。輸入和輸出操作可以通過(guò)將數(shù)據(jù)放在多個(gè)硬盤(pán)驅(qū)動(dòng)器上以均衡的方式重疊來(lái)提高性能。同時(shí),由于多個(gè)硬盤(pán)驅(qū)動(dòng)器增加了平均故障間隔時(shí)間,存儲(chǔ)冗余數(shù)據(jù)也提高了容錯(cuò)能力。這是一個(gè)獨(dú)立的系統(tǒng),磁盤(pán)陣列直接連接到外部主機(jī)或通過(guò)網(wǎng)絡(luò)連接。RAID1和RAID0都存在類(lèi)似的問(wèn)題,即數(shù)據(jù)只能同時(shí)寫(xiě)入一個(gè)磁盤(pán),并且不能充分利用所有資源。要解決此問(wèn)題,可以在磁盤(pán)映像中創(chuàng)建條帶設(shè)置,因?yàn)檫@種配置方法結(jié)合了條帶化和鏡像的優(yōu)點(diǎn),所以稱(chēng)為0+1,如圖3所示。由圖3可知,磁盤(pán)組有多個(gè)端口,可以通過(guò)不同的主機(jī)或端口連接,主機(jī)與數(shù)組不同端口連接可以提高傳輸速度。結(jié)合RAID0和RAID1技術(shù),每個(gè)磁盤(pán)都有自己的物理鏡像磁盤(pán),允許一個(gè)或更少的磁盤(pán)故障,不影響數(shù)據(jù)可用性,并具有快速讀/寫(xiě)能力[12]。
圖2 分層存儲(chǔ)磁帶庫(kù)
圖3 RAID0+1磁盤(pán)陣列
緩存控制模塊如圖4所示。
1.3.1 外部接口
外圍設(shè)備是應(yīng)用服務(wù)器提供統(tǒng)一的數(shù)據(jù)接口。這種設(shè)計(jì)模式可以防止后端數(shù)據(jù)緩存子系統(tǒng)的變化影響應(yīng)用服務(wù)器的業(yè)務(wù)邏輯,實(shí)現(xiàn)高集成度和低松散匹配。此外,功能實(shí)體還將數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求的格式限制為HQL[13],它還封裝了一些復(fù)雜的數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求(如分頁(yè)查詢(xún)),以方便應(yīng)用服務(wù)器。
圖4 緩存控制模塊
1.3.2 核心控制器
核心控制器為緩存模塊提供數(shù)據(jù)訪(fǎng)問(wèn)空間,通過(guò)一致性維護(hù)模塊接收外界請(qǐng)求,驅(qū)動(dòng)數(shù)據(jù)緩存。
1.3.3 查詢(xún)適配層
查詢(xún)適配層在核心控制器支持下實(shí)現(xiàn)以下功能:
1)篩選不合適數(shù)據(jù),如數(shù)據(jù)更新請(qǐng)求和經(jīng)常修改數(shù)據(jù)的查詢(xún)請(qǐng)求,該系統(tǒng)將提供查詢(xún)規(guī)則庫(kù)。圖書(shū)館中的每條規(guī)則都代表一種數(shù)據(jù)查詢(xún)請(qǐng)求類(lèi)型,這種類(lèi)型不適合緩存(使用正則表達(dá)式)。只有數(shù)據(jù)訪(fǎng)問(wèn)請(qǐng)求與庫(kù)中的所有查詢(xún)規(guī)則不匹配,才可以進(jìn)入數(shù)據(jù)緩沖區(qū)。
2)查詢(xún)未經(jīng)處理的數(shù)據(jù),方便系統(tǒng)一致性維護(hù)。用已查詢(xún)請(qǐng)求模板ID和查詢(xún)參數(shù)列表的形式定義數(shù)據(jù)緩存區(qū)域的主鍵,并將所有查詢(xún)請(qǐng)求轉(zhuǎn)換成所需格式。
1.3.4 本地緩存控制器
本地緩存控制器應(yīng)用于本地用戶(hù)程序服務(wù)器,其主要功能是對(duì)本地?cái)?shù)據(jù)進(jìn)行管理與監(jiān)測(cè),保證本地緩存區(qū)域中數(shù)據(jù)的正常使用,避免數(shù)據(jù)更換過(guò)程中出現(xiàn)本地?cái)?shù)據(jù)丟失的現(xiàn)象。
數(shù)據(jù)集的對(duì)應(yīng)維數(shù)在遞階通信網(wǎng)中進(jìn)行投影,計(jì)算其相對(duì)熵,熵值越大,說(shuō)明數(shù)據(jù)在空間維度中分布越均勻,計(jì)算公式如下:
式中:X表示維度數(shù)據(jù)劃分集合;R(X)表示數(shù)據(jù)分布熵值;Havg(X)表示數(shù)據(jù)分布均勻的熵值;T表示維度數(shù)據(jù)劃分后的數(shù)據(jù)量;d(x)表示通信網(wǎng)絡(luò)數(shù)據(jù)在整個(gè)數(shù)據(jù)空間中的比例。
設(shè)置相對(duì)熵閾值區(qū)分冗余數(shù)據(jù)和非冗余數(shù)據(jù),通常情況下,相對(duì)熵值小于1的數(shù)值為非冗余數(shù)據(jù)維度閾值,而大于1的數(shù)值為冗余數(shù)據(jù)維度閾值,大于該閾值的則將被刪除。
設(shè)層次化通信網(wǎng)絡(luò)數(shù)據(jù)庫(kù)數(shù)據(jù)流為s,其組成的序列為{s1,s2,…,s n},每一項(xiàng)s i分為三個(gè)元組,分別是Ta,Re,Ti,分別代表層次化通信網(wǎng)絡(luò)識(shí)別碼、數(shù)據(jù)庫(kù)識(shí)別碼、檢測(cè)通信時(shí)間。在該數(shù)據(jù)流中,冗余數(shù)據(jù)集合為X,該集合中存在的數(shù)據(jù)為y,元素與該數(shù)據(jù)集合表達(dá)式為:
式中λ表示相關(guān)參數(shù)。
當(dāng)數(shù)據(jù)流中的X為局部冗余數(shù)據(jù)時(shí),XRe=Rr(X)?y?Re;當(dāng)數(shù)據(jù)流中X為全局冗余數(shù)據(jù)時(shí),存在數(shù)據(jù)y,YRe≠Rr(X)?y?Re。
在消除數(shù)據(jù)庫(kù)冗余數(shù)據(jù)過(guò)程中,出現(xiàn)錯(cuò)誤消除的概率為:
式中:nf表示錯(cuò)誤數(shù)據(jù)數(shù)量;nt表示正確數(shù)據(jù)數(shù)量。結(jié)合該公式,消除層次化通信網(wǎng)絡(luò)數(shù)據(jù)如下:
依據(jù)式(4)消除通信網(wǎng)絡(luò)冗余數(shù)據(jù)。
對(duì)緩存控制模塊進(jìn)行功能實(shí)體劃分和各功能實(shí)體責(zé)任劃分,緩存控制模塊工作流程如圖5所示。
圖5 緩存流程
圖5 顯示了緩存控制模塊初始化過(guò)程,其中主要有以下三點(diǎn):
1)查詢(xún)記錄初始化:讀取數(shù)據(jù)庫(kù)相關(guān)規(guī)則,并將這些規(guī)則存放于列表之中,并導(dǎo)入數(shù)據(jù)庫(kù)等待存儲(chǔ)。
2)本地緩存控制器初始化:根據(jù)XML配置文件設(shè)置,文件配置主要包含本地緩存的一些相關(guān)信息,例如:緩存區(qū)域的大小、被緩存對(duì)象的最大超時(shí)時(shí)間等。
3)緩存客戶(hù)端初始化:基于XML配置文件設(shè)置,即與遠(yuǎn)程緩存通信的客戶(hù)端,主要包含關(guān)于緩存客戶(hù)端的相關(guān)信息,比如:緩存客戶(hù)端服務(wù)器的IP地址列表、請(qǐng)求和響應(yīng)超時(shí)時(shí)間等。
采用標(biāo)準(zhǔn)C/C++編寫(xiě),與Oracle數(shù)據(jù)庫(kù)接口的OCI編程連接,支持多種操作系統(tǒng)。在該情況下,對(duì)設(shè)計(jì)的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫(kù)緩存子系統(tǒng)進(jìn)行實(shí)驗(yàn)驗(yàn)證分析。
為了驗(yàn)證系統(tǒng)性能,在實(shí)驗(yàn)過(guò)程中,設(shè)計(jì)兩個(gè)不同場(chǎng)景,分別是不存在冗余數(shù)據(jù)場(chǎng)景1、存在大量冗余數(shù)據(jù)場(chǎng)景2。
在場(chǎng)景1下,分別使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法和本文方法對(duì)數(shù)據(jù)緩存效果進(jìn)行對(duì)比分析,結(jié)果如圖6所示。
圖6 場(chǎng)景1下三種方法緩存效果對(duì)比分析
由圖6可知,使用文獻(xiàn)[1]方法和文獻(xiàn)[2]方法緩存效果始終低于85%,而使用本文方法緩存效果始終高于85%,具有良好的緩存效果。
在場(chǎng)景2下,分別使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法和本文方法對(duì)數(shù)據(jù)緩存效果進(jìn)行對(duì)比分析,結(jié)果如圖7所示。
圖7 場(chǎng)景2下三種方法緩存效果對(duì)比分析
由圖7可知,使用文獻(xiàn)[1]方法、文獻(xiàn)[2]方法受到冗余數(shù)據(jù)影響,2路集聯(lián)方式下的數(shù)據(jù)緩存效果低于80%,而32 KB管道尺寸和64 KB管道尺寸下的數(shù)據(jù)緩存效果低于60%;使用本文方法緩存效果依然高于85%,具有良好的緩存效果。
基于空間數(shù)據(jù)維度劃分的層次化通信網(wǎng)絡(luò)備份數(shù)據(jù)庫(kù)緩存子系統(tǒng)支持大量數(shù)據(jù)存儲(chǔ),存儲(chǔ)效果良好,并通過(guò)實(shí)驗(yàn)進(jìn)行了驗(yàn)證。通過(guò)消除冗余數(shù)據(jù),能夠有效地提高系統(tǒng)整體應(yīng)用性能。
為進(jìn)一步優(yōu)化系統(tǒng)結(jié)構(gòu),在大型網(wǎng)絡(luò)中采用數(shù)據(jù)緩存子系統(tǒng),某些系統(tǒng)部件可能會(huì)出現(xiàn)負(fù)載情況,影響整個(gè)子系統(tǒng)結(jié)構(gòu)。為此,在后續(xù)研究進(jìn)程中,借用分層控制理念對(duì)系統(tǒng)進(jìn)行改進(jìn),使其適應(yīng)大規(guī)模網(wǎng)絡(luò)應(yīng)用需求。