支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)及其運(yùn)行方法
【專利摘要】本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)及其運(yùn)行方法。該支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng),其特殊之處在于:該系統(tǒng)包括過濾插件、統(tǒng)計插件及統(tǒng)計計算器,統(tǒng)計計算器通過過濾插件的過濾插件接口、統(tǒng)計插件的統(tǒng)計插件接口來傳輸統(tǒng)計、計算信息,本發(fā)明的系統(tǒng)提供了一種以插件形式載入統(tǒng)計算法,過濾算法的方法,當(dāng)執(zhí)行統(tǒng)計計算時,首先調(diào)用提供過濾插件接口(過濾條件可以多級過濾,放到列表中即可)的對實(shí)時數(shù)據(jù)進(jìn)行過濾,隨后調(diào)用統(tǒng)計插件接口進(jìn)行統(tǒng)計計算,方便靈活、周期短。
【專利說明】支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)及其運(yùn)行方法
[0001](一)【技術(shù)領(lǐng)域】
本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)及其運(yùn)行方法。
[0002](二)【背景技術(shù)】
用戶在進(jìn)行實(shí)時數(shù)據(jù)的統(tǒng)計計算時,只能調(diào)用軟件自帶的固定統(tǒng)計算法,無法自己定制,如果用戶確實(shí)需要額外統(tǒng)計算法時,需要找到軟件開發(fā)人員對統(tǒng)計過程進(jìn)行重新編碼,這樣不夠靈活,周期也較長,上述問題急需解決。
[0003](三)
【發(fā)明內(nèi)容】
本發(fā)明為了彌補(bǔ)現(xiàn)有技術(shù)的不足,提供了一種支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)及其運(yùn)行方法,該系統(tǒng)提供了用戶可以編寫過濾條件和統(tǒng)計算法,并且利用用戶編寫的過濾條件和統(tǒng)計算法進(jìn)行統(tǒng)計計算,輸出統(tǒng)計結(jié)果。
[0004]本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
一種支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng),其特殊之處在于:該系統(tǒng)包括過濾插件、統(tǒng)計插件及統(tǒng)計計算器,統(tǒng)計計算器通過過濾插件的過濾插件接口、統(tǒng)計插件的統(tǒng)計插件接口來傳輸統(tǒng)計、計算信息,其中,過濾插件接口,用于過濾掉不需要參與統(tǒng)計計算的實(shí)時數(shù)據(jù);
統(tǒng)計插件接口,用戶實(shí)現(xiàn)該接口來編寫對于實(shí)時數(shù)據(jù)的統(tǒng)計算法;
統(tǒng)計計算器,實(shí)現(xiàn)調(diào)用過濾插件接口和統(tǒng)計插件接口來完成統(tǒng)計計算,并將計算結(jié)果返回給用戶。
[0005]本發(fā)明的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng),該系統(tǒng)與輸入設(shè)備、顯示器分別連接。
[0006]本發(fā)明的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)的運(yùn)行方法,其特殊之處在于:包括以下步驟:
(1)輸入統(tǒng)計計算的測點(diǎn)名稱、開始時間、結(jié)束時間、統(tǒng)計插件和多個過濾插件名稱以及過濾插件的過濾參數(shù);
(2)根據(jù)步驟I輸入的多個過濾插件名稱,載入多個提供過濾插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建過濾插件對象的入口函數(shù),并調(diào)用過濾插件對象的初始化函數(shù);
(3)通過步驟I輸入的統(tǒng)計插件名稱,載入提供統(tǒng)計插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建統(tǒng)計插件對象的入口函數(shù),并調(diào)用統(tǒng)計插件對象的初始化函數(shù);
(4)根據(jù)測點(diǎn)名稱,開始時間、結(jié)束時間構(gòu)建實(shí)時數(shù)據(jù)查詢器;
(5)創(chuàng)建錯誤值計數(shù)累加變量和正確值計數(shù)累加變量,初始化為零;
(6)將用戶需要統(tǒng)計計算的時間范圍分為若干時間段,以時間段結(jié)束時間小于時間范圍的結(jié)束時間為循環(huán)條件,每次循環(huán)實(shí)時數(shù)據(jù)查詢器只讀取一個時間段內(nèi)的實(shí)時數(shù)據(jù),返回實(shí)時數(shù)據(jù)集合;
(7)調(diào)用統(tǒng)計插件的完成計算函數(shù);
(8)計算正確率,返回給用戶;(9)調(diào)用統(tǒng)計插件的統(tǒng)計計算函數(shù),得到統(tǒng)計值;
(10)統(tǒng)計計算器計算統(tǒng)計結(jié)果值,返回給用戶;
(11)調(diào)用過濾插件和統(tǒng)計插件的刪除函數(shù),
(12)向用戶返回,統(tǒng)計結(jié)果值和正確率。
[0007]本發(fā)明的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)的運(yùn)行方法,步驟(6)中,每次循環(huán)過程中a.遍歷全部過濾插件,將讀取的實(shí)時數(shù)據(jù)集合傳入第一個過濾插件的過濾函數(shù)進(jìn)行過濾,再將過濾后的實(shí)時數(shù)據(jù)集合傳入第二個過濾插件進(jìn)行過濾,以此類推;b遍歷全部過濾后的實(shí)時數(shù)據(jù)集合中的每一個實(shí)時數(shù)據(jù)值,如果當(dāng)前實(shí)時數(shù)據(jù)的值有效,判斷上一次循環(huán)的值的時間戳和當(dāng)前的時間戳是否相等,不相同則調(diào)用統(tǒng)計插件的統(tǒng)計函數(shù),正確值計數(shù)變量累加I ;如果當(dāng)前實(shí)時數(shù)據(jù)的值無效:錯誤值計數(shù)變量累加I。
[0008]本發(fā)明的有益效果是:本發(fā)明的系統(tǒng)提供了一種以插件形式載入統(tǒng)計算法,過濾算法的方法,當(dāng)用戶需要自定義統(tǒng)計算法和過濾算法時,只需要實(shí)現(xiàn)統(tǒng)計計算架構(gòu)提供的統(tǒng)計插件接口和過濾插件接口,并將他們的實(shí)現(xiàn)輸出到動態(tài)庫中。當(dāng)執(zhí)行統(tǒng)計計算時,首先調(diào)用提供過濾插件接口(過濾條件可以多級過濾,放到列表中即可)的對實(shí)時數(shù)據(jù)進(jìn)行過濾,隨后調(diào)用統(tǒng)計插件接口進(jìn)行統(tǒng)計計算,方便靈活、周期短。
[0009](四)【專利附圖】
【附圖說明】
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的說明。
[0010]圖1為本發(fā)明的框架圖;
圖2為本發(fā)明的調(diào)用統(tǒng)計流程圖。
[0011](五)【具體實(shí)施方式】
附圖為本發(fā)明的一種具體實(shí)施例。該實(shí)施例的系統(tǒng)包括過濾插件、統(tǒng)計插件及統(tǒng)計計算器,當(dāng)啟動統(tǒng)計計算后,載入用戶自定義的過濾插件,統(tǒng)計插件,調(diào)用過濾插件和統(tǒng)計插件提供的接口,以便實(shí)現(xiàn)基于用戶自定義的統(tǒng)計方式,其中:
1、過濾插件接口,用戶可以實(shí)現(xiàn)該插件來自定義過濾條件,對實(shí)時數(shù)據(jù)的過濾。該接口功能主要包括:
(1)初始化函數(shù):提供給過濾插件一個初始化的機(jī)會。該函數(shù)參數(shù)為:需要統(tǒng)計計算的開始時間,結(jié)束時間,以及過濾參數(shù);
(2)過濾函數(shù):對于輸入的數(shù)據(jù)進(jìn)行過濾,并放入內(nèi)存中;
(3)取值函數(shù):用戶調(diào)用此函數(shù)得到步驟2產(chǎn)生的值;
(4)刪除函數(shù):過濾操作完畢后,提供給過濾插件一個執(zhí)行釋放資源等操作的機(jī)會。
[0012]2、統(tǒng)計插件接口,用戶可以實(shí)現(xiàn)該插件來自定義統(tǒng)計算法,該接口功能主要包括:
(I)初始化函數(shù):提供給統(tǒng)計插件一個初始化的機(jī)會。
[0013](2)計算規(guī)則函數(shù):對通過過濾插件過濾后的實(shí)時數(shù)據(jù)的值進(jìn)行計算。該函數(shù)的參數(shù)為:需要統(tǒng)計的實(shí)時數(shù)據(jù)的值。
[0014](3)統(tǒng)計計算函數(shù):返回步驟2進(jìn)行統(tǒng)計計算后的值。
[0015](4)刪除函數(shù):統(tǒng)計計算完畢后,提供給統(tǒng)計插件一個執(zhí)行釋放資源等操作的機(jī)
A
ο
[0016]3、統(tǒng)計計算器,實(shí)現(xiàn)調(diào)用過濾插件接口和統(tǒng)計插件接口來完成統(tǒng)計計算,并將計算結(jié)果返回給用戶,其過程為:
(1)輸入統(tǒng)計計算的測點(diǎn)名稱、開始時間、結(jié)束時間、統(tǒng)計插件和多個過濾插件名稱以及過濾插件的過濾參數(shù);
(2)根據(jù)步驟I輸入的多個過濾插件名稱,載入多個提供過濾插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建過濾插件對象的入口函數(shù),并調(diào)用過濾插件對象的初始化函數(shù);
(3)通過步驟I輸入的統(tǒng)計插件名稱,載入提供統(tǒng)計插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建統(tǒng)計插件對象的入口函數(shù),并調(diào)用統(tǒng)計插件對象的初始化函數(shù);
(4)根據(jù)測點(diǎn)名稱,開始時間、結(jié)束時間構(gòu)建實(shí)時數(shù)據(jù)查詢器;
(5)創(chuàng)建錯誤值計數(shù)累加變量和正確值計數(shù)累加變量,初始化為零;
(6)將用戶需要統(tǒng)計計算的時間范圍(結(jié)束時間-開始時間)分為若干時間段,以時間段結(jié)束時間小于時間范圍的結(jié)束時間為循環(huán)條件,每次循環(huán)實(shí)時數(shù)據(jù)查詢器只讀取一個時間段內(nèi)的實(shí)時數(shù)據(jù),返回實(shí)時數(shù)據(jù)集合,在每次循環(huán)過程中:a.遍歷全部過濾插件,將讀取的實(shí)時數(shù)據(jù)集合傳入第一個過濾插件的過濾函數(shù)進(jìn)行過濾,再將過濾后的實(shí)時數(shù)據(jù)集合傳入第二個過濾插件進(jìn)行過濾,以此類推,b.遍歷全部過濾后的實(shí)時數(shù)據(jù)集合中的每一個實(shí)時數(shù)據(jù)值,如果當(dāng)前實(shí)時數(shù)據(jù)的值有效,判斷上一次循環(huán)的值的時間戳和當(dāng)前的時間戳是否相等,不相同則調(diào)用統(tǒng)計插件的統(tǒng)計函數(shù),正確值計數(shù)變量累加I ;如果當(dāng)前實(shí)時數(shù)據(jù)的值無效:錯誤值計數(shù)變量累加I ;
(7)調(diào)用統(tǒng)計插件的完成計算函數(shù);
(8)計算正確率,返回給用戶:正確率=正確值計數(shù)變量+(錯誤值計數(shù)變量+正確值計數(shù)變量);
(9)調(diào)用統(tǒng)計插件的統(tǒng)計計算函數(shù),得到統(tǒng)計值;
(10)計算統(tǒng)計結(jié)果值,返回給用戶:如果步驟8的到的統(tǒng)計值大于0,統(tǒng)計結(jié)果值為:統(tǒng)計值。狀態(tài)為:正確;如果小于O,結(jié)果值為:0,狀態(tài)為:錯誤;
(11)調(diào)用過濾插件和統(tǒng)計插件的刪除函數(shù);
(12)向用戶返回,統(tǒng)計結(jié)果值和正確率。
[0017]本發(fā)明的系統(tǒng)提供了一種以插件形式載入統(tǒng)計算法,過濾算法的方法,靈活方便、周期短。
【權(quán)利要求】
1.一種支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng),其特征在于:該系統(tǒng)包括過濾插件、統(tǒng)計插件及統(tǒng)計計算器,統(tǒng)計計算器通過過濾插件的過濾插件接口、統(tǒng)計插件的統(tǒng)計插件接口來傳輸統(tǒng)計、計算信息,其中,過濾插件接口,用于過濾掉不需要參與統(tǒng)計計算的實(shí)時數(shù)據(jù); 統(tǒng)計插件接口,用戶實(shí)現(xiàn)該接口來編寫對于實(shí)時數(shù)據(jù)的統(tǒng)計算法; 統(tǒng)計計算器,實(shí)現(xiàn)調(diào)用過濾插件接口和統(tǒng)計插件接口來完成統(tǒng)計計算,并將計算結(jié)果返回給用戶。
2.根據(jù)權(quán)利要求1所述的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng),其特征在于:該系統(tǒng)與輸入設(shè)備、顯示器分別連接。
3.根據(jù)權(quán)利要求1或2所述的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)的運(yùn)行方法,其特征在于:包括以下步驟: (1)輸入統(tǒng)計計算的測點(diǎn)名稱、開始時間、結(jié)束時間、統(tǒng)計插件和多個過濾插件名稱以及過濾插件的過濾參數(shù); (2)根據(jù)步驟I輸入的多個過濾插件名稱,載入多個提供過濾插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建過濾插件對象的入口函數(shù),并調(diào)用過濾插件對象的初始化函數(shù); (3)通過步驟I輸入的統(tǒng)計插件名稱,載入提供統(tǒng)計插件對象的動態(tài)庫,并從動態(tài)庫中得到創(chuàng)建統(tǒng)計插件對象的入口函數(shù),并調(diào)用統(tǒng)計插件對象的初始化函數(shù); (4)根據(jù)測點(diǎn)名稱,開始時間、結(jié)束時間構(gòu)建實(shí)時數(shù)據(jù)查詢器; (5)創(chuàng)建錯誤值計數(shù)累加變量和正確值計數(shù)累加變量,初始化為零; (6)將用戶需要統(tǒng)計計算的時間范圍分為若干時間段,以時間段結(jié)束時間小于時間范圍的結(jié)束時間為循環(huán)條件,每次循環(huán)實(shí)時數(shù)據(jù)查詢器只讀取一個時間段內(nèi)的實(shí)時數(shù)據(jù),返回實(shí)時數(shù)據(jù)集合; (7)調(diào)用統(tǒng)計插件的完成計算函數(shù); (8)計算正確率,返回給用戶; (9)調(diào)用統(tǒng)計插件的統(tǒng)計計算函數(shù),得到統(tǒng)計值; (10)統(tǒng)計計算器計算統(tǒng)計結(jié)果值,返回給用戶; (11)調(diào)用過濾插件和統(tǒng)計插件的刪除函數(shù), (12)向用戶返回,統(tǒng)計結(jié)果值和正確率。
4.根據(jù)權(quán)利要求3所述的支持用戶自定義過濾條件和統(tǒng)計算法的系統(tǒng)的運(yùn)行方法,其特征在于:步驟(6)中,每次循環(huán)過程中a.遍歷全部過濾插件,將讀取的實(shí)時數(shù)據(jù)集合傳入第一個過濾插件的過濾函數(shù)進(jìn)行過濾,再將過濾后的實(shí)時數(shù)據(jù)集合傳入第二個過濾插件進(jìn)行過濾,以此類推;b遍歷全部過濾后的實(shí)時數(shù)據(jù)集合中的每一個實(shí)時數(shù)據(jù)值,如果當(dāng)前實(shí)時數(shù)據(jù)的值有效,判斷上一次循環(huán)的值的時間戳和當(dāng)前的時間戳是否相等,不相同則調(diào)用統(tǒng)計插件的統(tǒng)計函數(shù),正確值計數(shù)變量累加I ;如果當(dāng)前實(shí)時數(shù)據(jù)的值無效:錯誤值計數(shù)變量累加I。
【文檔編號】G06F9/44GK103744646SQ201310110708
【公開日】2014年4月23日 申請日期:2013年4月1日 優(yōu)先權(quán)日:2013年4月1日
【發(fā)明者】丁書耕, 邢宏偉, 張建輝, 陳雷動, 張博濤, 王軍建 申請人:山東魯能軟件技術(shù)有限公司