
本申請(qǐng)涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
,尤其涉及一種業(yè)務(wù)系統(tǒng)的運(yùn)行方法及裝置。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的飛速發(fā)展,業(yè)務(wù)系統(tǒng)(如,金融系統(tǒng)、電子商務(wù)系統(tǒng)以及電子支付系統(tǒng)等)的復(fù)雜度變得越來越高,如,其需要實(shí)例化多個(gè)不同的業(yè)務(wù)流程,且需要對(duì)實(shí)例化后的業(yè)務(wù)流程進(jìn)行控制;而當(dāng)其復(fù)雜度變高時(shí),運(yùn)行效率就會(huì)相應(yīng)的降低,從而影響用戶的體驗(yàn)。為了不降低業(yè)務(wù)系統(tǒng)運(yùn)行的效率,現(xiàn)有技術(shù)提出了通過流程引擎來控制業(yè)務(wù)系統(tǒng)運(yùn)行的方法。在流程引擎控制業(yè)務(wù)系統(tǒng)的運(yùn)行的過程中,由流程引擎來負(fù)責(zé)業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn)的調(diào)用以及各個(gè)功能節(jié)點(diǎn)執(zhí)行完成后狀態(tài)的設(shè)置,業(yè)務(wù)系統(tǒng)負(fù)責(zé)各個(gè)功能節(jié)點(diǎn)的具體實(shí)現(xiàn),并負(fù)責(zé)記錄各個(gè)功能節(jié)點(diǎn)之間的關(guān)系;由此可以看出,現(xiàn)有技術(shù)中的業(yè)務(wù)系統(tǒng)不僅要負(fù)責(zé)各個(gè)功能節(jié)點(diǎn)的實(shí)現(xiàn),還需要對(duì)各個(gè)功能節(jié)點(diǎn)之間的關(guān)系進(jìn)行記錄,也即并沒有真正對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行簡(jiǎn)化;此外,在通過流程引擎來控制業(yè)務(wù)系統(tǒng)運(yùn)行時(shí),是通過xml等配置文件對(duì)各個(gè)功能節(jié)點(diǎn)的組合來實(shí)例化不同的業(yè)務(wù)流程,因此,當(dāng)需要實(shí)例化不同的業(yè)務(wù)流程時(shí),就需要對(duì)xml等配置文件進(jìn)行變更,而變更后xml等配置文件需要發(fā)布上線,其響應(yīng)速度較慢,從而會(huì)影響業(yè)務(wù)系統(tǒng)運(yùn)行的效率。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)實(shí)施例提供了一種業(yè)務(wù)系統(tǒng)的運(yùn)行方法及裝置,可以提高業(yè)務(wù)系統(tǒng)運(yùn)行的效率。第一方面,提供了一種業(yè)務(wù)系統(tǒng)的運(yùn)行方法,該方法包括:接收業(yè)務(wù)系統(tǒng)發(fā)送的詢問請(qǐng)求,所述詢問請(qǐng)求中包含所述業(yè)務(wù)系統(tǒng)當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)以及所述第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果;根據(jù)所述第一功能節(jié)點(diǎn)以及所述執(zhí)行結(jié)果,從預(yù)設(shè)的存儲(chǔ)單元中讀取待執(zhí)行的操作指令,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn)、各個(gè)功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令以及部分功能節(jié)點(diǎn)的操作指令的執(zhí)行條件;若所述操作指令為結(jié)束指令,則向所述業(yè)務(wù)系統(tǒng)返回所述結(jié)束指令,所述結(jié)束指令用于指示所述業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行;若所述操作指令為執(zhí)行指令,則讀取待執(zhí)行的第二功能節(jié)點(diǎn),并向所述業(yè)務(wù)系統(tǒng)返回所述執(zhí)行指令以及所述第二功能節(jié)點(diǎn),所述執(zhí)行指令用于指示所述業(yè)務(wù)系統(tǒng)執(zhí)行所述第二功能節(jié)點(diǎn)對(duì)應(yīng)的功能。第二方面,提供了一種業(yè)務(wù)系統(tǒng)的運(yùn)行裝置,該裝置包括:接收單元,用于接收業(yè)務(wù)系統(tǒng)發(fā)送的詢問請(qǐng)求,所述詢問請(qǐng)求中包含所述業(yè)務(wù)系統(tǒng)當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)以及所述第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果;讀取單元,用于根據(jù)所述接收單元接收的所述第一功能節(jié)點(diǎn)以及所述執(zhí)行結(jié)果,從預(yù)設(shè)的存儲(chǔ)單元中讀取待執(zhí)行的操作指令,所述預(yù)設(shè)的存儲(chǔ)單元用于存儲(chǔ)所述業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn)、各個(gè)功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令以及部分功能節(jié)點(diǎn)的操作指令的執(zhí)行條件;發(fā)送單元,用于若所述讀取單元讀取的所述操作指令為結(jié)束指令,則向所述業(yè)務(wù)系統(tǒng)返回所述結(jié)束指令,所述結(jié)束指令用于指示所述業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行;若所述讀取單元讀取的所述操作指令為執(zhí)行指令,則讀取待執(zhí)行的第二功能節(jié)點(diǎn),并向所述業(yè)務(wù)系統(tǒng)返回所述執(zhí)行指令以及所述第二功能節(jié)點(diǎn),所述執(zhí)行指令用于指示所述業(yè)務(wù)系統(tǒng)執(zhí)行所述第二功能節(jié)點(diǎn)對(duì)應(yīng)的功能。本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)系統(tǒng)的運(yùn)行方法及裝置,在業(yè)務(wù)系統(tǒng)執(zhí)行完成當(dāng)前的 第一功能節(jié)點(diǎn)之后,通過發(fā)送詢問請(qǐng)求的方式,來獲取待執(zhí)行的操作指令或者待執(zhí)行的操作指令以及第二功能節(jié)點(diǎn),直至業(yè)務(wù)系統(tǒng)運(yùn)行結(jié)束。由此可以看出,本申請(qǐng)采用了將流程編排部分從業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)代碼中抽離出來的思想,即將功能節(jié)點(diǎn)的實(shí)現(xiàn)功能與功能節(jié)點(diǎn)之間的流程編排功能解耦,也即業(yè)務(wù)系統(tǒng)只負(fù)責(zé)實(shí)現(xiàn)功能節(jié)點(diǎn)的實(shí)現(xiàn),而各個(gè)功能節(jié)點(diǎn)的執(zhí)行順序由流程編碼部分的代碼實(shí)現(xiàn),從而真正簡(jiǎn)化了業(yè)務(wù)系統(tǒng)的設(shè)計(jì),提高了業(yè)務(wù)系統(tǒng)運(yùn)行的效率。附圖說明圖1為本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)系統(tǒng)與編排組件之間的交互示意圖;圖2為本申請(qǐng)?zhí)峁┑囊环N業(yè)務(wù)流程的示意圖;圖3為本申請(qǐng)一種實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行方法流程圖;圖4為本申請(qǐng)?zhí)峁┑木幣沤M件的內(nèi)部處理流程示意圖;圖5為本申請(qǐng)另一種實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行裝置示意圖。具體實(shí)施方式下面結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。本申請(qǐng)實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行方法及裝置,采用了將流程編排部分從業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)代碼中抽離出來的思想,即將功能節(jié)點(diǎn)的實(shí)現(xiàn)功能與功能節(jié)點(diǎn)之間的流程編排功能解耦,其中,抽離出來的流程編碼部分也可以稱為編排組件,其在生產(chǎn)環(huán)境可以即時(shí)變更。圖1為業(yè)務(wù)系統(tǒng)與編排組件之間的交互示意圖,從圖1中可以看出,業(yè)務(wù)系統(tǒng)與編排組件之間通過問詢的方式進(jìn)行交互。圖1中,在功能節(jié)點(diǎn)的實(shí)現(xiàn)不變更的情況下,通過編排組件即時(shí)調(diào)整功能節(jié)點(diǎn)之間的流程編排關(guān)系,即可實(shí)現(xiàn)差異化的業(yè)務(wù)流程的重組工作。本申請(qǐng)實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行方法及裝置適用于復(fù)雜的業(yè)務(wù)系統(tǒng) 的運(yùn)行的場(chǎng)景,尤其適用于可以實(shí)例化多個(gè)不同的業(yè)務(wù)流程的業(yè)務(wù)系統(tǒng)的運(yùn)行的場(chǎng)景。此處的業(yè)務(wù)系統(tǒng)包括但不限于金融系統(tǒng)、電子商務(wù)系統(tǒng)以及電子支付系統(tǒng)等,其可以包括至少一個(gè)功能節(jié)點(diǎn),其中每個(gè)功能節(jié)點(diǎn)對(duì)應(yīng)業(yè)務(wù)系統(tǒng)的一個(gè)功能。以業(yè)務(wù)系統(tǒng)為電子支付系統(tǒng)為例來說,功能節(jié)點(diǎn)可以包括兩種類型:內(nèi)部接口和外部接口,其中,內(nèi)部接口可以為冪等模塊或者存儲(chǔ)模塊等,外部接口可以為業(yè)務(wù)系統(tǒng)依賴的外部服務(wù)接口等。需要說明的是,對(duì)業(yè)務(wù)系統(tǒng)實(shí)例化的每個(gè)業(yè)務(wù)流程,可以在編排組件中進(jìn)行一套業(yè)務(wù)系統(tǒng)的功能節(jié)點(diǎn)的編排配置,也即可以在編排組件中配置各個(gè)功能節(jié)點(diǎn)之間的流程編排關(guān)系,以便對(duì)各個(gè)功能節(jié)點(diǎn)執(zhí)行的先后順序進(jìn)行控制,進(jìn)而實(shí)現(xiàn)對(duì)業(yè)務(wù)流程的控制。以對(duì)業(yè)務(wù)系統(tǒng)實(shí)例化后的一個(gè)業(yè)務(wù)流程為例,說明在編排組件中配置的各個(gè)功能節(jié)點(diǎn)之間的流程編排關(guān)系。假設(shè)該業(yè)務(wù)流程為如圖2所示的××支付流程,該支付流程中可以包括一個(gè)首功能節(jié)點(diǎn)以及一個(gè)或多個(gè)其它功能節(jié)點(diǎn)。在一個(gè)例子中,首功能節(jié)點(diǎn)和其它功能節(jié)點(diǎn)可以分開編排配置,其中,首功能節(jié)點(diǎn)的流程編排關(guān)系可以如表1所示。表1業(yè)務(wù)流程首功能節(jié)點(diǎn)××支付鑒權(quán)而除首功能節(jié)點(diǎn)外的其它功能節(jié)點(diǎn)的流程編排關(guān)系可以如表2所示。表2表2中,執(zhí)行條件的個(gè)數(shù)與圖2中執(zhí)行分支的個(gè)數(shù)是相同的。對(duì)執(zhí)行條件的解析,可以通過第三方表達(dá)式解析引擎來實(shí)現(xiàn),如,groovy或者qlexpress,其中,qlexpress為淘寶網(wǎng)內(nèi)部的表達(dá)式引擎,其語法與groovy類似。此外,從表1中可以看出,當(dāng)同一功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令的個(gè)數(shù)為多個(gè)時(shí),每個(gè)操作指令對(duì)應(yīng)一個(gè)執(zhí)行條件。如,“預(yù)授權(quán)”對(duì)應(yīng)的操作指令的個(gè)數(shù)為兩個(gè),且該兩個(gè)操作指令分別為:“continue”和“finish”,則兩個(gè)操作指令中每個(gè)操作指令對(duì)應(yīng)一個(gè)執(zhí)行條件,其中,“continue”對(duì)應(yīng)的執(zhí)行條件為“if(預(yù)授權(quán)結(jié)果=="success")”,而“finish”對(duì)應(yīng)的執(zhí)行條件為“if(預(yù)授權(quán)結(jié)果=="fail")”。對(duì)業(yè)務(wù)系統(tǒng)實(shí)例化后的每個(gè)業(yè)務(wù)流程,都可以在編排組件中配置各個(gè)功能節(jié)點(diǎn)之間的流程編排關(guān)系,其流程編排關(guān)系可以如表1和表2所示。當(dāng)然,在實(shí)際應(yīng)用中,其流程編排關(guān)系也可以不同于表1所示的內(nèi)容,如,執(zhí)行條件和操作指令可以分開存儲(chǔ),本申請(qǐng)對(duì)此不作限定。需要說明的是,為了能直觀的顯示各個(gè)功能節(jié)點(diǎn)之間的流程編排關(guān)系, 此說明中才以表2的形式進(jìn)行展示,在實(shí)際應(yīng)用中,表2的內(nèi)容可以鏈表的形式進(jìn)行存儲(chǔ),從而可以適配個(gè)性化的業(yè)務(wù)流程驅(qū)動(dòng),并最終以圖形化的方式輸出,從而可以方便地查看當(dāng)前處理的業(yè)務(wù)流程。對(duì)業(yè)務(wù)系統(tǒng)實(shí)例化后的每個(gè)業(yè)務(wù)流程,在編排組件中配置各個(gè)功能節(jié)點(diǎn)之間的流程編排關(guān)系之后,在業(yè)務(wù)系統(tǒng)運(yùn)行的過程中,編排組件就可以對(duì)該業(yè)務(wù)流程進(jìn)行控制,即就可以對(duì)業(yè)務(wù)系統(tǒng)中各個(gè)功能節(jié)點(diǎn)執(zhí)行的先后順序進(jìn)行控制。其控制過程可參見圖3中各步驟所述。圖3為本申請(qǐng)一種實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行方法流程圖。所述方法的執(zhí)行主體可以為具有處理能力的設(shè)備:服務(wù)器或者系統(tǒng)或者裝置,如,上述編排組件,如圖3所示,所述方法具體可以包括:步驟310,接收業(yè)務(wù)系統(tǒng)發(fā)送的詢問請(qǐng)求,該詢問請(qǐng)求中包含業(yè)務(wù)系統(tǒng)當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)以及第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果??蛇x地,在執(zhí)行步驟310之前,所述方法還可以包括在編排組件中啟動(dòng)相應(yīng)的業(yè)務(wù)流程的步驟,包括:步驟a:接收業(yè)務(wù)系統(tǒng)發(fā)送的啟動(dòng)指令。該啟動(dòng)指令中可以包含業(yè)務(wù)流程的名稱。在業(yè)務(wù)系統(tǒng)實(shí)例化后的業(yè)務(wù)流程為“××支付流程”時(shí),則該啟動(dòng)指令中可以包含“××支付流程”。步驟b:根據(jù)啟動(dòng)指令,向業(yè)務(wù)系統(tǒng)返回業(yè)務(wù)系統(tǒng)的首功能節(jié)點(diǎn),以用于業(yè)務(wù)系統(tǒng)執(zhí)行首功能節(jié)點(diǎn)對(duì)應(yīng)的功能,并在執(zhí)行完成首功能節(jié)點(diǎn)之后,向業(yè)務(wù)系統(tǒng)發(fā)送詢問請(qǐng)求。由于業(yè)務(wù)系統(tǒng)可以實(shí)例化多個(gè)業(yè)務(wù)流程,所以編排組件可以根據(jù)啟動(dòng)指令中業(yè)務(wù)系統(tǒng)的名稱,來啟動(dòng)相應(yīng)的業(yè)務(wù)流程。具體地,編排組件在接收到業(yè)務(wù)系統(tǒng)發(fā)送的包含業(yè)務(wù)流程的名稱的啟動(dòng)指令之后,讀取該業(yè)務(wù)流程的首功能節(jié)點(diǎn),并將該首功能節(jié)點(diǎn)返回給業(yè)務(wù)系統(tǒng)。如,前述例子中,可以從表1中讀取“××支付流程”的首功能節(jié)點(diǎn)“鑒權(quán)”,并將該首功能節(jié)點(diǎn)“鑒權(quán)”返回給業(yè)務(wù)系統(tǒng)。業(yè)務(wù)系統(tǒng)在接收到該首功能節(jié)點(diǎn)之后,就可以執(zhí)行該首功 能節(jié)點(diǎn)對(duì)應(yīng)的功能,并在執(zhí)行完成首功能節(jié)點(diǎn)之后,向業(yè)務(wù)系統(tǒng)發(fā)送詢問請(qǐng)求,以獲取待執(zhí)行的操作指令或者待執(zhí)行的操作指令以及第二功能節(jié)點(diǎn)?;氐讲襟E310中,以當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)為圖2中的“預(yù)授權(quán)”為例來說,且假設(shè)該第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果為表示失敗的信息,如,“fail”。則步驟310中的詢問請(qǐng)求中可以包含“預(yù)授權(quán)”和“fail”兩部分內(nèi)容。步驟320,根據(jù)第一功能節(jié)點(diǎn)以及執(zhí)行結(jié)果,從預(yù)設(shè)的存儲(chǔ)單元中讀取待執(zhí)行的操作指令。此處的操作指令是指執(zhí)行完成當(dāng)前功能節(jié)點(diǎn)對(duì)應(yīng)的功能之后額外執(zhí)行的動(dòng)作,完全支持自定義配置。對(duì)于不同的操作指令,編排組件可以以枚舉值的形式向業(yè)務(wù)系統(tǒng)返回,由業(yè)務(wù)系統(tǒng)識(shí)別并處理。此處,預(yù)設(shè)的存儲(chǔ)單元可以用于存儲(chǔ)業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn)、各個(gè)功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令以及部分功能節(jié)點(diǎn)的操作指令的執(zhí)行條件。在一個(gè)例子中,該預(yù)設(shè)的存儲(chǔ)單元可以如表1和表2所示,當(dāng)然,在實(shí)際應(yīng)用中,表1和表2中的內(nèi)容也可以存儲(chǔ)在一起。表2中,“鑒權(quán)”、“代扣”、“預(yù)授權(quán)”以及“請(qǐng)款”即為業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn);“continue”和“finish”為上述操作指令,其中,“continue”為執(zhí)行指令,“finish”為結(jié)束指令,也即上述操作指令包括兩種類型:執(zhí)行指令和結(jié)束指令??蛇x地,當(dāng)預(yù)設(shè)的存儲(chǔ)單元中存儲(chǔ)的操作指令為執(zhí)行指令時(shí),則預(yù)設(shè)的存儲(chǔ)單元中還可以包括執(zhí)行指令執(zhí)行的第二功能節(jié)點(diǎn),如,表1中的“代扣”和“預(yù)授權(quán)”為“鑒權(quán)”的執(zhí)行指令執(zhí)行的第二功能節(jié)點(diǎn),“請(qǐng)款”為“預(yù)授權(quán)”的執(zhí)行指令執(zhí)行的第二功能節(jié)點(diǎn)。表1中,“if(鑒權(quán)結(jié)果=="success")”和“if(鑒權(quán)結(jié)果=="fail")”為對(duì)應(yīng)于“鑒權(quán)”的執(zhí)行指令的執(zhí)行條件,“if(預(yù)授權(quán)結(jié)果=="success")”為對(duì)應(yīng)于“預(yù)授權(quán)”的執(zhí)行指令的執(zhí)行條件,“if(鑒權(quán)結(jié)果=="fail")”為對(duì)應(yīng)于“預(yù)授權(quán)”的結(jié)束指令的執(zhí)行條件。步驟320進(jìn)一步還可以包括:步驟x:將第一功能節(jié)點(diǎn)與預(yù)設(shè)的存儲(chǔ)單元中的各個(gè)功能節(jié)點(diǎn)進(jìn)行比對(duì)。參見圖4所示的編排組件的內(nèi)部處理流程示意圖,圖4中,編排組件根據(jù)第一功能節(jié)點(diǎn)以及執(zhí)行結(jié)果從預(yù)設(shè)的存儲(chǔ)單元中篩選唯一記錄。如前述例子,可以將第一功能節(jié)點(diǎn)“預(yù)授權(quán)”與表1中的各個(gè)功能節(jié)點(diǎn)進(jìn)行比對(duì)。步驟y:若與任一功能節(jié)點(diǎn)相一致,則讀取任一功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令。因?yàn)樵摰谝还δ芄?jié)點(diǎn)與表1中的功能節(jié)點(diǎn)“預(yù)授權(quán)”比對(duì)一致,所以可以讀取該功能節(jié)點(diǎn)對(duì)應(yīng)的兩個(gè)操作指令,該兩個(gè)操作指令分別為“continue”和“finish”。需要說明的是,在實(shí)際應(yīng)用中,此處讀取的多個(gè)操作指令也可以相同,如,在第一功能節(jié)點(diǎn)為“鑒權(quán)”時(shí),則從表1中讀取的兩個(gè)操作指令相同,如,均為“continue”。步驟z:當(dāng)讀取的操作指令的個(gè)數(shù)為多個(gè)時(shí),則將執(zhí)行結(jié)果與多個(gè)操作指令的執(zhí)行條件進(jìn)行匹配,若執(zhí)行結(jié)果與第一操作指令的執(zhí)行條件相匹配,則將第一操作指令選取為待執(zhí)行的操作指令。此處的第一操作指令可以為上述任一功能節(jié)點(diǎn)的任一操作指令。前述例子中,讀取的操作指令的個(gè)數(shù)為兩個(gè),因此可以將步驟310中的執(zhí)行結(jié)果“fail”與上述讀取的兩個(gè)操作指令的執(zhí)行條件進(jìn)行匹配,因?yàn)閳?zhí)行結(jié)果滿足功能節(jié)點(diǎn)“預(yù)授權(quán)”的第二個(gè)操作指令的執(zhí)行條件,也即該執(zhí)行結(jié)果與“預(yù)授權(quán)”第二個(gè)操作指令的執(zhí)行條件相匹配,所以可以將“預(yù)授權(quán)”的第二個(gè)操作指令選取為待執(zhí)行的操作指令,即將“finish”選取為待執(zhí)行的操作指令。需要說明的是,在將執(zhí)行結(jié)果與表1中的執(zhí)行條件進(jìn)行匹配的過程中,可以通過第三方表達(dá)式解析引擎來對(duì)執(zhí)行條件進(jìn)行解析,其中,第三方表達(dá)式解析引擎可以為groovy或者qlexpress等。步驟330,若操作指令為結(jié)束指令,則向業(yè)務(wù)系統(tǒng)返回結(jié)束指令,結(jié)束指令用于指示業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行。圖4中,在篩選出唯一記錄之后,就可以讀取對(duì)應(yīng)的操作指令。如前述例子,讀取的操作指令為“finish”,也即讀取的操作指令為結(jié)束指令;編排組件可以將該結(jié)束指令返回給業(yè)務(wù)系統(tǒng),業(yè)務(wù)系統(tǒng)在接收到該結(jié)束指令之后,不再向編排組件發(fā)送詢問請(qǐng)求,也即“××支付流程”的一次執(zhí)行過程結(jié)束,也即業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行。步驟340,若操作指令為執(zhí)行指令,則讀取待執(zhí)行的第二功能節(jié)點(diǎn),并向業(yè)務(wù)系統(tǒng)返回執(zhí)行指令以及第二功能節(jié)點(diǎn),執(zhí)行指令用于指示業(yè)務(wù)系統(tǒng)執(zhí)行第二功能節(jié)點(diǎn)對(duì)應(yīng)的功能。其中,步驟340中讀取待執(zhí)行的第二功能節(jié)點(diǎn),具體為:根據(jù)第一功能節(jié)點(diǎn)、執(zhí)行結(jié)果以及執(zhí)行指令,從預(yù)設(shè)的存儲(chǔ)單元中,讀取執(zhí)行指令執(zhí)行的功能節(jié)點(diǎn);將執(zhí)行指令執(zhí)行的功能節(jié)點(diǎn)選取為待執(zhí)行的第二功能節(jié)點(diǎn)。圖4中,當(dāng)讀取的操作指令為執(zhí)行指令,則還可以讀取該操作指令執(zhí)行的功能節(jié)點(diǎn)。如前述例子,假設(shè)步驟310中的執(zhí)行結(jié)果為“success”,即該執(zhí)行結(jié)果為用于表示執(zhí)行成功的信息,則因?yàn)閳?zhí)行結(jié)果滿足功能節(jié)點(diǎn)“預(yù)授權(quán)”的第一個(gè)操作指令的執(zhí)行條件,也即該執(zhí)行結(jié)果與“預(yù)授權(quán)”的第一個(gè)操作指令的執(zhí)行條件相匹配,所以可以將“預(yù)授權(quán)”的第一個(gè)操作指令選取為待執(zhí)行的操作指令,即將“continue”選取為待執(zhí)行的操作指令,也即操作指令為執(zhí)行指令。則可以將“預(yù)授權(quán)”、“success”以及“continue”與表1中的各個(gè)功能節(jié)點(diǎn)、執(zhí)行條件以及操作指令進(jìn)行比對(duì),因?yàn)榕c表1中第四行記錄相匹配,因此可以將第四行記錄中的“請(qǐng)款”讀取為待執(zhí)行的第二功能節(jié)點(diǎn)。編排組件讀取執(zhí)行指令以及待執(zhí)行的第二功能節(jié)點(diǎn)之后,可以將執(zhí)行指令以及待執(zhí)行的第二功能節(jié)點(diǎn)返回給業(yè)務(wù)系統(tǒng);從而由業(yè)務(wù)系統(tǒng)執(zhí)行“請(qǐng)款”對(duì)應(yīng)的功能。需要說明的是,因?yàn)闃I(yè)務(wù)系統(tǒng)此時(shí)并沒有接收到結(jié)束指令,所以其在執(zhí)行完成“請(qǐng)款”對(duì)應(yīng)的功能之后,可以再次向編排組件發(fā)送詢問請(qǐng) 求,該詢問請(qǐng)求中可以包含“請(qǐng)款”以及“請(qǐng)款”的執(zhí)行結(jié)果,因?yàn)楸?中與該功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令沒有相應(yīng)的執(zhí)行條件,所以,無論“請(qǐng)款”的執(zhí)行結(jié)果為“success”或者“fail”,編排組件都會(huì)向業(yè)務(wù)系統(tǒng)返回結(jié)束指令,從而業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行??梢岳斫獾氖牵旧暾?qǐng)中業(yè)務(wù)系統(tǒng)運(yùn)行結(jié)束的條件是接收到結(jié)束指令。舉例來說,表1中,業(yè)務(wù)系統(tǒng)會(huì)在執(zhí)行“代扣”對(duì)應(yīng)的功能之后、在執(zhí)行“預(yù)授權(quán)”對(duì)應(yīng)的功能失敗之后以及在執(zhí)行“請(qǐng)款”對(duì)應(yīng)的功能之后接收到結(jié)束指令,所以業(yè)務(wù)系統(tǒng)在上述三種情況下會(huì)結(jié)束“××支付流程”的執(zhí)行過程。綜上,本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)系統(tǒng)的運(yùn)行方法,在業(yè)務(wù)系統(tǒng)執(zhí)行完成當(dāng)前的第一功能節(jié)點(diǎn)之后,通過發(fā)送詢問請(qǐng)求的方式,來獲取待執(zhí)行的操作指令或者待執(zhí)行的操作指令以及第二功能節(jié)點(diǎn),直至業(yè)務(wù)系統(tǒng)運(yùn)行結(jié)束。也即本申請(qǐng)采用了將流程編排部分從業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)代碼中抽離出來的思想,即將功能節(jié)點(diǎn)的實(shí)現(xiàn)功能與功能節(jié)點(diǎn)之間的流程編排功能解耦,也即業(yè)務(wù)系統(tǒng)只負(fù)責(zé)實(shí)現(xiàn)功能節(jié)點(diǎn)的實(shí)現(xiàn),而各個(gè)功能節(jié)點(diǎn)的執(zhí)行順序由流程編碼部分的代碼實(shí)現(xiàn),從而真正簡(jiǎn)化了業(yè)務(wù)系統(tǒng)的設(shè)計(jì),提高了業(yè)務(wù)系統(tǒng)運(yùn)行的效率。此外,本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)系統(tǒng)的運(yùn)行方法,可以直接渲染成業(yè)務(wù)流程圖,從而可以方便的統(tǒng)計(jì)一個(gè)功能節(jié)點(diǎn)被多少業(yè)務(wù)流程使用等;另外,當(dāng)業(yè)務(wù)系統(tǒng)的任一功能節(jié)點(diǎn)發(fā)生變更,本申請(qǐng)的方法可以方便地統(tǒng)計(jì)出其所影響的業(yè)務(wù)流程,從而可以評(píng)估影響面。與上述業(yè)務(wù)系統(tǒng)的運(yùn)行方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種業(yè)務(wù)系統(tǒng)的運(yùn)行裝置,如圖5所示,該裝置包括:接收單元501,用于接收業(yè)務(wù)系統(tǒng)發(fā)送的詢問請(qǐng)求,所述詢問請(qǐng)求中包含所述業(yè)務(wù)系統(tǒng)當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)以及所述第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果。讀取單元502,用于根據(jù)接收單元501接收的所述第一功能節(jié)點(diǎn)以及所述執(zhí)行結(jié)果,從預(yù)設(shè)的存儲(chǔ)單元中讀取待執(zhí)行的操作指令,所述預(yù)設(shè)的存儲(chǔ)單 元用于存儲(chǔ)所述業(yè)務(wù)系統(tǒng)的各個(gè)功能節(jié)點(diǎn)、各個(gè)功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令以及部分功能節(jié)點(diǎn)的操作指令的執(zhí)行條件。其中,讀取單元502具體用于:將所述第一功能節(jié)點(diǎn)與所述預(yù)設(shè)的存儲(chǔ)單元中的各個(gè)功能節(jié)點(diǎn)進(jìn)行比對(duì);若與任一功能節(jié)點(diǎn)相一致,則讀取所述任一功能節(jié)點(diǎn)對(duì)應(yīng)的操作指令;當(dāng)讀取的操作指令的個(gè)數(shù)為多個(gè)時(shí),則將所述執(zhí)行結(jié)果與所述多個(gè)操作指令的執(zhí)行條件進(jìn)行匹配,若所述執(zhí)行結(jié)果與所述第一操作指令的執(zhí)行條件相匹配,則將所述第一操作指令選取為待執(zhí)行的操作指令。發(fā)送單元503,用于若讀取單元502讀取的所述操作指令為結(jié)束指令,則向所述業(yè)務(wù)系統(tǒng)返回所述結(jié)束指令,所述結(jié)束指令用于指示所述業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行。發(fā)送單元503,還用于若讀取單元502讀取的所述操作指令為執(zhí)行指令,則讀取待執(zhí)行的第二功能節(jié)點(diǎn),并向所述業(yè)務(wù)系統(tǒng)返回所述執(zhí)行指令以及所述第二功能節(jié)點(diǎn),所述執(zhí)行指令用于指示所述業(yè)務(wù)系統(tǒng)執(zhí)行所述第二功能節(jié)點(diǎn)對(duì)應(yīng)的功能??蛇x地,當(dāng)所述預(yù)設(shè)的存儲(chǔ)單元中存儲(chǔ)的操作指令為執(zhí)行指令時(shí),所述預(yù)設(shè)的存儲(chǔ)單元還包括所述執(zhí)行指令執(zhí)行的功能節(jié)點(diǎn)。可選地,所述讀取待執(zhí)行的第二功能節(jié)點(diǎn),具體為:根據(jù)所述第一功能節(jié)點(diǎn)、所述執(zhí)行結(jié)果以及所述執(zhí)行指令,從所述預(yù)設(shè)的存儲(chǔ)單元中,讀取所述執(zhí)行指令執(zhí)行的功能節(jié)點(diǎn);將所述執(zhí)行指令執(zhí)行的功能節(jié)點(diǎn)選取為所述待執(zhí)行的第二功能節(jié)點(diǎn)??蛇x地,接收單元501,還用于接收所述業(yè)務(wù)系統(tǒng)發(fā)送的啟動(dòng)指令。發(fā)送單元503,還用于根據(jù)接收單元501接收的所述啟動(dòng)指令,向所述業(yè)務(wù)系統(tǒng)返回所述業(yè)務(wù)系統(tǒng)的首功能節(jié)點(diǎn),以用于所述業(yè)務(wù)系統(tǒng)執(zhí)行所述首功能節(jié)點(diǎn)對(duì)應(yīng)的功能,并在執(zhí)行完成所述首功能節(jié)點(diǎn)之后,向所述業(yè)務(wù)系統(tǒng)發(fā) 送所述詢問請(qǐng)求。本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過上述方法實(shí)施例的各步驟來實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過程,在此不復(fù)贅述。本申請(qǐng)實(shí)施例提供的業(yè)務(wù)系統(tǒng)的運(yùn)行裝置,接收單元501接收業(yè)務(wù)系統(tǒng)發(fā)送的詢問請(qǐng)求,所述詢問請(qǐng)求中包含所述業(yè)務(wù)系統(tǒng)當(dāng)前執(zhí)行完成的第一功能節(jié)點(diǎn)以及所述第一功能節(jié)點(diǎn)的執(zhí)行結(jié)果;讀取單元502所述第一功能節(jié)點(diǎn)以及所述執(zhí)行結(jié)果,從預(yù)設(shè)的存儲(chǔ)單元中讀取待執(zhí)行的操作指令;若所述操作指令為結(jié)束指令,發(fā)送單元503向所述業(yè)務(wù)系統(tǒng)返回所述結(jié)束指令,所述結(jié)束指令用于指示所述業(yè)務(wù)系統(tǒng)結(jié)束運(yùn)行;若所述操作指令為執(zhí)行指令,發(fā)送單元503讀取待執(zhí)行的第二功能節(jié)點(diǎn),并向所述業(yè)務(wù)系統(tǒng)返回所述執(zhí)行指令以及所述第二功能節(jié)點(diǎn),所述執(zhí)行指令用于指示所述業(yè)務(wù)系統(tǒng)執(zhí)行所述第二功能節(jié)點(diǎn)對(duì)應(yīng)的功能。由此,可以提高業(yè)務(wù)系統(tǒng)運(yùn)行的效率。專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的對(duì)象及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請(qǐng)的范圍。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或
技術(shù)領(lǐng)域:
內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。以上所述的具體實(shí)施方式,對(duì)本申請(qǐng)的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本申請(qǐng)的具體實(shí)施方式而 已,并不用于限定本申請(qǐng)的保護(hù)范圍,凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。當(dāng)前第1頁12