本申請涉及互聯(lián)網(wǎng)信息處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法和設(shè)備。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,越來越多的復(fù)雜業(yè)務(wù)被承載在計算機上,并利用計算機的運算速度快、操作便捷等特性完成對復(fù)雜業(yè)務(wù)的處理。同時為了保證復(fù)雜業(yè)務(wù)處理的準確性,需要對復(fù)雜業(yè)務(wù)處理過程中產(chǎn)生的數(shù)據(jù)進行數(shù)據(jù)維護,即將產(chǎn)生的數(shù)據(jù)存儲在不同的數(shù)據(jù)庫中。
在一個數(shù)據(jù)核對時間周期達到時,將不同數(shù)據(jù)庫中存儲的數(shù)據(jù)同步至數(shù)據(jù)倉庫中,并對上一個數(shù)據(jù)核對時間周期到當(dāng)前數(shù)據(jù)核對時間周期內(nèi)產(chǎn)生的數(shù)據(jù)進行核對,以判斷在對復(fù)雜業(yè)務(wù)進行處理的過程中是否發(fā)生錯誤。
但是,在實際應(yīng)用中,若數(shù)據(jù)倉庫與不同數(shù)據(jù)庫之間構(gòu)成同構(gòu)系統(tǒng),那么數(shù)據(jù)核對時間相對于數(shù)據(jù)產(chǎn)生時間存在較大的延時,意味著不能及時發(fā)現(xiàn)復(fù)雜業(yè)務(wù)在處理過程中出現(xiàn)的錯誤;若數(shù)據(jù)倉庫與不同數(shù)據(jù)庫之間構(gòu)成異構(gòu)系統(tǒng),那么在無法避免上述問題的情況下,在將不同數(shù)據(jù)庫中存儲的數(shù)據(jù)同步至數(shù)據(jù)倉庫時,需要將不同數(shù)據(jù)庫中的數(shù)據(jù)格式進行統(tǒng)一轉(zhuǎn)換,增加數(shù)據(jù)核對過程的工作量,同時占用大量系統(tǒng)資源,降低數(shù)據(jù)核對效率。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請實施例提供了一種數(shù)據(jù)處理方法和設(shè)備,用于解決現(xiàn)有技術(shù)中存在的無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題。
一種數(shù)據(jù)處理方法,包括:
接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,其中,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化;
根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,其中,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整;
在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
一種數(shù)據(jù)處理設(shè)備,包括:
接收單元,用于接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,其中,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化;
核對單元,用于根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,其中,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整;
處理單元,用于在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
本申請有益效果如下:
本申請實施例接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化;根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù) 事件進行核對,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整;在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。由于業(yè)務(wù)系統(tǒng)在處理業(yè)務(wù)時,不僅產(chǎn)生用于表征業(yè)務(wù)處理進度的業(yè)務(wù)事件,而且還產(chǎn)生用于表征業(yè)務(wù)處理過程的數(shù)據(jù),本申請?zhí)岢隼脴I(yè)務(wù)事件完成對產(chǎn)生的數(shù)據(jù)進行核對的方案,借助業(yè)務(wù)事件產(chǎn)生的實時性,及時對與產(chǎn)生的業(yè)務(wù)事件相關(guān)聯(lián)的數(shù)據(jù)進行核對,有效解決現(xiàn)有技術(shù)中無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題,縮短數(shù)據(jù)核對的時延,并能夠及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)。
附圖說明
為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖2為事件核對模型的示意圖;
圖3為本申請實施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖4為業(yè)務(wù)系統(tǒng)的結(jié)構(gòu)示意圖;
圖5為圖4中所示的業(yè)務(wù)系統(tǒng)對應(yīng)的事件核對模型結(jié)構(gòu)示意圖;
圖6為本申請實施例提供的一種數(shù)據(jù)處理設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
為了實現(xiàn)本申請的目的,本申請實施例提供了一種數(shù)據(jù)處理方法和設(shè)備,接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化;根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中 包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整;在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
由于業(yè)務(wù)系統(tǒng)在處理業(yè)務(wù)時,不僅產(chǎn)生用于表征業(yè)務(wù)處理進度的業(yè)務(wù)事件,而且還產(chǎn)生用于表征業(yè)務(wù)處理過程的數(shù)據(jù),本申請?zhí)岢隼脴I(yè)務(wù)事件完成對產(chǎn)生的數(shù)據(jù)進行核對的方案,借助業(yè)務(wù)事件產(chǎn)生的實時性,及時對與產(chǎn)生的業(yè)務(wù)事件相關(guān)聯(lián)的數(shù)據(jù)進行核對,有效解決現(xiàn)有技術(shù)中無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題,縮短數(shù)據(jù)核對的時延,并能夠及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)。
下面結(jié)合說明書附圖對本申請各個實施例作進一步地詳細描述。顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
圖1為本申請實施例提供的一種數(shù)據(jù)處理方法的流程示意圖。所述方法可以如下所示。
步驟101:接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息。
其中,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化。
在步驟101中,假設(shè)有一個復(fù)雜的業(yè)務(wù)處理系統(tǒng),在該業(yè)務(wù)處理系統(tǒng)中包含多個不同業(yè)務(wù)系統(tǒng),每一個業(yè)務(wù)系統(tǒng)既可以獨立處理業(yè)務(wù),也可以和其他業(yè)務(wù)系統(tǒng)之間建立調(diào)用關(guān)系,以協(xié)助其他業(yè)務(wù)系統(tǒng)完成對復(fù)雜業(yè)務(wù)的處理。
每一個業(yè)務(wù)系統(tǒng)在處理業(yè)務(wù)時不僅會產(chǎn)生業(yè)務(wù)事件消息,也會產(chǎn)生業(yè)務(wù)處理數(shù)據(jù)。其中,業(yè)務(wù)事件消息中包含業(yè)務(wù)事件,該業(yè)務(wù)事件用于記錄業(yè)務(wù)系統(tǒng)在處理業(yè)務(wù)時業(yè)務(wù)功能發(fā)生變化的事件。例如:金融系統(tǒng)中的資金交換系統(tǒng), 一旦發(fā)生資金交換,那么相應(yīng)地該資金交換系統(tǒng)將產(chǎn)生用于表征資金交換事件的交換事件消息,該交換事件消息中包含資金交換這一事件。
當(dāng)業(yè)務(wù)系統(tǒng)中有業(yè)務(wù)事件發(fā)生時,意味著業(yè)務(wù)系統(tǒng)中將產(chǎn)生與該業(yè)務(wù)事件相關(guān)的業(yè)務(wù)數(shù)據(jù),產(chǎn)生的業(yè)務(wù)數(shù)據(jù)將導(dǎo)致業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化,要么使得業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)量增加,要么使得業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生更新,這里不做限定。
需要說明的是,在步驟101中,可以實時接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,也可以周期性地接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息;還可以同時接收多個業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,這里不做具體限定。
步驟102:根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對。
其中,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整。
在步驟102中,對于一個復(fù)雜的業(yè)務(wù)處理系統(tǒng),針對不同的業(yè)務(wù),可以確定每一個業(yè)務(wù)在執(zhí)行過程中所使用的不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,利用這種調(diào)用關(guān)系可以建立針對該業(yè)務(wù)的事件核對模型。
這樣,針對不同的業(yè)務(wù),可以建立與其相匹配的事件核對模型。其中,每一個事件核對模型中包含執(zhí)行業(yè)務(wù)所需要發(fā)生的業(yè)務(wù)事件以及各個業(yè)務(wù)事件之間的邏輯關(guān)系。利用事件核對模型可以判斷該業(yè)務(wù)執(zhí)行過程中所產(chǎn)生的業(yè)務(wù)事件構(gòu)建的事件鏈是否完整。
例如:一個復(fù)雜的業(yè)務(wù)處理系統(tǒng)包含a業(yè)務(wù)系統(tǒng)、b業(yè)務(wù)系統(tǒng)、c業(yè)務(wù)系統(tǒng)、d業(yè)務(wù)系統(tǒng)、e業(yè)務(wù)系統(tǒng)和f業(yè)務(wù)系統(tǒng),其中,a業(yè)務(wù)系統(tǒng)、b業(yè)務(wù)系統(tǒng)、c業(yè)務(wù)系統(tǒng)、d業(yè)務(wù)系統(tǒng)、e業(yè)務(wù)系統(tǒng)和f業(yè)務(wù)系統(tǒng)之間存在調(diào)用關(guān)系。假設(shè)a業(yè)務(wù)系統(tǒng)中發(fā)生業(yè)務(wù)事件,可以觸發(fā)b業(yè)務(wù)系統(tǒng)產(chǎn)生新的業(yè)務(wù)事件,而b業(yè)務(wù)系統(tǒng)產(chǎn)生的新的業(yè)務(wù)事件將影響c業(yè)務(wù)系統(tǒng)和d業(yè)務(wù)系統(tǒng),而c業(yè)務(wù)系統(tǒng)的業(yè)務(wù)事件將影響e業(yè)務(wù)系統(tǒng),d業(yè)務(wù)系統(tǒng)的業(yè)務(wù)事件將影響f業(yè)務(wù)系統(tǒng)。 那么根據(jù)上述記載的各個業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系(或者影響關(guān)系)可以得到如圖2所示的事件核對模型的示意圖。從圖2中可以看出,得到的事件核對模型可以采用樹形結(jié)構(gòu)表示,該樹形結(jié)構(gòu)中包含多個節(jié)點,每一個節(jié)點(可以稱之為事件節(jié)點)可以對應(yīng)一種業(yè)務(wù)事件,各個節(jié)點之間的關(guān)系滿足各個業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系。因此,在得到事件核對模型之后,可以利用事件核對模型中各個節(jié)點之間的邏輯關(guān)系去判斷接收到的業(yè)務(wù)事件是否構(gòu)成完整的事件鏈。
在本申請實施例中,在步驟101接收到不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息時,確定發(fā)送業(yè)務(wù)事件消息的各個業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,從預(yù)先建立的事件核對模型庫中選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型。
其中,預(yù)先建立的事件核對模型庫中包含的事件核對模型可以基于業(yè)務(wù)類型確定,也可以基于不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系確定,這里不做具體限定。
在確定事件核對模型后,利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對的方式包括但不限于以下幾種方式:
第一種方式:
確定接收到的每一個業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件的發(fā)生時間;按照所述發(fā)生時間,確定不同所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件之間的調(diào)用關(guān)系,并將所述調(diào)用關(guān)系與所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系進行比較。
第二種方式:
確定接收到的每一個業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件的發(fā)生時間;按照所述發(fā)生時間和所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系,依次建立業(yè)務(wù)事件與所述事件核對模型中包含的事件節(jié)點之間的對應(yīng)關(guān)系;定時掃描所述事件核對模型,并確定所述事件核對模型中包含的事件節(jié)點是否對應(yīng)業(yè)務(wù)事件。
基于上述兩種方式,對于實時性較強的業(yè)務(wù),可以采用第一種方式,即針對一個業(yè)務(wù),不同業(yè)務(wù)系統(tǒng)所產(chǎn)生的業(yè)務(wù)事件的發(fā)生時間相差不大,即在一個很短時間之內(nèi)可以接收到不同業(yè)務(wù)系統(tǒng)所發(fā)送的業(yè)務(wù)事件消息,那么按照第一種方式能夠快速完成對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對的操作;
對于實時性較差的業(yè)務(wù),可以采用第二種方式,由于一些原因?qū)е乱恍I(yè)務(wù)系統(tǒng)出現(xiàn)異常,未能正確處理業(yè)務(wù),使得不同業(yè)務(wù)系統(tǒng)所產(chǎn)生的業(yè)務(wù)事件的發(fā)生時間相差較大,此時,可以根據(jù)接收到的業(yè)務(wù)事件消息中包含業(yè)務(wù)事件,建立業(yè)務(wù)事件與所述事件核對模型中包含的事件節(jié)點之間的對應(yīng)關(guān)系,并定時掃描該事件核對模型,進而完成對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對的操作。這里需要說明的是,若定時掃描的時間周期過長(大于設(shè)定的時間長度),那么按照確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈不完整的情形處理。
步驟103:根據(jù)核對結(jié)果,判斷所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈是否完整,若完整,則執(zhí)行步驟104;否則,執(zhí)行步驟105。
步驟104:在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
在步驟104中,若在步驟102中采用第一種方式對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,那么若比較結(jié)果是所述調(diào)用關(guān)系與所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系一致時,則確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整。
若在步驟102中采用第二種方式對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,那么在確定所述事件核對模型中包含的每一個事件節(jié)點已與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件建立對應(yīng)關(guān)系時,確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整。
在步驟103中確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整說明該業(yè)務(wù)處理流程正確,此時同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述 數(shù)據(jù)進行核對,即可實現(xiàn)對與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù)的核對操作,有效實現(xiàn)對數(shù)據(jù)的實時核對。
也就是說,在本申請實施例中,數(shù)據(jù)同步是通過實時業(yè)務(wù)事件消息的實時同步完成的,由于業(yè)務(wù)事件消息的實時同步在一些應(yīng)用場景中能夠達到秒級同步,同時也意味著數(shù)據(jù)也可以實現(xiàn)秒級同步以及核對,有效解決現(xiàn)有技術(shù)中無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題,縮短數(shù)據(jù)核對的時延,并能夠及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)。
步驟105:在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈不完整時,發(fā)出告警消息。
其中,所述告警消息用于提醒與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù)出現(xiàn)錯誤。
在步驟105中,一旦確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈不完整,說明在業(yè)務(wù)執(zhí)行過程中出現(xiàn)異常,那么系統(tǒng)將產(chǎn)生不精確的數(shù)據(jù),此時需要發(fā)出告警消息以提醒管理者或者系統(tǒng)維護者注意,以便于及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)(或者稱之為差異數(shù)據(jù)),此外還可以對接收到的這一組業(yè)務(wù)事件消息進行標注,為后續(xù)校驗奠定基礎(chǔ)。
通過本申請實施例提供的技術(shù)方案,由于業(yè)務(wù)系統(tǒng)在處理業(yè)務(wù)時,不僅產(chǎn)生用于表征業(yè)務(wù)處理進度的業(yè)務(wù)事件,而且還產(chǎn)生用于表征業(yè)務(wù)處理過程的數(shù)據(jù),本申請?zhí)岢隼脴I(yè)務(wù)事件完成對產(chǎn)生的數(shù)據(jù)進行核對的方案,借助業(yè)務(wù)事件產(chǎn)生的實時性,及時對與產(chǎn)生的業(yè)務(wù)事件相關(guān)聯(lián)的數(shù)據(jù)進行核對,有效解決現(xiàn)有技術(shù)中無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題,縮短數(shù)據(jù)核對的時延,并能夠及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)。
圖3為本申請實施例提供的一種數(shù)據(jù)處理方法的流程示意圖。圖3中所示的數(shù)據(jù)處理方式可以基于金融系統(tǒng)實現(xiàn)。
假設(shè)一個金融系統(tǒng)中包含一個信貸業(yè)務(wù)系統(tǒng)(標號1)、一個資產(chǎn)交換系統(tǒng)(標號2)、一個存款核心系統(tǒng)(標號3)、一個貸款核心系統(tǒng)(標號4)、一個借記賬務(wù)系統(tǒng)(標號5)和一個貸記賬務(wù)系統(tǒng)(標號6),如圖4所示,為業(yè)務(wù) 系統(tǒng)的結(jié)構(gòu)示意圖。那么根據(jù)該金融系統(tǒng)中各個業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,可以確定針對該金融系統(tǒng)的事件核對模型,如圖5所示,為圖4中所示的業(yè)務(wù)系統(tǒng)對應(yīng)的事件核對模型結(jié)構(gòu)示意圖。
圖4中所示的消息中心,具備接收各個業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,那么業(yè)務(wù)事件消息所包含的主要字段以及每一個字段的意義如下表1所示:
表1
下面詳細說明本申請實施例所記載的技術(shù)方案在假設(shè)場景中的詳細應(yīng)用。
步驟301:接收各個業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息。
例如:信貸業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息;資產(chǎn)交換系統(tǒng)發(fā)送的交換事件消息;存款核心系統(tǒng)發(fā)送的存款事件消息;貸款核心系統(tǒng)發(fā)送的貸款事件消息;借記賬務(wù)系統(tǒng)發(fā)送的借記事件消息;貸記賬務(wù)系統(tǒng)發(fā)送的貸記事件消息。
步驟302:利用圖5中所示的事件核對模型對接收到的業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對。
在步驟302中,對于信貸業(yè)務(wù)系統(tǒng)向消息中心發(fā)送還款事件消息a,在信貸業(yè)務(wù)系統(tǒng)平臺中該還款事件消息中的data字段記錄一些關(guān)鍵信息,如業(yè)務(wù)單號、金額amount;同時調(diào)用資產(chǎn)交換系統(tǒng),此時資產(chǎn)交換系統(tǒng)的平臺的業(yè)務(wù)事件消息b中的data字段也記錄一些關(guān)鍵信息,如借方金額(debit_amount)和 貸方金額(credit_amount),此時可以利用sum({a}.amount)=sum(.debit_amount)=sum(.credit_amount)對信貸業(yè)務(wù)系統(tǒng)發(fā)送的還款事件消息中包含的還款事件進行核對。
對于資產(chǎn)交換系統(tǒng)發(fā)送的活期支出事件消息c和還款事件消息d,資產(chǎn)交換系統(tǒng)調(diào)用存款核心系統(tǒng)執(zhí)行活期支出事件,存款核心系統(tǒng)平臺中針對該活期支出事件記錄的data字段中記錄支出金額amount等關(guān)鍵字段信息;同時資產(chǎn)交換系統(tǒng)還調(diào)用貸款核心系統(tǒng)執(zhí)行還款事件,貸款核心系統(tǒng)平臺中針對該還款事件記錄data字段中記錄本金金額prin_amount和利息金額int_amount等關(guān)鍵字段。此時可以利用sum(.debit_amount)=sum({c}.amount)&&sum(.credit_amount)=sum(hqwt0e3.prin_amount+hqwt0e3.int_amount)資產(chǎn)交換系統(tǒng)發(fā)送的活期支出事件消息c和還款事件消息d進行核對。
對于存款核心系統(tǒng)發(fā)送的活期支出事件消息,貸款核心系統(tǒng)調(diào)用貸記賬務(wù)系統(tǒng)將用戶余額支出做還款,貸款核心系統(tǒng)產(chǎn)生的貸記賬務(wù)事件消息e中data字段記錄支出金額amount等關(guān)鍵字段信息。此時可以利用sum({c}.amount)=sum({e}.amount)對存款核心系統(tǒng)發(fā)送的活期支出事件消息進行核對。
對于貸款核心系統(tǒng)發(fā)送的還款事件d,貸款核心系統(tǒng)調(diào)用貸記賬務(wù)系統(tǒng)執(zhí)行還本金操作和還利息操作,貸記賬務(wù)系統(tǒng)產(chǎn)生還本金事件消息f和還利息事件消息g,還本金事件消息f/還利息事件消息g中data字段會記錄金額amount等關(guān)鍵字段信息。此時可以利用sum(hqwt0e3.prin_amount)=sum({f}.amount)&&sum(hqwt0e3.int_amount)=sum({g}.amount)對貸款核心系統(tǒng)發(fā)送的還款事件d進行核對。
借記賬務(wù)系統(tǒng)發(fā)送的活期支出事件消息;貸記賬務(wù)系統(tǒng)還本金事件消息和還利息事件消息。
步驟303:在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
圖6為本申請實施例提供的一種數(shù)據(jù)處理設(shè)備的結(jié)構(gòu)示意圖。所述數(shù)據(jù)處 理設(shè)備包括:接收單元61、核對單元62和處理單元63,其中:
接收單元61,用于接收不同業(yè)務(wù)系統(tǒng)發(fā)送的業(yè)務(wù)事件消息,其中,每一個所述業(yè)務(wù)事件消息用于表征產(chǎn)生所述業(yè)務(wù)事件消息的業(yè)務(wù)系統(tǒng)內(nèi)數(shù)據(jù)發(fā)生變化;
核對單元62,用于根據(jù)所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系,選擇與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件以及不同業(yè)務(wù)系統(tǒng)之間的調(diào)用關(guān)系相匹配的事件核對模型,并利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,其中,所述事件核對模型用于核對業(yè)務(wù)事件鏈是否完整;
處理單元63,用于在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整時,同步與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù),并對所述數(shù)據(jù)進行核對。
在本申請的另一個實施例中,所述處理單元63,還用于在確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈不完整時,發(fā)出告警消息,其中,所述告警消息用于提醒與所述事件鏈相關(guān)聯(lián)的數(shù)據(jù)出現(xiàn)錯誤。
在本申請的另一個實施例中,所述核對單元62利用所述事件核對模型對所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,包括:
確定接收到的每一個業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件的發(fā)生時間;
按照所述發(fā)生時間,確定不同所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件之間的調(diào)用關(guān)系,并將所述調(diào)用關(guān)系與所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系進行比較。
在本申請的另一個實施例中,所述處理單元63確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整,包括:
在比較結(jié)果是所述調(diào)用關(guān)系與所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系一致時,確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整。
在本申請的另一個實施例中,所述核對單元62利用所述事件核對模型對 所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件進行核對,包括:
確定接收到的每一個業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件的發(fā)生時間;
按照所述發(fā)生時間和所述事件核對模型中包含的事件節(jié)點之間的邏輯關(guān)系,依次建立業(yè)務(wù)事件與所述事件核對模型中包含的事件節(jié)點之間的對應(yīng)關(guān)系;
定時掃描所述事件核對模型,并確定所述事件核對模型中包含的事件節(jié)點是否對應(yīng)業(yè)務(wù)事件。
在本申請的另一個實施例中,所述處理單元63確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整,包括:
在確定所述事件核對模型中包含的每一個事件節(jié)點已與所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件建立對應(yīng)關(guān)系時,確定所述業(yè)務(wù)事件消息中包含的業(yè)務(wù)事件所構(gòu)成的事件鏈完整。
需要說明的是,本申請實施例中所記載的數(shù)據(jù)處理設(shè)備可以采用軟件方式實現(xiàn),也可以采用硬件方式實現(xiàn),這里不做限定,可以借助業(yè)務(wù)事件產(chǎn)生的實時性,及時對與產(chǎn)生的業(yè)務(wù)事件相關(guān)聯(lián)的數(shù)據(jù)進行核對,有效解決現(xiàn)有技術(shù)中無法實現(xiàn)對復(fù)雜業(yè)務(wù)進行處理時產(chǎn)生的數(shù)據(jù)進行實時核對的問題,縮短數(shù)據(jù)核對的時延,并能夠及時發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的不準確數(shù)據(jù)。
本領(lǐng)域的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置(設(shè)備)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、裝置(設(shè)備)和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機 或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。