本發(fā)明涉及文件管理技術(shù)領(lǐng)域,具體而言,涉及一種文件追蹤方法、裝置及系統(tǒng)。
背景技術(shù):
在大數(shù)據(jù)環(huán)境下對海量的數(shù)據(jù)進行可靠、有效的管控,成為數(shù)據(jù)安全研究的熱點。尤其是對于文本、圖像、視頻等非結(jié)構(gòu)化數(shù)據(jù)而言,其種類雜、數(shù)量多、分布廣、大小不一等特點給文件系統(tǒng)的數(shù)據(jù)對象監(jiān)管更是帶來了挑戰(zhàn)。
在非結(jié)構(gòu)化數(shù)據(jù)管控工作中,主要存在著以下問題與挑戰(zhàn):
1)對數(shù)據(jù)對象全生命周期中操作行為的追蹤管控不夠系統(tǒng);
2)數(shù)據(jù)對象發(fā)生異常行為時,難以對該數(shù)據(jù)對象的全生命周期進行快速、準確的定位追蹤與取證工作,如發(fā)生數(shù)據(jù)對象泄露等安全事件時,取證工作往往需要人工查詢大量的審計日志,從中定位出相關(guān)信息,這種方式費時費力,精準度也難以保證;
3)缺乏有效的數(shù)據(jù)可視化分析;大量的審計日志中隱藏著巨大的數(shù)據(jù)價值,數(shù)據(jù)可視化分析不僅能讓用戶直觀了解當前數(shù)據(jù)管控的基本情況,還能查看到數(shù)據(jù)對象在使用頻度、數(shù)據(jù)類型、容量、分布等方面的趨勢特征,從而提高數(shù)據(jù)實時管控效能。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,提供一種基于全生命周期樹的文件追蹤方法與系統(tǒng),它可以有效解決現(xiàn)有技術(shù)中存在的問題,尤其是對數(shù)據(jù)對象全生命周期中操作行為的追蹤管控不夠系統(tǒng)的問題。
為解決上述技術(shù)問題,本發(fā)明采用如下的技術(shù)方案:基于全生命周期樹的文件追蹤方法,利用數(shù)據(jù)全生命周期樹形存儲結(jié)構(gòu)對數(shù)據(jù)對象在全生命周期中的操作行為進行追蹤管控。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例的目的在于提供一種文件追蹤方法、裝置及系統(tǒng)。
本發(fā)明實施例提供一種文件追蹤方法,應(yīng)用于與終端機通信連接的服務(wù)器,該方法包括:
S1,采集所述終端機的相關(guān)信息,對終端機指定目錄下的文件的操作行為進行捕捉監(jiān)控,所述相關(guān)信息包括終端機物理地址、網(wǎng)絡(luò)地址、操作系統(tǒng)用戶;
S2,根據(jù)所述指定目錄下捕捉到的文件的操作行為生成對應(yīng)的文件操作事件;
S3,將所述文件操作事件轉(zhuǎn)換成日志存儲到數(shù)據(jù)庫中;
S4,接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求后,根據(jù)所述數(shù)據(jù)庫中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
優(yōu)選地,步驟S3包括:若所述文件操作事件是第一類事件,則生成行鍵,將所述第一類事件生成日志,并在所述日志的第一字段添加本結(jié)點行鍵值,作為根結(jié)點指針,存儲到所述數(shù)據(jù)庫中;
若所述文件操作事件是第二類事件,則生成行鍵,將所述第二類事件生成日志,并查找所述第二類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫中,存儲成功后,將新生成的所述日志的行鍵追加存儲到所述最新的一條日志的第二字段中;
若所述文件操作事件是第三類事件,則生成行鍵,將所述第三類事件生成日志,并查找所述第三類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫中。
優(yōu)選地,步驟S4包括:所述服務(wù)器接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤請求后,所述服務(wù)器根據(jù)收到的所述對目標文件全生命周期進行定位追蹤請求中包含的所述目標文件的相關(guān)信息生成行鍵進行索引,確定日志條目;
所述服務(wù)器根據(jù)所述日志條目得到對應(yīng)的數(shù)據(jù)標識符,查詢所述數(shù)據(jù)標識符下的最新一條日志,從所述最新一條日志中獲取根結(jié)點指針,從而獲取根結(jié)點日志;從根結(jié)點進行迭代,進行樹構(gòu)建。
優(yōu)選地,所述文件操作事件由所述終端機在捕獲到文件操作事件時實時發(fā)送給所述服務(wù)器,或由終端機在捕獲到文件操作時進行存儲然后不定時地發(fā)送給所述服務(wù)器。
優(yōu)選地,所述數(shù)據(jù)庫為HBase分布式數(shù)據(jù)庫。
本發(fā)明實施例還提供一種文件追蹤裝置,應(yīng)用于與終端機通信連接的服務(wù)器,所述裝置包括:
采集模塊,用于采集所述終端機的相關(guān)信息,對終端機指定目錄下的文件的操作行為進行捕捉監(jiān)控,并將所述操作行為生成對應(yīng)的文件操作事件,所述相關(guān)信息包括終端機物理地址、網(wǎng)絡(luò)地址、操作系統(tǒng)用戶;
處理模塊,用于將所述文件操作事件轉(zhuǎn)換成日志;
存儲模塊,用于將所述日志存儲至數(shù)據(jù)庫;
追蹤模塊,用于在接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求后,根據(jù)所述數(shù)據(jù)庫中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
優(yōu)選地,所述處理模塊:還用于若所述文件操作事件是第一類事件,則生成行鍵,將所述第一類事件生成日志,并在所述日志的第一字段添加本結(jié)點行鍵值,作為根結(jié)點指針,存儲到所述數(shù)據(jù)庫中;
還用于若所述文件操作事件是第二類事件,則生成行鍵,將所述第二類事件生成日志,并查找所述第二類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫中,存儲成功后,將新生成的所述日志的行鍵追加存儲到所述最新的一條日志的第二字段中;
還用于若所述文件操作事件是第三類事件,則生成行鍵,將所述第三類事件生成日志,并查找所述第三類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫中。
優(yōu)選地,所述追蹤模塊:還用于根據(jù)收到的所述對目標文件全生命周期進行定位追蹤請求中包含的所述目標文件的相關(guān)信息生成行鍵進行索引,確定日志條目;
還用于查詢所述數(shù)據(jù)標識符下的最新一條日志,從所述最新一條日志中獲取根結(jié)點指針,從而獲取根結(jié)點日志;從根結(jié)點進行迭代,進行樹構(gòu)建。
本發(fā)明實施例還提供一種文件追蹤系統(tǒng),所述系統(tǒng)包括相互通信連接的終端機及服務(wù)器;
所述終端機包括:
終端行為監(jiān)控模塊,用于對指定目錄下的文件的操作行為進行捕捉監(jiān)控,根據(jù)所述操作行為生成對應(yīng)的文件操作事件;
發(fā)送模塊,用于將所述文件操作事件發(fā)送給所述服務(wù)器;
追蹤請求模塊,用于向所述服務(wù)器發(fā)送目標文件全生命周期定位追蹤的請求;
所述服務(wù)器包括:
處理模塊,用于將所述文件操作事件轉(zhuǎn)換成日志;
存儲模塊,用于將所述日志存儲至數(shù)據(jù)庫;
追蹤模塊,用于在接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求后,根據(jù)所述數(shù)據(jù)庫中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
優(yōu)選地,所述終端機的發(fā)送模塊:
用于實時地將所述的文件操作事件發(fā)送給所述服務(wù)器;或
用于將所述文件操作事件存儲在所述終端機,及不定時地將存儲在所述終端機中的所述操作事件發(fā)送給所述服務(wù)器。
根據(jù)上述實施例中的方法、裝置及系統(tǒng),利用生命周期樹這種統(tǒng)一直觀的結(jié)構(gòu)實現(xiàn)了對數(shù)據(jù)對象全生命周期中操作行為的系統(tǒng)追蹤管控。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1是本發(fā)明較佳實施例提供的服務(wù)器與終端機進行交互的示意圖。
圖2是本發(fā)明較佳實施例提供的服務(wù)器的方框示意圖。
圖3是本發(fā)明第一實施例提供的文件追蹤方法的流程圖。
圖4是本發(fā)明較佳實施例提供的文件追蹤方法中文件操作事件類型的判斷流程示意圖。
圖5是本發(fā)明第二實施例提供的文件追蹤裝置的功能模塊示意圖。
圖6是本發(fā)明第三實施例提供的文件追蹤系統(tǒng)的功能模塊示意圖。
圖標:100-服務(wù)器;200-終端機;300-網(wǎng)絡(luò);400-數(shù)據(jù)庫;110-文件追蹤裝置;111-存儲器;112-處理器;113-通信單元;1101-采集模塊;1102-處理模塊;1103-存儲模塊;1104-追蹤模塊;210-終端行為監(jiān)控模塊;220-發(fā)送模塊;230-追蹤請求模塊。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
如圖1所示,是本發(fā)明較佳實施例提供的服務(wù)器100與終端機200進行交互的示意圖。所述服務(wù)器100通過網(wǎng)絡(luò)300與終端機200進行通信連接,以進行數(shù)據(jù)通信或交互。所述服務(wù)器100可以是網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫服務(wù)器等。所述終端機200可以是個人電腦(personal computer,PC)、平板電腦、智能手機、個人數(shù)字助理(personal digital assistant,PDA)等。
如圖2所示,是圖1所示的服務(wù)器100的方框示意圖。所述服務(wù)器100包括文件追蹤裝置110、存儲器111、處理器112、通信單元113。
所述存儲器111、處理器112以及通信單元113各元件相互之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。所述文件追蹤裝置110包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器111中或固化在所述服務(wù)器100的操作系統(tǒng)(operating system,OS)中的軟件功能模塊。所述處理器112用于執(zhí)行所述存儲器111中存儲的可執(zhí)行模塊,例如所述文件追蹤裝置110所包括的軟件功能模塊及計算機程序等。
其中,所述存儲器111可以是,但不限于,隨機存取存儲器(Random Access Memory,RAM),只讀存儲器(Read Only Memory,ROM),可編程只讀存儲器(Programmable Read-Only Memory,PROM),可擦除只讀存儲器(Erasable Programmable Read-Only Memory,EPROM),電可擦除只讀存儲器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存儲器111用于存儲程序,所述處理器112在接收到執(zhí)行指令后,執(zhí)行所述程序。所述通信單元113用于通過所述網(wǎng)絡(luò)300建立所述服務(wù)器100與終端機200之間的通信連接,并用于通過所述網(wǎng)絡(luò)300收發(fā)數(shù)據(jù)。
第一實施例
請參閱圖3,是本發(fā)明較佳實施例提供的應(yīng)用于圖2所示的服務(wù)器100的文件追蹤方法的流程圖。下面將對圖3所示的具體流程進行詳細闡述。
步驟S101,采集所述終端機200的相關(guān)信息,對終端機200指定目錄下的文件的操作行為進行捕捉監(jiān)控。
所述相關(guān)信息包括終端機200物理地址、網(wǎng)絡(luò)地址、操作系統(tǒng)用戶等。當然所述相關(guān)信息還可以包括更多關(guān)于所述終端機200的相關(guān)信息。
步驟S102,根據(jù)所述指定目錄下捕捉到的文件的操作行為生成對應(yīng)的文件操作事件。
詳細地,若捕捉到所述文件的操作行為,則提取對應(yīng)的文件相關(guān)信息,所述文件相關(guān)信息包括:數(shù)據(jù)對象的名稱、路徑、文件類型、操作行為、操作時間、操作人相關(guān)信息等;對于數(shù)據(jù)對象名稱、路徑、文件類型等信息相關(guān)的操作行為可以是對所述文件相關(guān)信息的改變,如,若操作行為對其有所改變,則記錄操作行為前后這些信息的變化情況,例如記錄“測試A.txt”重命名為“測試B.txt”等。根據(jù)提取的所述文件相關(guān)信息生成文件操作事件。
在其它實施例中,對終端機200指定目錄下的文件的操作行為進行捕捉監(jiān)控的動作由終端機200執(zhí)行。然后以實時或偽實時方式將所述的文件操作事件發(fā)送給服務(wù)器100。所述文件操作事件由所述終端機200在捕獲到文件操作事件時實時發(fā)送給所述服務(wù)器100,或由終端機200在捕獲到文件操作時進行存儲然后不定時地發(fā)送給所述服務(wù)器100。詳細地,所述偽實時方式將所述的文件操作事件發(fā)送給服務(wù)器100為將文件操作事件存儲到本地,然后在不定的某個時間將終端機200的文件操作事件打包發(fā)送出去。
步驟S103,將所述文件操作事件轉(zhuǎn)換成日志存儲到數(shù)據(jù)庫400中。
在一個實例中,可以將所述文件操作事件分為三類事件:第一類事件、第二類事件及第三類事件。若所述的文件操作事件屬于創(chuàng)建數(shù)據(jù)對象類型的事件,例如,新建文件,則為第一類事件。若所述的文件操作事件屬于改變數(shù)據(jù)對象dataId的行為事件。例如,重命名、移動、另存為、重命名修改擴展名等操作,操作前后數(shù)據(jù)對象的路徑、數(shù)據(jù)對象名稱、數(shù)據(jù)類型三個信息中至少一個發(fā)生了改動,則為第二類事件。其他行為事件為第三類類事件,例如,文檔打開、文檔編輯等操作,其操作前后數(shù)據(jù)對象的路徑、數(shù)據(jù)對象名稱、數(shù)據(jù)類型三個信息都未發(fā)生改變。如圖4所示,為一個實例中,所述文件操作事件類型的判斷流程示意圖。本實施例中,包括步驟S1031,判斷所述文件操作事件是否為新建文件的事件,若是則判斷為第一類事件,若不是,則執(zhí)行步驟S1032。步驟S1032,判斷所述文件操作事件是否為名稱改變的事件,若是則判斷為第二類事件,若否則執(zhí)行步驟S1033。步驟S1033,判斷所述文件操作事件是否為路徑改變的事件,若是則判斷為第二類事件,若否則執(zhí)行步驟S1034。步驟S1034,判斷所述文件操作事件是否為類型改變的事件,若是則判斷為第二類事件,若否則判斷為第三類事件。
若所述文件操作事件是第一類事件,則生成行鍵,將所述第一類事件生成日志,并在所述日志的第一字段添加本結(jié)點行鍵值,作為根結(jié)點指針,存儲到所述數(shù)據(jù)庫400中。
若所述文件操作事件是第二類事件,則生成行鍵,將所述第二類事件生成日志,并查找所述第二類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫400中,存儲成功后,將新生成的所述日志的行鍵追加存儲到所述最新的一條日志的第二字段中;
若所述文件操作事件是第三類事件,則生成行鍵,將所述第三類事件生成日志,并查找所述第三類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫400中。
進一步地,本實施例中,所述數(shù)據(jù)庫400可以為HBase分布式數(shù)據(jù)庫。所述第一字段為根結(jié)點行健;所述第二字段為子結(jié)點行健。具體的,若所述的文件操作事件為第一類事件,則生成行鍵,將所述文件操作事件生成新日志,并在日志的根結(jié)點字段(data:root_rk字段)添加本結(jié)點行鍵值,作為根結(jié)點指針,存儲到HBase分布式數(shù)據(jù)庫中。所述第一類事件所生成的日志就是根結(jié)點,把自己的行鍵值存儲到日志的“data:root_rk”字段,從而方便該根結(jié)點的子結(jié)點查詢復(fù)制根結(jié)點指針。
若所述的文件操作事件為第二類事件,則生成行鍵,將所述文件操作事件生成新日志,并查找相應(yīng)第二類事件標識(dataId)下最新的一條日志,將所述最新的一條日志中根結(jié)點字段(data:root_rk字段)的內(nèi)容添加到該新日志的根結(jié)點字段(data:root_rk)字段,然后存儲到HBase分布式數(shù)據(jù)庫中。存儲成功后,將該新日志的行鍵追加存儲到所述最新的一條日志的子結(jié)點字段(data:sub_rk字段)中,即在原日志中添加對該最新日志的指針。所述的data:root_rk和data:sub_rk相當于是樹形數(shù)據(jù)結(jié)構(gòu)中的結(jié)點指針,用于指向根結(jié)點和相應(yīng)的子結(jié)點。
若所述的文件操作事件為第三類事件,則生成行鍵,將事件生成新日志,并查找相應(yīng)第三類事件標識(dataId)下最新的一條日志,將所述最新的一條日志中根結(jié)點字段(data:root_rk字段)的內(nèi)容,即根結(jié)點的指針字段,添加到該新日志的data:root_rk字段,然后存儲到HBase分布式數(shù)據(jù)庫中。在一個實例中,所述的HBase分布式數(shù)據(jù)庫的行鍵為:RowKey=dataId+(MAX_VALUE–timestamp),其中,dataId=Hash(Mac+path+filename+extensions)。
步驟S104,接收終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求。
所述終端可以是所述終端機200,也可以是其它電子終端。用戶可通過終端機200或者其它電子終端中安裝的瀏覽器查看目標文件全生命周期相關(guān)日志以及生命周期樹。
另外,在其它實施例中,用戶還可通過終端機200或者其它電子終端中安裝的瀏覽器下發(fā)可視化分析請求,所述服務(wù)器100從關(guān)系型數(shù)據(jù)庫中查找統(tǒng)計模型,調(diào)用相關(guān)統(tǒng)計算法,對分布式數(shù)據(jù)庫進行統(tǒng)計分析,得出相應(yīng)結(jié)果。具體的,可采用可視化分析模塊對存儲的審計日志進行統(tǒng)計分析,得到非結(jié)構(gòu)化數(shù)據(jù)對象的操作頻度排名、熱點分布排名、數(shù)據(jù)類型排名、生命周期樹廣度與深度排名、數(shù)據(jù)量趨勢預(yù)測等分析結(jié)果??梢暬治瞿K可以分為統(tǒng)計模型層和算法層,統(tǒng)計模型層用于定義統(tǒng)計需求,算法層根據(jù)統(tǒng)計需求定義相關(guān)算法邏輯。除了預(yù)設(shè)好的統(tǒng)計模型,還保留了自定義接口,以方便后續(xù)添加新的統(tǒng)計模型與相關(guān)統(tǒng)計算法。可視化分析模塊的統(tǒng)計分析功能使用了分布式計算工具“MapReduce”,針對不同的統(tǒng)計需求調(diào)用算法做相應(yīng)的數(shù)據(jù)統(tǒng)計分析工作。分布式計算可以實現(xiàn)并行計算,從而極大地減少了統(tǒng)計分析所需的時間。
步驟S105,根據(jù)所述數(shù)據(jù)庫400中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
所述服務(wù)器100接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤請求后,可根據(jù)收到的所述對目標文件全生命周期進行定位追蹤請求中包含的所述目標文件的相關(guān)信息生成行鍵進行索引,從而確定日志條目。
然后,所述服務(wù)器100可根據(jù)所述日志條目得到對應(yīng)的數(shù)據(jù)標識符(dataId),查詢所述數(shù)據(jù)標識符(dataId)下的最新一條日志,從所述最新一條日志中獲取根結(jié)點指針,從而獲取根結(jié)點日志,然后從根結(jié)點開始迭代,進行樹構(gòu)建。若存儲的非順序存儲的結(jié)點,在父結(jié)點中找到各子結(jié)點集合,從而遍歷各子結(jié)點;對于dataId未改變而順序存儲的父子結(jié)點,直接索引到子結(jié)點;迭代完成后,數(shù)據(jù)樹即構(gòu)建完成。
本發(fā)明實施例中所述的生命周期樹包括的生命周期可包括:創(chuàng)建、存儲、訪問、傳輸、銷毀、恢復(fù)等,每個過程在文件管控系統(tǒng)中都對應(yīng)著一種或多種操作行為類型。具體的,“創(chuàng)建”是指數(shù)據(jù)對象在文件系統(tǒng)中的產(chǎn)生過程,包含了數(shù)據(jù)對象的一系列初始化行為?!按鎯Α笔侵敢呀?jīng)產(chǎn)生的數(shù)據(jù)對象在存儲設(shè)備中的持久化過程?!霸L問”是指將數(shù)據(jù)由持久化狀態(tài)轉(zhuǎn)換為瞬時狀態(tài),對數(shù)據(jù)進行讀取、修改等操作的過程?!皞鬏敗笔侵笇?shù)據(jù)對象進行遷移的過程“銷毀”與“恢復(fù)”是指對數(shù)據(jù)對象的刪除以及在刪除之后對數(shù)據(jù)的還原過程。
以常見的基于NTFS文件管控系統(tǒng)的Windows操作系統(tǒng)為例,各個生命周期過程都對應(yīng)著一個或多個數(shù)據(jù)對象的操作類型?!靶陆ā辈僮鳟a(chǎn)生了新的數(shù)據(jù)對象,屬于生命周期中的“創(chuàng)建”過程?!氨4妗焙汀傲泶鏋椤辈僮鲗?nèi)存中的數(shù)據(jù)對象持久化到磁盤中,屬于“存儲”過程?!按蜷_”、“預(yù)覽”、“重命名”等操作將磁盤中的數(shù)據(jù)對象讀取到內(nèi)存中進行讀取或修改,屬于“訪問”過程。“移動”、“剪切”等操作對數(shù)據(jù)對象進行了遷移,屬于“傳輸”過程。“刪除”操作移除了數(shù)據(jù)對象,屬于“銷毀”過程?!斑€原”和“撤銷刪除”恢復(fù)了數(shù)據(jù)對象,屬于“恢復(fù)”過程。
根據(jù)上述實施例中的方法,利用生命周期樹這種統(tǒng)一直觀的結(jié)構(gòu)實現(xiàn)了對數(shù)據(jù)對象全生命周期中操作行為的系統(tǒng)追蹤管控,將樹形結(jié)構(gòu)數(shù)據(jù)與HBase分布式數(shù)據(jù)庫的存儲特點相結(jié)合,從而可適用于大數(shù)據(jù)環(huán)境下的樹形結(jié)構(gòu)數(shù)據(jù)的快速高效提取。通過使用HBase的表結(jié)構(gòu),通過將行鍵設(shè)計為:“RowKey=dataId+(MAX_VALUE–timestamp)”的形式,其中“dataId=Hash(Mac+path+filename+extensions)”,從而進一步滿足了讀取的高性能要求,實現(xiàn)了數(shù)據(jù)對象生命周期的快速索引,并且能夠高效快速的對數(shù)據(jù)對象的生命周期進行追蹤。本發(fā)明中將文件操作事件進行分類從而實現(xiàn)了對該數(shù)據(jù)對象的全生命周期進行快速、準確的定位追蹤與取證。這樣,之后可根據(jù)數(shù)據(jù)對象名稱、類型、路徑,以及終端機200的物理地址,便可得到數(shù)據(jù)對象的dataId,結(jié)合時間因素生成行鍵,即可快速定位到相應(yīng)的審計日志。另外,生命周期樹中的每一個結(jié)點都對應(yīng)著存儲的審計日志表中的一條日志記錄,對每一條日志所記錄的數(shù)據(jù)對象,都可以根據(jù)行鍵和樹結(jié)點指針查詢其所在的樹中的所有結(jié)點,因此整個樹形結(jié)構(gòu)在追蹤構(gòu)建過程中不需要遍歷存儲的全部記錄,可以高效快速完成。也就是說,本發(fā)明能夠高效快速的對數(shù)據(jù)全生命周期樹進行查詢和構(gòu)建,對于數(shù)據(jù)對象操作日志的增量也有較好的適應(yīng)性。另外,上述實施例中的方法提出了一種適用于HBase存儲的數(shù)據(jù)全生命周期樹形存儲結(jié)構(gòu),在海量數(shù)據(jù)環(huán)境下,其生命周期追蹤和查詢效率和精度遠優(yōu)于普通的數(shù)據(jù)管控系統(tǒng),而且能夠高效的實現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)對象的可視化分析,得到非結(jié)構(gòu)化數(shù)據(jù)對象的操作頻度排名、熱點分布排名、數(shù)據(jù)類型排名、生命周期樹廣度與深度排名、數(shù)據(jù)量趨勢預(yù)測等分析結(jié)果,從而提高了數(shù)據(jù)實時的管控效能。
第二實施例
請參閱圖5,是本發(fā)明較佳實施例提供的圖2所示的文件追蹤裝置110的功能模塊示意圖。所述文件追蹤裝置110用于執(zhí)行圖3所示流程圖中的步驟S101-步驟S105。所述文件追蹤裝置110包括采集模塊1101、處理模塊1102、存儲模塊1103及追蹤模塊1104。
采集模塊1101,用于采集所述終端機200的相關(guān)信息,對終端機200指定目錄下的文件的操作行為進行捕捉監(jiān)控,并將所述操作行為生成對應(yīng)的文件操作事件,所述相關(guān)信息包括終端機200物理地址、網(wǎng)絡(luò)地址、操作系統(tǒng)用戶。
處理模塊1102,用于將所述文件操作事件轉(zhuǎn)換成日志。
存儲模塊1103,用于將所述日志存儲至數(shù)據(jù)庫400。
所述處理模塊1102:還用于若所述文件操作事件是第一類事件,則生成行鍵,將所述第一類事件生成日志,并在所述日志的第一字段添加本結(jié)點行鍵值,作為根結(jié)點指針,存儲到所述數(shù)據(jù)庫400中。還用于若所述文件操作事件是第二類事件,則生成行鍵,將所述第二類事件生成日志,并查找所述第二類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫400中,存儲成功后,將新生成的所述日志的行鍵追加存儲到所述最新的一條日志的第二字段中。還用于若所述文件操作事件是第三類事件,則生成行鍵,將所述第三類事件生成日志,并查找所述第三類事件的數(shù)據(jù)下最新的一條日志,將所述最新的一條日志中第一字段的內(nèi)容添加到新生成的所述日志的第一字段,并將所述日志存儲到所述數(shù)據(jù)庫400中。
追蹤模塊1104,用于在接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求后,根據(jù)所述數(shù)據(jù)庫400中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
詳細地,所述追蹤模塊1104:還用于根據(jù)收到的所述對目標文件全生命周期進行定位追蹤請求中包含的所述目標文件的相關(guān)信息生成行鍵進行索引,確定日志條目。還可用于查詢所述數(shù)據(jù)標識符(dataId)下的最新一條日志,從所述最新一條日志中獲取根結(jié)點指針,從而獲取根結(jié)點日志。最后,從根結(jié)點進行迭代,即可進行樹構(gòu)建。
根據(jù)本實施例的裝置,直觀的結(jié)構(gòu)實現(xiàn)了對數(shù)據(jù)對象全生命周期中操作行為的系統(tǒng)追蹤管控。
第三實施例
請參閱圖6,是本發(fā)明較佳實施例提供的文件追蹤系統(tǒng)的功能模塊示意圖。本實施例的系統(tǒng)運行于圖1所示的服務(wù)器100與終端機200進行交互的示意圖。本實施例中所述系統(tǒng)包括相互通信連接的終端機200及服務(wù)器100。
所述終端機200包括:終端行為監(jiān)控模塊210,用于對指定目錄下的文件的操作行為進行捕捉監(jiān)控,根據(jù)所述操作行為生成對應(yīng)的文件操作事件。發(fā)送模塊220,用于將所述文件操作事件發(fā)送給所述服務(wù)器100。追蹤請求模塊230,用于向所述服務(wù)器100發(fā)送目標文件全生命周期定位追蹤的請求。
所述服務(wù)器100包括:處理模塊1102,用于將所述文件操作事件轉(zhuǎn)換成日志。存儲模塊1103,用于將所述日志存儲至數(shù)據(jù)庫400。追蹤模塊1104,用于在接收到終端發(fā)送的對目標文件全生命周期進行定位追蹤的請求后,根據(jù)所述數(shù)據(jù)庫400中存儲的數(shù)據(jù)定位日志構(gòu)建所述目標文件的生命周期樹。
所述終端機200的發(fā)送模塊220:用于實時地將所述的文件操作事件發(fā)送給所述服務(wù)器100;或用于將所述文件操作事件存儲在所述終端機200,及不定時地將存儲在所述終端機200中的所述操作事件發(fā)送給所述服務(wù)器100。
詳細地,采集模塊1101或者終端行為監(jiān)控模塊210可使用C語言開發(fā),服務(wù)器100程序可使用Java開發(fā)。后臺的開發(fā)可使用Spring MVC框架,終端機200和服務(wù)器100可通過B/S模式實現(xiàn)對接。WEB層可通過Servlet響應(yīng)前端發(fā)來的HTTP請求,并調(diào)用后臺的相應(yīng)服務(wù)完成業(yè)務(wù)邏輯,并將結(jié)果返回給前端。前端接收后臺傳來的業(yè)務(wù)邏輯數(shù)據(jù),可使用JavaScript進行處理和渲染,并通過JSP與AJAX技術(shù)實現(xiàn)RIA(Rich Internet Applications)。
系統(tǒng)的服務(wù)接口層可采用統(tǒng)一的服務(wù)框架,通過WebService、http等接口協(xié)議完成對接,使用統(tǒng)一的JSON格式傳輸數(shù)據(jù)。
數(shù)據(jù)存儲層的關(guān)系型數(shù)據(jù)庫可使用Mysql,存儲了用戶、權(quán)限、配置、模型等系統(tǒng)數(shù)據(jù),使用Hibernate與后臺集成。數(shù)據(jù)存儲層的分布式數(shù)據(jù)庫使用了基于HDFS的HBase分布式數(shù)據(jù)庫,存儲了審計日志等業(yè)務(wù)數(shù)據(jù),使用simplehbase與后臺集成。
其中本實施例與第二實施例不同之處在于,本實施例基于相互通信連接服務(wù)器100和終端機200的文件追蹤系統(tǒng)來進行描述的,另外本實施例中的終端機200包括終端行為監(jiān)控模塊210,而服務(wù)器100不包括采集模塊1101。關(guān)于本實施例的其它細節(jié)可進一步地參考第一實施例或第二實施例,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器100,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。