專利名稱:一種支持組合業(yè)務(wù)的工作流引擎的制作方法
一種支持組合業(yè)務(wù)的工作流引擎
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域的工作流技術(shù),尤其涉及一種支持組合業(yè)務(wù)的工作流引擎。
背景技術(shù):
隨著3G牌照的發(fā)放,電信各企業(yè)紛紛推出全業(yè)務(wù)服務(wù),導(dǎo)致了電信企業(yè)間競(jìng)爭(zhēng)的加劇。為了挽留和發(fā)展更多的客戶,電信企業(yè)推出的各種業(yè)務(wù)也越來(lái)越復(fù)雜,尤其是套餐的推出和多個(gè)業(yè)務(wù)的捆綁銷(xiāo)售,導(dǎo)致了流程中和流程間存在大量的同步控制問(wèn)題,這也對(duì)業(yè)務(wù)支撐系統(tǒng)中的工作流提出了更高要求。工作流引擎是一個(gè)軟件系統(tǒng),是工作流系統(tǒng)中的重要組成部分,主要完成流程實(shí)例的路由控制,即流程中涉及到的任務(wù)的流轉(zhuǎn)。當(dāng)前主要采用的機(jī)制包括事件驅(qū)動(dòng)、狀態(tài)驅(qū)動(dòng),其中,屬于狀態(tài)驅(qū)動(dòng)的Petri網(wǎng)是一種適合于描述異步并發(fā)現(xiàn)象的計(jì)算機(jī)系統(tǒng)模型,因此很多電信企業(yè)和工作流廠商采用Petri網(wǎng)做為流程建模語(yǔ)言,以便與解決電信業(yè)務(wù)中的流程同步問(wèn)題。但是傳統(tǒng)Petri網(wǎng)有一些明顯的缺點(diǎn),如模型變得龐大而難以理解、只能表示單一的流程實(shí)例等。為此,專家們提出了染色Petri網(wǎng),這是對(duì)Petri網(wǎng)的一種擴(kuò)展,通過(guò)增加顏色集合以及對(duì)庫(kù)所中的托肯token增加顏色的描述,達(dá)到簡(jiǎn)化模型、以及同時(shí)描述多個(gè)流程實(shí)例的目的。染色Petri網(wǎng)雖然能解決多個(gè)流程實(shí)例的流程同步問(wèn)題,但是在基于染色Petri網(wǎng)理論進(jìn)行工作流引擎的開(kāi)發(fā)過(guò)程中,不可避免的出現(xiàn)了工作流引擎與業(yè)務(wù)環(huán)境的緊耦合關(guān)系,造成了工作流引擎的通用性降低。原因在于Petri網(wǎng)主要是一種控制模型,關(guān)注的是控制流,并不能表達(dá)流程控制過(guò)程中需要的數(shù)據(jù),而由于電信系統(tǒng)中流程的復(fù)雜性,流程同步的控制往往與實(shí)際系統(tǒng)中的各種業(yè)務(wù)數(shù)據(jù)有很緊密的關(guān)系,例如,在業(yè)務(wù)種類(lèi)不同和客戶要求不同的情況下,需要同步的流程個(gè)數(shù)不同。為此,很多工作流引擎為了適應(yīng)復(fù)雜的控制要求,對(duì)Petri網(wǎng)系統(tǒng)進(jìn)行了改造,在模型中增加了具體業(yè)務(wù)數(shù)據(jù)的表示,例如一個(gè)訂單包含的產(chǎn)品類(lèi)型、產(chǎn)品個(gè)數(shù)、產(chǎn)品相關(guān)的資源條件等。這樣做的好處在于不但能充分利用Petri網(wǎng)的嚴(yán)格形式定義和直觀圖形表示的優(yōu)勢(shì),還能夠?qū)崿F(xiàn)復(fù)雜流程的同步控制。但這種改進(jìn)方式同時(shí)也導(dǎo)致了業(yè)務(wù)過(guò)程與業(yè)務(wù)邏輯的耦合度增加,導(dǎo)致控制流與數(shù)據(jù)流的耦合度增強(qiáng)。當(dāng)工作流產(chǎn)品面對(duì)不同使用客戶時(shí),都要進(jìn)行大規(guī)模的改造,這在一定程度上也降低了工作流引擎的通用性和靈活性。現(xiàn)有技術(shù)中提供了一解決電信組合業(yè)務(wù)中的多種流程同步問(wèn)題,見(jiàn)公開(kāi)號(hào)為CN101630388,
公開(kāi)日為2010.01.20的中國(guó)專利“基于多級(jí)染色托肯的復(fù)雜業(yè)務(wù)流程同步控制的方法”,該發(fā)明的特征在于包括同步分解和同步合并兩個(gè)階段,在利用染色Petri網(wǎng)做為建模語(yǔ)言的過(guò)程中,不需要增加業(yè)務(wù)數(shù)據(jù)的描述,僅需要對(duì)染色托肯增加兩個(gè)屬性的描述托肯級(jí)別、需要同步的托肯個(gè)數(shù),通過(guò)不同級(jí)別上的顏色和同一級(jí)別上需要同步的托肯個(gè)數(shù),來(lái)解決電信組合業(yè)務(wù)中的多種流程同步問(wèn)題。其主要是基于多級(jí)染色托肯和對(duì)染色托肯增加兩個(gè)屬性的描述來(lái)實(shí)現(xiàn)的。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題,在于提供一種支持組合業(yè)務(wù)的工作流引擎,該引擎基于Petri網(wǎng)理論,并在此基礎(chǔ)上進(jìn)行了改進(jìn),其不但可以實(shí)現(xiàn)單個(gè)流程的流程實(shí)例控制,對(duì)電信組合業(yè)務(wù)中的多種流程同步問(wèn)題也進(jìn)行很好的支持。本發(fā)明是這樣實(shí)現(xiàn)的一種支持組合業(yè)務(wù)的工作流引擎,包括接口層、控制層、實(shí)體層、存儲(chǔ)層以及用于存儲(chǔ)業(yè)務(wù)的流程實(shí)例的數(shù)據(jù)庫(kù);所述工作流引擎部署后,通過(guò)所述接口層接收電信業(yè)務(wù)系統(tǒng)或其他接口系統(tǒng)發(fā)送的業(yè)務(wù)信息,所述其他接口系統(tǒng)包括資源管理系統(tǒng)、服務(wù)開(kāi)通管理系統(tǒng)、計(jì)費(fèi)帳務(wù)系統(tǒng),所述業(yè)務(wù)信息包括業(yè)務(wù)的流程實(shí)例、流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況;所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息后,根據(jù)支持組合業(yè)務(wù)的流程路由控制方法,來(lái)控制業(yè)務(wù)的流程實(shí)例的生成、調(diào)度、分解、合并、結(jié)束;并確定業(yè)務(wù)的流程實(shí)例是自動(dòng)流轉(zhuǎn)到下一個(gè)環(huán)節(jié),還是需要原地等待;同時(shí)所述控制層調(diào)用所述實(shí)體層提供的方法記錄流程實(shí)例的當(dāng)前環(huán)節(jié)的完成情況以及所述流程路由控制方法確定的流轉(zhuǎn)結(jié)果,流程結(jié)果通過(guò)所述接口層返回;所述實(shí)體層提供的方法為對(duì)工作流引擎內(nèi)部所描述的管理對(duì)象的新增、修改、刪除和查詢的操作,所述管理對(duì)象包括業(yè)務(wù)的流程實(shí)例對(duì)象、流程路由對(duì)象、流程實(shí)例的當(dāng)前環(huán)節(jié)對(duì)象、流程任務(wù)對(duì)象;其中,所述流程任務(wù)對(duì)象描述每個(gè)流程實(shí)例的環(huán)節(jié)執(zhí)行的具體任務(wù);所述存儲(chǔ)層通過(guò)所述數(shù)據(jù)庫(kù)持久性的保存所述業(yè)務(wù)的流程實(shí)例信息。進(jìn)一步地,所述接口層提供了三種方式的接口,包括API接口、Corta接口、WebService接口,便于工作流引擎與電信業(yè)務(wù)系統(tǒng)的銜接。進(jìn)一步地,所述支持組合業(yè)務(wù)的流程路由控制方法具體包括如下步驟步驟1.首先所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息,即業(yè)務(wù)的流程實(shí)例、該流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況后,判斷所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型如果是組合業(yè)務(wù)類(lèi)型,業(yè)務(wù)的流程實(shí)例采用SFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用FIS表示,調(diào)用所述實(shí)體層的方法修改FIS的狀態(tài)為“完成”,并判斷FIS是否屬于流程的結(jié)束環(huán)節(jié),如果是,返回接口層,并結(jié)束操作,否,執(zhí)行步驟2;如果所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型是獨(dú)立的子業(yè)務(wù)類(lèi)型,則業(yè)務(wù)的流程實(shí)例采用DSFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用DFIS表示,執(zhí)行步驟5;步驟2.根據(jù)預(yù)定義的路由規(guī)則,獲取所述業(yè)務(wù)的流程實(shí)例SFI的下一個(gè)環(huán)節(jié)NEXT_FIS,根據(jù)組合業(yè)務(wù)規(guī)則,判斷NEXT_FIS是否屬于業(yè)務(wù)分解環(huán)節(jié),如果不是,轉(zhuǎn)而執(zhí)行步驟3 ;是,則根據(jù)組合業(yè)務(wù)規(guī)則將SFI分解生成η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例,分解生成的η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例采用DSFIi表示,其i是1 < i < η的整數(shù),每個(gè)DSFIi對(duì)應(yīng)一個(gè)獨(dú)立的電信子業(yè)務(wù);生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIi的起始環(huán)節(jié)根據(jù)組合業(yè)務(wù)規(guī)則生成;分解完成后,組合業(yè)務(wù)流程暫停,執(zhí)行多個(gè)獨(dú)立子業(yè)務(wù)的DSFIi的流程控制,把組合業(yè)務(wù)規(guī)則中定義的DSFIi的起始環(huán)節(jié)設(shè)定為DSFIi的當(dāng)前環(huán)節(jié)FISl ;對(duì)每一個(gè)流程實(shí)例DSFIi (1彡i彡η),分別執(zhí)行步驟4 ;步驟3.判斷所述NEXT_FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和NEXT_FIS ;否則,調(diào)用實(shí)體層的方法修改下一環(huán)節(jié)NEXT_FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟4.判斷FISl環(huán)節(jié)需要執(zhí)行的任務(wù)的類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFIi和FISl ;否則,調(diào)用實(shí)體層的方法修改FISl的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟5.根據(jù)組合業(yè)務(wù)規(guī)則判斷DFIS是否屬于獨(dú)立子業(yè)務(wù)結(jié)束環(huán)節(jié),如果不是,直接執(zhí)行步驟6 ;如果是,執(zhí)行步驟7 ;步驟6.調(diào)用實(shí)體層的方法修改DFIS的狀態(tài)為“完成”,根據(jù)預(yù)定義的路由規(guī)則,獲取DSFI下一個(gè)需要執(zhí)行的環(huán)節(jié)NEXT_DFIS,判斷NEXT_DFIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFI和NEXT_DFIS;否則,調(diào)用實(shí)體層的方法修改NEXT_DFIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟7.根據(jù)DSFI查找所有關(guān)聯(lián)的被分解生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIid ^ i ^n)是否都已經(jīng)到達(dá)當(dāng)前環(huán)節(jié)DFIS,如果不是,調(diào)用實(shí)體層的方法修改當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“等待”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;如果是,進(jìn)行DSFIl到DSFIn的所有流程實(shí)例的合并,此時(shí)獨(dú)立子業(yè)務(wù)流程實(shí)例的路由選擇已結(jié)束,所述合并方法為調(diào)用實(shí)體層的方法修改DSFIl到DSFIn的所有獨(dú)立子業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“結(jié)束”,然后根據(jù)組合業(yè)務(wù)規(guī)則找到對(duì)應(yīng)的組合業(yè)務(wù)合并環(huán)節(jié),該合并環(huán)節(jié)即為組合業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)FIS,DSFI對(duì)應(yīng)的組合業(yè)務(wù)流程實(shí)例為SFI,判斷FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和FIS ;否則,調(diào)用實(shí)體層的方法修改FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作。進(jìn)一步地,所述組合業(yè)務(wù)規(guī)則采用GSR表示=GSR = {GS,SG, A,GSS, SS, SE, GSE},其中GS表示組合業(yè)務(wù),SG是一個(gè)集合,其表示GS下屬的獨(dú)立子業(yè)務(wù),A表示組合業(yè)務(wù)當(dāng)前執(zhí)行的操作,GSS表示組合業(yè)務(wù)的分解環(huán)節(jié),SS表示獨(dú)立子業(yè)務(wù)的起始環(huán)節(jié),SE表示獨(dú)立子業(yè)務(wù)的結(jié)束環(huán)節(jié),GSE表示組合業(yè)務(wù)的合并環(huán)節(jié)。進(jìn)一步地,預(yù)定義的路由規(guī)則采用FDR表示FDR= {S,T,F(xiàn),C,M},其中,T表示業(yè)務(wù)流程實(shí)例中每個(gè)步驟需要執(zhí)行的任務(wù),S表示每個(gè)步驟執(zhí)行前或者執(zhí)行后的流程實(shí)例的狀態(tài),F(xiàn)表示S與T之間的關(guān)聯(lián)關(guān)系,C表示流程實(shí)例的屬性,M表示流程實(shí)例的初始集合。本發(fā)明具有如下優(yōu)點(diǎn)本發(fā)明包括接口層、控制層、實(shí)體層、存儲(chǔ)層;其提供工作流引擎接口的接口層,用于接收業(yè)務(wù)信息和返回消息;控制層,控制流程實(shí)例的生成、調(diào)度、分解、合并、結(jié)束等;實(shí)體層,提供對(duì)流程實(shí)例信息的訪問(wèn),包括提供新增、修改和查詢方法;存儲(chǔ)層,通過(guò)數(shù)據(jù)庫(kù)的持久性保存流程實(shí)例信息。本發(fā)明的控制層的流程控制可針對(duì)組合業(yè)務(wù)進(jìn)行分解操作,針對(duì)已分解的子業(yè)務(wù)進(jìn)行業(yè)務(wù)合并操作。該引擎不但可以實(shí)現(xiàn)單個(gè)流
6程的流程實(shí)例控制,對(duì)電信組合業(yè)務(wù)中的多種流程同步問(wèn)題也進(jìn)行很好的支持。且本發(fā)明不增加業(yè)務(wù)數(shù)據(jù)的描述,僅僅通過(guò)流程實(shí)例的維度屬性就可以對(duì)需要同步的流程實(shí)例進(jìn)行控制,最大限度的把控制流與數(shù)據(jù)流進(jìn)行分離,使得工作流引擎本身的通用性增強(qiáng)。
圖1為本發(fā)明工作流引擎的框架圖。圖2為本發(fā)明的支持組合業(yè)務(wù)的流程路由控制方法的處理流程圖。圖3為本發(fā)明第一實(shí)施例的組合業(yè)務(wù)的分解與合并過(guò)程。
具體實(shí)施方式請(qǐng)參閱圖1所示,本發(fā)明的一種支持組合業(yè)務(wù)的工作流引擎,包括接口層、控制層、實(shí)體層、存儲(chǔ)層以及用于存儲(chǔ)業(yè)務(wù)的流程實(shí)例的數(shù)據(jù)庫(kù);所述工作流引擎部署后,通過(guò)所述接口層接收電信業(yè)務(wù)系統(tǒng)(電信業(yè)務(wù)系統(tǒng)一般為客戶關(guān)系管理系統(tǒng))或其他接口系統(tǒng)發(fā)送的業(yè)務(wù)信息,所述其他接口系統(tǒng)包括資源管理系統(tǒng)、服務(wù)開(kāi)通管理系統(tǒng)、計(jì)費(fèi)帳務(wù)系統(tǒng);所述接口層提供了三種方式的接口,包括API接口、Corba接口、Webkrvice接口,便于工作流引擎與電信業(yè)務(wù)系統(tǒng)的銜接;所述業(yè)務(wù)信息包括業(yè)務(wù)的流程實(shí)例、流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況;所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息后,根據(jù)支持組合業(yè)務(wù)的流程路由控制方法,來(lái)控制業(yè)務(wù)的流程實(shí)例的生成、調(diào)度、分解、合并、結(jié)束;并確定業(yè)務(wù)的流程實(shí)例是自動(dòng)流轉(zhuǎn)到下一個(gè)環(huán)節(jié),還是需要原地等待;同時(shí)所述控制層調(diào)用所述實(shí)體層提供的方法記錄流程實(shí)例的當(dāng)前環(huán)節(jié)的完成情況以及所述流程路由控制方法確定的流轉(zhuǎn)結(jié)果,流程結(jié)果通過(guò)所述接口層返回;所述實(shí)體層提供的方法為對(duì)工作流引擎內(nèi)部所描述的管理對(duì)象的新增、修改、刪除和查詢的操作,所述管理對(duì)象包括業(yè)務(wù)的流程實(shí)例對(duì)象、流程路由對(duì)象、流程實(shí)例的當(dāng)前環(huán)節(jié)對(duì)象、流程任務(wù)對(duì)象;其中,所述流程任務(wù)對(duì)象描述每個(gè)流程實(shí)例的環(huán)節(jié)執(zhí)行的具體任務(wù);所述存儲(chǔ)層通過(guò)所述數(shù)據(jù)庫(kù)持久性的保存所述業(yè)務(wù)的流程實(shí)例信息。如圖2所示,其中所述支持組合業(yè)務(wù)的流程路由控制方法具體包括如下步驟步驟1.首先所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息,即業(yè)務(wù)的流程實(shí)例、該流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況后,判斷所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型如果是組合業(yè)務(wù)類(lèi)型,業(yè)務(wù)的流程實(shí)例采用SFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用FIS表示,調(diào)用所述實(shí)體層的方法修改FIS的狀態(tài)為“完成”,并判斷FIS是否屬于流程的結(jié)束環(huán)節(jié),如果是,返回接口層,并結(jié)束操作,否,執(zhí)行步驟2;如果所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型是獨(dú)立的子業(yè)務(wù)類(lèi)型,則業(yè)務(wù)的流程實(shí)例采用DSFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用DFIS表示,執(zhí)行步驟5;步驟2.根據(jù)預(yù)定義的路由規(guī)則,獲取所述業(yè)務(wù)的流程實(shí)例SFI的下一個(gè)環(huán)節(jié)NEXT_FIS,根據(jù)組合業(yè)務(wù)規(guī)則,判斷NEXT_FIS是否屬于業(yè)務(wù)分解環(huán)節(jié),如果不是,轉(zhuǎn)而執(zhí)行步驟3 ;是,則根據(jù)組合業(yè)務(wù)規(guī)則將SFI分解生成η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例,分解生成的η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例采用DSFIi表示,其i是1 < i < η的整數(shù),每個(gè)DSFIi對(duì)應(yīng)一個(gè)獨(dú)立的電信子業(yè)務(wù);生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIi的起始環(huán)節(jié)根據(jù)組合業(yè)務(wù)規(guī)則生成;分解完成后,組合業(yè)務(wù)流程暫停,執(zhí)行多個(gè)獨(dú)立子業(yè)務(wù)的DSFIi的流程控制,把組合業(yè)務(wù)規(guī)則中定義的DSFIi的起始環(huán)節(jié)設(shè)定為DSFIi的當(dāng)前環(huán)節(jié)FISl ;對(duì)每一個(gè)流程實(shí)例DSFIi (1≤i≤η),分別執(zhí)行步驟4 ;步驟3.判斷所述NEXT_FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和NEXT_FIS ;否則,調(diào)用實(shí)體層的方法修改下一環(huán)節(jié)NEXT_FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟4.判斷FISl環(huán)節(jié)需要執(zhí)行的任務(wù)的類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFIi和FISl ;否則,調(diào)用實(shí)體層的方法修改FISl的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟5.根據(jù)組合業(yè)務(wù)規(guī)則判斷DFIS是否屬于獨(dú)立子業(yè)務(wù)結(jié)束環(huán)節(jié),如果不是,直接執(zhí)行步驟6 ;如果是,執(zhí)行步驟7 ;步驟6.調(diào)用實(shí)體層的方法修改DFIS的狀態(tài)為“完成”,根據(jù)預(yù)定義的路由規(guī)則,獲取DSFI下一個(gè)需要執(zhí)行的環(huán)節(jié)NEXT_DFIS,判斷NEXT_DFIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFI和NEXT_DFIS;否則,調(diào)用實(shí)體層的方法修改NEXT_DFIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟7.根據(jù)DSFI查找所有關(guān)聯(lián)的被分解生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIid ≤ i ≤n)是否都已經(jīng)到達(dá)當(dāng)前環(huán)節(jié)DFIS (即當(dāng)前環(huán)節(jié)DFIS為獨(dú)立子業(yè)務(wù)結(jié)束環(huán)節(jié)),如果不是,調(diào)用實(shí)體層的方法修改當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“等待”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;如果是,進(jìn)行DSFIl到DSFh的所有流程實(shí)例的合并,此時(shí)獨(dú)立子業(yè)務(wù)流程實(shí)例的路由選擇已結(jié)束,所述合并方法為調(diào)用實(shí)體層的方法修改DSFIl到DSFIn的所有獨(dú)立子業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“結(jié)束”,然后根據(jù)組合業(yè)務(wù)規(guī)則找到對(duì)應(yīng)的組合業(yè)務(wù)合并環(huán)節(jié),該合并環(huán)節(jié)即為組合業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)FIS,DSFI對(duì)應(yīng)的組合業(yè)務(wù)流程實(shí)例為SFI,判斷FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和FIS ;否則,調(diào)用實(shí)體層的方法修改FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作。這里要說(shuō)明的是所述組合業(yè)務(wù)規(guī)則采用GSR表示GSR = {GS,SG,A,GSS,SS,SE,GSE},其中GS表示組合業(yè)務(wù),SG是一個(gè)集合,其表示GS下屬的獨(dú)立子業(yè)務(wù),A表示組合業(yè)務(wù)當(dāng)前執(zhí)行的操作,GSS表示組合業(yè)務(wù)的分解環(huán)節(jié),SS表示獨(dú)立子業(yè)務(wù)的起始環(huán)節(jié),SE表示獨(dú)立子業(yè)務(wù)的結(jié)束環(huán)節(jié),GSE表示組合業(yè)務(wù)的合并環(huán)節(jié)。預(yù)定義的路由規(guī)則采用FDR表示FDR = {S,Τ, F,C,Μ},其中,T表示業(yè)務(wù)流程實(shí)例中每個(gè)步驟需要執(zhí)行的任務(wù),S表示每個(gè)步驟執(zhí)行前或者執(zhí)行后的流程實(shí)例的狀態(tài),F(xiàn)表示S與T之間的關(guān)聯(lián)關(guān)系,C表示流程實(shí)例的屬性,M表示流程實(shí)例的初始集合。一個(gè)完整的路由規(guī)則包括多個(gè)步驟,流程實(shí)例當(dāng)前被執(zhí)行的步驟稱之為當(dāng)前環(huán)節(jié)。如果當(dāng)前環(huán)節(jié)需要執(zhí)行的任務(wù)不需要人工參與,則由流程引擎自動(dòng)觸發(fā),即流程路由控制方法由流程引擎來(lái)調(diào)用;如果該步驟需要人工參與,則需要等待接口層接收信息,然后觸發(fā)流程路由控制方法的調(diào)用。本發(fā)明中,不需要人工參與的任務(wù)包括自動(dòng)接口處理、定時(shí)等待、組合業(yè)務(wù)的分解、子業(yè)務(wù)的合并。所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息后,根據(jù)支持組合業(yè)務(wù)的流程路由控制方法來(lái)進(jìn)行流程的流轉(zhuǎn),該方法基本思想是針對(duì)組合業(yè)務(wù)和獨(dú)立子業(yè)務(wù)分別進(jìn)行處理如果接收的業(yè)務(wù)的流程實(shí)例是組合業(yè)務(wù),根據(jù)組合業(yè)務(wù)規(guī)則,判斷是否需要分解,若需要分解,則在流程流轉(zhuǎn)到分解環(huán)節(jié)時(shí),進(jìn)行業(yè)務(wù)的拆分;業(yè)務(wù)拆分完成后,組合業(yè)務(wù)流程實(shí)例暫停,被拆分的子業(yè)務(wù)流程實(shí)例開(kāi)始流轉(zhuǎn)。如果不需要分解,則按照預(yù)定義的路由規(guī)則依次執(zhí)行流程中的每個(gè)環(huán)節(jié)。如果接收的業(yè)務(wù)的流程實(shí)例是獨(dú)立子業(yè)務(wù),根據(jù)組合業(yè)務(wù)規(guī)則,判斷是否需要合并,如果不需要,則按照預(yù)定義的路由規(guī)則依次執(zhí)行流程中的每個(gè)環(huán)節(jié);若需要合并,則在所有被拆分的獨(dú)立子業(yè)務(wù)流程流轉(zhuǎn)到合并環(huán)節(jié)時(shí),進(jìn)行業(yè)務(wù)合并;業(yè)務(wù)合并完成后,獨(dú)立子業(yè)務(wù)流程實(shí)例結(jié)束,組合業(yè)務(wù)流程實(shí)例繼續(xù)開(kāi)始流轉(zhuǎn)。為使本發(fā)明的技術(shù)方案更加清楚明白,請(qǐng)參照?qǐng)D3并舉實(shí)施例,對(duì)組合業(yè)務(wù)分解、組合業(yè)務(wù)合并做進(jìn)一步詳細(xì)說(shuō)明。實(shí)施例一組合業(yè)務(wù)規(guī)則GSR = {G01,S01,ADD,T2,T3,T5,T6},其中GOl表示一種組合業(yè)務(wù),SOl表示GOl分解后的獨(dú)立子業(yè)務(wù),ADD表示組合業(yè)務(wù)當(dāng)前執(zhí)行的操作新裝,T2表示組合業(yè)務(wù)流程實(shí)例的分解環(huán)節(jié),T3表示獨(dú)立子業(yè)務(wù)流程實(shí)例的起始環(huán)節(jié),T5表示獨(dú)立子業(yè)務(wù)流程實(shí)例的結(jié)束環(huán)節(jié),T6表示組合業(yè)務(wù)流程實(shí)例的合并環(huán)節(jié)。如圖3所示,為預(yù)定義的路由示意圖,方框表示流程中需要執(zhí)行的不同任務(wù),圓圈表示任務(wù)執(zhí)行前或執(zhí)行后的狀態(tài),圓圈中的點(diǎn)表示業(yè)務(wù)的流程實(shí)例;電信組合業(yè)務(wù)GOl由多個(gè)子業(yè)務(wù)SOl組成,TO、Tl、T4設(shè)為需要人工參與的任務(wù)環(huán)節(jié),T2、T3、T5、T6設(shè)為自動(dòng)執(zhí)
行的任務(wù)環(huán)節(jié);SO、Si、S2........表示流程實(shí)例執(zhí)行完不同任務(wù)后的狀態(tài);GOl類(lèi)型的流
程實(shí)例用SFI表示;黑點(diǎn)表示組合業(yè)務(wù)流程實(shí)例,白點(diǎn)表示被分解的子業(yè)務(wù)流程實(shí)例。從圖中可以看出,前一個(gè)環(huán)節(jié)結(jié)束后的狀態(tài),也就是下一個(gè)環(huán)節(jié)執(zhí)行前的狀態(tài)。執(zhí)行過(guò)程如下1)當(dāng)接口層接收到SFI和TO兩個(gè)參數(shù)后,意味著組合業(yè)務(wù)流程實(shí)例SFI執(zhí)行完了當(dāng)前環(huán)節(jié)T0,流程路由控制方法首先把TO的狀態(tài)Sl置為“完成”,接著判斷Tl是否屬于分解環(huán)節(jié),否,再判斷Tl任務(wù)類(lèi)型;由于Tl需要人工參與,把Sl置為“就緒”,并返回接口層。2)當(dāng)接口層接收到SFI和Tl兩個(gè)參數(shù)后,意味著組合業(yè)務(wù)流程實(shí)例SFI執(zhí)行完了當(dāng)前環(huán)節(jié)Tl,流程路由控制方法首先把Tl的狀態(tài)S2置為“完成”,接著判斷T2是否屬于分解環(huán)節(jié)。由于組合業(yè)務(wù)規(guī)則中描述了 T2,因此可根據(jù)組合業(yè)務(wù)規(guī)則和實(shí)際業(yè)務(wù)信息將SFI分解生成3個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例,分別采用DSFI1、DSFI2、DSFI3表示;分解完成后,組合業(yè)務(wù)流程暫停,SFI的狀態(tài)置為S3 = “暫停”;根據(jù)組合業(yè)務(wù)規(guī)則,3個(gè)獨(dú)立子業(yè)務(wù)的起始環(huán)節(jié)為T(mén)3 ;首先針對(duì)DSFIl判斷T3的類(lèi)型,屬于自動(dòng)環(huán)節(jié),因此可自動(dòng)執(zhí)行T3對(duì)應(yīng)的任務(wù),執(zhí)行完成后,對(duì)于DSFIl可以遞歸調(diào)用流程控制方法,參數(shù)為DSFIl和T3 ;T3下一個(gè)環(huán)節(jié)是T4,由于T4屬于人工環(huán)節(jié),因此DSFIl不可能自動(dòng)執(zhí)行T4,只能停下來(lái),返回接口層,并等待接口層的觸發(fā)。DSFIl的流程執(zhí)行停止后,再依次對(duì)DSFI2、DSFI3做類(lèi)似處理。3)當(dāng)接口層接收到DSFIl和T4兩個(gè)參數(shù)后,意味著子業(yè)務(wù)流程實(shí)例DSFIl執(zhí)行完了當(dāng)前環(huán)節(jié)T4,T4完成后的狀態(tài)S14 = “完成”;根據(jù)路由,找出T4下一個(gè)環(huán)節(jié)T5 ;T5的類(lèi)型,屬于自動(dòng)環(huán)節(jié),因此可自動(dòng)執(zhí)行T5對(duì)應(yīng)的任務(wù),執(zhí)行完成后,對(duì)于DSFIl可以遞歸調(diào)用流程控制方法,參數(shù)為DSFIl和T5。4)在遞歸調(diào)用后,根據(jù)組合業(yè)務(wù)規(guī)則,T5屬于結(jié)束環(huán)節(jié),此時(shí),判斷DSFI2、DSFI3是否都已執(zhí)行完成T5 ;如果沒(méi)有,把T5狀態(tài)S15置為“等待”,返回接口層,等待其他流程實(shí)例的到達(dá);如果DSFI2、DSFI3都已經(jīng)到達(dá),則由DSFIl來(lái)觸發(fā)流程實(shí)例的合并。合并方法如下修改DSFIl到DSFI3的所有獨(dú)立子業(yè)務(wù)流程實(shí)例的T5狀態(tài)為“結(jié)束”,子業(yè)務(wù)流程結(jié)束。然后根據(jù)組合業(yè)務(wù)規(guī)則找到對(duì)應(yīng)的組合業(yè)務(wù)合并環(huán)節(jié)T6,該合并環(huán)節(jié)即為組合業(yè)務(wù)流程實(shí)例SFI的當(dāng)前環(huán)節(jié)。判斷T6類(lèi)型為自動(dòng)環(huán)節(jié),則執(zhí)行T6對(duì)應(yīng)的任務(wù),執(zhí)行完成后,對(duì)于SFI可以遞歸調(diào)用流程控制方法,參數(shù)為SFI和T6。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種支持組合業(yè)務(wù)的工作流引擎,其特征在于,包括接口層、控制層、實(shí)體層、存儲(chǔ)層以及用于存儲(chǔ)業(yè)務(wù)的流程實(shí)例的數(shù)據(jù)庫(kù);所述工作流引擎部署后,通過(guò)所述接口層接收電信業(yè)務(wù)系統(tǒng)或其他接口系統(tǒng)發(fā)送的業(yè)務(wù)信息,所述其他接口系統(tǒng)包括資源管理系統(tǒng)、服務(wù)開(kāi)通管理系統(tǒng)、計(jì)費(fèi)帳務(wù)系統(tǒng),所述業(yè)務(wù)信息包括業(yè)務(wù)的流程實(shí)例、流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況;所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息后,根據(jù)支持組合業(yè)務(wù)的流程路由控制方法,來(lái)控制業(yè)務(wù)的流程實(shí)例的生成、調(diào)度、分解、合并、結(jié)束;并確定業(yè)務(wù)的流程實(shí)例是自動(dòng)流轉(zhuǎn)到下一個(gè)環(huán)節(jié),還是需要原地等待;同時(shí)所述控制層調(diào)用所述實(shí)體層提供的方法記錄流程實(shí)例的當(dāng)前環(huán)節(jié)的完成情況以及所述流程路由控制方法確定的流轉(zhuǎn)結(jié)果,流程結(jié)果通過(guò)所述接口層返回;所述實(shí)體層提供的方法為對(duì)工作流引擎內(nèi)部所描述的管理對(duì)象的新增、修改、刪除和查詢的操作,所述管理對(duì)象包括業(yè)務(wù)的流程實(shí)例對(duì)象、流程路由對(duì)象、流程實(shí)例的當(dāng)前環(huán)節(jié)對(duì)象、流程任務(wù)對(duì)象;其中,所述流程任務(wù)對(duì)象描述每個(gè)流程實(shí)例的環(huán)節(jié)執(zhí)行的具體任務(wù);所述存儲(chǔ)層通過(guò)所述數(shù)據(jù)庫(kù)持久性的保存所述業(yè)務(wù)的流程實(shí)例信息ο
2.根據(jù)權(quán)利要求1所述的一種支持組合業(yè)務(wù)的工作流引擎,其特征在于所述接口層提供了三種方式的接口,包括API接口、C0rta接口 JebService接口,便于工作流引擎與電信業(yè)務(wù)系統(tǒng)的銜接。
3.根據(jù)權(quán)利要求1所述的一種支持組合業(yè)務(wù)的工作流引擎,其特征在于所述支持組合業(yè)務(wù)的流程路由控制方法具體包括如下步驟步驟1.首先所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息,即業(yè)務(wù)的流程實(shí)例、該流程實(shí)例的當(dāng)前環(huán)節(jié)完成情況后,判斷所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型如果是組合業(yè)務(wù)類(lèi)型,業(yè)務(wù)的流程實(shí)例采用SFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用FIS表示,調(diào)用所述實(shí)體層的方法修改FIS的狀態(tài)為“完成”,并判斷FIS是否屬于流程的結(jié)束環(huán)節(jié),如果是,返回接口層,并結(jié)束操作,否,執(zhí)行步驟2;如果所述業(yè)務(wù)的流程實(shí)例對(duì)應(yīng)的業(yè)務(wù)類(lèi)型是獨(dú)立的子業(yè)務(wù)類(lèi)型,則業(yè)務(wù)的流程實(shí)例采用DSFI表示,該流程實(shí)例的當(dāng)前環(huán)節(jié)采用DFIS表示,執(zhí)行步驟5 ;步驟2.根據(jù)預(yù)定義的路由規(guī)則,獲取所述業(yè)務(wù)的流程實(shí)例SFI的下一個(gè)環(huán)節(jié)NEXT_FIS,根據(jù)組合業(yè)務(wù)規(guī)則,判斷NEXT_FIS是否屬于業(yè)務(wù)分解環(huán)節(jié),如果不是,轉(zhuǎn)而執(zhí)行步驟3 ;是,則根據(jù)組合業(yè)務(wù)規(guī)則將SFI分解生成η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例,分解生成的η個(gè)獨(dú)立子業(yè)務(wù)的流程實(shí)例采用DSFIi表示,其i是1 < i < η的整數(shù),每個(gè)DSFIi對(duì)應(yīng)一個(gè)獨(dú)立的電信子業(yè)務(wù);生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIi的起始環(huán)節(jié)根據(jù)組合業(yè)務(wù)規(guī)則生成;分解完成后,組合業(yè)務(wù)流程暫停,執(zhí)行多個(gè)獨(dú)立子業(yè)務(wù)的DSFIi的流程控制,把組合業(yè)務(wù)規(guī)則中定義的DSFIi的起始環(huán)節(jié)設(shè)定為DSFIi的當(dāng)前環(huán)節(jié)FISl ;對(duì)每一個(gè)流程實(shí)例DSFIi (1彡i彡η),分別執(zhí)行步驟4 ;步驟3.判斷所述NEXT_FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和NEXT_FIS;否則,調(diào)用實(shí)體層的方法修改下一環(huán)節(jié)NEXT_FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟4.判斷FISl環(huán)節(jié)需要執(zhí)行的任務(wù)的類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFIi和FISl ;否則,調(diào)用實(shí)體層的方法修改FISl的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟5.根據(jù)組合業(yè)務(wù)規(guī)則判斷DFIS是否屬于獨(dú)立子業(yè)務(wù)結(jié)束環(huán)節(jié),如果不是,直接執(zhí)行步驟6;如果是,執(zhí)行步驟7;步驟6.調(diào)用實(shí)體層的方法修改DFIS的狀態(tài)為“完成”,根據(jù)預(yù)定義的路由規(guī)則,獲取DSFI下一個(gè)需要執(zhí)行的環(huán)節(jié)NEXT_DFIS,判斷NEXT_DFIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是DSFI和NEXT_DFIS ;否則,調(diào)用實(shí)體層的方法修改NEXT_DFIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;步驟7.根據(jù)DSFI查找所有關(guān)聯(lián)的被分解生成的獨(dú)立子業(yè)務(wù)的流程實(shí)例DSFIid ^ i ^n)是否都已經(jīng)到達(dá)當(dāng)前環(huán)節(jié)DFIS,如果不是,調(diào)用實(shí)體層的方法修改當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“等待”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作;如果是,進(jìn)行DSFIl到DSFIn的所有流程實(shí)例的合并,此時(shí)獨(dú)立子業(yè)務(wù)流程實(shí)例的路由選擇已結(jié)束,所述合并方法為調(diào)用實(shí)體層的方法修改DSFIl到DSFIn的所有獨(dú)立子業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)DFIS的狀態(tài)為“結(jié)束”,然后根據(jù)組合業(yè)務(wù)規(guī)則找到對(duì)應(yīng)的組合業(yè)務(wù)合并環(huán)節(jié),該合并環(huán)節(jié)即為組合業(yè)務(wù)流程實(shí)例的當(dāng)前環(huán)節(jié)FIS,DSFI對(duì)應(yīng)的組合業(yè)務(wù)流程實(shí)例為SFI,判斷FIS對(duì)應(yīng)的任務(wù)類(lèi)型,如果任務(wù)類(lèi)型屬于自動(dòng)環(huán)節(jié),則根據(jù)流程任務(wù)對(duì)象中定義的自動(dòng)環(huán)節(jié)與自動(dòng)任務(wù)映射關(guān)系調(diào)用對(duì)應(yīng)的任務(wù)服務(wù)執(zhí)行,所述任務(wù)服務(wù)包括自動(dòng)接口處理、定時(shí)等待;完成后,以遞歸的方法調(diào)用流程路由控制方法,該方法此時(shí)獲得的所述業(yè)務(wù)信息分別是SFI和FIS ;否則,調(diào)用實(shí)體層的方法修改FIS的狀態(tài)為“就緒”,把執(zhí)行結(jié)果通知給所述接口層,并結(jié)束操作。
4.根據(jù)權(quán)利要求3所述的一種支持組合業(yè)務(wù)的工作流引擎,其特征在于所述組合業(yè)務(wù)規(guī)則采用GSR表示=GSR = {GS,SG, A,GSS, SS, SE, GSE},其中GS表示組合業(yè)務(wù),SG是一個(gè)集合,其表示GS下屬的獨(dú)立子業(yè)務(wù),A表示組合業(yè)務(wù)當(dāng)前執(zhí)行的操作,GSS表示組合業(yè)務(wù)的分解環(huán)節(jié),SS表示獨(dú)立子業(yè)務(wù)的起始環(huán)節(jié),SE表示獨(dú)立子業(yè)務(wù)的結(jié)束環(huán)節(jié),GSE表示組合業(yè)務(wù)的合并環(huán)節(jié)。
5.根據(jù)權(quán)利要求3所述的一種支持組合業(yè)務(wù)的流程路由控制方法,其特征在于預(yù)定義的路由規(guī)則采用FDR表示FDR = {S,Τ, F,C,Μ},其中,T表示業(yè)務(wù)流程實(shí)例中每個(gè)步驟需要執(zhí)行的任務(wù),S表示每個(gè)步驟執(zhí)行前或者執(zhí)行后的流程實(shí)例的狀態(tài),F(xiàn)表示S與T之間的關(guān)聯(lián)關(guān)系,C表示流程實(shí)例的屬性,M表示流程實(shí)例的初始集合。
全文摘要
本發(fā)明提供一種支持組合業(yè)務(wù)的工作流引擎,包括接口層、控制層、實(shí)體層、存儲(chǔ)層;所述工作流引擎部署后,通過(guò)接口層接收電信業(yè)務(wù)系統(tǒng)或其他接口系統(tǒng)發(fā)送的業(yè)務(wù)信息,所述控制層接收到所述接口層傳遞的業(yè)務(wù)信息后,根據(jù)支持組合業(yè)務(wù)的流程路由控制方法,確定業(yè)務(wù)的流程實(shí)例是自動(dòng)流轉(zhuǎn)到下一個(gè)環(huán)節(jié),還是需要原地等待;同時(shí)所述控制層調(diào)用所述實(shí)體層提供的操作流程引擎內(nèi)部對(duì)象的方法記錄流程實(shí)例的當(dāng)前環(huán)節(jié)的完成情況以及流程路由控制方法確定的流轉(zhuǎn)結(jié)果,流程結(jié)果通過(guò)接口層返回;所述存儲(chǔ)層通過(guò)數(shù)據(jù)庫(kù)持久性保存業(yè)務(wù)的流程實(shí)例。本發(fā)明的工作流引擎不但可以實(shí)現(xiàn)單個(gè)流程的流程實(shí)例控制,對(duì)電信組合業(yè)務(wù)中的多種流程同步問(wèn)題也進(jìn)行很好的支持。
文檔編號(hào)G06Q10/06GK102592198SQ201110457990
公開(kāi)日2012年7月18日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者盧捍華, 閔麗娟 申請(qǐng)人:福建富士通信息軟件有限公司