本發(fā)明涉及一種統(tǒng)計技術,尤其涉及一種事件統(tǒng)計方法、裝置、設備及存儲介質。
背景技術:
結構化事件指的是由兩個或者兩個以上的事件組合而成的一個事件組合,對結構化事件進行統(tǒng)計能夠很好的掌握用戶對于當前應用的使用頻率,進而能夠獲取到用戶比較感興趣的應用。
現(xiàn)有技術中對結構化事件的統(tǒng)計方法為先對需要進行統(tǒng)計的單個事件所對應的代碼進行更改,進而實現(xiàn)針對單個事件的統(tǒng)計,再將上述單個事件的統(tǒng)計結果傳給下一個結構化事件中的單個事件,并對下一個結構化事件中的單個事件所對應的代碼進行更改,進而實現(xiàn)針對下一個結構化事件中的單個事件的統(tǒng)計,以此類推,直到結構化事件統(tǒng)計結束。
現(xiàn)有技術存在的問題:由于對結構化事件進行統(tǒng)計需要改變單個事件對應的代碼,也就是改動原有代碼,因此很容易影響原有代碼,侵入式非常強,也很容易將統(tǒng)計代碼和業(yè)務代碼混到一起,不容易區(qū)分,耦合性非常高。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種事件統(tǒng)計方法、裝置、設備及存儲介質,能夠提高結構化事件統(tǒng)計的效率,避免了對原有代碼的影響。
第一方面,本發(fā)明實施例提供了一種事件統(tǒng)計方法,包括:
根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件;
基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài);
根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
進一步的,所述觸發(fā)狀態(tài)包括已觸發(fā)狀態(tài)和未觸發(fā)狀態(tài);
在每次統(tǒng)計所述結構化事件之前,還包括:
初始化所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài);
基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài),包括:
根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合所述結構化事件列表中事件的觸發(fā)順序;
若是,則將所述結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);否則,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
進一步的,所述根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果,包括:
判斷所述結構化事件列表中單一事件的觸發(fā)狀態(tài)是否全部更新為已觸發(fā)狀態(tài);
若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1。
進一步的,所述若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1之后,還包括:
將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
第二方面,本發(fā)明實施例還提供了一種事件統(tǒng)計裝置,該裝置包括:
列表建立模塊,用于根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件;
更新模塊,用于基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài);
確定模塊,用于根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
進一步的,所述觸發(fā)狀態(tài)包括已觸發(fā)狀態(tài)和未觸發(fā)狀態(tài);
還包括:
初始化模塊,用于在每次統(tǒng)計所述結構化事件之前,初始化所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài);
所述更新模塊包括:
判斷單元,用于根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合所述結構化事件列表中事件的觸發(fā)順序;
狀態(tài)更新單元,用于若是,則將所述結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);
重置單元,用于否則,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
進一步的,所述確定模塊包括:
判斷單元,用于判斷所述結構化事件列表中單一事件的觸發(fā)狀態(tài)是否全部更新為已觸發(fā)狀態(tài);
統(tǒng)計單元,用于若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1。
進一步的,還包括:
重置單元,用于在所述若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1之后,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
第三方面,本發(fā)明實施例還提供了一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如本發(fā)明實施例中任一所述的事件統(tǒng)計方法。
第四方面,本發(fā)明實施例還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如本發(fā)明實施例中任一所述的事件統(tǒng)計方法。
本發(fā)明實施例通過根據(jù)結構化事件之間的關系建立結構化事件列表,基于結構化事件中每個單一事件的觸發(fā)情況,更新結構化事件列表中對應單一事件的觸發(fā)狀態(tài),根據(jù)結構化事件列表中單一事件的觸發(fā)狀態(tài)確定結構化事件的統(tǒng)計結果,統(tǒng)計過程獨立于待測程序之外運行,盡量避免介入待測程序的代碼,只對發(fā)生的事件進行檢測,能夠提高結構化事件統(tǒng)計的效率,簡單方便可靠,避免了對原有代碼的影響。
附圖說明
圖1是本發(fā)明實施例一中的一種事件統(tǒng)計方法的流程圖;
圖2a是本發(fā)明實施例二中的一種事件統(tǒng)計方法的流程圖;
圖2b是本發(fā)明實施例二中的結構化事件示意圖;
圖3是本發(fā)明實施例三中的一種事件統(tǒng)計裝置的結構示意圖;
圖4是本發(fā)明實施例四中的一種計算機設備的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結構。
實施例一
圖1為本發(fā)明實施例一提供的一種事件統(tǒng)計方法的流程圖,本實施例可適用于事件統(tǒng)計的情況,該方法可以由本發(fā)明實施例中的事件統(tǒng)計裝置來執(zhí)行,該裝置可采用軟件和/或硬件的方式實現(xiàn),如圖1所示,該方法具體包括如下步驟:
s110,根據(jù)結構化事件之間的關系建立結構化事件列表,其中,結構化事件包括至少兩個單一事件。
其中,所述結構化事件之間的關系指的是構成結構化事件的單一事件之間的關系,例如可以是,結構化事件為用戶先點擊頁面a(單一事件a),再點擊頁面b(單一事件b),之后點擊頁面c(單一事件c),結構化事件之間的關系也就是單一事件a、單一事件b和單一事件c之間的關系。
其中,結構化事件列表指的是將單一事件按照在結構化事件中的先后順序排列的列表。例如可以是,按照在結構化事件中的先后順序,結構化事件列表中的順序為先是單一事件a,再是單一事件b,最后是單一事件c。
s120,基于所述結構化事件中每個單一事件的觸發(fā)情況,更新結構化事件列表中對應單一事件的觸發(fā)狀態(tài)。
其中,單一事件的觸發(fā)情況指的是單一事件的發(fā)生情況,例如可以是,如果用戶點開頁面a,則打開頁面a這一單一事件就被觸發(fā)了。
具體的,根據(jù)單一事件的觸發(fā)情況更新結構化事件列表中單一事件的觸發(fā)狀態(tài),例如可以是,如果用戶點開頁面a,則更新結構化事件列表中打開頁面a這一單一事件的觸發(fā)狀態(tài),如果用戶接下來點開頁面b,若打開頁面b為結構化事件列表中打開頁面a這一單一事件之后的下一個單一事件,則更新結構化事件列表中打開頁面b這一單一事件的觸發(fā)狀態(tài)。
s130,根據(jù)結構化事件列表中單一事件的觸發(fā)狀態(tài)確定結構化事件的統(tǒng)計結果。
具體的,若結構化事件列表中單一事件的觸發(fā)狀態(tài)均為已觸發(fā)狀態(tài),則確定結構化事件發(fā)生了1次,將結構化事件發(fā)生的次數(shù)進行記錄,并將結構化事件列表中單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),繼續(xù)根據(jù)單一事件的觸發(fā)情況,更新結構化事件列表中對應單一事件的觸發(fā)狀態(tài),直至結構化事件列表中單一事件的觸發(fā)狀態(tài)均為已觸發(fā)狀態(tài),則確定結構化事件發(fā)生了2次,將結構化事件發(fā)生的次數(shù)進行記錄,并將結構化事件列表中單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),重復執(zhí)行上述步驟,進而實現(xiàn)對結構化事件的統(tǒng)計,獲取統(tǒng)計結果。
本發(fā)明實施例的技術方案,通過根據(jù)結構化事件之間的關系建立結構化事件列表,基于所述結構化事件中每個單一事件的觸發(fā)情況,更新結構化事件列表中對應單一事件的觸發(fā)狀態(tài),根據(jù)結構化事件列表中單一事件的觸發(fā)狀態(tài)確定結構化事件的統(tǒng)計結果,統(tǒng)計過程獨立于待測程序之外運行,盡量避免介入待測程序的代碼,只對發(fā)生的事件進行檢測,能夠提高結構化事件統(tǒng)計的效率,簡單方便可靠,避免了對原有代碼的影響。
實施例二
圖2a為本發(fā)明實施例二中的一種事件統(tǒng)計方法的流程圖,本實施例以上述實施例為基礎進行優(yōu)化,在本實施例中,觸發(fā)狀態(tài)包括已觸發(fā)狀態(tài)和未觸發(fā)狀態(tài);在每次統(tǒng)計所述結構化事件之前,還包括:初始化所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài);基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài),包括:根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合結構化事件列表中事件的觸發(fā)順序;若是,則將結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);否則,將結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
由此,判斷當前檢測到的單一事件是否是結構化事件列表中排序最靠前的未觸發(fā)狀態(tài)下的單一事件,這樣可以防止出現(xiàn)統(tǒng)計出來的結構化事件的發(fā)生次數(shù)與實際不符的情況。能夠達到更準確的實現(xiàn)對結構化事件的統(tǒng)計。
相應的,本實施例提供的方法具體包括如下步驟:
s210,根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件。
s220,初始化所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài)。
具體的,將結構化事件列表中的所有的單一事件的觸發(fā)狀態(tài)均設置為未觸發(fā)狀態(tài),以便后續(xù)根據(jù)用戶的操作進行統(tǒng)計。
s230,根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合所述結構化事件列表中事件的觸發(fā)順序,若是,則執(zhí)行s240,若否,則執(zhí)行s250。
具體的,結構化事件是單一事件按照一定的順序排列構建的組合型事件,若單一事件是結構化事件列表中排序最靠前的未觸發(fā)狀態(tài)下的單一事件,則說明當前觸發(fā)的單一事件是構成結構化事件的單一事件,且當前觸發(fā)的單一事件滿足構成結構化事件的排列順序。若當前觸發(fā)的單一事件不是結構化事件列表中排序最靠前的未觸發(fā)狀態(tài)下的單一事件,則說明當前觸發(fā)的單一事件不是構成結構化事件的單一事件或者當前檢測到的單一事件不滿足構成結構化事件的排列順序。
s240,將所述結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài)。
s250,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
具體的,將結構化事件列表中每個單一事件的觸發(fā)狀態(tài)全部重置為未觸發(fā)狀態(tài),以便于根據(jù)用戶的操作執(zhí)行下一輪統(tǒng)計。
s260,根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
可選的,所述根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果,包括:
判斷所述結構化事件列表中單一事件的觸發(fā)狀態(tài)是否全部更新為已觸發(fā)狀態(tài);
若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1。
具體的,若結構化事件的觸發(fā)狀態(tài)均為已觸發(fā)狀態(tài),則統(tǒng)計結構化事件的完成次數(shù)加1。初始化統(tǒng)計結構化事件的完成次數(shù)為0。
可選的,所述若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1之后,還包括:
將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
具體的,在統(tǒng)計結構化事件的完成次數(shù)加1之后,將結構化事件列表中單一事件的觸發(fā)狀態(tài)重置為初始狀態(tài),開始新一輪的統(tǒng)計。
在一個具體的例子中,結構化事件統(tǒng)計的過程為:步驟1:將要統(tǒng)計的結構化事件根據(jù)結構化事件中單一事件之間的關系建立結構化事件列表存于一個鏈表中,每個單一事件有已觸發(fā)狀態(tài)和未觸發(fā)狀態(tài)兩種狀態(tài),需要統(tǒng)計的每個單一事件都能夠接收上一個單一事件的觸發(fā)狀態(tài);步驟2:開始檢測單一事件的觸發(fā)情況,接收到用戶觸發(fā)單一事件a,則判斷用戶觸發(fā)的單一事件a是否符合結構化事件列表中的結構(單一事件順序也要一致);步驟3:若用戶觸發(fā)的單一事件a符合結構化事件列表中的結構,則將單一事件a的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài),若用戶觸發(fā)的單一事件a不符合結構化事件列表中的結構,則將所述結構化事件列表中所有單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),重復執(zhí)行步驟2;步驟4:用戶觸發(fā)單一事件a后觸發(fā)單一事件b,判斷用戶觸發(fā)的單一事件b是否是結構化事件列表中單一事件a下一個單一事件,如果是,那么更新單一事件b的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài),如果不是,則將所述結構化事件列表中所有單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),重復執(zhí)行步驟2;步驟5:判斷結構化事件列表中單一事件的觸發(fā)狀態(tài)是否全部更新為已觸發(fā)狀態(tài),如果是,則此結構化事件為統(tǒng)計加1;如果否,重復執(zhí)行步驟3或步驟4。
在另一個具體的例子中,如圖2b所示,從a頁面、b頁面到e頁面的路徑總共有4條,分別為a頁面-c頁面-e頁面、a頁面-c頁面-d頁面-e頁面、b頁面-c頁面-e頁面、b頁面-c頁面-d頁面-e頁面,如果這時候要添加一個結構化事件來統(tǒng)計a頁面-c頁面-e頁面這個結構化事件,那么a頁面-c頁面-e頁面結構化事件統(tǒng)計的過程為:步驟1、將a頁面-c頁面-e頁面這個結構化事件轉化為結構化事件列表,初始化結構化事件列表中a頁面、c頁面、e頁面的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài);步驟2、在a頁面、b頁面、c頁面、d頁面和e頁面軟件代碼中設置能夠接收事件觸發(fā)狀態(tài)的打點接口;步驟3、用戶從a頁面進去,也就是觸發(fā)a頁面事件,那么將a頁面的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);步驟4、接著用戶從a頁面進入c頁面,那么將c頁面的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);步驟5、若用戶從c頁面直接到e頁面,那么將e頁面的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài),完成了a頁面-c頁面-e頁面結構化事件的統(tǒng)計;若用戶從c頁面到d頁面,由于d頁面不符合結構化事件a頁面-c頁面-e頁面,所以不會被統(tǒng)計到此事件中,將a頁面、c頁面、e頁面的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),重復執(zhí)行步驟3。
本實施例的技術方案,通過初始化結構化事件列表中單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài),根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合結構化事件列表中事件的觸發(fā)順序;若是,則將結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);否則,將結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài),避免出現(xiàn)統(tǒng)計出來的結構化事件的發(fā)生次數(shù)與實際不符的情況。統(tǒng)計過程獨立于待測程序之外運行,盡量避免介入待測程序的代碼,只對發(fā)生的事件進行檢測,能夠達到更準確的實現(xiàn)對結構化事件的統(tǒng)計。
實施例三
圖3為本發(fā)明實施例三提供的一種事件統(tǒng)計裝置的結構示意圖。本實施例可適用于事件統(tǒng)計的情況,該裝置可采用軟件和/或硬件的方式實現(xiàn),該裝置可集成在任何提供事件統(tǒng)計功能的設備中,如圖3所示,所述事件統(tǒng)計裝置具體包括:列表建立模塊310、更新模塊320和確定模塊330。
其中,列表建立模塊310,用于根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件;
更新模塊320,用于基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài);
確定模塊330,用于根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
可選的,所述觸發(fā)狀態(tài)包括已觸發(fā)狀態(tài)和未觸發(fā)狀態(tài);
還包括:
初始化模塊,用于在每次統(tǒng)計所述結構化事件之前,初始化所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)為未觸發(fā)狀態(tài);
所述更新模塊包括:
判斷單元,用于根據(jù)當前單一事件的觸發(fā)情況,判斷當前觸發(fā)的單一事件是否符合所述結構化事件列表中事件的觸發(fā)順序;
狀態(tài)更新單元,用于若是,則將所述結構化事件列表中對應當前檢測到的單一事件的觸發(fā)狀態(tài)更新為已觸發(fā)狀態(tài);
重置單元,用于否則,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
可選的,所述確定模塊包括:
判斷單元,用于判斷所述結構化事件列表中單一事件的觸發(fā)狀態(tài)是否全部更新為已觸發(fā)狀態(tài);
統(tǒng)計單元,用于若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1。
可選的,還包括:
重置單元,用于在所述若全部更新為已觸發(fā)狀態(tài),則統(tǒng)計所述結構化事件的完成次數(shù)加1之后,將所述結構化事件列表中每個單一事件的觸發(fā)狀態(tài)重置為未觸發(fā)狀態(tài)。
本實施例的技術方案,通過根據(jù)結構化事件之間的關系建立結構化事件列表,基于結構化事件中每個單一事件的觸發(fā)情況,更新結構化事件列表中對應單一事件的觸發(fā)狀態(tài),根據(jù)結構化事件列表中單一事件的觸發(fā)狀態(tài)確定結構化事件的統(tǒng)計結果,統(tǒng)計過程獨立于待測程序之外運行,盡量避免介入待測程序的代碼,只對發(fā)生的事件進行檢測,能夠提高結構化事件統(tǒng)計的效率,簡單方便可靠,避免了對原有代碼的影響。
實施例四
圖4為本發(fā)明實施例四提供的一種計算機設備的結構示意圖。圖4示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機設備12的框圖。圖4顯示的計算機設備12僅僅是一個示例,不應對本發(fā)明實施例的功能和使用范圍帶來任何限制。
如圖4所示,計算機設備12以通用計算設備的形式表現(xiàn)。計算機設備12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業(yè)標準體系結構(isa)總線,微通道體系結構(mac)總線,增強型isa總線、視頻電子標準協(xié)會(vesa)局域總線以及外圍組件互連(pci)總線。
計算機設備12典型地包括多種計算機系統(tǒng)可讀介質。這些介質可以是任何能夠被計算機設備12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質,例如隨機存取存儲器(ram)30和/或高速緩存存儲器32。計算機設備12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(圖4未顯示,通常稱為“硬盤驅動器”)。盡管圖4中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如cd-rom,dvd-rom或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數(shù)據(jù)介質接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
計算機設備12也可以與一個或多個外部設備14(例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機設備12交互的設備通信,和/或與使得該計算機設備12能與一個或多個其它計算設備進行通信的任何設備(例如網(wǎng)卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進行。并且,計算機設備12還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡,例如因特網(wǎng))通信。如圖所示,網(wǎng)絡適配器20通過總線18與計算機設備12的其它模塊通信。應當明白,盡管圖中未示出,可以結合計算機設備12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統(tǒng)、磁帶驅動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
處理單元16通過運行存儲在系統(tǒng)存儲器28中的程序,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,例如實現(xiàn)本發(fā)明實施例所提供的事件統(tǒng)計方法:根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件;基于所述結構化事件中每個單一事件的觸發(fā)情況,更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài);根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
實施例五
本發(fā)明實施例五提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如本申請所有發(fā)明實施例提供的事件統(tǒng)計方法:根據(jù)結構化事件之間的關系建立結構化事件列表,其中,所述結構化事件包括至少兩個單一事件;基于所述結構化事件中每個單一事件的觸發(fā)情況,并根據(jù)檢測結果更新所述結構化事件列表中對應單一事件的觸發(fā)狀態(tài);根據(jù)所述結構化事件列表中單一事件的觸發(fā)狀態(tài)確定所述結構化事件的統(tǒng)計結果。
可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。
計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括——但不限于——無線、電線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規(guī)的過程式程序設計語言—諸如”c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡——包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。