本申請(qǐng)涉及業(yè)務(wù)處理技術(shù)領(lǐng)域,更具體地,是業(yè)務(wù)處理方法及裝置。
背景技術(shù):
以銀行業(yè)的積分計(jì)算為例,對(duì)業(yè)務(wù)處理流程進(jìn)行說明。
積分計(jì)算,是指將銀行中各個(gè)業(yè)務(wù)領(lǐng)域的積分統(tǒng)計(jì)在同一設(shè)置平臺(tái)上,由業(yè)務(wù)人員通過統(tǒng)一的平臺(tái)入口,設(shè)置需要納入積分計(jì)算的產(chǎn)品目錄,并對(duì)目錄中的產(chǎn)品制定獎(jiǎng)勵(lì)積分及設(shè)置積分計(jì)算公式。例如,信用卡、借記卡屬于銀行產(chǎn)品,業(yè)務(wù)人員在設(shè)置平臺(tái)上設(shè)置信用卡相應(yīng)的獎(jiǎng)勵(lì)積分及積分的計(jì)算方式,并設(shè)置借記卡相應(yīng)的獎(jiǎng)勵(lì)積分及積分的計(jì)算方式。
設(shè)置獎(jiǎng)勵(lì)積分及積分的計(jì)算方式后,需要積分處理流程,以按照積分的計(jì)算方式對(duì)銀行交易流水?dāng)?shù)據(jù)進(jìn)行處理,將處理后得到的積分調(diào)整至交易流水?dāng)?shù)據(jù)對(duì)應(yīng)的客戶賬戶中,以實(shí)現(xiàn)對(duì)交易流水?dāng)?shù)據(jù)對(duì)應(yīng)的用戶進(jìn)行積分獎(jiǎng)勵(lì)的目的。
目前,不同的產(chǎn)品需要使用不同的積分處理流程進(jìn)行積分處理,這樣,程序開發(fā)人員需要為每個(gè)產(chǎn)品開發(fā)獨(dú)立的積分處理流程,有多少產(chǎn)品則需要開發(fā)多少的積分處理流程,程序開發(fā)過程較為繁瑣。并且,在需要修改積分處理流程時(shí),需要對(duì)程序代碼進(jìn)行修改,修改過程也較為繁瑣。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┝艘环N業(yè)務(wù)處理方法,用以解決業(yè)務(wù)流程的程序的開發(fā)及修改較為繁瑣的問題。另外,本申請(qǐng)還提供了一種業(yè)務(wù)處理裝置,用以保證所述方法在實(shí)際中的應(yīng)用及實(shí)現(xiàn)。
為實(shí)現(xiàn)所述目的,本申請(qǐng)?zhí)峁┑募夹g(shù)方案如下:
一種業(yè)務(wù)處理方法,應(yīng)用于分布式計(jì)算系統(tǒng),該方法包括:
獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程;其中,所述處理流程中包含多個(gè)處理步驟,且所述多個(gè)處理步驟之間具有預(yù)設(shè)的執(zhí)行順序;
在預(yù)設(shè)的部件庫中,獲取與各個(gè)處理步驟各自對(duì)應(yīng)的處理部件;其中,所述部件庫中包含多個(gè)處理部件,且不同的處理部件用于執(zhí)行不同的處理步驟;
觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,所述獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程,包括:
獲得待處理的業(yè)務(wù)數(shù)據(jù)后,從預(yù)設(shè)的配置文件中,確定與所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的處理流程;
從所述配置文件中,獲得所述處理流程對(duì)應(yīng)的多個(gè)處理步驟以及所述多個(gè)處理步驟的執(zhí)行順序。
可選地,業(yè)務(wù)處理方法還包括:
若需要在所述處理流程中新增處理步驟時(shí),則在所述部件庫中新增目標(biāo)處理部件,所述目標(biāo)處理部件執(zhí)行的處理步驟為所述處理流程中新增的處理步驟;
在所述配置文件中,將所述新增的處理步驟添加到所述處理流程對(duì)應(yīng)的多個(gè)處理步驟中。
可選地,所述配置文件中還記錄有業(yè)務(wù)數(shù)據(jù)的接口定義,所述接口定義用于表示所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式;則該方法還包括:
根據(jù)所述配置文件中的接口定義,對(duì)所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式進(jìn)行解析,獲得解析結(jié)果;
將所述解析結(jié)果發(fā)送給所述處理部件,以供所述處理部件依據(jù)所述解析結(jié)果處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,所述處理部件對(duì)應(yīng)若干處理元件,處理元件用于執(zhí)行所述處理部件對(duì)應(yīng)的處理步驟中的子步驟;
則所述觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù),包括:
觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件通過調(diào)用對(duì)應(yīng)的處理元件來處理所述業(yè)務(wù)數(shù)據(jù)。
本申請(qǐng)還提供了一種業(yè)務(wù)處理裝置,應(yīng)用于分布式計(jì)算系統(tǒng),該裝置包括:
處理流程確定模塊,用于獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程;其中,所述處理流程中包含多個(gè)處理步驟,且所述多個(gè)處理步驟之間具有預(yù)設(shè)的執(zhí)行順序;
處理部件獲取模塊,用于在預(yù)設(shè)的部件庫中,獲取與各個(gè)處理步驟各自對(duì)應(yīng)的處理部件;其中,所述部件庫中包含多個(gè)處理部件,且不同的處理部件用于執(zhí)行不同的處理步驟;
處理流程執(zhí)行模塊,用于觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,在所述獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程的方面,所述處理流程確定模塊具體用于:
獲得待處理的業(yè)務(wù)數(shù)據(jù)后,從預(yù)設(shè)的配置文件中,確定與所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的處理流程;
從所述配置文件中,獲得所述處理流程對(duì)應(yīng)的多個(gè)處理步驟以及所述多個(gè)處理步驟的執(zhí)行順序。
可選地,業(yè)務(wù)處理裝置還包括:
處理步驟新增模塊,用于若需要在所述處理流程中新增處理步驟時(shí),則在所述部件庫中新增目標(biāo)處理部件,所述目標(biāo)處理部件執(zhí)行的處理步驟為所述處理流程中新增的處理步驟;在所述配置文件中,將所述新增的處理步驟添加到所述處理流程對(duì)應(yīng)的多個(gè)處理步驟中。
可選地,所述配置文件中還記錄有業(yè)務(wù)數(shù)據(jù)的接口定義,所述接口定義用于表示所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式;則該裝置還包括:
業(yè)務(wù)數(shù)據(jù)解析模塊,用于根據(jù)所述配置文件中的接口定義,對(duì)所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式進(jìn)行解析,獲得解析結(jié)果;將所述解析結(jié)果發(fā)送給所述處理部件,以供所述處理部件依據(jù)所述解析結(jié)果處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,所述處理部件對(duì)應(yīng)若干處理元件,處理元件用于執(zhí)行所述處理部件對(duì)應(yīng)的處理步驟中的子步驟;
則在所述觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù)的方面,所述處理流程執(zhí)行模塊具體用于:
觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件通過調(diào)用對(duì)應(yīng)的處理元件來處理所述業(yè)務(wù)數(shù)據(jù)。
由以上可知,本申請(qǐng)?zhí)峁┝艘环N業(yè)務(wù)處理方法,該業(yè)務(wù)處理方法中,預(yù)先設(shè)置有部件庫,部件庫中包括多個(gè)用于業(yè)務(wù)數(shù)據(jù)的處理部件,相較于現(xiàn)有技術(shù)需要修改程序代碼而言,本申請(qǐng)若需要修改業(yè)務(wù)處理流程,則只需修改處理部件即可,如新增或刪除處理部件,修改方式更加簡(jiǎn)單方便。另外,本申請(qǐng)應(yīng)用在分布式計(jì)算系統(tǒng)中,分布式計(jì)算系統(tǒng)可以實(shí)現(xiàn)對(duì)處理模塊的調(diào)度,對(duì)于開發(fā)人員來說,并不需要關(guān)系底層實(shí)現(xiàn),開發(fā)過程更加簡(jiǎn)單。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)處理方法的一種流程圖;
圖2為本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)處理系統(tǒng)的一種架構(gòu)示意圖;
圖3為本申請(qǐng)?zhí)峁┑姆e分處理流程的一種示意圖;
圖4為本申請(qǐng)?zhí)峁┑姆e分處理流程中預(yù)處理步驟的一種示意圖;
圖5為本申請(qǐng)?zhí)峁┑姆e分處理流程中積分計(jì)算步驟的一種示意圖;
圖6為本申請(qǐng)?zhí)峁┑姆e分處理流程中積分累積步驟的一種示意圖;
圖7為本申請(qǐng)?zhí)峁┑姆e分處理流程中積分調(diào)整步驟的一種示意圖;
圖8為本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)處理裝置的一種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
通常地,積分處理流程中包含多個(gè)處理步驟,不同的處理步驟用于處理積分處理流程中的不同處理任務(wù),如積分處理流程中需要包含交易流水?dāng)?shù)據(jù)合法性校驗(yàn)步驟、反交易過濾步驟、積分計(jì)算及積分累積等步驟。目前開發(fā)的積分處理流程中,代碼程序并未進(jìn)行模塊劃分,若想要新增、更改或刪減某些步驟,代碼程序改動(dòng)較大,流程修改較為不便。
因此,本申請(qǐng)?zhí)峁┝艘环N業(yè)務(wù)處理方法,該方法中調(diào)用的是預(yù)先設(shè)置的業(yè)務(wù)處理模塊,不同的業(yè)務(wù)處理模塊執(zhí)行不同的業(yè)務(wù)處理內(nèi)容,以實(shí)現(xiàn)業(yè)務(wù)處理內(nèi)容模塊化,且靈活配置的目的。需要說明的是,本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)處理方法可以是但不局限于積分計(jì)算流程,還可以是任意需要包括多個(gè)執(zhí)行步驟的業(yè)務(wù)處理流程。
見圖1,其示出了本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)處理流程的一種流程,具體包括以下步驟S101~S103。
S101:獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理業(yè)務(wù)數(shù)據(jù)的處理流程;其中,處理流程中包含多個(gè)處理步驟,且多個(gè)處理步驟之間具有預(yù)設(shè)的執(zhí)行順序。
本申請(qǐng)中待處理的業(yè)務(wù)數(shù)據(jù)可以是各種,如銀行系統(tǒng)中的交易流水?dāng)?shù)據(jù)、物流系統(tǒng)中的物流數(shù)據(jù)等。不同的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)不同的處理流程,如交易流水?dāng)?shù)據(jù)對(duì)應(yīng)的處理流程可以是積分處理流程,物流數(shù)據(jù)對(duì)應(yīng)的處理流程可以是物流信息展示。每種業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的處理流程可以是預(yù)先設(shè)定的。
接收到待處理的業(yè)務(wù)數(shù)據(jù)后,根據(jù)預(yù)先設(shè)定的對(duì)應(yīng)關(guān)系,確定該業(yè)務(wù)數(shù)據(jù)所對(duì)應(yīng)的處理流程。例如,接收到的待處理的業(yè)務(wù)數(shù)據(jù)為交易流水?dāng)?shù)據(jù),則確定的處理流程為積分處理流程。
需要說明的是,每個(gè)處理流程所包含的處理步驟及各個(gè)處理步驟之間的先后執(zhí)行順序?yàn)轭A(yù)設(shè)的,即在實(shí)施前,預(yù)先設(shè)置處理流程包含的處理步驟及處理步驟之間的執(zhí)行順序。
可選地,以上各種預(yù)先設(shè)置可以記錄在配置文件中,例如將業(yè)務(wù)數(shù)據(jù)與處理流程的對(duì)應(yīng)關(guān)系記錄在配置文件中,又如,還將處理流程包含的處理步驟及各個(gè)處理步驟之間的執(zhí)行順序記錄在配置文件中。
這樣,本步驟中確定處理流程的具體實(shí)現(xiàn)方式可以是:
獲得待處理的業(yè)務(wù)數(shù)據(jù)后,從預(yù)設(shè)的配置文件中,確定與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的處理流程;從配置文件中,獲得處理流程對(duì)應(yīng)的多個(gè)處理步驟以及多個(gè)處理步驟的執(zhí)行順序。
步驟S102:在預(yù)設(shè)的部件庫中,獲取與各個(gè)處理步驟各自對(duì)應(yīng)的處理部件;其中,部件庫中包含多個(gè)處理部件,且不同的處理部件用于執(zhí)行不同的處理步驟。
在實(shí)施前,首先設(shè)置部件庫,部件庫中包含多個(gè)處理部件,每個(gè)處理部件可以看作一個(gè)功能模塊,封裝有實(shí)現(xiàn)業(yè)務(wù)流程處理步驟的功能代碼,且提供有調(diào)用接口以供調(diào)用。
在處理業(yè)務(wù)前,根據(jù)業(yè)務(wù)的類型可以配置處理業(yè)務(wù)需要使用的部件,如圖2所示,調(diào)度驅(qū)動(dòng)可以對(duì)產(chǎn)品批任務(wù)1及產(chǎn)品批任務(wù)2進(jìn)行參數(shù)配置,以指示出處理產(chǎn)品批任務(wù)1及產(chǎn)品批任務(wù)2各自所需要使用的部件。產(chǎn)品批任務(wù)1和產(chǎn)品批任務(wù)2是兩種具體的待處理業(yè)務(wù)。圖2中的調(diào)度驅(qū)動(dòng)為產(chǎn)品批任務(wù)1配置的部件中包括三個(gè)轉(zhuǎn)換部件及一個(gè)計(jì)算部件,為產(chǎn)品批任務(wù)2配置的部件中包括兩個(gè)轉(zhuǎn)換部件及一個(gè)計(jì)算部件。
需要說明的是,不同的轉(zhuǎn)換部件所完成的業(yè)務(wù)處理步驟不同。轉(zhuǎn)換部件可以調(diào)用流程Processer(處理)元件實(shí)現(xiàn)自身的處理功能。如圖2所示,產(chǎn)品批任務(wù)1調(diào)用的第一個(gè)轉(zhuǎn)換部件需要調(diào)用第一個(gè)流程Processer(處理)元件以完成待處理業(yè)務(wù)數(shù)據(jù)的一種格式轉(zhuǎn)換,產(chǎn)品批任務(wù)1調(diào)用的第二個(gè)轉(zhuǎn)換部件需要調(diào)用第二個(gè)流程Processer(處理)元件以完成待處理業(yè)務(wù)數(shù)據(jù)的另一種格式轉(zhuǎn)換。另外,流程Processer(處理)元件可以包含各種領(lǐng)域內(nèi)的元件實(shí)現(xiàn),如圖2所示,流程Processer(處理)元件對(duì)應(yīng)的各個(gè)小方框表示分別表示特定領(lǐng)域1、2及3接口元件的實(shí)現(xiàn)。
配置文件中記錄有業(yè)務(wù)處理流程中包含的各個(gè)步驟,以及每個(gè)步驟包括的子步驟。步驟通過調(diào)用處理部件實(shí)現(xiàn),子步驟通過處理元件實(shí)現(xiàn)。配置文件中定義輸入及輸出各個(gè)處理元件的業(yè)務(wù)數(shù)據(jù)的格式。并且,配置文件中定義各個(gè)處理部件的調(diào)用順序,也即定義了各個(gè)步驟的執(zhí)行順序;配置文件中定義各個(gè)處理元件的調(diào)用順序,也即定義了各個(gè)子步驟的執(zhí)行順序。
步驟S103:觸發(fā)分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照?qǐng)?zhí)行順序調(diào)用各個(gè)處理部件,以使各個(gè)處理部件處理業(yè)務(wù)數(shù)據(jù)。
其中,按照確定出的執(zhí)行順序依次調(diào)用處理部件,則可以觸發(fā)各個(gè)處理部件按照?qǐng)?zhí)行順序依次對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,從而得到處理結(jié)果數(shù)據(jù)。需要說明的是,本申請(qǐng)應(yīng)用在分布式計(jì)算系統(tǒng)中,分布式計(jì)算系統(tǒng)中包含調(diào)度模塊,可以根據(jù)執(zhí)行順序,對(duì)各個(gè)處理模塊進(jìn)行調(diào)度。這樣,程序開發(fā)人員并不需關(guān)心底層如何實(shí)現(xiàn)調(diào)度,只需設(shè)置執(zhí)行順序即可,調(diào)度模塊自動(dòng)實(shí)現(xiàn)調(diào)度。
由以上技術(shù)方案可知,本申請(qǐng)中預(yù)先設(shè)置處理部件,相較于現(xiàn)有技術(shù)需要修改程序代碼而言,本申請(qǐng)若需要修改業(yè)務(wù)處理流程,則只需修改處理部件即可,如新增或刪除處理部件,修改方式更加簡(jiǎn)單方便。另外,本申請(qǐng)應(yīng)用在分布式計(jì)算系統(tǒng)中,分布式計(jì)算系統(tǒng)可以實(shí)現(xiàn)對(duì)處理模塊的調(diào)度,對(duì)于開發(fā)人員來說,并不需要關(guān)系底層實(shí)現(xiàn),開發(fā)過程更加簡(jiǎn)單。
本申請(qǐng)中的實(shí)現(xiàn)思想是功能結(jié)構(gòu)化,功能結(jié)構(gòu)化表示將功能以部件及元件的方式實(shí)現(xiàn)。
具體地,參數(shù)是構(gòu)成業(yè)務(wù)處理流程規(guī)則及流程約束等的基本要素。元件由一組不可分割的參數(shù)組成,實(shí)現(xiàn)一個(gè)完整的子步驟。部件可以包含一組元件及若干參數(shù),用于實(shí)現(xiàn)業(yè)務(wù)處理流程中的一個(gè)完整的步驟。步驟可以通過多個(gè)子步驟完成,因此,部件可以調(diào)用元件。部件用于描述業(yè)務(wù)處理邏輯,元件用于實(shí)現(xiàn)底層細(xì)節(jié)。
另外,本申請(qǐng)的業(yè)務(wù)處理流程可以應(yīng)用在分布式計(jì)算系統(tǒng)中,在分布式計(jì)算系統(tǒng)中,執(zhí)行業(yè)務(wù)處理流程的應(yīng)用只需關(guān)注業(yè)務(wù)流程邏輯即可,即只需設(shè)置前一處理部件與后一處理部件的對(duì)應(yīng)接口即可。在設(shè)置完成后,前一處理部件處理完成后的結(jié)果數(shù)據(jù),由分布式計(jì)算系統(tǒng)將結(jié)果數(shù)據(jù)傳遞至后一處理部件,在開發(fā)過程中并不需要關(guān)系結(jié)果數(shù)據(jù)傳遞細(xì)節(jié),應(yīng)用開發(fā)更加簡(jiǎn)單。
分布式計(jì)算系統(tǒng)封裝了分布式并行框架提供的內(nèi)存迭代計(jì)算方式,因此,業(yè)務(wù)處理的運(yùn)算邏輯從存儲(chǔ)到運(yùn)算可以充分利用大數(shù)據(jù)的理論及技術(shù),從而可以達(dá)到靈活適配各種需求,各個(gè)部件間的耦合較松。
代碼開發(fā)人員只需使用分布式計(jì)算系統(tǒng)提供的統(tǒng)一接口,實(shí)現(xiàn)業(yè)務(wù)處理的內(nèi)部邏輯即可,不需關(guān)注底層的實(shí)現(xiàn)細(xì)節(jié)。另外,分布式計(jì)算系統(tǒng)使用統(tǒng)一的調(diào)度模塊對(duì)各個(gè)部件及元件進(jìn)行調(diào)度,減少代碼編寫中對(duì)參數(shù)變量的依賴。
以下結(jié)合銀行系統(tǒng)中的積分處理流程為例,對(duì)本申請(qǐng)的技術(shù)方案進(jìn)行舉例說明。
積分處理為一種待處理業(yè)務(wù)。該項(xiàng)業(yè)務(wù)如圖3所示需要包括五個(gè)處理步驟,即預(yù)處理步驟、積分計(jì)算步驟、積分累積步驟、積分調(diào)整步驟及各維度積分生成步驟。每個(gè)步驟可以如圖2所示可以通過調(diào)用預(yù)設(shè)部件庫中的部件實(shí)現(xiàn)。即預(yù)處理步驟調(diào)用預(yù)處理部件、積分計(jì)算步驟調(diào)用積分計(jì)算部件、積分累積步驟調(diào)用積分累積部件、積分調(diào)整步驟調(diào)用積分調(diào)整部件、各維度積分生成步驟調(diào)用各維度積分生成部件。
積分處理流程可以執(zhí)行在分布式計(jì)算平臺(tái)如HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng))上,各個(gè)部件之間交互的文件為分布式計(jì)算平臺(tái)上的文件。文件通過分布式平臺(tái)傳遞,且使用同一的數(shù)據(jù)格式如鍵值對(duì)格式。
以下詳細(xì)介紹各個(gè)模塊的處理過程。
1、預(yù)處理部件執(zhí)行預(yù)處理步驟。
預(yù)處理步驟,是對(duì)待處理的交易流水?dāng)?shù)據(jù)進(jìn)行轉(zhuǎn)換及過濾,預(yù)處理后的交易流水?dāng)?shù)據(jù)是可參與后續(xù)計(jì)算的交易流水?dāng)?shù)據(jù),可以包括但不局限于包括以下幾個(gè)子步驟:1)流水合法性校驗(yàn)、2)可售產(chǎn)品的編號(hào)到產(chǎn)品目錄的映射轉(zhuǎn)換、3)組件級(jí)黑名單過濾、4)反交易過濾、5)當(dāng)日交易差、6)不納入規(guī)則引擎的規(guī)則過濾、7)規(guī)則引擎的規(guī)則過濾。
預(yù)處理步驟輸出的交易流水?dāng)?shù)據(jù)中的字段符合后續(xù)計(jì)算的格式,可發(fā)送至后續(xù)的積分計(jì)算模塊,以進(jìn)行積分計(jì)算。
預(yù)處理步驟中包含的子步驟可以封裝在不同的流程處理元件(可簡(jiǎn)稱處理元件)中,因此,預(yù)處理步驟需要執(zhí)行哪些子步驟,則調(diào)用相應(yīng)的流程處理元件即可。預(yù)處理步驟需要執(zhí)行的子步驟可以記錄在配置文件中,配置文件中還可以記錄有待處理的交易流水?dāng)?shù)據(jù)的接口定義,接口定義表示待處理的交易流水?dāng)?shù)據(jù)的數(shù)據(jù)格式。例如待處理的交易流水?dāng)?shù)據(jù)中包含多少字段,每個(gè)字段分別表示什么含義這些均記錄在配置文件中。預(yù)處理部件接收到交易流水?dāng)?shù)據(jù)(交易流水?dāng)?shù)據(jù)中包括多個(gè)字段)后,根據(jù)配置文件中接口定義便可以解析出交易流水?dāng)?shù)據(jù)中的每個(gè)字段的含義。解析結(jié)果以供處理部件對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。
重要的是,如果待處理的交易流水?dāng)?shù)據(jù)的數(shù)據(jù)格式發(fā)生變化,則只需修改配置文件中的接口定義即可。配置文件獨(dú)立的文件,并沒有嵌入到處理流程的程序代碼中,因此,并不需修改代碼程序,修改更加方便且容易實(shí)現(xiàn)。
另外,處理元件或者處理部件輸入及輸出的數(shù)據(jù)為同一格式,如鍵值對(duì)Map格式。鍵值對(duì)格式的文件中字段的添加、刪除及修改較為方便且容易實(shí)現(xiàn)。
現(xiàn)結(jié)合圖4具體說明預(yù)處理步驟的執(zhí)行過程。如圖4所示,輸入至預(yù)處理部件的流水集為待處理的交易流水?dāng)?shù)據(jù),交易流程數(shù)據(jù)的格式為Map格式,包括兩個(gè)字段FieldName及FieldValue。該兩個(gè)字段包含在配置文件中,且配置文件中記錄有該兩個(gè)字段的具體含義。預(yù)處理部件接收到流水集后,調(diào)用配置文件便可以確定出每個(gè)字段的含義。
預(yù)處理部件在處理過程中,可以調(diào)用處理元件,如圖4所示,預(yù)處理部件可以調(diào)用Processer(處理元件)1進(jìn)行活動(dòng)日期過濾、調(diào)用Processer(處理元件)2進(jìn)行生日過濾、調(diào)用Processer(處理元件)3進(jìn)行機(jī)構(gòu)過濾、調(diào)用Processer(處理元件)4進(jìn)行其他條件過濾以及調(diào)用Processer(處理元件)N進(jìn)行規(guī)則引擎過濾。當(dāng)然,在實(shí)際應(yīng)用中,所調(diào)用的處理元件并非局限于以上幾種,可以根據(jù)實(shí)際需求調(diào)用其他功能的處理元件。
各個(gè)處理元件的組合規(guī)則可以記錄在配置文件中,通過修改配置文件可以修改處理元件的組合規(guī)則。如圖4中的(Processer1∪Processer2∪Processer3∪Processer4∩Processer5)表示過濾條件的組合規(guī)則,預(yù)處理模塊按照配置文件記錄的過濾條件規(guī)則,觸發(fā)處理元件的執(zhí)行,以得到過濾后的過濾流水集(即過濾后的交易流水?dāng)?shù)據(jù))。
過濾流水集的數(shù)據(jù)格式與待處理的流水集的數(shù)據(jù)格式相同,均是Map格式的數(shù)據(jù),可見,處理部件的輸入輸出數(shù)據(jù)為相同的格式,且為鍵值對(duì)格式如Map格式。鍵值對(duì)格式的數(shù)據(jù),方便修改字段,且不需修改程序代碼。
2、積分計(jì)算部件執(zhí)行積分計(jì)算步驟。
積分計(jì)算部件獲取預(yù)處理部件輸出的經(jīng)過預(yù)處理后的交易流水?dāng)?shù)據(jù),并計(jì)算交易流水?dāng)?shù)據(jù)對(duì)應(yīng)的積分值。其中,經(jīng)過預(yù)處理后的交易流水?dāng)?shù)據(jù)可以保存在分布式文件系統(tǒng)中的某目錄下,積分計(jì)算部件可以從該目錄下獲取經(jīng)過預(yù)處理后的交易流水?dāng)?shù)據(jù)。
如圖5所示,積分計(jì)算的規(guī)則可以包括三種,可直接計(jì)算、關(guān)聯(lián)計(jì)算及累計(jì)暫不計(jì)算。其中,直接計(jì)算包括基本積分計(jì)算、單筆活動(dòng)積分計(jì)算、多筆活動(dòng)積分計(jì)算。關(guān)聯(lián)計(jì)算是指積分值依賴于基礎(chǔ)積分值,依據(jù)基礎(chǔ)積分值進(jìn)行計(jì)算,具體包括關(guān)聯(lián)單筆積分計(jì)算及關(guān)聯(lián)多筆積分計(jì)算。
交易流水?dāng)?shù)據(jù)的交易類型不同,則所需要使用的積分計(jì)算規(guī)則也不同。積分計(jì)算部件在對(duì)交易流水?dāng)?shù)據(jù)進(jìn)行積分計(jì)算時(shí),根據(jù)交易流水?dāng)?shù)據(jù)的交易類型,確定與該交易流水?dāng)?shù)據(jù)對(duì)應(yīng)的計(jì)算規(guī)則。
計(jì)算規(guī)則是可以同時(shí)執(zhí)行的,例如,若確定的規(guī)則中包含關(guān)聯(lián)計(jì)算規(guī)則,則需要等可直接計(jì)算中的基本積分計(jì)算完成后,才可以執(zhí)行關(guān)聯(lián)計(jì)算。如圖5所示,假設(shè)所選擇的計(jì)算規(guī)則包含關(guān)聯(lián)計(jì)算,可直接計(jì)算計(jì)算計(jì)算完成的基本積分可以記錄在數(shù)據(jù)庫中的累計(jì)表,關(guān)聯(lián)計(jì)算從累計(jì)表中讀取基本積分,利用基本積分進(jìn)行關(guān)聯(lián)計(jì)算。
如圖5所示,積分模塊在確定計(jì)算規(guī)則后,從預(yù)設(shè)的計(jì)算模式中,選擇計(jì)算公式,不同的計(jì)算公式需要不同的計(jì)算要素,選擇計(jì)算要素后進(jìn)行積分計(jì)算,最終生成流水與規(guī)則維度的積分文件,或者生成客戶與規(guī)則維度的積分文件。第一種積分文件中包含規(guī)則編號(hào)、積分值兩個(gè)字段,第二種積分文件中包含客戶編號(hào)、規(guī)則編號(hào)兩個(gè)字段。
3、積分累積部件執(zhí)行積分累積步驟。
積分累積步驟是指對(duì)積分計(jì)算步驟得到的積分文件中的積分進(jìn)行累積計(jì)算。積分累積規(guī)則可以包括兩種,即直接累積及判斷累積。
判斷累積中需要對(duì)待累積的積分進(jìn)行判斷,達(dá)到判斷條件的才執(zhí)行累積步驟。如圖6所示,積分累積部件首先查詢客戶流水累計(jì)明細(xì)表,該明細(xì)表即積分計(jì)算部件生成的積分文件。積分累積部件對(duì)積分文件中的積分進(jìn)行條件判斷,條件包括規(guī)則計(jì)算日期、金額門檻及筆數(shù)門檻中的任意一個(gè)及多個(gè)。
其中,規(guī)則計(jì)算日期表示積分累積的日期必須符合時(shí)間期限條件,金額門檻表示用于累積的積分必須達(dá)到金額限制要求,筆數(shù)門檻表示用于累積的積分必須達(dá)到筆數(shù)限制要求。
積分累積部件對(duì)計(jì)算條件進(jìn)行判斷后,若判斷結(jié)果滿足條件,則使用計(jì)算模式類型對(duì)應(yīng)的累積方式,對(duì)積分進(jìn)行累積,從而生成結(jié)果文件。結(jié)果文件為明細(xì)文件,具體包含流水、規(guī)則及積分三個(gè)字段。
4、積分調(diào)整部件執(zhí)行積分調(diào)整步驟。
積分調(diào)整是指積分具有上限值,積分積累后若達(dá)到上限值,則需要對(duì)積分累計(jì)值進(jìn)行調(diào)整。上限值可以包括:日上限值、月上限值或活動(dòng)期內(nèi)上限值等。
積分調(diào)整部件執(zhí)行積分調(diào)整步驟時(shí),首先查詢積分累積后的積分累計(jì)值,根據(jù)設(shè)置的調(diào)整規(guī)則,對(duì)積分累計(jì)值進(jìn)行調(diào)整。如圖6所示,查詢積分累計(jì)值后,調(diào)用調(diào)整取小元件執(zhí)行調(diào)整取小子步驟。調(diào)整取小子步驟的具體內(nèi)容是,比較積分累計(jì)值與預(yù)設(shè)的上限值,將積分累計(jì)值設(shè)置為兩者中的較小值。
如圖7所示,調(diào)整后的積分累計(jì)值為有效積分,根據(jù)有效積分生成被調(diào)流水原因明細(xì),該明細(xì)存儲(chǔ)在不計(jì)積分流水表中,并且分級(jí)有效積分生成流水積分明細(xì)文件,該明細(xì)文件中包含流水、規(guī)則、積分三個(gè)字段。
5、各維度積分生成部件執(zhí)行各維度積分生成步驟。
從積分調(diào)整部件生成的積分明細(xì)文件中讀取各個(gè)積分。積分可以按照不同的類型(維度)進(jìn)行分類。例如,按部分、產(chǎn)品、客戶、合約等對(duì)積分進(jìn)行分類。本部件是按照不同的維度對(duì)讀取到的文件進(jìn)行分類。不同的分類可以生成不同的分類文件,分類文件中包含該分類對(duì)應(yīng)的各項(xiàng)積分。
以上積分處理流程中,前一部件的輸出結(jié)果作為后一部件的輸入,各個(gè)部件是預(yù)先設(shè)置的,若積分處理流程中需要修改哪些步驟,則修改對(duì)部件的調(diào)用即可。另外,積分處理流程可以應(yīng)用在分布式計(jì)算系統(tǒng)中,提高積分處理流程的處理效率。而且,配置文件中設(shè)置有各個(gè)部件的輸出結(jié)果的數(shù)據(jù)格式,若需要修改數(shù)據(jù)格式,修改配置文件即可,并不需要修改程序代碼。
以上述積分處理流程為例,假設(shè)需要在預(yù)處理步驟中增加流水校驗(yàn)子步驟,該子步驟是過濾出校驗(yàn)不通過的無效非法流水并保存到數(shù)據(jù)庫。
首先,設(shè)置流水校驗(yàn)元件,即在流水校驗(yàn)元件中設(shè)置校驗(yàn)規(guī)則及校驗(yàn)流程,然后,將配置文件中的校驗(yàn)參數(shù)設(shè)置為true即打開校驗(yàn)開關(guān),以及增加對(duì)流水校驗(yàn)元件的調(diào)用??梢姡旧暾?qǐng)實(shí)現(xiàn)了功能的可插拔,功能的增加修改無須改動(dòng)現(xiàn)有代碼。程序修改更加方便且容易實(shí)現(xiàn)。
見圖8,其示出了本申請(qǐng)還提供了一種業(yè)務(wù)處理裝置的結(jié)構(gòu)。該裝置應(yīng)用于分布式計(jì)算系統(tǒng)。如圖8所示,該裝置包括:
處理流程確定模塊801,用于獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程;其中,所述處理流程中包含多個(gè)處理步驟,且所述多個(gè)處理步驟之間具有預(yù)設(shè)的執(zhí)行順序;
處理部件獲取模塊802,用于在預(yù)設(shè)的部件庫中,獲取與各個(gè)處理步驟各自對(duì)應(yīng)的處理部件;其中,所述部件庫中包含多個(gè)處理部件,且不同的處理部件用于執(zhí)行不同的處理步驟;
處理流程執(zhí)行模塊803,用于觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,在執(zhí)行所述獲得待處理的業(yè)務(wù)數(shù)據(jù)后,確定用于處理所述業(yè)務(wù)數(shù)據(jù)的處理流程的步驟時(shí),所述處理流程確定模塊具體用于:
獲得待處理的業(yè)務(wù)數(shù)據(jù)后,從預(yù)設(shè)的配置文件中,確定與所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的處理流程;
從所述配置文件中,獲得所述處理流程對(duì)應(yīng)的多個(gè)處理步驟以及所述多個(gè)處理步驟的執(zhí)行順序。
可選地,業(yè)務(wù)處理裝置還包括:
處理步驟新增模塊,用于若需要在所述處理流程中新增處理步驟時(shí),則在所述部件庫中新增目標(biāo)處理部件,所述目標(biāo)處理部件執(zhí)行的處理步驟為所述處理流程中新增的處理步驟;在所述配置文件中,將所述新增的處理步驟添加到所述處理流程對(duì)應(yīng)的多個(gè)處理步驟中。
可選地,所述配置文件中還記錄有業(yè)務(wù)數(shù)據(jù)的接口定義,所述接口定義用于表示所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式;則該裝置還包括:
業(yè)務(wù)數(shù)據(jù)解析模塊,用于根據(jù)所述配置文件中的接口定義,對(duì)所述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)格式進(jìn)行解析,獲得解析結(jié)果;將所述解析結(jié)果發(fā)送給所述處理部件,以供所述處理部件依據(jù)所述解析結(jié)果處理所述業(yè)務(wù)數(shù)據(jù)。
可選地,所述處理部件對(duì)應(yīng)若干處理元件,處理元件用于執(zhí)行所述處理部件對(duì)應(yīng)的處理步驟中的子步驟;
則在執(zhí)行所述觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件處理所述業(yè)務(wù)數(shù)據(jù)的步驟時(shí),所述處理流程執(zhí)行模塊具體用于:
觸發(fā)所述分布式計(jì)算系統(tǒng)中的調(diào)度模塊按照所述執(zhí)行順序調(diào)用各個(gè)所述處理部件,以使各個(gè)所述處理部件通過調(diào)用對(duì)應(yīng)的處理元件來處理所述業(yè)務(wù)數(shù)據(jù)。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括上述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。