摘 要 提出了一套對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析和檢索系統(tǒng)的設(shè)計(jì)方案。采用分布式技術(shù)在windows平臺(tái)上建立了一套以任務(wù)分發(fā)服務(wù)器為中心,運(yùn)算終端為任務(wù)處理單元,帶有反饋和容錯(cuò)機(jī)制的分布式數(shù)據(jù)檢索系統(tǒng)。在給出系統(tǒng)模型和設(shè)計(jì)思想基礎(chǔ)上,對(duì)各個(gè)功能部件進(jìn)行了模塊化設(shè)計(jì)、并對(duì)各模塊故障進(jìn)行了測(cè)試,結(jié)果表明,系統(tǒng)能夠在部分模塊出錯(cuò)的情況下穩(wěn)定運(yùn)行,能夠滿(mǎn)足在實(shí)際工作中的需求。
關(guān) 鍵 詞 分布式數(shù)據(jù)檢索; windows; 反饋; 容錯(cuò)機(jī)制;
中圖分類(lèi)號(hào):文獻(xiàn)標(biāo)識(shí)碼:
DesignAnd Implement of A Data Retrieval Distribution System
ZHU Xin,ZHONG Qiu-xi
(School of Computer, National University of Defense Technology, Changsha,Hunan 410073,China)
Abstract Authors propose a set of pairs of unstructured data analysis and retrieval system design. Use of distributed technology in the windows platform to establish a set of task-distribution server as the central task of computing the terminal processing unit, with feedback and fault-tolerant mechanism for distributed data retrieval system. In the given system model and design based on the idea of the various functional components of the modular design, and failure of each module was tested, results show that the system can go wrong in some cases the module stable operation to meet the actual work requirements.
Key words Data Retrieval Distribution; windows; feedback; fault-tolerant mechanism
隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)的推廣和普及,互聯(lián)網(wǎng)在帶來(lái)發(fā)布、傳遞和獲取信息自由便利的同時(shí),各種虛假信息、垃圾郵件、個(gè)人隱私問(wèn)題、網(wǎng)上經(jīng)濟(jì)犯罪、危及社會(huì)穩(wěn)定、涉及國(guó)家重大利益等內(nèi)容的信息所引發(fā)的問(wèn)題日益突現(xiàn)[1]。近年來(lái)互聯(lián)網(wǎng)上的各種網(wǎng)絡(luò)犯罪形式日趨多樣,傳統(tǒng)的網(wǎng)絡(luò)監(jiān)管方式已無(wú)法適應(yīng)當(dāng)前的需求,特別對(duì)于一些網(wǎng)絡(luò)黑客的攻擊行為難以被傳統(tǒng)的監(jiān)控系統(tǒng)所識(shí)別。當(dāng)前互聯(lián)網(wǎng)監(jiān)管部門(mén)在對(duì)海量互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行分析、檢索過(guò)程只關(guān)注到了結(jié)構(gòu)化文本數(shù)據(jù)[2],而大量的非結(jié)構(gòu)化的二進(jìn)制數(shù)據(jù)由于受數(shù)據(jù)庫(kù)處理能力限制,關(guān)鍵詞的設(shè)定和并不能像文本數(shù)據(jù)那樣通過(guò)自然語(yǔ)言的結(jié)構(gòu)化信息抽取[3]建立數(shù)據(jù)索引。因此面對(duì)互聯(lián)網(wǎng)上巨大的數(shù)據(jù)量就必須有一套高效的系統(tǒng)來(lái)對(duì)這類(lèi)攻擊行為進(jìn)行及時(shí)的處理。這套系統(tǒng)主要針對(duì)海量的省或市的出口網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行篩選和自動(dòng)識(shí)別。
目前中型城市的出口帶寬都在100G以上,雖然單臺(tái)計(jì)算機(jī)的處理能力不斷提高,但是對(duì)于大規(guī)模的數(shù)據(jù)運(yùn)算,單臺(tái)計(jì)算機(jī)的處理能力畢竟有限,面對(duì)如此龐大的數(shù)據(jù)量必須采用分布式技術(shù),利用多臺(tái)計(jì)算機(jī)的計(jì)算或存儲(chǔ)資源來(lái)解決這一問(wèn)題。作者針對(duì)目前海量非結(jié)構(gòu)化數(shù)據(jù)處理的需求,在Windows環(huán)境上構(gòu)建了分布式任務(wù)分?jǐn)?shù)據(jù)檢索系統(tǒng),以滿(mǎn)足省際或市際網(wǎng)關(guān)中對(duì)大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)實(shí)施分布式檢索的需求。
1 系統(tǒng)設(shè)計(jì)
目前對(duì)省際或市際網(wǎng)絡(luò)數(shù)據(jù)截取的流程如下圖1:
通過(guò)部署在各個(gè)網(wǎng)關(guān)處的采集設(shè)備將采集的網(wǎng)絡(luò)數(shù)據(jù)包按不同的協(xié)議類(lèi)型存儲(chǔ)到磁盤(pán)陣列服務(wù)器(文件池)中,待查詢(xún)。
圖 1 目前對(duì)省際或市際網(wǎng)絡(luò)數(shù)據(jù)截取的流程
Fig.1 The current inter-provincial or inter-city network data interception process
由于在市際、省際網(wǎng)關(guān)數(shù)據(jù)量極大,要在網(wǎng)關(guān)處對(duì)網(wǎng)絡(luò)數(shù)據(jù)數(shù)據(jù)包抓取,受限于計(jì)算機(jī)的成本和處理能力,因此作者在設(shè)計(jì)的該套系統(tǒng)部主要用對(duì)已獲取的數(shù)據(jù)進(jìn)行分析和處理。
整個(gè)系統(tǒng)由三個(gè)部分組成,1)任務(wù)分發(fā)中心,為用戶(hù)提供特定的接口;2)運(yùn)算終端,執(zhí)行分發(fā)任務(wù);3)數(shù)據(jù)庫(kù),用于管理任務(wù)和終端。其中任務(wù)分發(fā)中心是整個(gè)系統(tǒng)的核心部分,主要負(fù)責(zé)將任務(wù)數(shù)據(jù)庫(kù)中的任務(wù)分發(fā)到各個(gè)終端進(jìn)行運(yùn)算。系統(tǒng)模型如圖2
圖 2 系統(tǒng)模型
Fig.2 System Model
文件池:通過(guò)專(zhuān)用系統(tǒng)捕獲網(wǎng)絡(luò)數(shù)據(jù),以IP包的形式存于磁盤(pán)陣列器中。
數(shù)據(jù)采集模塊:采集文件池中需要被匹配的文件路徑,并將文件路徑加入數(shù)據(jù)庫(kù)中,同時(shí)監(jiān)聽(tīng)文件池中新增文件的系統(tǒng)消息,動(dòng)態(tài)的將文件池的新增文件加入至數(shù)據(jù)庫(kù)之中。
任務(wù)分發(fā)中心:監(jiān)聽(tīng)參與運(yùn)算的終端設(shè)備,采用輪詢(xún)機(jī)制檢測(cè)終端設(shè)備是否由于某種原因停止運(yùn)算或脫離運(yùn)算,實(shí)時(shí)調(diào)整運(yùn)算任務(wù), 即,一旦某個(gè)終端停止工作,即將其未完成的任務(wù)加入至未執(zhí)行任務(wù)列表,并將該任務(wù)分發(fā)給其他終端。
運(yùn)算終端:查詢(xún)數(shù)據(jù)庫(kù)中分配給自己的任務(wù)列表,并將文件池中的相應(yīng)數(shù)據(jù)拷貝一份,執(zhí)行運(yùn)算。
2詳細(xì)設(shè)計(jì)
本系統(tǒng)提供的一種用于基于任務(wù)方式的分布式運(yùn)算環(huán)境。
系統(tǒng)各功能部件詳細(xì)設(shè)計(jì),如圖3:
圖 3系統(tǒng)各功能部件詳細(xì)設(shè)計(jì)
Fig.3The detailed design of the system features
2.1 各部件功能描述
系統(tǒng)各部件采用集中—分布的協(xié)作方式。當(dāng)運(yùn)算終端完成任務(wù)時(shí),通知任務(wù)分發(fā)中心, 后者根據(jù)當(dāng)前總體任務(wù)進(jìn)行決策, 及時(shí)通知運(yùn)算終端是否要繼續(xù)執(zhí)行任務(wù)。各運(yùn)算終端通過(guò)監(jiān)控模塊向任務(wù)運(yùn)算中心返回任務(wù)執(zhí)行的進(jìn)度,若任務(wù)分發(fā)中心定時(shí)輪詢(xún)到某運(yùn)算終端長(zhǎng)時(shí)間無(wú)法響應(yīng),將收回收該終端的未完成的任務(wù),并將這些任務(wù)發(fā)送到總體任務(wù)列表中。任務(wù)分發(fā)中心通過(guò)管理任務(wù)據(jù)庫(kù)來(lái)分配任務(wù),運(yùn)算終端啟動(dòng)時(shí)只需要到數(shù)據(jù)庫(kù)中取得相應(yīng)的數(shù)據(jù)即可。
監(jiān)控模塊: 對(duì)運(yùn)算終端的忙閑狀態(tài)進(jìn)行監(jiān)控,并定時(shí)向任務(wù)分發(fā)中心匯報(bào)終端狀態(tài)。如果認(rèn)為運(yùn)算終端正在運(yùn)算,向任務(wù)分發(fā)中心報(bào)告忙,如果認(rèn)為運(yùn)算終端已完成任務(wù),則任務(wù)分發(fā)中心對(duì)其繼續(xù)發(fā)送任務(wù)。
通信模塊:根據(jù)協(xié)議標(biāo)準(zhǔn)規(guī)定的要求, 負(fù)責(zé)與任務(wù)分發(fā)中心進(jìn)行通信, 該系統(tǒng)對(duì)這里的通信接口進(jìn)行了簡(jiǎn)化, 不允許各個(gè)終端之間進(jìn)行直接通信, 終端只能與控制中心進(jìn)行雙向通信。
任務(wù)分發(fā)中心接收用戶(hù)請(qǐng)求, 產(chǎn)生數(shù)據(jù)請(qǐng)求, 然后將請(qǐng)求根據(jù)特定負(fù)載均衡算法發(fā)送給各個(gè)運(yùn)算終端,進(jìn)行操作。任務(wù)分發(fā)中心由用戶(hù)接口、控制管理、監(jiān)聽(tīng)模塊、通訊模塊四部分組成。
用戶(hù)接口: 提供操作界面, 用戶(hù)通過(guò)圖形界面完成系統(tǒng)控制和管理功能。 用戶(hù)接口負(fù)責(zé)將用戶(hù)請(qǐng)求翻譯成系統(tǒng)請(qǐng)求交給控制管理模塊處理。
控制管理模塊: 根據(jù)請(qǐng)求類(lèi)別, 構(gòu)造協(xié)議數(shù)據(jù)傳輸單元, 通過(guò)協(xié)議接口發(fā)送請(qǐng)求到相應(yīng)目的地。同時(shí)處理監(jiān)聽(tīng)模塊反饋的運(yùn)算終端的退出和加入情況,根據(jù)負(fù)載均很算法動(dòng)態(tài)分配任務(wù)??刂乒芾磉€完系統(tǒng)參數(shù)設(shè)置工作。
監(jiān)聽(tīng)模塊:一方面監(jiān)聽(tīng)各終端返回的狀態(tài)信息,另一方面,采用定時(shí)輪詢(xún)機(jī)制檢查各運(yùn)算終端是否存活。如果發(fā)現(xiàn)某一終端在一定時(shí)間內(nèi)沒(méi)有響應(yīng),則將該情況匯報(bào)值控制管理模塊。另外,當(dāng)有新的終端加入該運(yùn)算體系時(shí)也將情況反饋至控制管理模塊。
通信模塊: 接收識(shí)別運(yùn)算終端發(fā)出的協(xié)議數(shù)據(jù), 對(duì)協(xié)議數(shù)據(jù)進(jìn)行處理,同時(shí)將控制決策中心的用戶(hù)意圖發(fā)送給各個(gè)終端,完成管理和控制功能。
任務(wù)列表: 由任務(wù)分發(fā)中心負(fù)責(zé)維護(hù),使用MS Sql2005作為任務(wù)列表的數(shù)據(jù)庫(kù)平臺(tái)[4],分別存放運(yùn)算終端信息,分配給各終端的任務(wù),需要進(jìn)行運(yùn)算的規(guī)則庫(kù)[5]。
運(yùn)算終端:運(yùn)算終端是整個(gè)數(shù)據(jù)挖掘系統(tǒng)中部署在各個(gè)單機(jī)上的數(shù)據(jù)挖掘設(shè)。運(yùn)算終端通過(guò)主動(dòng)加入運(yùn)算系統(tǒng),定時(shí)向任務(wù)分發(fā)中心匯報(bào)自身狀態(tài)(CPU使用情況,任務(wù)完成情況),主動(dòng)連接數(shù)據(jù)庫(kù)服務(wù)器檢查自己的任務(wù)列表,然后根據(jù)任務(wù)內(nèi)容完成自己的任務(wù)。完成任務(wù)后將檢測(cè)結(jié)果回寫(xiě)至數(shù)據(jù)庫(kù),并通報(bào)任務(wù)分發(fā)中心。運(yùn)算終端首次加入運(yùn)算系統(tǒng)中,先向任務(wù)分發(fā)中心提交加入運(yùn)算的申請(qǐng),若審核通過(guò)任務(wù)分發(fā)中心將向其提供一個(gè)唯一標(biāo)識(shí)ID,運(yùn)算終端接受此ID后,即將該ID保存在本地,下次加入運(yùn)算時(shí)將直接用該ID與任務(wù)分發(fā)中心通訊。
2.2部件間通信協(xié)議
( 1 ) 消息格式[7]
監(jiān)聽(tīng)模塊和運(yùn)算終端之間通信采用統(tǒng)一的消息格式,如圖 3 所示。其中ID是消息標(biāo)識(shí),用于區(qū)分不同的運(yùn)算終端,CPUStatus是當(dāng)前運(yùn)算終端的CPU使用狀態(tài),包括消息頭和消息體;ClientIP為當(dāng)前運(yùn)算終端的IP地址;Status表示當(dāng)前運(yùn)算終端以完成的任務(wù)數(shù);Total表示分配給當(dāng)前運(yùn)算終端所有任務(wù)數(shù);Iscomplete表示當(dāng)前終端是否已完成任務(wù)。
圖 3 消息格式
Fig.3 Message format
( 2 )注冊(cè)消息
運(yùn)算終端到任務(wù)分發(fā)中心的注冊(cè)功能由名字請(qǐng)求及應(yīng)答消息來(lái)完成。每個(gè)部件啟動(dòng)時(shí),向指定的控制決策中心發(fā)送名字請(qǐng)求消息, 該消息包含了部件自己的有關(guān)信息, 如名字、所在系統(tǒng)的I P 、狀態(tài)等。 任務(wù)分發(fā)中心收到名字請(qǐng)求后,進(jìn)行身份認(rèn)證, 通過(guò)后, 記錄該部件的有關(guān)信息, 并根據(jù)I D的分配策略為其分配唯一I D值,終端接收到ID將該憑據(jù)保存在本地,之后該終端將用ID接受任務(wù)分發(fā)中心控制,并執(zhí)行運(yùn)算。
( 3 ) 部件間的握手消息
由于系統(tǒng)的各部件運(yùn)行在不同環(huán)境中, 任務(wù)分發(fā)中心必須實(shí)時(shí)了解其它各部件的當(dāng)前狀態(tài),各部件也必須實(shí)時(shí)了解任務(wù)分發(fā)中心的狀態(tài),這通過(guò)HELLO消息來(lái)實(shí)現(xiàn)。 需要互相了解狀態(tài)的部件之間必須定時(shí)通知對(duì)方自己的狀態(tài), 若一方超時(shí)收不到這種通知, 就認(rèn)為對(duì)方出現(xiàn)了異常情況, 并作相應(yīng)處理。 對(duì)任務(wù)分發(fā)中心采說(shuō),若它輪詢(xún)?cè)L問(wèn)某個(gè)終端時(shí),超時(shí)收不到某個(gè)部件的HELLO消息,就將其從當(dāng)前活動(dòng)部件表中刪除,并不再向它發(fā)送HELLO消息、 各類(lèi)查詢(xún)消息以及各類(lèi)設(shè)置消息。
( 4 ) 其他消息
系統(tǒng)部件間的通信協(xié)議還包括其他許多交互消息, 如控制決策中心到其他部件各類(lèi)信息查詢(xún)和應(yīng)答、 其他部件到任務(wù)分發(fā)中心的各類(lèi)事件等消息。
2.3任務(wù)分發(fā)策略[6]
本系統(tǒng)以固定任務(wù)數(shù)和動(dòng)態(tài)任務(wù)分配相結(jié)合的方式分配任務(wù),
(1)固定任務(wù)數(shù)
每個(gè)終端分配每次分配固定數(shù)量任務(wù),任務(wù)完成后即向任務(wù)分發(fā)中心匯報(bào),并申請(qǐng)新的任務(wù)。如果沒(méi)有任務(wù)分配將進(jìn)入等待狀態(tài)。
(2)動(dòng)態(tài)任務(wù)分配
每個(gè)終端加入本系統(tǒng)時(shí),如果狀態(tài)顯示為閑,任務(wù)分發(fā)中心將向該終端分發(fā)配置任務(wù)數(shù)。若某個(gè)終端由于某種原因離開(kāi)了運(yùn)算,一旦被任務(wù)分發(fā)中心偵測(cè)到,則將會(huì)將該終端未完成的任務(wù)重新發(fā)送至任務(wù)列表中。
3 系統(tǒng)實(shí)現(xiàn)
任務(wù)分發(fā)中心如下圖4,圖中顯示了參加運(yùn)算任務(wù)的終端,及其工作狀態(tài)。
圖 4 任務(wù)分發(fā)中心界面
Fig.4 The task distribution center interface
系統(tǒng)特點(diǎn)
分布性: 數(shù)據(jù)分析部分在系統(tǒng)的部署是分布的。
標(biāo)準(zhǔn)性:系統(tǒng)各部分間的通信采用標(biāo)準(zhǔn)的通信協(xié)議,擁有一整套嚴(yán)格定義的通信規(guī)范和數(shù)據(jù)格式。
擴(kuò)充性:系統(tǒng)各部分采取標(biāo)準(zhǔn)化設(shè)計(jì),使得新終端部分的加入變得相當(dāng)簡(jiǎn)單,運(yùn)算終端和任務(wù)分發(fā)中心有著標(biāo)準(zhǔn)的協(xié)商機(jī)制。
容錯(cuò)性:當(dāng)系統(tǒng)某一個(gè)代理出現(xiàn)問(wèn)題,不能完成自己的檢測(cè)任務(wù)時(shí), 整個(gè)系統(tǒng)還可以正常運(yùn)作,其運(yùn)算能力不會(huì)有明顯下降。
4結(jié) 語(yǔ)
系統(tǒng)采用了易于擴(kuò)充的結(jié)構(gòu),在Windows操作系統(tǒng)上實(shí)現(xiàn)了多終端的分布式系統(tǒng),利用固定任務(wù)數(shù)和動(dòng)態(tài)任務(wù)分配相結(jié)合的方式,解決了任務(wù)分發(fā)處理復(fù)雜,緩解了任務(wù)分發(fā)中心的運(yùn)算壓力。任務(wù)分發(fā)中心和運(yùn)算終端的通信模塊和控制模塊采用獨(dú)立線(xiàn)程實(shí)現(xiàn),增強(qiáng)了系統(tǒng)可靠性。 在測(cè)試中,分別停止控制進(jìn)程,通信進(jìn)程;突然關(guān)閉節(jié)點(diǎn)電源,重啟動(dòng)節(jié)點(diǎn)的操作系統(tǒng)等多手段模擬了系統(tǒng)故障。系統(tǒng)均能正確地從故障狀態(tài)切換到正常工作狀態(tài)。
參考文獻(xiàn)
[1]Top500 Supercomputer Site. TOP500 List [OL]. http://www.top500.org/ ,2008
[2]楊喜敏,曾廣平.信息系統(tǒng)中非結(jié)構(gòu)化文本數(shù)據(jù)的輸入技術(shù)研究[J].微計(jì)算機(jī)信息,2006,(12)
YANG Xi-min, ZENG Guang-ping. Information system unstructured text data input technology research [J]. Micro-computer information, 2006, (12)
[3]郝愛(ài)峰.網(wǎng)頁(yè)結(jié)構(gòu)化信息抽取技術(shù)方法研究[J].山西電子技術(shù),2008,(4)
HAO Ai-feng. Pages of structured method of information extraction techniques [J]. Shanxi Electronic Technology, 2008, (4)
[4] Thomas Connolly Carolyn BeggDataBase Systems A Practical Approach to Design,Implementation,and Management
[5] 魯宏偉, 魏凱, 孔華鋒.華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2006,10:
LU Hong-wei, KAI Wei, KONG Hua-feng.Journal of Huazhong University of Science and Technology:(Natural Science Edition, 2006, 10:
[6]SRINICASAN R. Distributed detection with decision feed 2 back [J ] . IEE PROCEEDINGS , 1990 , 137(1) : 427-432.
[7]Fred Halsall Computer Networking and the Internet
[8] Microsoft Visual Studio on MSDN. http://msdn.microsoft.com
[9] W.Lee, A data mining for constructing features and models for intrusion detection system [D] . Ph.D.Dissertation . Columbia University,1999
[10]Phil Picton.Neural networks[M].Second Edition.Hampshire:PALGRAVE,2000.