一種基于多模式匹配模型的復(fù)雜事件檢測方法
【專利摘要】本發(fā)明公開一種基于多模式匹配模型的復(fù)雜事件檢測方法,將多個復(fù)雜事件檢測模式融合構(gòu)建成一個有限狀態(tài)自動機,大大減少了許多冗余的自動機狀態(tài)和轉(zhuǎn)移邊存儲與查找,避免重復(fù)數(shù)據(jù)操作匹配和計算操作,實現(xiàn)掃描一次數(shù)據(jù)流即可完成多個復(fù)雜事件檢測模式的檢測與匹配,提高了海量數(shù)據(jù)流上復(fù)雜事件檢測效率。本方法實現(xiàn)了海量數(shù)據(jù)流中多個復(fù)雜事件共享檢測,改進了當前基于自動機的復(fù)雜事件模式檢測方法,對現(xiàn)有的復(fù)雜事件檢測技術(shù)進行擴展,使其能夠比較高效地在海量數(shù)據(jù)流上完成多個復(fù)雜事件的檢測。
【專利說明】
一種基于多模式匹配模型的復(fù)雜事件檢測方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及海量數(shù)據(jù)流處理技術(shù)領(lǐng)域,更具體地,涉及海量數(shù)據(jù)流處理中一種基于多模式匹配模型的復(fù)雜事件檢測方法。
【背景技術(shù)】
[0002]物聯(lián)網(wǎng)技術(shù)將網(wǎng)絡(luò)、嵌入式、RFID、傳感器及執(zhí)行器等電子信息技術(shù)與傳統(tǒng)生產(chǎn)技術(shù)相融合,實現(xiàn)涵蓋產(chǎn)品設(shè)計、生產(chǎn)與服務(wù)等環(huán)節(jié)的全流程的數(shù)據(jù)感知、傳輸、計算、控制和服務(wù)等,提高產(chǎn)品技術(shù)附加值,增強生產(chǎn)與服務(wù)過程的管控能力,催生新的現(xiàn)代生產(chǎn)模式的重要手段。
[0003]在生產(chǎn)環(huán)境中,隨著生產(chǎn)規(guī)模的日益大型化,生產(chǎn)流程的日漸復(fù)雜化,生產(chǎn)過程時空分布性與生產(chǎn)環(huán)境多源干憂性使得許多大量諸如RFID標簽,傳感器節(jié)點等感知設(shè)備被部署到生產(chǎn)現(xiàn)場去監(jiān)測現(xiàn)場情況而產(chǎn)生各種海量生產(chǎn)數(shù)據(jù)流。由于這些海量生產(chǎn)數(shù)據(jù)流存在:I)數(shù)據(jù)量十分巨大,呈海量性,每秒可以達到TB級甚至I3B級規(guī)模;2)數(shù)據(jù)內(nèi)容多源,存在人,物料,設(shè)備,生產(chǎn)工藝過程,產(chǎn)品,服務(wù)等多種數(shù)據(jù)內(nèi)容;3)數(shù)據(jù)結(jié)構(gòu)復(fù)雜,結(jié)構(gòu)化數(shù)據(jù),半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)共存;4)數(shù)據(jù)更新速度快,數(shù)據(jù)每分每秒鐘都在產(chǎn)生和更新;5)數(shù)據(jù)響應(yīng)要求高,數(shù)據(jù)需要實時快速處理響應(yīng)等數(shù)據(jù)特征,導(dǎo)致了物聯(lián)網(wǎng)中海量數(shù)據(jù)流處理面臨著:海量多源動態(tài)數(shù)據(jù)流難以及時處理的重要問題。由于現(xiàn)有數(shù)據(jù)處理方法難于完全支撐物聯(lián)網(wǎng)海量數(shù)據(jù)流的實時高效處理,難于從上述海量數(shù)據(jù)流中快速找出所需信息并及時做出反應(yīng),因而影響生產(chǎn)企業(yè)對生產(chǎn)進程調(diào)度和決策作用。由于復(fù)雜事件檢測技術(shù)其能夠利用事件屬性之間的關(guān)聯(lián),通過匹配規(guī)則或代數(shù)操作不斷過濾連續(xù)到達的海量生產(chǎn)數(shù)據(jù)流,快速找出企業(yè)所需要的符合某種關(guān)聯(lián)約束的事件序列,因而近年在各類生產(chǎn)行業(yè)中來得到日益廣泛的關(guān)注。
[0004]當前,關(guān)于數(shù)據(jù)流中復(fù)雜事件檢測方法的研究,主要開展有基于自動機,基于Petri網(wǎng),基于匹配樹和基于有向圖等方面的復(fù)雜事件檢測方法以及它們的一些改進方法,如基于時間Petri網(wǎng)復(fù)雜事件檢測方法、基于壓縮組合物的樹復(fù)雜事件檢測方法、基于改進圖的復(fù)雜事件檢測方法、基于下推自動機結(jié)構(gòu)的復(fù)雜事件檢測方法、基于匹配樹模型匹配結(jié)果共享的復(fù)雜事件檢測方法等方法。但由于現(xiàn)有的上述檢測方法只能孤立的對數(shù)據(jù)流中單個復(fù)雜事件進行檢測與查詢處理,而無法實現(xiàn)對數(shù)據(jù)流中的多個復(fù)雜事件查詢進行共享檢測。而在現(xiàn)實生活中,通常面臨著在一個數(shù)據(jù)流上查詢和檢測多個復(fù)雜事件問題。如果直接利用上述檢測方法去實現(xiàn)數(shù)據(jù)流中多個復(fù)雜事件檢測時,將會出現(xiàn)存在大量冗余的自動機狀態(tài)和轉(zhuǎn)移邊,大量數(shù)據(jù)重復(fù)存儲、查找和計算操作,從而出現(xiàn)檢測時間長,消耗內(nèi)存大,檢測效率低的問題,難于實現(xiàn)海量數(shù)據(jù)流中事件多模式的實時檢測功能。
【發(fā)明內(nèi)容】
[0005]本發(fā)明針對當前復(fù)雜事件檢測方法在實現(xiàn)數(shù)據(jù)流上多個復(fù)雜事件檢測時出現(xiàn)檢測時間長,消耗內(nèi)存大,檢測效率低的問題,本發(fā)明面向海量數(shù)據(jù)流,提出了一種基于多模式匹配模型的復(fù)雜事件檢測方法,本發(fā)明方法改進了常規(guī)的自動機(NFA)序列掃描和序列過程,擴展了現(xiàn)有復(fù)雜事件檢測技術(shù),大大提高了海量數(shù)據(jù)流中復(fù)雜事件檢測能力。
[0006]為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案如下:
一種基于多模式匹配模型的復(fù)雜事件檢測方法,包括以下步驟:
51:構(gòu)建多模式有限狀態(tài)自動機匹配模型,具體通過如下小步驟實現(xiàn):
S1.1:讀取各個單模式事件匹配表達式;
S1.2:根據(jù)讀取的各個單模式事件匹配表達式構(gòu)建各自對應(yīng)的單模式有限狀態(tài)自動機匹配模型;
S1.3:根據(jù)構(gòu)建的單模式有限狀態(tài)自動機匹配模型構(gòu)建狀態(tài)轉(zhuǎn)移函數(shù),狀態(tài)轉(zhuǎn)移函數(shù)的功能是實現(xiàn)有限自動機的狀態(tài)轉(zhuǎn)移路徑;
S1.4:根據(jù)構(gòu)建的轉(zhuǎn)移函數(shù)執(zhí)行情況構(gòu)建失敗轉(zhuǎn)移函數(shù),失敗轉(zhuǎn)移函數(shù)(failure)的功能是實現(xiàn)用于當發(fā)生失配時,指向下一個狀態(tài)以繼續(xù)比較;
S1.5:根據(jù)構(gòu)建的轉(zhuǎn)移函數(shù)和失敗函執(zhí)行情況構(gòu)建輸出轉(zhuǎn)移函數(shù),輸出轉(zhuǎn)移函數(shù)(output)用于當某個模式串獲得匹配時,輸出或記錄一條匹配成功信息,并進行下一個狀態(tài)繼續(xù)比較;
S1.6:輸出多模式有限狀態(tài)自動機匹配模型;
52:多模式有限狀態(tài)自動機匹配模型匹配,具體通過如下小步驟實現(xiàn):
S2.1:從數(shù)據(jù)流逐一讀入檢測數(shù)據(jù);
S2.2:根據(jù)讀取的檢測數(shù)據(jù)確定多模式狀態(tài)轉(zhuǎn)移方向;
S2.3:根據(jù)狀態(tài)轉(zhuǎn)移路徑確定是否執(zhí)行多模式失敗轉(zhuǎn)移功能;
S2.4:根據(jù)多模式狀態(tài)轉(zhuǎn)移方向或多模式匹配失敗轉(zhuǎn)移功能確定是否執(zhí)行多模式匹配輸出函數(shù);
S2.5:判斷檢測任務(wù)是否完成,如果完成,跳轉(zhuǎn)到S2.6執(zhí)行;否則跳轉(zhuǎn)到S2.1執(zhí)行;
S2.6:輸出檢測結(jié)果。
[0007]進一步的,步驟S2.2中,所述檢測數(shù)據(jù)為原子事件。
[0008]在步驟SI中,首先需要根據(jù)單模式匹配表達式構(gòu)建對應(yīng)單模式有限狀態(tài)自動機匹配模型;然后再利用構(gòu)建對應(yīng)單模式有限狀態(tài)自動機匹配模型依次構(gòu)建三個轉(zhuǎn)移函數(shù):狀態(tài)轉(zhuǎn)移函數(shù)、失敗轉(zhuǎn)移函數(shù)和輸出轉(zhuǎn)移函數(shù);最后利用上述三個轉(zhuǎn)移函數(shù)相互配合作用,實現(xiàn)將單模式匹配模型融合成融合多模式匹配模型;
在步驟S2中,首先需要使用上述生成多模式有限狀態(tài)自動機匹配模型,逐一從海量數(shù)據(jù)流中讀入原子事件,運用狀態(tài)轉(zhuǎn)移函數(shù)、失敗轉(zhuǎn)移函數(shù)進行狀態(tài)轉(zhuǎn)移與匹配;最后使用輸出轉(zhuǎn)移函數(shù)輸出每一次比較匹配結(jié)果,最終完成海量數(shù)據(jù)流的多模式事件匹配;
與現(xiàn)有技術(shù)相比,本發(fā)明技術(shù)方案的有益效果是:本發(fā)明公開一種基于多模式匹配模型的復(fù)雜事件檢測方法,將多個復(fù)雜事件檢測模式融合構(gòu)建成一個有限狀態(tài)自動機,大大減少了許多冗余的自動機狀態(tài)和轉(zhuǎn)移邊存儲與查找,避免重復(fù)數(shù)據(jù)操作匹配和計算操作,實現(xiàn)掃描一次數(shù)據(jù)流即可完成多個復(fù)雜事件檢測模式的檢測與匹配,提高了數(shù)據(jù)流上復(fù)雜事件檢測效率。本方法實現(xiàn)了物聯(lián)網(wǎng)海量數(shù)據(jù)流中多個復(fù)雜事件共享檢測,改進了當前基于自動機的復(fù)雜事件模式檢測方法,對現(xiàn)有的復(fù)雜事件檢測技術(shù)進行擴展,使其能夠比較高效地在海量數(shù)據(jù)上完成多個復(fù)雜事件的檢測。
【附圖說明】
[0009]圖1是本發(fā)明方法所提的多模式匹配模型構(gòu)建過程圖。
[0010]圖2是檢測模式表達式為SEQ(A,B,C,D)的NFA模型圖。
[0011 ]圖3是檢測模式表達式為SEQ(A,F(xiàn),E)的NFA模型圖。
[0012]圖4是檢測模式表達式為SEQ(M,E,C,A)的NFA模型圖。
[0013]圖5是本發(fā)明方法所提的基于多模式匹配模型。
[0014]圖6是本發(fā)明方法所提的多模式匹配的復(fù)雜事件檢測過程。
[0015]圖7是本發(fā)明與單模式檢測方法在檢測時間方面比較示意圖。
[0016]圖8是本發(fā)明與單模式檢測方法在內(nèi)存消耗方面比較示意圖圖9是本發(fā)明與單模式檢測方法在吞吐量方面比較示意圖。
【具體實施方式】
[0017]附圖僅用于示例性說明,不能理解為對本專利的限制;下面結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案做進一步的說明。
[0018]實施例1
一種基于多模式匹配模型的復(fù)雜事件檢測方法,包括以下步驟:
51:構(gòu)建多模式有限狀態(tài)自動機匹配模型,具體通過如下小步驟實現(xiàn):
S1.1:讀取各個單模式事件匹配表達式;
S1.2:根據(jù)讀取的各個單模式事件匹配表達式構(gòu)建各自對應(yīng)的單模式有限狀態(tài)自動機匹配模型;
S1.3:根據(jù)構(gòu)建的單模式有限狀態(tài)自動機匹配模型構(gòu)建轉(zhuǎn)移函數(shù),轉(zhuǎn)移函數(shù)的功能是實現(xiàn)有限自動機的狀態(tài)轉(zhuǎn)移路徑;
S1.4:根據(jù)構(gòu)建的轉(zhuǎn)移函數(shù)執(zhí)行情況構(gòu)建失敗函數(shù),失敗函數(shù)的功能是實現(xiàn)用于當發(fā)生失配時,指向下一個狀態(tài)以繼續(xù)比較;
S1.5:根據(jù)構(gòu)建的狀態(tài)轉(zhuǎn)移函數(shù)和失敗轉(zhuǎn)移函數(shù)執(zhí)行情況構(gòu)建輸出函數(shù),輸出函數(shù)用于當某個模式串獲得匹配時,輸出或記錄一條匹配成功信息;
S1.6:輸出多模式有限狀態(tài)自動機匹配模型;
52:多模式有限狀態(tài)自動機匹配模型匹配,具體通過如下小步驟實現(xiàn):
S2.1:從數(shù)據(jù)流逐一讀入檢測數(shù)據(jù),所述檢測數(shù)據(jù)為原子事件;
S2.2:根據(jù)讀取的檢測數(shù)據(jù)確定多模式狀態(tài)轉(zhuǎn)移方向;
S2.3:根據(jù)狀態(tài)轉(zhuǎn)移路徑確定是否執(zhí)行多模式失敗轉(zhuǎn)移功能;
S2.4:根據(jù)多模式狀態(tài)轉(zhuǎn)移方向或多模式失敗轉(zhuǎn)移功能確定是否執(zhí)行多模式輸出轉(zhuǎn)移函數(shù);
S2.5:判斷檢測任務(wù)是否完成,如果完成,跳轉(zhuǎn)到S2.6執(zhí)行;否則跳轉(zhuǎn)到S2.1執(zhí)行;
S2.6:輸出檢測結(jié)果。
[0019]本實施例對一種基于多模式匹配模型的復(fù)雜事件檢測方法的具體檢測過程進行詳細的說明。在本實例中,利用數(shù)據(jù)發(fā)生器模塊去模擬產(chǎn)生從各類生產(chǎn)行業(yè)海量數(shù)據(jù)流。通過控制數(shù)據(jù)發(fā)生器模塊參數(shù)生成事件類型的規(guī)格,事件流的概率分布等以實現(xiàn)實驗要求的需要。本實施例的實驗工具為:Visual C++ 6.0,測試指標為:檢測時間,內(nèi)存消耗和吞吐量三方面,實驗比較方法為:單模式檢測(Singpattern detect1n)方法,S卩用現(xiàn)有基于自動機結(jié)構(gòu)復(fù)雜事件檢測方法分別實現(xiàn)復(fù)雜事件檢測表達式。檢測表達式分別為SEQ(A,B,C,D),SEQ(A,F(xiàn),E)和SEQ(M,E,C,A)。本實例以檢測上述三個檢測表達式為例,說明本發(fā)明所提基于多模式匹配模型的復(fù)雜事件檢測方法具體應(yīng)用過程。
[0020]圖1是本發(fā)明方法所提的多模式匹配模型構(gòu)建過程圖。它主要包含了:讀單模型匹配表達式,構(gòu)建單模式匹配模型,創(chuàng)建多模式狀態(tài)轉(zhuǎn)移函數(shù),創(chuàng)建多模式失敗轉(zhuǎn)移函數(shù),創(chuàng)建多模式輸出轉(zhuǎn)移函數(shù)和多模式匹配模型輸出等五大部分功能。其實現(xiàn)的主要功能是把多個單模式事件匹配模型融合構(gòu)建成一個多模式事件匹配模型,以實現(xiàn)多個模式檢測表達式串之間共享,消除它們之間存在的許多冗余的自動機狀態(tài)和轉(zhuǎn)移邊。圖2是由檢測模式表達式為SEQ(A,B,C,D)生成的NFA模型圖;圖3是由檢測模式表達式為SEQ(A,F(xiàn),E)生成的NFA模型圖;圖4是由檢測模式表達式為SEQ(M,E,C,A)生成的NFA模型圖。圖5是本發(fā)明方法的多模式匹配模型,它是由檢測模式表達式為SEQ(A,B,C,D),SEQ(A,F(xiàn),E)和SEQ(M,E,C,A)共同融合構(gòu)建而成。
[0021]本發(fā)明方法所提的多模式匹配的復(fù)雜事件檢測過程如圖6所示,它主要包含了:從數(shù)據(jù)流逐一讀入數(shù)據(jù),多模式狀態(tài)轉(zhuǎn)移,多模式失敗轉(zhuǎn)移,多模式輸出轉(zhuǎn)移和多模式匹配結(jié)果輸出部分功能。其主要功能是使用新融合而成的多模式事件匹配模型實現(xiàn)對數(shù)據(jù)流的復(fù)雜事件進行檢測,并輸出檢測結(jié)果。
[0022]圖7本發(fā)明與單模式檢測方法在檢測時間方面比較示意圖。從圖7可以看到,在相同測試條件下,相比單模式檢測方法,本發(fā)明方法可以極大地提高檢測時間,提高事件檢測效率。分析其主要原因在于本發(fā)明方法消除了許多單模式檢測方法中由于無法共享而存在冗余的自動機狀態(tài)和轉(zhuǎn)移邊,減少了許多重復(fù)數(shù)據(jù)的存儲、查找和計算操作,因而節(jié)省了許多檢測時間。
[0023]圖8是本發(fā)明與現(xiàn)有單模式檢測方法在內(nèi)存使用消耗方面比較示意圖。從圖8可以看到,在相同測試條件下,本發(fā)明方法在內(nèi)存使用消耗方面優(yōu)于單模式檢測方法。分析其主要原因在于,在相同測試條件下,本發(fā)明方法中使用基于多模式事件模型去檢測海量數(shù)據(jù)流中相關(guān)事件,消除了許多單模式檢測方法中存在冗余的自動機狀態(tài)和轉(zhuǎn)移邊,減少了許多重復(fù)數(shù)據(jù)的存儲、查找和計算操作,因而節(jié)省了許多內(nèi)存使用消耗。
[0024]圖9是本發(fā)明與現(xiàn)有單模式檢測方法在事件吞吐量方面比較示意圖。從圖9可以看至IJ,在相同測試條件下,本發(fā)明方法在事件吞吐量方面也優(yōu)于單模式檢測方法。分析其主要原因在于本發(fā)明中多模式事件匹配模型使用。在本發(fā)明中,我們使用多模式事件模型去查找相關(guān)事件,實現(xiàn)數(shù)據(jù)流中相關(guān)事件的快速查找,計算和匹配操作,減少單模式檢測方法中許多冗余的自動機狀態(tài)和轉(zhuǎn)移邊查找和計算,減少了許多數(shù)據(jù)的重復(fù)匹配和計算操作,進而提高了系統(tǒng)事件處理速度。
[0025]顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。
【主權(quán)項】
1.一種基于多模式匹配模型的復(fù)雜事件檢測方法,其特征在于,所述方法包括以下步驟: 51:構(gòu)建多模式有限狀態(tài)自動機匹配模型,具體通過如下小步驟實現(xiàn): S1.1:讀取各個單模式事件匹配表達式; S1.2:根據(jù)讀取的各個單模式事件匹配表達式構(gòu)建各自對應(yīng)的單模式有限狀態(tài)自動機匹配模型; S1.3:根據(jù)構(gòu)建的單模式有限狀態(tài)自動機匹配模型構(gòu)建轉(zhuǎn)移函數(shù),轉(zhuǎn)移函數(shù)的功能是實現(xiàn)有限自動機的狀態(tài)轉(zhuǎn)移路徑; S1.4:根據(jù)構(gòu)建的轉(zhuǎn)移函數(shù)執(zhí)行情況構(gòu)建失敗函數(shù),失敗函數(shù)的功能是實現(xiàn)用于當發(fā)生失配時,指向下一個狀態(tài)以繼續(xù)比較; S1.5:根據(jù)構(gòu)建的轉(zhuǎn)移函數(shù)和失敗函執(zhí)行情況構(gòu)建輸出函數(shù),輸出函數(shù)用于當某個模式串獲得匹配時,輸出或記錄一條匹配成功信息; S1.6:輸出多模式有限狀態(tài)自動機匹配模型; 52:多模式有限狀態(tài)自動機匹配模型匹配,具體通過如下小步驟實現(xiàn): S2.1:從數(shù)據(jù)流逐一讀入檢測數(shù)據(jù); S2.2:根據(jù)讀取的檢測數(shù)據(jù)確定多模式狀態(tài)轉(zhuǎn)移方向; S2.3:根據(jù)狀態(tài)轉(zhuǎn)移路徑確定是否執(zhí)行多模式匹配失敗轉(zhuǎn)移功能; S2.4:根據(jù)多模式狀態(tài)轉(zhuǎn)移方向或多模式匹配失敗轉(zhuǎn)移功能確定是否執(zhí)行多模式匹配輸出函數(shù); S2.5:判斷檢測任務(wù)是否完成,如果完成,跳轉(zhuǎn)到S2.6執(zhí)行;否則跳轉(zhuǎn)到S2.1執(zhí)行; S2.6:輸出檢測結(jié)果。2.根據(jù)權(quán)利要求1所述的基于多模式匹配模型的復(fù)雜事件檢測方法,其特征在于,步驟S2.2中,所述檢測數(shù)據(jù)為原子事件。
【文檔編號】G06F17/30GK105930494SQ201610296398
【公開日】2016年9月7日
【申請日】2016年5月6日
【發(fā)明人】王建華, 王濤, 程良倫, 彭孝東
【申請人】華南農(nóng)業(yè)大學(xué), 廣東工業(yè)大學(xué)