專利名稱:數(shù)據(jù)處理方法、計算節(jié)點及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及數(shù)據(jù)計算領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、計算節(jié)點及系統(tǒng)。
背景技術(shù):
Hadoop技術(shù)是最近幾年興起的處理海量數(shù)據(jù)的分布式計算平臺,在處理海量數(shù)據(jù)和可靠性方面有著巨大的優(yōu)勢。Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架,以一種可靠、高效、可伸縮的方式進行處理的。Hadoop是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。Hadoop還是可伸縮的,能夠處理拍字節(jié)(PB)級數(shù)據(jù)。關(guān)鍵績效指標(Key Performance Indicator,簡稱KPI)/關(guān)鍵質(zhì)量指標(KeyQuality Indicator,簡稱KQI)計算往往需要在多個事件之間建立關(guān)聯(lián),即多個事件基于某 個維度關(guān)聯(lián),并滿足條件才生成一個KPI/KQI。但Hadoop在處理此類問題上缺少很好的支持,需要多次映射化簡(MapReduce,簡稱MR)的復雜操作,生成更多的中間文件才能部分達成。而MR時效性不高,所有的中間結(jié)果都要通過輸入輸出(Input Output,簡稱10)寫入Hadoop文件系統(tǒng)(Hadoop File System,簡稱HDFS)中,然后再讀出參與下次的運算,對于超大數(shù)據(jù)的處理IO成為瓶頸,實時性下降。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)處理方法、計算節(jié)點及系統(tǒng),用以一定程度上解決現(xiàn)有Hadoop中關(guān)聯(lián)運算需要多次MR的復雜操作導致實時性下降的問題。第一方面,本發(fā)明實施例提供的一種數(shù)據(jù)處理方法,所述方法應用于商業(yè)處理實體BPE上,所述方法包括向與所述BPE位于同一計算節(jié)點上的復雜事件處理CEP實例注冊所述BPE的預設算法,所述BPE的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;獲得所述CEP實例傳遞的所述預設算法計算所需的事件,其中所述預設算法計算所需的事件是所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,所傳遞的;根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,使得所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。
在第一方面的第一種可能的實現(xiàn)方式中,所述根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果之后還包括將所述計算結(jié)果傳遞給入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;所述DPE位于所述計算節(jié)點或另一計算節(jié)點上。
結(jié)合上述第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述將所述計算結(jié)果傳遞給入庫處理實體DPE包括根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果傳遞給算術(shù)處理實體APE,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE;所述APE位于所述計算節(jié)點或另一計算節(jié)點上,所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。第二方面,本發(fā)明實施例提供的一種數(shù)據(jù)處理方法,所述方法應用于復雜事件處理CEP實例上,所述方法包括執(zhí)行與所述CEP位于同一計算節(jié)點上的商業(yè)處理實體BPE的預設算法的注冊,所述BPE的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE,以使所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算、得到計算結(jié)果;獲得所述BPE寫入的所述計算結(jié)果,所述計算結(jié)果為所述BPE在根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算時,以中間事件的方式寫入的;在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所屬其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。在第二方面的第一種可能的實現(xiàn)方式中,所述預設算法關(guān)注的事件包括所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的的中間事件;所述在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件之前,還包括從消息總線上提取所述預設算法關(guān)注的原始事件;所述CEP實例檢測所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的中間事件是否滿足所述觸發(fā)計算的條件。第三方面,本發(fā)明實施例提供的一種數(shù)據(jù)處理方法,所述方法應用于包括商業(yè)處理實體BPE與復雜事件處理CEP實例的物理節(jié)點上,所述方法包括BPE向CEP實例注冊所述BPE的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE ;所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例;所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。在第三方面的第一種可能的實現(xiàn)方式中,所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果之后還包括所述BPE將所述計算結(jié)果傳遞給入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;所述DPE位于所述計算節(jié)點或另一計算節(jié)點上。
結(jié)合上述第三方面的第一種可能的實現(xiàn)方式,在第三方面的第二種可能的實現(xiàn)方式中,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件之前,還包括從消息總線上提取原始事件;所述CEP實例檢測所述提取的原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。結(jié)合上述第三方面的第二種可能的實現(xiàn)方式,在第三方面的第三種可能的實現(xiàn)方式中,所述從消息總線上提取原始事件包括接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件;或位于所述計算節(jié)點上的事件過濾器根據(jù)調(diào)度器的訂購配置從消息總線上提取所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例。結(jié)合第三方面的上述任一種可能的實現(xiàn)方式,在第三方面的第四種可能的實現(xiàn)方式中,所述BPE將所述計算結(jié)果傳遞給入庫處理實體DPE包括所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果傳遞給算術(shù)處理實體ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;所述APE位于所述計算節(jié)點或另一計算節(jié)點上,所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。結(jié)合上述第三方面的第四種可能的實現(xiàn)方式,在第三方面的第五種可能的實現(xiàn)方式中,所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算之后,還包括若所述APE根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果需進一步計算,則所述APE將所述匯總結(jié)果作為中間事件寫入與所述APE位于同一計算節(jié)點的CEP實例。第四方面,本發(fā)明實施例提供的一種計算節(jié)點,包括商業(yè)處理實體BPE和復雜事件處理CEP實例;所述ΒΡΕ,用于向所述CEP實例注冊所述BPE的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;所述CEP實例,用于在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE ;所述BPE還用于,根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例;所述CEP實例還用于,在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。在第四方面的第一種可能的實現(xiàn)方式中,所述BPE還用于,將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;或所述計算節(jié)點還包括DPE,所述BPE還用于,將所述計算結(jié)果發(fā)送給同一計算節(jié)點上的DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中。 結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式,在第四方面的第二種可能的實現(xiàn)方式中,所述CEP實例還用于從消息總線上提取原始事件;檢測所述提取原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。結(jié)合第四方面的第二種可能的實現(xiàn)方式,在第四方面的第三種可能的實現(xiàn)方式中,所述CEP實例具體用于,接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的BPE ;或,所述計算節(jié)點還包括事件過濾器,所述事件過濾器用于根據(jù)調(diào)度器的訂購配置從消息總線上提取所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例;所述CEP實例具體用于,接收所述事件過濾器傳遞的所述原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。結(jié)合第四方面或第四方面的上述任一種可能的實現(xiàn)方式,在第四方面的第四種可能的實現(xiàn)方式中,所述BPE還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的算術(shù)處理實體ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;或所述計算節(jié)點還包括ΑΡΕ,所述BPE還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給同一計算節(jié)點上的APE,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。結(jié)合第四方面的第四種可能的實現(xiàn)方式,在第四方面的第五種可能的實現(xiàn)方式中所述APE還用于,若根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果需進一步計算,則將所述匯總結(jié)果作為中間事件寫入同一計算節(jié)點上的CEP實例。第五方面,本發(fā)明實施例提供了一種分布式計算系統(tǒng),包括調(diào)度器和至少一個計算節(jié)點,各計算節(jié)點均為如上所述的計算節(jié)點; 所述調(diào)度器,用于收集各計算節(jié)點的資源信息,根據(jù)所述資源信息確定各計算節(jié)點的調(diào)度方式,根據(jù)各計算節(jié)點的調(diào)度方式分別調(diào)度各計算節(jié)點。在第五方面的第一種可能的實現(xiàn)方式中,所述調(diào)度方式包括預設算法,預設業(yè)務邏輯,是否開啟計算節(jié)點上的商業(yè)處理實體ΒΡΕ、算術(shù)處理實體APE、入庫處理實體DPE。結(jié)合第五方面或第五方面的第一種可能的實現(xiàn)方式,在第五方面的第二種可能的實現(xiàn)方式中,所述計算節(jié)點有多個;所述調(diào)度器具體用于,預留一個計算節(jié)點作為備用計算節(jié)點,調(diào)度除所述備用計算節(jié)點之外的其它計算節(jié)點;當所述調(diào)度的其它計算節(jié)點中一個計算節(jié)點異常時,根據(jù)所述異常的計算節(jié)點的調(diào)度方式和所述異常的計算節(jié)點的緩存數(shù)據(jù)調(diào)度所述備用計算節(jié)點。以上多個技術(shù)方案中的至少一個技術(shù)方案具有如下優(yōu)點或有益效果本發(fā)明實施例采用計算節(jié)點上的商業(yè)處理實體(Business ProcessorEntity,簡稱BPE)向該計算節(jié)點上的復雜事件處理(Complex event processing,簡稱CEP)實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法的觸發(fā)計算的條件時將計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法中觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖I為本發(fā)明實施例提供的一種數(shù)據(jù)處理方法的流程示意圖;圖2為本發(fā)明實施例提供的又一種數(shù)據(jù)處理方法的流程示意圖;圖3為本發(fā)明實施例提供的再一種數(shù)據(jù)處理方法的流程示意圖;圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)處理方法的流程示意圖;圖5為本發(fā)明實施例提供的一種計算節(jié)點300的結(jié)構(gòu)示意圖;圖6為本發(fā)明實施例提供的一種計算節(jié)點400的結(jié)構(gòu)示意圖7為本發(fā)明實施例提供的一種計算節(jié)點500的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例提供的一種分布式計算系統(tǒng)600的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例的一種應用場景示意圖;圖10為本發(fā)明實施例的又一種應用場景示意圖;圖11為本發(fā)明實施例的再一種應用場景示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是·本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。圖I為本發(fā)明實施例提供的一種數(shù)據(jù)處理方法的流程示意圖。所述方法應用于包括BPE與CEP實例的計算節(jié)點上,如圖I所示,該方法包括101、BPE向CEP實例注冊所述BPE的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件。本發(fā)明實施例中BPE的功能包括KPI/KQI的計算、用戶信令分析等。BPE和CEP實例可以一同部署在每個計算節(jié)點上,舉例來說,本發(fā)明實施例的計算節(jié)點可以是刀片系統(tǒng)的一個刀片實體(其產(chǎn)品形態(tài)可以是單板),也可稱為物理節(jié)點。這里的預設算法是BPE負責的KPI/KQI計算的算法、信令分析的算法等,算法也可稱為功能函數(shù)、商業(yè)邏輯。舉例來說,任何一個KPI的計算都可以表示為K=f(IEl,IE2,IE3. ..),其中K為KPI, f為功能函數(shù),信息元素(Information Element,簡稱IE)為網(wǎng)絡中某個或某些事件參數(shù)的匯聚,常見的有以下幾種情況I)計算字節(jié)數(shù)的匯總IE=SUM (EVENT, x)2)計算平均時長,跨網(wǎng)元的情況類似IE=AVG (EVENTI. T-EVENT2. T)3)計算次數(shù),如錯誤碼的次數(shù)IE=count (EVENT)計算任何一個KPI可以分為兩個過程1)某個集合中事件(Event)參數(shù)的匯聚計算IE ;2)通過IE的運算來得出KPI。預設算法可以以實體查詢語言(Entity Query Language,簡稱EQL)語句的形式來表達,包括該算法關(guān)注的事件的標識、該算法計算所需的事件的標識和觸發(fā)計算的條件等。具體地,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件。102、所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述ΒΡΕ。預設算法中的觸發(fā)計算的條件是啟動該預設算法計算的條件,只有當該預設算法關(guān)注的事件滿足觸發(fā)計算的條件時,才啟動根據(jù)所述預設算法的計算。103、所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到
計算結(jié)果。舉例來說,所述BPE的算法關(guān)注兩個事件EVENT1 {ID, TIME, V0LUMN}和EVENT2 {TIME, SUCCESS},需要實現(xiàn)如下算法當EVENT2中的SUCCESS為真,同時EVENT2中的 ΜΕ等于EVENTl中的 ΜΕ時,計算在10分鐘內(nèi),累加EVENTl中的VOLUMN的值,并計算EVENTl事件的個數(shù);于是BPE就向CEP實例注冊如下EQL語句以實現(xiàn)其算法Select Event I· id, count (*),sum (Event I· Volumn) from Event I. win_batch(IOmin)where Eventl. time=Event2. time And Event2. Success=I這樣CEP實例就會跟蹤EVENT I和EVENT2,當EVENT2中的SUCCESS為真,同時EVENT2中的 ΜΕ等于EVENTl中的 ΜΕ時,即該算法關(guān)注的EVENTl和EVENT2滿足觸發(fā)計算的條件時,將該算法計算所需的事件EVENTl傳遞給BPE,所述BPE根據(jù)上述算法累加EVENTl中的VOLUMN的值,并計算EVENTl事件的個數(shù),每隔10分鐘得到一條對應于Eventl.id, count (*), sum (EventI. Volumn)的計算結(jié)果,這就是一條 KPI 記錄。104、若所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例。計算結(jié)果是否需進一步計算,取決于預先設計好的業(yè)務邏輯。舉例來說,有些計算 結(jié)果作為初級KPI,還需進一步地計算,得到高級KPI,因此,根據(jù)業(yè)務邏輯這些初級KPI的計算結(jié)果與其它的高級KPI算法有關(guān),則這些初級KPI的計算結(jié)果需進一步計算。通常,由其它BPE根據(jù)自己的算法對計算結(jié)果進行進一步的計算。如果計算結(jié)果需進一步計算,可以理解為,所述計算結(jié)果為中間計算結(jié)果。應當理解的是,本發(fā)明實施例中,將中間計算結(jié)果作為中間事件寫入所述CEP實例,可見,所有中間結(jié)果都保存在內(nèi)存或是分布式cache中,相比于現(xiàn)有Hadoop技術(shù)將所有的中間計算結(jié)果寫入數(shù)據(jù)庫、然后再從數(shù)據(jù)庫中讀出進行進一步的計算,本發(fā)明實施例減少了不必要的IO操作,從而提升時效性。105、所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的 ΒΡΕ。具體地,本發(fā)明實施例中由CEP實例根據(jù)已注冊算法關(guān)注的事件、計算所需的事件和觸發(fā)計算的條件來判斷事件與算法之間的關(guān)聯(lián)性,進而實現(xiàn)多事件和多算法之間的關(guān)聯(lián)。其中,每個計算節(jié)點上可能部署了一個或多個ΒΡΕ,每個BPE均向部署于同一計算節(jié)點的CEP實例注冊自己的算法。應當理解的是,全文中提到的位于計算節(jié)點與部署于計算節(jié)點是同一種技術(shù)含義,都可以理解為作為軟件邏輯部署于物理實體上,或者,作為軟件邏輯被包括于物理實體中。進一步地,在步驟103完成了計算之后,還需將計算結(jié)果保存到數(shù)據(jù)庫中。本發(fā)明實施例中利用入庫處理實體(Data Storage Processor Entity,簡稱DPE)來完成入庫。對應地,103之后還包括 所述BPE將所述計算結(jié)果傳遞給DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中。其中,DPE與所述BPE可以部署在同一計算節(jié)點,也可以部署在不同的計算節(jié)點,本實施例對此不作限定。具體地,這里的數(shù)據(jù)庫可以是所述DPE所在計算節(jié)點的本地數(shù)據(jù)庫,也可以是分布式計算系統(tǒng)中的共享數(shù)據(jù)庫。需要說明的是,103之后,所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需進一步計算,若是則可以并行執(zhí)行將計算結(jié)果傳遞給DPE入庫和104中將所述計算結(jié)果作為中間事件寫入CEP實例的步驟,否則只需執(zhí)行將計算結(jié)果傳遞給DPE入庫的步驟。應當理解的是,本發(fā)明實施例中,保存到數(shù)據(jù)庫中的對象為完成初級運算的計算結(jié)果,從而實現(xiàn)較高的數(shù)據(jù)收縮比,降低了聯(lián)機分析處理(OLAP, Online analyticalprocessing)操作對數(shù)據(jù)庫的沖擊,同時也降低了數(shù)據(jù)庫的數(shù)據(jù)存儲量。另外,需要說明的是,一個算法關(guān)注的事件既可以包括原始事件,也可以包括中間事件。對應地,102和105中CEP實例同時檢測原始事件和中間事件中所述算法關(guān)注的事件是否滿足觸發(fā)計算的條件。對應地,102之前還包括所述CEP實例從從消息總線上提取原始事件;所述CEP實例檢測所述提取的原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。通常,事件源以廣播方式將原始事件發(fā)布到消息總線上,事件源可以是網(wǎng)絡探針PROBE或深度包檢測(Deep Package Inspection,簡稱DPI)服務器。進一步地,所述從消息總線上提取所述原始事件具體包括接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件;或位于所述計算節(jié)點上的事件過濾器根據(jù)調(diào)度器的訂購配置從消息總線上提取所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例。具體地,可以由調(diào)度器通知每個計算節(jié)點的BPE啟動什么算法,該算法關(guān)注什么·事件,相應地從消息總線上訂購什么事件,這是一個訂購和發(fā)布的過程,訂閱發(fā)布有兩個選擇方式1、在應用層面實現(xiàn)訂閱發(fā)布,即消息服務器直接將關(guān)注的原始事件發(fā)送給CEP實例;2、在網(wǎng)絡的二層下實現(xiàn)消息的訂閱,即事件過濾器通過控制計算節(jié)點上的網(wǎng)絡適配器在消息總線中提取關(guān)注的原始事件,這個方法效率高,但需要硬件配合完成。通常,一個計算節(jié)點上的CEP實例從消息總線上提取該計算節(jié)點上所有BPE的算法關(guān)注的事件。舉例來說,當一個計算節(jié)點上的所有BPE只關(guān)注EVENTl和EVENT2時,則該計算節(jié)點上的CEP實例僅從消息總線上提取EVENTl和EVENT2,而不提取EVENT3 ;當一個計算節(jié)點上兩個BPE中一個BPE的算法關(guān)注EVENT1,另一個BPE的算法關(guān)注EVENT2,則該計算節(jié)點上的CEP實例也從消息總線上提取EVENTl和EVENT2。需要說明的是,若一個算法僅關(guān)注原始事件,則對應地,CEP實例僅為該算法檢測該算法關(guān)注的原始事件;若一個算法僅關(guān)注中間事件,則對應地,CEP實例僅為該算法檢測該算法關(guān)注的中間事件。進一步地,考慮到某類事件特別多,無法在一個計算節(jié)點上完成針對此類事件的計算,需要將該類事件以某個緯度劃分為不同的計算節(jié)點上的BPE來計算,當這些BPE計算完成后,再將這些結(jié)果匯總,因此還可以設置一類PE,如算術(shù)處理實體(ArithmeticProcessor Entity,簡稱APE)用于計算結(jié)果的匯總。圖2為本發(fā)明實施例提供的又一種數(shù)據(jù)處理方法的流程示意圖。在上述實施例的基礎上,如圖2所示,101 103之后,還包括106、所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給APE。具體地,負責匯總的APE與負責計算的BPE可以部署于在同一計算節(jié)點,也可以部署在不同的計算節(jié)點。BPE根據(jù)預設的業(yè)務邏輯確定將計算結(jié)果發(fā)給同一計算節(jié)點上的APE還是另一計算節(jié)點上的APE。通常,若與所述BPE位于同一計算節(jié)點的APE也開啟了,較優(yōu)地,設計業(yè)務邏輯以使BPE將計算結(jié)果發(fā)給同一計算節(jié)點上的APE進行匯總。需要說明的是,若所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果不需要匯總,則直接將所述計算結(jié)果傳遞給DPE入庫。另外,10Γ105與106 108可以并行執(zhí)行。107、所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算。具體地,其它BPE與所述APE、所述BPE可以部署于在同一計算節(jié)點,也可以部署在不同的計算節(jié)點。較優(yōu)地,負責匯總的APE與計算結(jié)果需由該APE匯總的各BPE位于同一計算節(jié)點。108、所述APE將匯總結(jié)果發(fā)送給所述DPE,以使所述DPE將所述匯總結(jié)果保存到數(shù) 據(jù)庫中。具體地,負責匯總的APE與負責入庫的DPE可以部署于在同一計算節(jié)點,也可以部署在不同的計算節(jié)點。APE根據(jù)預設的業(yè)務邏輯確定將匯總結(jié)果發(fā)給同一計算節(jié)點上的DPE還是另一計算節(jié)點上的DPE。通常,若與所述APE位于同一計算節(jié)點的DPE也開啟了,為了盡量減少跨物理節(jié)點的網(wǎng)絡通訊流量,較優(yōu)地,在設計中優(yōu)選地保證APE將匯總結(jié)果發(fā)給同一計算節(jié)點上的DPE進行入庫。在一些場景下,匯總結(jié)果還需要進一步地計算。對應地,107之后,還包括若所述APE根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果需進一步計算,則所述APE將所述匯總結(jié)果作為中間事件寫入與所述APE位于同一計算節(jié)點的CEP實例。需要說明的是,當一個計算節(jié)點上同時部署有BPE和APE時,該計算節(jié)點上的CEP實例中被寫入的中間事件除了 BPE寫入的中間事件,還包括APE寫入的中間事件。進一步地,107之后,所述APE根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果是否需進一步計算,若是則可以并行執(zhí)行將匯總結(jié)果傳遞給DPE入庫和將所述匯總結(jié)果作為中間事件寫入CEP實例的步驟,否則只需執(zhí)行將匯總結(jié)果傳遞給DPE入庫的步驟。進一步地,為了均衡各計算節(jié)點的負載,整個系統(tǒng)的運作都是由調(diào)度器來完成協(xié)調(diào)工作的,調(diào)度器根據(jù)收集到的每個計算節(jié)點上的資源信息,如CPU當前使用的情況和內(nèi)存剩余情況來判定各計算節(jié)點的負載情況,從而來確定各計算節(jié)點的調(diào)度方式,包括BPE的預設算法、預設業(yè)務邏輯以及是否開啟計算節(jié)點上的各類PE,并根據(jù)各計算節(jié)點的調(diào)度方式分別調(diào)度各計算節(jié)點。舉例來說,調(diào)度方式包括是否開啟各計算節(jié)點上的ΒΡΕ、APE或DPE,若開啟BPE則進一步地配置該BPE的預設算法,比如該BPE計算哪些KPI,進一步地,還可以包括是否開啟各計算節(jié)點上的事件過濾器,若開啟事件過濾器則該事件過濾器的訂購配置如何等。需要說明的是,為了易于管理和擴展,各物理節(jié)點上優(yōu)選地部署相同的ΡΕ,確保所有物理節(jié)點是同質(zhì)的,但運行時可以由調(diào)度器決策開啟不同的ΡΕ。進一步地,設計上還可以考慮容錯機制,比如采取Ν+1的方式,即有一個計算節(jié)點是作為備用計算節(jié)點,當任何一個其它計算節(jié)點由于其它原因而損壞,備用計算節(jié)點就會立刻接手其工作,從而確保整個處理流不會長時間的中斷。對應地,所述計算節(jié)點有多個;所述根據(jù)各計算節(jié)點的調(diào)度方式分別調(diào)度各計算節(jié)點具體包括預留一個計算節(jié)點作為備用計算節(jié)點,調(diào)度除所述備用計算節(jié)點之外的其它計算節(jié)點;
當所述調(diào)度的其它計算節(jié)點中一個計算節(jié)點異常時,根據(jù)所述異常的計算節(jié)點的調(diào)度方式和所述異常的計算節(jié)點的緩存數(shù)據(jù)調(diào)度所述備用計算節(jié)點。其中,調(diào)度器在這個過程中起到關(guān)鍵的作用,調(diào)度器可以跟蹤每個計算節(jié)點的資源信息,并實時監(jiān)控每個計算節(jié)點的健康狀況,當一個計算節(jié)點損壞離線后,調(diào)度器可以立刻將損壞的計算節(jié)點的緩存數(shù)據(jù)發(fā)送給備用計算節(jié)點,使其替代損壞的計算節(jié)點繼續(xù)事件處理的工作。通常,調(diào)度 器也可以在一個物理節(jié)點上實現(xiàn)??梢姡景l(fā)明實施例采用BPE向位于同一計算節(jié)點的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。圖3為本發(fā)明實施例提供的再一種數(shù)據(jù)處理方法的流程示意圖。所述方法應用于BPE上,如圖3所示,所述方法包括201、向與所述BPE位于同一計算節(jié)點上的CEP實例注冊所述BPE的預設算法,所述BPE的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件。具體地,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件。202、獲得所述CEP實例傳遞的所述預設算法計算所需的事件,其中所述預設算法計算所需的事件是所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,所傳遞的。203、根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)
果O204、若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,使得所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。進一步地,203之后還可以包括將所述計算結(jié)果傳遞給DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;所述DPE位于所述計算節(jié)點或另一計算節(jié)點上。可選地,所述將所述計算結(jié)果傳遞給入庫處理實體DPE包括根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果傳遞給ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;所述APE位于所述計算節(jié)點或另一計算節(jié)點上,所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。
本實施例的具體實現(xiàn)可參照圖I、圖2所示實施例。
可見,本發(fā)明實施例采用BPE向位于同一計算節(jié)點的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。圖4為本發(fā)明實施例提供的另一種數(shù)據(jù)處理方法的流程示意圖。所述方法應用于CEP實例上,如圖4所示,所述方法包括301、執(zhí)行與所述CEP位于同一計算節(jié)點上的BPE的預設算法的注冊,所述BPE的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件。具體地,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件。302、在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE,以使所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算、得到計算結(jié)果。303、獲得所述BPE寫入的所述計算結(jié)果,所述計算結(jié)果為所述BPE在根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算時,以中間事件的方式寫入的。304、在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ??蛇x地,所述預設算法關(guān)注的事件包括所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的的中間事件;對應地,301之前,還可以包括從消息總線上提取所述預設算法關(guān)注的原始事件;所述CEP實例檢測所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的的中間事件是否滿足所述觸發(fā)計算的條件。本實施例的具體實現(xiàn)可參照圖I、圖2所示實施例。可見,本發(fā)明實施例采用BPE向位于同一計算節(jié)點的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖5為本發(fā)明實施例提供的一種計算節(jié)點300的結(jié)構(gòu)示意圖。如圖5所示,計算節(jié)點300包括BPE21,用于向CEP實例22注冊BPE21的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;CEP實例22,用于在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給BPE21 ;BPE21還用于,根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作 為中間事件寫入CEP實例22 ;CEP實例22還用于,在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于計算節(jié)點300上向CEP實例22注冊了所述其它算法的ΒΡΕ。需要說明的是,一個計算節(jié)點上可以部署一個或多個ΒΡΕ,該一個或多個BPE均向該計算節(jié)點上的CEP實例注冊自己的算法,每個算法均包括各自關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件。通常,事件的標識可以是事件的名稱??蛇x地,ΒΡΕ21還用于,將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中。圖6為本發(fā)明實施例提供的又一種計算節(jié)點400的結(jié)構(gòu)示意圖。如圖6所示,在圖5所示計算節(jié)點300的基礎上,計算節(jié)點400還包括DPE23,對應地,ΒΡΕ21還用于,將所述計算結(jié)果發(fā)送給DPE23,以使DPE23將所述計算結(jié)果保存到數(shù)據(jù)庫中。進一步地,,CEP實例22還用于從消息總線上提取原始事件;檢測所述提取原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。進一步地,CEP實例22具體用于,接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的計算節(jié)點300上所有BPE的算法關(guān)注的原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給BPE21,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于計算節(jié)點300上、向CEP實例22注冊了所述其它算法的BPE ;或,計算節(jié)點300還包括事件過濾器24,事件過濾器24用于根據(jù)調(diào)度器的訂購配置從消息總線上提取計算節(jié)點上300所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例;CEP實例22具體用于,接收事件過濾器24傳遞的所述原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給BPE21,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于計算節(jié)點300上、向CEP實例22注冊了所述其它算法的ΒΡΕ。可選地,ΒΡΕ21還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給DPE??蛇x地,計算節(jié)點400還包括ΑΡΕ25 ;對應地,ΒΡΕ21還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給ΑΡΕ25,以使所述ΑΡΕ25對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給DPE23 ;在一種實現(xiàn)方式下,ΑΡΕ25與所述DPE23可以是位于同一計算節(jié)點;在另一種實現(xiàn)方式下,ΑΡΕ25與所述DPE23可以是位于不同計算節(jié)點。進一步地,ΑΡΕ25還用于,若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入同一計算節(jié)點上的CEP實例22。上述計算節(jié)點實施例的具體實現(xiàn)參照本發(fā)明實施例提供的一種數(shù)據(jù)處理方法??梢姡景l(fā)明實施例采用BPE向位于同一計算節(jié)點上的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。圖7是本發(fā)明實施例提供的又一種計算節(jié)點500的結(jié)構(gòu)示意圖。如圖7所示,計算 節(jié)點500 —般包括至少一個處理器510,例如中央處理單元(CentralProcessing Unit,簡稱CPU),數(shù)字信號處理器(Digital Signal Processor,簡稱DSP),至少一個端口 520,存儲器530,和至少一個通信總線540。通信總線540用于實現(xiàn)這些裝置之間的連接通信。處理器510用于執(zhí)行存儲器530中存儲的可執(zhí)行模塊,例如計算機程序;可選地,計算節(jié)點500可包括用戶接口 550,用戶接口 550包括但不限于顯示器,鍵盤和點擊設備,例如鼠標、軌跡球(trackball)、觸感板或者觸感顯示屏。存儲器530可能包含高速隨機存儲器(RandomAccess Memory,簡稱RAM),也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。在一些實施方式中,存儲器530存儲了如下的元素,可執(zhí)行模塊或者數(shù)據(jù)結(jié)構(gòu),或者他們的子集,或者他們的擴展集操作系統(tǒng)532,包含各種系統(tǒng)程序,用于實現(xiàn)各種基礎業(yè)務以及處理基于硬件的任務;應用模塊534,包含各種應用程序,用于實現(xiàn)各種應用業(yè)務。應用模塊534中包括但不限于BPE21和CEP實例22。進一步地,應用模塊534中還包括DPE23、事件過濾器24、APE25。應用模塊534中各單元的具體實現(xiàn)參見圖3或圖4所示實施例中的相應單元,在此不贅述??梢姡景l(fā)明實施例 采用BPE向位于同一計算節(jié)點上的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。圖8為本發(fā)明實施例提供的一種分布式計算系統(tǒng)600的結(jié)構(gòu)示意圖。如圖8所示,系統(tǒng)600包括調(diào)度器61和至少一個計算節(jié)點62,各計算節(jié)點62均為如上實施例所述的計算節(jié)占.調(diào)度器61,用于收集各計算節(jié)點62的資源信息,根據(jù)所述資源信息確定各計算節(jié)點62的調(diào)度方式,根據(jù)各計算節(jié)點62的調(diào)度方式分別調(diào)度各計算節(jié)點62。需要說明的是,這里的資源信息包括但不限于CPU利用率和內(nèi)存占用率等。進一步地,所述調(diào)度方式包括預設算法,預設業(yè)務邏輯,是否開啟計算節(jié)點62上的 BPE、APE、DPE,等。進一步地,當計算節(jié)點62有多個時,調(diào)度器61具體用于,預留一個計算節(jié)點作為備用計算節(jié)點,調(diào)度除所述備用計算節(jié)點之外的其它計算節(jié)點;當所述調(diào)度的其它計算節(jié)點中一個計算節(jié)點異常時,根據(jù)所述異常的計算節(jié)點的調(diào)度方式和所述異常的計算節(jié)點的緩存數(shù)據(jù)調(diào)度所述備用計算節(jié)點。需要說明的是,本實施例中的調(diào)度器61也可以部署在一個計算節(jié)點(例如,刀片系統(tǒng)中的某個刀片實體或刀片節(jié)點)上,換言之,即本實施例中的調(diào)度器61也可以被包括在一個計算節(jié)點內(nèi)。較優(yōu)的,部署有調(diào)度器的計算節(jié)點上進一步包括但不限于BPE21和CEP實例22。進一步地,還可以包括DPE23、事件過濾器24、APE25。本實施例的具體實現(xiàn)參照本發(fā)明實施例提供的一種數(shù)據(jù)處理方法??梢姡景l(fā)明實施例采用BPE向位于同一計算節(jié)點上的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程(尤其是簡化KPI/KQI的計算過程),提高了時效性。進一步的,本發(fā)明實施例中,采用了 N+1的容錯機制,即有一個計算節(jié)點是作為備用計算節(jié)點,當任何一個計算節(jié)點損壞,備用的計算節(jié)點能立刻接手其工作,從而確保整個處理流不會長時間的中斷。進一步的,本發(fā)明實施例的分布式計算系統(tǒng)的運作是由調(diào)度器來完成協(xié)調(diào)工作的,調(diào)度器根據(jù)收集到的各計算節(jié)點62的資源信息確定各計算節(jié)點62的調(diào)度方式,所述調(diào)度方式包括預設算法,預設業(yè)務邏輯,是否開啟計算節(jié)點62上的BPE、APE、DPE等(例如,調(diào)度器根據(jù)收集到的各計算節(jié)點62來確定在哪個計算節(jié)點上計算哪些ΚΡΙ),以實現(xiàn)處理能力能均勻的分布到各個計算節(jié)點上,從而提供了靈活的分布式調(diào)度方案。圖9為本發(fā)明實施例的一種應用場景示意圖。如圖9所示,本發(fā)明實施例應用在單一計算節(jié)點的場景下,該單一計算節(jié)點上設置了 CEP實例、ΒΡΕ1-ΒΡΕ6、DPE,其中,ΒΡΕ1-ΒΡΕ3負責初級KPI的計算,即計算ΙΕ,也可稱為IE factory, ΒΡΕ4-ΒΡΕ6負責高級KPI的計算,也可稱為Metrics。該場景中執(zhí)行如下步驟401、BPE1-BPE6向CEP實例注冊各自的算法,即向CEP的運行時(CEPRuntime)創(chuàng)建模式與注冊回調(diào)監(jiān)聽器(create pattern and register callbacklistener)。
402,CEP實例在檢測到BPE1-BPE3算法各自關(guān)注的事件分別滿足各算法中觸發(fā)計算的條件時,將各算法計算所需的事件傳遞給BPE1-BPE3。403、BPE1-BPE3根據(jù)各自的算法分別對各自計算所需的事件進行計算,將初級KPI上報給DPE。404>DPE完成入庫,即將初級KPI保存到數(shù)據(jù)倉庫(Data Warehouse,簡稱DWH)中。405、BPE1-BPE3將初級KPI重新寫入CEP實例。406,CEP實例檢測到BPE4-BPE6算法關(guān)注的事件滿足各算法中觸發(fā)計算的條件且初級KPI為BPE4-BPE6算法計算所需的事件,將初級KPI傳遞給BPE4-BPE6。407、BPE4-BPE6 生成高級 KPI,并上報給 DPE。408、DPE完成入庫,即將高級KPI保存到DWH中。需要說明的是,403中BPE1-BPE3將初級KPI上報給DPE、404和405-408可以同步進行。圖10為本發(fā)明實施例的又一種應用場景示意圖。如圖10所示,本發(fā)明實施例應用在多個計算節(jié)點的場景下,兩個計算節(jié)點上均設置了 CEP實例、BPE1-BPE4、APE和DPE。此場景中,各計算節(jié)點上均完成單一場景下的運算,包括初級KPI和高級KPI,然后利用APE完成跨計算節(jié)點的匯總,并由DPE完成入庫。具體地,各計算節(jié)點上均執(zhí)行如下步驟501、BPE1-BPE4分別向各自所在計算節(jié)點上的CEP實例注冊各自的算法。502,CEP實例在檢測到BPE1-BPE2算法各自關(guān)注的事件分別滿足各算法中的觸發(fā)計算的條件時,將各算法計算所需的事件分別傳遞給BPE1-BPE2。503、BPE1-BPE2根據(jù)各自的算法分別對各自計算所需的事件進行計算,將初級KPI傳遞給APE。504、BPE1-BPE2將初級KPI重新寫入CEP實例。505、APE完成初級KPI的匯總,并將匯總結(jié)果上報給DPE。506、DPE完成入庫,即將初級KPI的匯總結(jié)果保存到DWH。507、各CEP實例檢測到BPE3-BPE4算法關(guān)注的事件分別滿足各算法中的觸發(fā)計算的條件且初級KPI為BPE3-BPE4算法計算所需的事件,將初級KPI傳遞給各自計算節(jié)點上的BPE3-BPE4進一步處理。
508、BPE3-BPE4生成高級KPI,將高級KPI傳遞給APE。509、APE完成高級KPI的匯總,并將匯總結(jié)果上報給DPE。510、DPE完成入庫,即將高級KPI的匯總結(jié)果保存到DWH中。需要說明的是,503中 BPE1-BPE2 將初級 KPI 傳遞給 APE、505、506 和 504、507_510可以同步進行。圖11為本發(fā)明實施例的再一種應用場景示意圖。如圖11所示,本發(fā)明實施例應用在多個計算節(jié)點的場景下,一個計算節(jié)點上設置了 CEP實例、BPE1-BPE4、APE和DPE,另一計算節(jié)點上設置了 CEP實例和ΒΡΕΙ、BPE2。此場景中,各計算節(jié)點上均計算初級KPI,然后利用APE完成跨計算節(jié)點的初級KPI的匯總,并在APE將匯總結(jié)果傳遞給DPE的同時,寫入APE所在計算節(jié)點的CEP實例,由其它BPE完成高級KPI的計算,并通過DPE入庫。具體地,該場景中執(zhí)行如下步驟 601、BPE1-BPE4分別向各自所在計算節(jié)點上的CEP實例注冊各自的算法。602,CEP實例在檢測到BPE1-BPE2算法關(guān)注的事件分別滿足各算法中的觸發(fā)計算的條件時,將各算法計算所需的事件傳遞給BPE1-BPE2。603、BPEl-BPE根據(jù)各自的算法分別對各自計算所需的事件進行計算,將初級KPI傳遞給APE。604、APE完成初級KPI的匯總,并將匯總結(jié)果上報給DPE。605、DPE完成入庫,即將初級KPI的匯總結(jié)果保存到DWH中。606、APE將匯總結(jié)果重新寫入CEP實例。607、CEP實例檢測到BPE3-BPE4算法關(guān)注的事件分別滿足各算法中的觸發(fā)計算的條件且上述匯總結(jié)果為BPE3-BPE4算法計算所需的事件,將上述匯總結(jié)果傳遞給BPE3-BPE4進一步處理。608、BPE3-BPE4生成高級KPI,將計算結(jié)果傳遞給DPE。609、DPE完成入庫,即將高級KPI的匯總結(jié)果保存到DWH中。需要說明的是,604中APE將匯總結(jié)果上報給DPE、605和606-609可以同步進行。綜上所述,本發(fā)明實施例采用BPE向位于同一計算節(jié)點的CEP實例注冊所述BPE的預設算法,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述預設算法中的觸發(fā)計算的條件時將所述預設算法計算所需的事件傳遞給所述BPE,所述BPE在根據(jù)所述預設算法進行計算得到計算結(jié)果后,若判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,所述CEP實例在檢測到已注冊的其它算法關(guān)注的事件滿足所述其它算法的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給注冊了所述其它算法的BPE的技術(shù)手段,由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.一種數(shù)據(jù)處理方法,其特征在于,所述方法應用于商業(yè)處理實體BPE上,所述方法包括向與所述BPE位于同一計算節(jié)點上的復雜事件處理CEP實例注冊所述BPE的預設算法,所述BPE的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;獲得所述CEP實例傳遞的所述預設算法計算所需的事件,其中所述計算所需的事件是所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,所傳遞的;根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例,使得所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果之后還包括將所述計算結(jié)果傳遞給入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;所述DPE位于所述計算節(jié)點或另一計算節(jié)點上。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述計算結(jié)果傳遞給入庫處理實體DPE包括根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果傳遞給算術(shù)處理實體ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE;所述APE位于所述計算節(jié)點或另一計算節(jié)點上,所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。
4.一種數(shù)據(jù)處理方法,其特征在于,所述方法應用于復雜事件處理CEP實例上,所述方法包括 執(zhí)行與所述CEP位于同一計算節(jié)點上的商業(yè)處理實體BPE的預設算法的注冊,所述BPE 的預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,以使所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算得到計算結(jié)果;獲得所述BPE寫入的所述計算結(jié)果,所述計算結(jié)果為所述BPE在根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算時,以中間事件的方式寫入的;在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述預設算法關(guān)注的事件包括所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的的中間事件;所述在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件之前,還包括從消息總線上提取所述預設算法關(guān)注的原始事件;所述CEP實例檢測所述預設算法關(guān)注的原始事件和所述預設算法關(guān)注的的中間事件是否滿足所述觸發(fā)計算的條件。
6.一種數(shù)據(jù)處理方法,其特征在于,所述方法應用于包括商業(yè)處理實體BPE與復雜事件處理CEP實例的計算節(jié)點上,所述方法包括BPE向CEP實例注冊所述BPE的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE ;所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例;所述CEP實例在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述BPE根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果之后還包括所述BPE將所述計算結(jié)果傳遞給入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;所述DPE位于所述計算節(jié)點或另一計算節(jié)點上。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件之前,還包括從消息總線上提取原始事件;所述CEP實例檢測所述提取的原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述從消息總線上提取原始事件包括 接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件;或位于所述計算節(jié)點上的事件過濾器根據(jù)調(diào)度器的訂購配置從消息總線上提取所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例。
10.根據(jù)權(quán)利要求7-9中任一項所述的方法,其特征在于,所述BPE將所述計算結(jié)果傳遞給入庫處理實體DPE包括所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果傳遞給算術(shù)處理實體ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;所述APE位于所述計算節(jié)點或另一計算節(jié)點上,所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算之后,還包括若所述APE根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果需進一步計算,則所述APE將所述匯總結(jié)果作為中間事件寫入與所述APE位于同一計算節(jié)點的CEP實例。
12.—種計算節(jié)點,其特征在于,包括商業(yè)處理實體BPE和復雜事件處理CEP實例;所述BPE,用于向所述CEP實例注冊所述BPE的預設算法,所述預設算法包括關(guān)注的事件的標識、計算所需的事件的標識和觸發(fā)計算的條件,所述關(guān)注的事件的標識用于標識預設算法關(guān)注的事件,所述計算所需的事件的標識用于標識預設算法計算所需的事件;所述CEP實例,用于在檢測到所述預設算法關(guān)注的事件滿足所述觸發(fā)計算的條件時, 將所述預設算法計算所需的事件傳遞給所述BPE ;所述BPE還用于,根據(jù)所述預設算法對所述預設算法計算所需的事件進行計算,得到計算結(jié)果;若根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例;所述CEP實例還用于,在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的 ΒΡΕ。
13.根據(jù)權(quán)利要求12所述的計算節(jié)點,其特征在于,所述BPE還用于,將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的入庫處理實體DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中;或所述計算節(jié)點還包括DPE,所述BPE還用于,將所述計算結(jié)果發(fā)送給同一計算節(jié)點上的 DPE,以使所述DPE將所述計算結(jié)果保存到數(shù)據(jù)庫中。
14.根據(jù)權(quán)利要求12或13所述的計算節(jié)點,其特征在于,所述CEP實例還用于從消息總線上提取原始事件;檢測所述提取的原始事件和被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件。
15.根據(jù)權(quán)利要求14所述的計算節(jié)點,其特征在于,所述CEP實例具體用于,接收消息服務器根據(jù)調(diào)度器的訂購指令發(fā)送的所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述ΒΡΕ,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的BPE ;或,所述計算節(jié)點還包括事件過濾器,所述事件過濾器用于根據(jù)調(diào)度器的訂購配置從消息總線上提取所述計算節(jié)點上所有BPE的算法關(guān)注的原始事件,并傳遞給所述CEP實例;所述CEP實例具體用于,接收所述事件過濾器傳遞的所述原始事件,檢測所述原始事件和所述被寫入的中間事件中所述預設算法關(guān)注的事件是否滿足所述觸發(fā)計算的條件,在檢測到滿足所述觸發(fā)計算的條件時,將所述預設算法計算所需的事件傳遞給所述BPE,以及用于在檢測到已注冊的除所述預設算法之外的其它算法關(guān)注的事件滿足所述其它算法中的觸發(fā)計算的條件且所述中間事件為所述其它算法計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的ΒΡΕ。
16.根據(jù)權(quán)利要求12-15中任一項所述的計算節(jié)點,其特征在于,所述BPE還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給另一計算節(jié)點上的算術(shù)處理實體ΑΡΕ,以使所述APE對所述BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;或所述計算節(jié)點還包括ΑΡΕ,所述BPE還用于,根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果是否需要匯總,若需要則將所述計算結(jié)果發(fā)送給同一計算節(jié)點上的ΑΡΕ,以使所述APE對所述 BPE和其它BPE的計算結(jié)果進行匯總計算、將匯總結(jié)果傳遞給所述DPE ;所述APE與所述DPE位于同一計算節(jié)點或不同計算節(jié)點。
17.根據(jù)權(quán)利要求16所述的計算節(jié)點,其特征在于,所述APE還用于,若根據(jù)預設的業(yè)務邏輯判斷所述匯總結(jié)果需進一步計算,則將所述匯總結(jié)果作為中間事件寫入同一計算節(jié)點上的CEP實例。
18.—種分布式計算系統(tǒng),其特征在于,包括調(diào)度器和至少一個計算節(jié)點,各計算節(jié)點均為如權(quán)利要求12-17中任一項所述的計算節(jié)點;所述調(diào)度器,用于收集各計算節(jié)點的資源信息,根據(jù)所述資源信息確定各計算節(jié)點的調(diào)度方式,根據(jù)各計算節(jié)點的調(diào)度方式分別調(diào)度各計算節(jié)點。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述調(diào)度方式包括預設算法,預設業(yè)務邏輯,是否開啟計算節(jié)點上的商業(yè)處理實體ΒΡΕ、算術(shù)處理實體ΑΡΕ、入庫處理實體DPE。
20.根據(jù)權(quán)利要求18或19所述的系統(tǒng),其特征在于,所述計算節(jié)點有多個;所述調(diào)度器具體用于,預留一個計算節(jié)點作為備用計算節(jié)點,調(diào)度除所述備用計算節(jié)點之外的其它計算節(jié)點;當所述調(diào)度的其它計算節(jié)點中一個計算節(jié)點異常時,根據(jù)所述異常的計算節(jié)點的調(diào)度方式和所述異常的計算節(jié)點的緩存數(shù)據(jù)調(diào)度所述備用計算節(jié)點。
全文摘要
本發(fā)明實施例提供一種數(shù)據(jù)處理方法、計算節(jié)點及系統(tǒng)。方法包括BPE向CEP實例注冊其算法;所述CEP實例在檢測到所述預設算法關(guān)注的事件滿足該算法觸發(fā)計算的條件時,將該算法計算所需的事件傳遞給所述BPE;所述BPE根據(jù)該算法進行計算,得到計算結(jié)果;若所述BPE根據(jù)預設的業(yè)務邏輯判斷所述計算結(jié)果需進一步計算,則將所述計算結(jié)果作為中間事件寫入所述CEP實例;所述CEP實例在檢測到其它算法關(guān)注的事件滿足其觸發(fā)計算的條件且中間事件為其計算所需的事件時,將所述中間事件傳遞給位于所述計算節(jié)點上、向所述CEP實例注冊了所述其它算法的BPE。由CEP實例完成多事件多算法的關(guān)聯(lián),簡化了計算過程,提高了時效性。
文檔編號G06F17/30GK102930046SQ20121046009
公開日2013年2月13日 申請日期2012年11月15日 優(yōu)先權(quán)日2012年11月15日
發(fā)明者張?zhí)旎?申請人:華為技術(shù)有限公司