一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法
【專利摘要】本發(fā)明公開了一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,本發(fā)明主要針對制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流事件檢測檢測效率低下的問題,提出一種使用ENFA(ExtendedNondeterministicFiniteAutomaton)對海量亂序數(shù)據(jù)流中的事件進(jìn)行選擇和利用哈希表結(jié)構(gòu)的存儲關(guān)系對海量亂序數(shù)據(jù)流中事件進(jìn)行處理,從而實(shí)現(xiàn)海量亂序數(shù)據(jù)流中復(fù)雜事件檢測的方法,改進(jìn)了當(dāng)前基于自動(dòng)機(jī)的復(fù)雜事件模式檢測方法,對現(xiàn)有的復(fù)雜事件檢測技術(shù)進(jìn)行擴(kuò)展,使其能夠比較高效地在海量亂序數(shù)據(jù)上完成復(fù)雜事件的檢測,提高其檢測效率。
【專利說明】一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及制造物聯(lián)網(wǎng)領(lǐng)域,更具體地,涉及一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法。
【背景技術(shù)】
[0002]制造物聯(lián)技術(shù)是一種以中間件、海量信息融合處理和系統(tǒng)集成技術(shù)等為基礎(chǔ),基于物聯(lián)網(wǎng)絡(luò)開發(fā)服務(wù)平臺與應(yīng)用系統(tǒng)解決產(chǎn)品設(shè)計(jì)、制造與服務(wù)過程中的信息綜合感知、可靠傳輸、海量數(shù)據(jù)處理、精準(zhǔn)控制和可信服務(wù)問題,提高產(chǎn)品技術(shù)附加值,增強(qiáng)制造與服務(wù)過程的管控能力的技術(shù)。復(fù)雜事件檢測技術(shù)是一種能夠利用事件屬性之間的關(guān)聯(lián),通過匹配規(guī)則或代數(shù)操作不斷過濾連續(xù)到達(dá)的海量數(shù)據(jù)流,找出需要的符合某種關(guān)聯(lián)約束的事件序列的一種技術(shù)。在現(xiàn)代制造業(yè)中,由于制造過程大型化和復(fù)雜化,大量的RFID,傳感器節(jié)點(diǎn)被部署去監(jiān)測生產(chǎn)現(xiàn)場的人,物料,設(shè)備,工藝過程,產(chǎn)品等,生產(chǎn)現(xiàn)場各種數(shù)據(jù)以自動(dòng)快速采集方式形成海量數(shù)據(jù)流;由于制造環(huán)境中的網(wǎng)絡(luò)延時(shí),節(jié)點(diǎn)損壞,機(jī)器故障,環(huán)境干憂等原因可能會(huì)導(dǎo)致采集到海量的人,物料,設(shè)備,工藝過程,產(chǎn)品等制造數(shù)據(jù)發(fā)生亂序現(xiàn)象,導(dǎo)致了制造物聯(lián)中海量亂序數(shù)據(jù)處理面臨著難以及時(shí)處理的問題,加上制造物聯(lián)規(guī)模非常宏大,生產(chǎn)過程存在廣泛時(shí)空性,網(wǎng)絡(luò)數(shù)據(jù)傳輸存在動(dòng)態(tài)時(shí)延性,使得現(xiàn)有數(shù)據(jù)處理方法難以支撐制造物聯(lián)海量亂序數(shù)據(jù)流的高效處理,急需研制出一種高效海量亂序數(shù)據(jù)流智能處理方法,以適應(yīng)智能制造物聯(lián)中海量亂序數(shù)據(jù)流處理的發(fā)展。所以如何在制造物聯(lián)海量亂序數(shù)據(jù)流中開發(fā)一種復(fù)雜事件檢測方法成為當(dāng)前研究的一個(gè)方向。
[0003]當(dāng)前,國內(nèi)外關(guān)于在海量亂序數(shù)據(jù)流中復(fù)雜事件檢測方面的研究,主要開展有在基于SASE方法上stack+sort方法,基于SASE方法上buffer+sort方法,K-Slack方法,speculative 方法,aggressive and conservative 策略方法,分布式 low-latency 處理方法等,但由于制造物聯(lián)中制造數(shù)據(jù)組成結(jié)構(gòu)復(fù)雜,存在多源性,制造數(shù)據(jù)多,存在海量性,制造環(huán)境惡劣,存在多干憂和亂序性等,導(dǎo)致上述檢測方法在檢測制造物聯(lián)海量亂序數(shù)據(jù)流時(shí)存在檢測效率低下的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明主要針對制造物聯(lián)海量亂序數(shù)據(jù)流中復(fù)雜事件檢測效率低下的問題,提出一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,該方法主要使用ENFA(ExtendedNondeterministic Finite Automaton)對海量亂序數(shù)據(jù)流中的事件進(jìn)行選擇,使用哈希表結(jié)構(gòu)的存儲關(guān)系對海量亂序數(shù)據(jù)流中的事件進(jìn)行處理,從而實(shí)現(xiàn)海量亂序數(shù)據(jù)流中的復(fù)雜事件檢測,改進(jìn)了當(dāng)前海量亂序數(shù)據(jù)流中復(fù)雜事件檢測方法,擴(kuò)展了現(xiàn)有復(fù)雜事件檢測技術(shù),提高制造物聯(lián)海量亂序數(shù)據(jù)流復(fù)雜事件檢測效率。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
[0006]一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,包括以下步驟:
[0007]A.計(jì)算復(fù)雜事件檢測表達(dá)式的長度,根據(jù)復(fù)雜事件檢測表達(dá)式生成對應(yīng)ENFAjiJ建并初始化新的哈希表;
[0008]B.從海量亂序原子數(shù)據(jù)流中讀取一個(gè)原子事件;
[0009]C.判斷該原子事件是否被ENFA接收;若接收則跳轉(zhuǎn)至步驟D,不接收則跳轉(zhuǎn)至步驟B;
[0010]D.利用哈希表函數(shù)將被該原子事件映射到對應(yīng)的數(shù)組上,并判斷該數(shù)組是否存在該原子事件映射結(jié)果值;若不存在,則在該數(shù)組相應(yīng)位置增加一個(gè)該原子類型的主鏈節(jié)點(diǎn),再在主鏈節(jié)點(diǎn)上插入一個(gè)該原子類型的子鏈節(jié)點(diǎn),同時(shí)更新主鏈節(jié)點(diǎn)中最大時(shí)間戳為該原子事件發(fā)生的最大時(shí)間戳,并使主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值加I;若存在,則利用哈希表查找技術(shù)在子鏈上節(jié)點(diǎn)相應(yīng)位置插入一個(gè)該原子類型的子鏈節(jié)點(diǎn),同時(shí)主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值進(jìn)行加I ;
[0011]E.判斷計(jì)數(shù)器數(shù)值是否等于ENFA的長度,若否,則跳轉(zhuǎn)至步驟B ;若是,跳轉(zhuǎn)至步驟F,
[0012]F.判斷該子鍵上原子事件發(fā)生的最大時(shí)間戳減去此時(shí)原子事件發(fā)生時(shí)間戳是否小于滑動(dòng)窗口時(shí)間TW;若是,則使用哈希查找技術(shù)輸出哈希表中該原子事件對應(yīng)數(shù)組中所有選項(xiàng),得到檢測結(jié)果,若否,則跳轉(zhuǎn)至步驟B。
[0013]所述主鏈節(jié)點(diǎn)包括該原子事件類型,該類型原子最大時(shí)間戳和計(jì)數(shù)器,子鏈節(jié)點(diǎn)包括該原子事件類型和該原子發(fā)生時(shí)間戳。
[0014]本發(fā)明復(fù)雜事件檢測方法擴(kuò)展了傳統(tǒng)NFA為ENFA,使其能夠適應(yīng)制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流中原子事件檢測,提高了基于自動(dòng)機(jī)NFA的事件檢測能力,擴(kuò)展了現(xiàn)有的復(fù)雜事件檢測技術(shù)。
[0015]本發(fā)明利用哈希表函數(shù)映射作用將每一個(gè)被ENFA接收的原子事件進(jìn)行映射和存儲,對接收到的每個(gè)事件通過比較其時(shí)間戳將其插入到其對應(yīng)位置上,實(shí)現(xiàn)了利用哈希表結(jié)構(gòu)對海量無序數(shù)據(jù)流上事件進(jìn)行快速處理和檢測目的。
[0016]本發(fā)明利用計(jì)數(shù)器數(shù)值是否等于給定的模式匹配表達(dá)式長度和主鍵上原子事件發(fā)生的最大時(shí)間戳-此時(shí)原子事件發(fā)生時(shí)間戳是否小于TW(滑動(dòng)窗口時(shí)間)共同判斷制造物聯(lián)中海量亂序數(shù)據(jù)流中此復(fù)雜事件檢測是否完成;當(dāng)完成制造物聯(lián)海量亂序數(shù)據(jù)流中復(fù)雜事件檢測時(shí),最后需要使用哈希表查找技術(shù)從哈希表結(jié)構(gòu)中輸出復(fù)雜事件。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明提出的一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,采用了 ENFA和哈希表技術(shù)相結(jié)合的方法共同檢測制造物聯(lián)海量亂序數(shù)據(jù)流中復(fù)雜事件,解決現(xiàn)有基于有序數(shù)據(jù)流復(fù)雜事件檢測方法難于高效檢測海量亂序數(shù)據(jù)流的問題,大大提高了事件在海量數(shù)據(jù)流上的檢測能力。本發(fā)明改進(jìn)了當(dāng)前基于自動(dòng)機(jī)的復(fù)雜事件模式檢測方法,對現(xiàn)有的復(fù)雜事件檢測技術(shù)做了擴(kuò)展,使其能夠比較高效地實(shí)現(xiàn)在海量亂序數(shù)據(jù)中復(fù)雜事件的檢測功能。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明的方法過程圖。
[0019]圖2是本發(fā)明的方法工作原理圖。
[0020]圖3是本發(fā)明方法在不同規(guī)模亂序數(shù)據(jù)流中查找時(shí)間比較圖。
[0021]圖4是本發(fā)明方法在不同比例亂序數(shù)據(jù)流中查找時(shí)間比較圖。
[0022]圖5是本發(fā)明方法在不同規(guī)模亂序數(shù)據(jù)流中吞吐量方面比較圖。
[0023]圖6是本發(fā)明方法在不同比例亂序數(shù)據(jù)流中吞吐量方面比較圖
【具體實(shí)施方式】
[0024]附圖僅用于示例性說明,不能理解為對本專利的限制;
[0025]為了更好說明本實(shí)施例,附圖某些部件會(huì)有省略、放大或縮小,并不代表實(shí)際產(chǎn)品的尺寸;
[0026]對于本領(lǐng)域技術(shù)人員來說,附圖中某些公知結(jié)構(gòu)及其說明可能省略是可以理解的。
[0027]實(shí)施例1
[0028]本實(shí)施例對一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法的具體匹配過程進(jìn)行詳細(xì)的說明。在本實(shí)例中,我們利用數(shù)據(jù)發(fā)生器模塊去產(chǎn)生亂序事數(shù)據(jù)流,通過控制數(shù)據(jù)發(fā)生器模塊參數(shù)生成事件類型的個(gè)數(shù),數(shù)據(jù)流的概率分布等,以實(shí)現(xiàn)實(shí)驗(yàn)要求的需要。本實(shí)施例的實(shí)驗(yàn)工具為:Visual C++6.0,測試指標(biāo)為:不同規(guī)模亂序和不同比例亂序的數(shù)據(jù)流中事件查找時(shí)間和吞吐量二方面,本實(shí)施例比較方法為:SASE+stack+sort方法和SASE+buf f er+sort 方法。
[0029]本發(fā)明的實(shí)施過程圖如圖1所示,它包含了:從海量亂序原子數(shù)件流讀取原子事件,ENFA的匹配原子事件,利用哈希表結(jié)構(gòu)存儲和處理相關(guān)原子亂序事件,利用哈希表查找技術(shù)查找相關(guān)復(fù)雜事件四大部分功能。
[0030]當(dāng)假設(shè)模式匹配表達(dá)式為SEQ(A,B, C)時(shí),其具體檢測過程工作原理如圖2所示,歸納其具體實(shí)現(xiàn)步驟可分為如下幾步:
[0031]A.計(jì)算給定的模式復(fù)雜事件匹配表達(dá)式SEQ (A,B,C)的長度為3,并根據(jù)模式匹配表達(dá)SEQ(A,B, C)生成相應(yīng)的ENFA(見圖2),創(chuàng)建新Hash表并對其進(jìn)行初始化操作;
[0032]檢測原子事件操作bf:
[0033]B.從原子事件流(見圖2)中進(jìn)行讀取一個(gè)原子事件操作af ;
[0034]C.原子事件af能夠被ENFA接收;轉(zhuǎn)向步驟D執(zhí)行;
[0035]D.利用哈希表函數(shù)將被該原子事件bf映射到對應(yīng)的哈希表數(shù)組I位置上,由于是首次檢測,該數(shù)組I位置上不存在該項(xiàng)數(shù)值,則在哈希表數(shù)組I位置上增加該原子類型主鏈節(jié)點(diǎn),并在主鏈節(jié)點(diǎn)插入該原子類型對應(yīng)的子鏈節(jié)點(diǎn),同時(shí)更新主鏈節(jié)點(diǎn)中最大時(shí)間戳為該原子事件發(fā)生的最大時(shí)間戳,主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值加I;
[0036]E.由于主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值為1,不等于給定的模式匹配表達(dá)式長度3,則程序轉(zhuǎn)向步驟B繼續(xù)進(jìn)行檢測;檢測程序從原子事件流中讀取下一個(gè)原子事件操作af,
[0037]檢測原子事件操作af:
[0038]B.從原子事件流(見圖2)中進(jìn)行讀取一個(gè)原子事件操作af ;
[0039]C.原子事件af能夠被NFA接收;程序轉(zhuǎn)向步驟D執(zhí)行;
[0040]D.利用哈希表函數(shù)將被該原子事件af映射到對應(yīng)的哈希表數(shù)組I位置上,由于該數(shù)組I位置上存在該項(xiàng)數(shù)值,則利用哈希表查找技術(shù)在子鏈上bf節(jié)點(diǎn)前相應(yīng)位置插入一個(gè)af原子類型的子鏈節(jié)點(diǎn),主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值進(jìn)行加1,更新主鏈節(jié)點(diǎn)中最大時(shí)間戳為該原子事件發(fā)生的最大時(shí)間戳
[0041]E.由于主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值為2,不等于給定的模式匹配表達(dá)式長度3,則程序轉(zhuǎn)向步驟B繼續(xù)進(jìn)行檢測;程序從原子事件流中讀取下一個(gè)原子事件操作cf,然后進(jìn)行與上述相類似檢測工作;
[0042]F.當(dāng)檢測進(jìn)程檢測到Cf時(shí),由于主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值3等于給定的模式匹配表達(dá)式SEQ(A,B, C)的長度3,且該主鍵上原子事件發(fā)生的最小時(shí)間戳+TW(滑動(dòng)窗口時(shí)間)>此時(shí)原子事件發(fā)生時(shí)間戳?xí)r,所以檢測程序?qū)?huì)利用哈希表查找技術(shù)查找存儲哈希表結(jié)構(gòu)中事件,查找并輸出檢測結(jié)果afbfcf。
[0043]圖3是本實(shí)施例在不同規(guī)模亂序數(shù)據(jù)流中查找時(shí)間比較圖。
[0044]圖4是本實(shí)施例在不同比例亂序數(shù)據(jù)流中查找時(shí)間比較圖。
[0045]圖5是本實(shí)施例在不同規(guī)模亂序數(shù)據(jù)流中吞吐量方面比較圖。
[0046]圖6是本實(shí)施例在不同比例亂序數(shù)據(jù)流中吞吐量方面比較圖。
[0047]相同或相似的標(biāo)號對應(yīng)相同或相似的部件;
[0048]附圖中描述位置關(guān)系的用于僅用于示例性說明,不能理解為對本專利的限制;
[0049]顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實(shí)施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無需也無法對所有的實(shí)施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,其特征在于,包括以下步驟: A.計(jì)算復(fù)雜事件檢測表達(dá)式的長度,根據(jù)復(fù)雜事件檢測表達(dá)式生成對應(yīng)的ENFA,創(chuàng)建并初始化新的哈希表; B.從海量亂序原子數(shù)據(jù)流中讀取一個(gè)原子事件; C.判斷該原子事件是否被ENFA接收;若接收則跳轉(zhuǎn)至步驟D,不接收則跳轉(zhuǎn)至步驟B; D.利用哈希表函數(shù)將被該原子事件映射到對應(yīng)的數(shù)組上,并判斷該數(shù)組是否存在該原子事件的映射結(jié)果值;若不存在,則在該數(shù)組相應(yīng)位置增加一個(gè)該原子類型的主鏈節(jié)點(diǎn),再在主鏈節(jié)點(diǎn)上插入一個(gè)該原子類型的子鏈節(jié)點(diǎn),同時(shí)更新主鏈節(jié)點(diǎn)中最大時(shí)間戳為該原子事件發(fā)生的最大時(shí)間戳,并使主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值加I ;若存在,則利用哈希表查找技術(shù)在子鏈上節(jié)點(diǎn)相應(yīng)位置插入一個(gè)該原子類型的子鏈節(jié)點(diǎn),同時(shí)主鏈節(jié)點(diǎn)中計(jì)數(shù)器數(shù)值進(jìn)行加I ; E.判斷計(jì)數(shù)器數(shù)值是否等于ENFA的長度,若否,則跳轉(zhuǎn)至步驟B;若是,跳轉(zhuǎn)至步驟F, F.判斷該子鍵上原子事件發(fā)生的最大時(shí)間戳減去此時(shí)原子事件發(fā)生時(shí)間戳是否小于滑動(dòng)窗口時(shí)間TW ;若是,則使用哈希查找技術(shù)輸出哈希表中該原子事件對應(yīng)數(shù)組中所有選項(xiàng),得到檢測結(jié)果,若否,則跳轉(zhuǎn)至步驟B。
2.根據(jù)權(quán)利要求1所述的面向制造物聯(lián)網(wǎng)海量亂序數(shù)據(jù)流復(fù)雜事件檢測方法,其特征在于,所述主鏈節(jié)點(diǎn)包括該原子事件類型,該類型原子最大時(shí)間戳和計(jì)數(shù)器,子鏈節(jié)點(diǎn)包括該原子事件類型和該原子發(fā)生時(shí)間戳。
【文檔編號】G06F17/30GK104408142SQ201410719615
【公開日】2015年3月11日 申請日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】程良倫, 王建華 申請人:廣東工業(yè)大學(xué)