本申請涉及計算機技術領域,尤其涉及一種用于確定工作流模板的技術。
背景技術:
隨著科技的發(fā)展,尤其是大數(shù)據(jù)時代的到來,通過計算機處理的業(yè)務越來越多;需要通過計算機處理的業(yè)務也越來越復雜化、多樣化。此時,為了提高業(yè)務處理效率,降低對業(yè)務處理參與人員的要求,將業(yè)務處理過程模式化非常重要,具體地是使業(yè)務過程的部分或整體步驟在計算機應用環(huán)境下的自動化。
例如,隨著大型分布式網(wǎng)絡應用系統(tǒng),尤其是大數(shù)據(jù)處理系統(tǒng)的應用日益廣泛,系統(tǒng)運維工作的重要性凸顯了出來。而大數(shù)據(jù)運維非常的復雜,需要有經(jīng)驗的運維人員多人協(xié)同才能完成發(fā)布或者變更,尤其是類似ODPS(分布式的海量數(shù)據(jù)處理平臺)這樣的海量數(shù)據(jù)、海量機器的平臺,變更更是非常的復雜,流程很多。稍不小心,就可能會出現(xiàn)紕漏,造成故障。
技術實現(xiàn)要素:
本申請的目的是提供一種用于確定工作流模板的方法與設備,以解決實踐中與本申請相關的業(yè)務處理工作過程的流程化、自動化問題。
根據(jù)本申請的一個方面,提供了一種用于確定工作流模板的方法,該方法解決了實踐中與本申請相關的業(yè)務處理工作過程的流程化、自動化問題,該方法包括:
將工作流記錄分解為多個第一執(zhí)行節(jié)點;
根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點;
根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模 板。
根據(jù)本申請的另一方面,還提供了一種用于確定工作流模板的設備,該設備解決了實踐中與本申請相關的業(yè)務處理工作過程的流程化、自動化問題,該設備包括:
分解裝置,用于將工作流記錄分解為多個第一執(zhí)行節(jié)點;
第二執(zhí)行節(jié)點確定裝置,用于根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點;
工作流模板確定裝置,用于根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板。
與現(xiàn)有技術相比,本申請通過將工作流記錄分解為多個第一執(zhí)行節(jié)點,根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點,根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板;從而支持工作流程復用,簡化數(shù)據(jù)處理操作,并改善用戶使用體驗。而且,本申請還可以對多個第二執(zhí)行節(jié)點進一步處理,獲得具有更高擴展性的工作流模板,從而應對更復雜的數(shù)據(jù)處理要求并進一步提高數(shù)據(jù)處理效率。此外,本申請還可以依據(jù)該工作流模板生成工作流實例,從而提供工作效率,改善用戶使用體驗;而且,還通過執(zhí)行工作流實例,提高處理效率,并降低了對操作人員經(jīng)驗的依賴性,適應大數(shù)據(jù)時代處理業(yè)務的需求,尤其是大數(shù)據(jù)運維,通過本申請建立的運維工作流模板,可以標準化的完成操作,不會出現(xiàn)紕漏,而且可以盡量減少變更需要的時間。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出根據(jù)本申請一個方面的一種用于確定工作流模板的設備示意圖;
圖2示出根據(jù)本申請一個優(yōu)選實施例的一種用于確定工作流模板的設備示意圖;
圖3示出根據(jù)本申請另一個方面的一種用于確定工作流模板的方法流程圖;
圖4示出根據(jù)本申請一個優(yōu)選實施例的一種用于確定工作流模板的方法流程圖;
圖5示出根據(jù)本申請一個優(yōu)選實施例的一種工作流模板中順序執(zhí)行的節(jié)點結構示意圖;
圖6示出根據(jù)本申請一個優(yōu)選實施例的一種工作流模板中可并發(fā)執(zhí)行的節(jié)點結構示意圖;
圖7示出根據(jù)本申請一個優(yōu)選實施例的一種工作流模板的結構示意圖;
圖8-1示出根據(jù)本申請一個優(yōu)選實施例的一種工作流模板及對應配置參數(shù)的結構示意圖;
圖8-2示出圖8-1對應的工作流模板實例的結構示意圖。
附圖中相同或相似的附圖標記代表相同或相似的部件。
具體實施方式
在本申請一個典型的配置中,終端、服務網(wǎng)絡的設備和可信方均包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結構、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學存儲、磁 盒式磁帶,磁帶磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數(shù)據(jù)信號和載波。
為更進一步闡述本申請所采取的技術手段及取得的效果,下面結合附圖及較佳實施例,對本申請的技術方案,進行清楚和完整的描述。
如圖1所示,展示了本申請用于確定工作流模板的設備示意圖,該設備包括:
分解裝置11,用于將工作流記錄分解為多個第一執(zhí)行節(jié)點;
第二執(zhí)行節(jié)點確定裝置12,用于根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點;
工作流模板確定裝置13,用于根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板。
本領域技術人員應能理解,在具體的方案實施中,所述第一執(zhí)行節(jié)點可包括業(yè)務處理操作中的基本操作步驟,例如,大數(shù)據(jù)平臺運維操作中對應的基本操作步驟;所述第二執(zhí)行節(jié)點可包括所述分解裝置11分解獲得的第一執(zhí)行節(jié)點中,需要按照順序執(zhí)行的多個第一執(zhí)行節(jié)點組成的列表節(jié)點,也可包括其中可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點組成的樹根節(jié)點,還可包括其中未被所述列表節(jié)點及樹節(jié)點包含的第一執(zhí)行節(jié)點。為表述方便,我們將在實施例中對第一執(zhí)行節(jié)點與業(yè)務處理操作中的基本操作步驟、第二執(zhí)行節(jié)點與所述列表節(jié)點或樹根節(jié)點或第一執(zhí)行節(jié)點分別進行互換使用。
在該實施例中,分解裝置11將工作流記錄分解為多個第一執(zhí)行節(jié)點。其中工作流記錄,即業(yè)務操作中包括的模式化的步驟、流程等,例如,計算機系統(tǒng)的運維操作步驟、流程。其中第一執(zhí)行節(jié)點為業(yè)務操作中的基本操作步驟,例如,遠程執(zhí)行命令、遠程執(zhí)行腳本、推送配置文件、開關警報等。具體地,分解裝置11將工作流記錄分解為多個第一執(zhí)行節(jié)點的方式不做限制,可通過根據(jù)用戶輸入的配置文件,實現(xiàn)將工作流記錄分解為多個第一執(zhí)行節(jié) 點的目的,使業(yè)務操作中的步驟的格式進行統(tǒng)一拆分,以備后續(xù)建立工作流模板時使用。
繼續(xù)在該實施例中,第二執(zhí)行節(jié)點確定裝置12根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點。具體地,第二執(zhí)行節(jié)點確定裝置12將前述分解裝置11分解的第一執(zhí)行節(jié)點,按照這些第一執(zhí)行節(jié)點間的執(zhí)行順序信息,進行組合,進一步地,可將需要按照前后順序執(zhí)行的第一執(zhí)行節(jié)點進行組合,并確定組合后對應的第二執(zhí)行節(jié)點信息,如圖5所示,其中的第一執(zhí)行節(jié)點1、2、3為需要順序執(zhí)行的節(jié)點,節(jié)點L1為該組合的第二執(zhí)行節(jié)點;也可將需要并發(fā)執(zhí)行的第一執(zhí)行節(jié)點進行組合,并確定組合后對應的第二執(zhí)行節(jié)點信息,如圖6所示,其中的第一執(zhí)行節(jié)點4、5、6為可并發(fā)執(zhí)行的節(jié)點,節(jié)點T1為該組合的第二執(zhí)行節(jié)點。其中的第二執(zhí)行節(jié)點信息包括對應組合中的第一執(zhí)行節(jié)點相關信息,例如,如圖5所示,其中第二執(zhí)行節(jié)點L1包括了第一執(zhí)行節(jié)點為1、2、3共三個節(jié)點,該組合為順序執(zhí)行等信息。其中第一執(zhí)行節(jié)點的執(zhí)行順序信息,需要根據(jù)實際執(zhí)行用戶業(yè)務的需求而定,并不限于上述的順序、并發(fā)執(zhí)行順序信息。另外,需要指出的是,第二執(zhí)行節(jié)點確定裝置12根據(jù)執(zhí)行用戶業(yè)務的需要進行第二執(zhí)行節(jié)點的確定,并不必然將所有的第一執(zhí)行節(jié)點均確定在第二執(zhí)行節(jié)點對應的組合中。
繼續(xù)在該實施例中,工作流模板確定裝置13根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板,具體地,工作流模板確定裝置13將前述第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點間的執(zhí)行順序信息,進行組合形成工作流模板,進一步地,可將需要按照前后順序執(zhí)行,及并發(fā)執(zhí)行等執(zhí)行順序的第二執(zhí)行節(jié)點進行組合,以確定該業(yè)務操作對應的工作流模板。具體地,該工作流模板中的第二執(zhí)行節(jié)點包括第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點,及未被第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點所涵蓋的第一執(zhí)行節(jié)點;也即,分解裝置11分解的第一執(zhí)行節(jié)點未完全被第二執(zhí)行節(jié)點確定裝置12用于組合對應的第二 執(zhí)行節(jié)點的情況,如圖7所示,第一執(zhí)行節(jié)點10未被第二執(zhí)行節(jié)點確定裝置12用于組合對應的第二執(zhí)行節(jié)點,所述第一執(zhí)行節(jié)點10與第二執(zhí)行節(jié)點T1為并發(fā)執(zhí)行關系,此時第一執(zhí)行節(jié)點10便為第二執(zhí)行節(jié)點。
優(yōu)選地,所述第二執(zhí)行節(jié)點包括以下至少任一項:
所述第一執(zhí)行節(jié)點;
包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點;
包含多個可并發(fā)執(zhí)行的所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點。
在該實施例中,第二執(zhí)行節(jié)點可以為第一執(zhí)行節(jié)點,具體地,是指分解裝置11分解獲得的業(yè)務處理基本步驟對應的第一執(zhí)行節(jié)點,并未被第二執(zhí)行節(jié)點確定裝置12全部組合至前述實施例中的第二執(zhí)行節(jié)點對應的組合中的情況。進一步地,第二執(zhí)行節(jié)點可以為不需要與其它第一執(zhí)行節(jié)點按照前后、并發(fā)等順序執(zhí)行的第一執(zhí)行節(jié)點,也即業(yè)務處理的過程中,有些第一執(zhí)行節(jié)點對應的基本步驟不需要與其它基本步驟具有執(zhí)行順序關系。更進一步地,這些第一執(zhí)行節(jié)點與其它第一執(zhí)行節(jié)點沒有執(zhí)行順序關系,而是需要與其它第二執(zhí)行節(jié)點按照前后、并發(fā)等順序進行執(zhí)行。例如,如圖7所示,第一執(zhí)行節(jié)點10未被第二執(zhí)行節(jié)點確定裝置12用于組合對應的第二執(zhí)行節(jié)點,所述第一執(zhí)行節(jié)點10與第二執(zhí)行節(jié)點T1為并發(fā)執(zhí)行關系,此時第一執(zhí)行節(jié)點10便為第二執(zhí)行節(jié)點。
繼續(xù)在該實施例中,第二執(zhí)行節(jié)點可以為包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點,具體地,多個第一執(zhí)行節(jié)點為順序執(zhí)行關系時,也即業(yè)務處理過程中多個第一執(zhí)行節(jié)點對應的步驟必須按照嚴格的先后順序進行執(zhí)行時,它們便組合成一個列表,該列表的控制節(jié)點便為順序控制節(jié)點,所述順序控制節(jié)點存儲該列表的信息,一般包括執(zhí)行順序信息、步驟操作信息、包括的第一執(zhí)行節(jié)點相關信息等,該順序控制節(jié)點代表該列表,例如,如圖5所示,其中的第一執(zhí)行節(jié)點1、2、3為需要順序執(zhí)行的節(jié)點,節(jié)點L1為該組合對應的列表的順序控制節(jié)點,代表該列表。
繼續(xù)在該實施例中,第二執(zhí)行節(jié)點可以為包含多個可并發(fā)執(zhí)行的所述第 一執(zhí)行節(jié)點的并發(fā)控制節(jié)點,具體地,多個第一執(zhí)行節(jié)點為并發(fā)執(zhí)行關系時,也即業(yè)務處理過程中多個第一執(zhí)行節(jié)點對應的步驟需要并發(fā)執(zhí)行時,它們便組合成一個樹,該樹的樹根便為該樹的控制節(jié)點,也即并發(fā)控制節(jié)點,所述并發(fā)控制節(jié)點存儲該樹的信息,一般包括執(zhí)行順序信息、步驟操作信息、包括的第一執(zhí)行節(jié)點相關信息等。例如,當執(zhí)行某命令與執(zhí)行某腳本為并發(fā)執(zhí)行的第一執(zhí)行節(jié)點對應的基本操作步驟時,二者便可形成一個樹,樹根為該樹的控制節(jié)點,設置有二者的執(zhí)行關系、二者操作步驟信息等。例如,如圖6所示,其中的第一執(zhí)行節(jié)點4、5、6為可并發(fā)執(zhí)行的節(jié)點,節(jié)點T1為該組合對應的樹的并發(fā)控制節(jié)點,代表該樹。
參圖2所示,更優(yōu)選地,所述第二執(zhí)行節(jié)點包括包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點;
其中,所述第二執(zhí)行節(jié)點確定裝置12包括用于確定順序執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元;及用于根據(jù)所述順序執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的順序控制節(jié)點的單元,其中,該順序控制節(jié)點包括所述順序執(zhí)行的多個第一執(zhí)行節(jié)點。
該實施例主要針對第二執(zhí)行節(jié)點為包含順序執(zhí)行的多個第一執(zhí)行節(jié)點的順序控制節(jié)點的情況,具體地,順序控制節(jié)點的確定方式及過程可以為:首先,具體地,第二執(zhí)行節(jié)點確定裝置12中用于確定順序執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元在分解裝置11分解獲得的第一執(zhí)行節(jié)點中,可以根據(jù)用戶輸入的配置文件信息,查找或者計算分析出需要順序執(zhí)行的第一執(zhí)行節(jié)點;也可以根據(jù)預設的規(guī)則確定需要順序執(zhí)行的第一執(zhí)行節(jié)點;具體的確定方式及查找依據(jù)不做限制。
其次,具體地,第二執(zhí)行節(jié)點確定裝置12中用于根據(jù)所述順序執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的順序控制節(jié)點的單元生成對應的順序控制節(jié)點的方式,可以為根據(jù)業(yè)務處理的需要或用戶輸入的配置文件,將分解裝置11分解的所有順序執(zhí)行的第一執(zhí)行節(jié)點生成一個列表,該列表的控制節(jié)點即為順序控制節(jié)點;也可以為根據(jù)業(yè)務處理的需要或者用戶輸入的配置文件,將 分解裝置11分解的第一執(zhí)行節(jié)點中,需要順序執(zhí)行的多個第一執(zhí)行節(jié)點生成對應的多個順序控制節(jié)點,每個順序控制節(jié)點對應一組需要順序執(zhí)行的多個第一執(zhí)行節(jié)點,例如,若分解裝置11將業(yè)務操作步驟分解為15個第一執(zhí)行節(jié)點,其中每5個第一執(zhí)行節(jié)點需要順序執(zhí)行,那么便產(chǎn)生3個順序控制節(jié)點,每個順序控制節(jié)點包括5個需要順序執(zhí)行的第一執(zhí)行節(jié)點。
更優(yōu)選地,所述第二執(zhí)行節(jié)點包括包含多個可并發(fā)執(zhí)行的所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點;
其中,所述第二執(zhí)行節(jié)點確定裝置12包括用于確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元;用于根據(jù)所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的并發(fā)控制節(jié)點的單元,其中,該并發(fā)控制節(jié)點包括所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點。
該實施例主要針對第二執(zhí)行節(jié)點為包含可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點的情況,具體地,并發(fā)控制節(jié)點的確定方式及過程可以為:首先,具體地,第二執(zhí)行節(jié)點確定裝置12中用于確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元,在分解裝置11分解獲得的第一執(zhí)行節(jié)點中,可以根據(jù)用戶輸入的配置文件,查找或者分析計算出需要并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點;也可以根據(jù)預設的規(guī)則確定需要并發(fā)執(zhí)行的第一執(zhí)行節(jié)點;確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的具體方式及具體確定依據(jù)不做限制。
其次,具體地,第二執(zhí)行節(jié)點確定裝置12中根據(jù)所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的并發(fā)控制節(jié)點的單元,生成對應的并發(fā)控制節(jié)點的方式,可以為根據(jù)業(yè)務處理的需要或用戶輸入的配置文件,將分解裝置11分解的所有并發(fā)執(zhí)行的第一執(zhí)行節(jié)點生成一個樹,該樹的控制節(jié)點即為并發(fā)控制節(jié)點;也可以為根據(jù)業(yè)務處理的需要或者用戶輸入的配置文件,將分解裝置11分解的第一執(zhí)行節(jié)點中,可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點生成對應的多個并發(fā)控制節(jié)點,每個并發(fā)控制節(jié)點對應一組可并發(fā)執(zhí)行的第一執(zhí)行節(jié)點,例如,若分解裝置11將業(yè)務操作步驟分解為15個第一執(zhí)行節(jié)點,其中每5個第一執(zhí)行節(jié)點可并發(fā)執(zhí)行,那么便產(chǎn)生3個并發(fā)控制節(jié)點,每個并發(fā)控制 節(jié)點包括5個可并發(fā)執(zhí)行的第一執(zhí)行節(jié)點。
另外,本申請中的第二執(zhí)行節(jié)點確定裝置12也可同時包括上述用于確定順序執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元;用于根據(jù)所述順序執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的順序控制節(jié)點的單元;用于確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的單元;及用于根據(jù)所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的并發(fā)控制節(jié)點的單元。本領域的技術人員應當能夠理解,本申請中的第二執(zhí)行節(jié)點可同時包含順序執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的順序控制節(jié)點,及可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的并發(fā)控制節(jié)點,故本申請中的第二執(zhí)行節(jié)點確定裝置12同時包括上述四個單元的方案也在本申請的保護范圍之內。
優(yōu)選地,所述第二執(zhí)行節(jié)點確定裝置12還用于當檢測到所述多個第一執(zhí)行節(jié)點構成回路時,啟動報錯機制。
在該實施例中,第二執(zhí)行節(jié)點確定裝置12檢測到所述多個第一執(zhí)行節(jié)點構成回路時,啟動報錯機制,該實施例主要針對第二執(zhí)行節(jié)點確定裝置根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點的過程中,第一執(zhí)行節(jié)點形成回路的情況。具體地,第二執(zhí)行節(jié)點確定裝置12檢測的方式,可以為遍歷需要順序執(zhí)行的第一執(zhí)行節(jié)點,同時記錄每個需要順序執(zhí)行的第一節(jié)點的已依賴節(jié)點,當檢測到下一個第一執(zhí)行節(jié)點為之前已依賴的第一執(zhí)行節(jié)點之一時,則判定該順序執(zhí)行的第一執(zhí)行節(jié)點中存在回路,其中的已依賴節(jié)點為順序執(zhí)行節(jié)點中已經(jīng)排入順序的節(jié)點,例如,節(jié)點1、節(jié)點2、節(jié)點3為順序執(zhí)行節(jié)點,節(jié)點1執(zhí)行完畢執(zhí)行節(jié)點2,接著執(zhí)行節(jié)點3,那么節(jié)點1為節(jié)點2的依賴節(jié)點,節(jié)點2為節(jié)點3的依賴節(jié)點,節(jié)點1和節(jié)點2均為已依賴節(jié)點。
繼續(xù)在該實施例中,由于若順序執(zhí)行列表中存在回路,便陷入執(zhí)行的死循環(huán),使業(yè)務操作無法順序進行執(zhí)行。故,當檢測出順序執(zhí)行的列表中存在回路時,需要啟動報錯機制,通知用戶或者相關設備,并發(fā)出報錯的信號,具體地,報錯機制可以為發(fā)出報警信號,也可以為自動停止,并顯示錯誤信 息,本領域的技術人員應當能夠理解具體的報錯方式等不做限制,只要能夠滿足使用戶或者相關操作設備、人員等獲得該錯誤信息即可。
參圖1所示,優(yōu)選地,所述工作流模板確定裝置13包括根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的依賴關系的單元;根據(jù)所述多個第二執(zhí)行節(jié)點之間的依賴關系,確定對應的工作流模板的單元。
該實施例主要針對業(yè)務操作對應的工作流模板中包括需要順序執(zhí)行的第二執(zhí)行節(jié)點的情況。在該實施例中,具體地,工作流模板確定裝置13中根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的依賴關系的單元,根據(jù)第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點的執(zhí)行順序信息,確定所述第二執(zhí)行節(jié)點之間的依賴關系,其中的依賴關系也即順序執(zhí)行關系。進一步地,可根據(jù)業(yè)務處理需要、用戶輸入的業(yè)務操作對應的配置文件或者預設執(zhí)行規(guī)則等信息,查找需要順序執(zhí)行的第二執(zhí)行節(jié)點,這些第二執(zhí)行節(jié)點間的執(zhí)行關系便為依賴關系。
繼續(xù)在該實施例中,具體地,工作流模板確定裝置13的根據(jù)所述多個第二執(zhí)行節(jié)點之間的依賴關系,確定對應的工作流模板的單元將前述第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點間的依賴關系,進行組合形成工作流模板,進一步地,可將需要按照前后順序執(zhí)行的第二執(zhí)行節(jié)點形成工作流模板,其中的第二執(zhí)行節(jié)點可以為第一執(zhí)行節(jié)點、順序控制節(jié)點或者并發(fā)控制節(jié)點至少其一。如圖7所示,其中的節(jié)點10便為同時是第一執(zhí)行節(jié)點和第二執(zhí)行節(jié)點的情況。
參圖1所示,更優(yōu)選地,所述工作流模板確定裝置13還包括用于根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的并發(fā)合并執(zhí)行關系的單元。
該實施例主要針對業(yè)務操作對應的工作流模板中還包括需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點的情況。在該實施例中,具體地,用于根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的并發(fā)合并執(zhí)行 關系的單元根據(jù)業(yè)務處理需要、用戶輸入的業(yè)務操作對應的配置文件或者預設執(zhí)行規(guī)則等信息,查找需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點,這些第二執(zhí)行節(jié)點間的執(zhí)行關系便為并發(fā)合并執(zhí)行關系。工作流模板確定裝置13將前述第二執(zhí)行節(jié)點確定裝置12確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點間的依賴關系、并發(fā)合并執(zhí)行關系,進行組合形成工作流模板。
另外,在該實施例中,需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點并發(fā)合并成新的樹,并形成該樹的新的控制節(jié)點,該新的控制節(jié)點可以稱為第三執(zhí)行節(jié)點,以此類推,以便將模式化業(yè)務處理過程中的操作步驟分級別、按順序、有條不紊地執(zhí)行。如圖7所示,其中的第二執(zhí)行節(jié)點T1與第二執(zhí)行節(jié)點T2可并發(fā)執(zhí)行,形成新的控制節(jié)點R1,即第三執(zhí)行節(jié)點。
如圖2所示,優(yōu)選地,所述設備還包括工作流模板實例化裝置14,該工作流模板實例化裝置14用于根據(jù)用戶輸入的所述工作流模板的配置參數(shù),將所述工作流模板進行實例化。
在該實施例中,工作流模板實例化裝置14根據(jù)用戶輸入的所述工作流模板的配置參數(shù),將所述工作流模板進行實例化,具體地,用戶輸入的所述工作流模板的配置參數(shù),一般地包括工作流模板中各個節(jié)點對應的參數(shù),也即其中的第一執(zhí)行節(jié)點、第二執(zhí)行節(jié)點等節(jié)點所對應的參數(shù)。進一步地,該設備1根據(jù)工作流模板的節(jié)點信息及該節(jié)點信息對應的配置參數(shù)信息,生成與該節(jié)點對應的實例節(jié)點,以使所述工作流模板實例化。其中,具體生成與該節(jié)點對應的實例節(jié)點的個數(shù),需要根據(jù)用戶輸入的該節(jié)點的配置參數(shù)信息確定,配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。如圖8-1及圖8-2所示,根據(jù)工作流模板及該模板中各節(jié)點對應的配置參數(shù)信息,使該工作流模板進行實例化。
參圖2所示,更優(yōu)選地,所述工作流模板實例化裝置14包括用于根據(jù)用戶輸入的所述工作流模板配置參數(shù),生成與所述工作流模板中第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點對應的實例節(jié)點的單元;用于遍歷所述工作流模板中的第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點,生成與所述工作流模板對應的工作流實例的單元。
在該實施例中,具體地,用戶輸入的所述工作流模板的配置參數(shù),一般地包括工作流模板中各個節(jié)點對應的參數(shù),也即其中的第一執(zhí)行節(jié)點、第二執(zhí)行節(jié)點等節(jié)點所對應的參數(shù),并且,該配置參數(shù)為根據(jù)用戶輸入的對應于業(yè)務處理工作流模板的參數(shù),并不是所有的節(jié)點都具有參數(shù),也不是每個節(jié)點只能夠對應一個參數(shù)。進一步地,該設備1根據(jù)工作流模板的節(jié)點信息及該節(jié)點信息對應的配置參數(shù)信息,生成與該節(jié)點對應的實例節(jié)點,以使所述工作流模板實例化。其中,具體生成與該節(jié)點對應的實例節(jié)點的個數(shù),需要根據(jù)用戶輸入的該節(jié)點的配置參數(shù)信息確定,配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。
繼續(xù)在該實施例中,具體地,工作流模板實例化裝置14中的所述單元遍歷工作流模板中所有節(jié)點(具體包括第一執(zhí)行節(jié)點第二執(zhí)行節(jié)點等),根據(jù)用戶輸入的每個節(jié)點對應的配置參數(shù)信息,將每個節(jié)點生成對應的實例節(jié)點,其中配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。更進一步地,可通過一個節(jié)點的配置參數(shù)信息中,表明該節(jié)點迭代性的迭代次數(shù)信息,確定該節(jié)點生成的實例節(jié)點個數(shù)。工作流模板實例化裝置14中的所述單元如此遍歷完整個工作流模板中的所有節(jié)點,便生成該工作流模板對應的工作流實例。如圖8-1及圖8-2所示,根據(jù)工作流模板及該模板中各節(jié)點對應的配置參數(shù)信息,使該工作流模板進行實例化。
如圖2所示,更優(yōu)選地,該設備還包括工作流實例執(zhí)行裝置15,該工作流實例執(zhí)行裝置15用于執(zhí)行所述工作流實例。
在該實施例中,工作流實例執(zhí)行裝置15執(zhí)行所述工作流實例,具體地,工作流實例執(zhí)行裝置15根據(jù)第一執(zhí)行節(jié)點的配置參數(shù)信息,執(zhí)行該節(jié)點對應的操作步驟,其中該第一執(zhí)行節(jié)點為,分解裝置11分解的第一執(zhí)行節(jié)點中與第二執(zhí)行節(jié)點具有依賴關系,或者并發(fā)執(zhí)行關系的第一執(zhí)行節(jié)點。工作流實例執(zhí)行裝置15根據(jù)用戶輸入的配置參數(shù)信息,順序執(zhí)行順序控制節(jié)點對應的列表中的每個第一執(zhí)行節(jié)點,進一步地,順序執(zhí)行所述每個第一執(zhí)行節(jié)點對 應的操作步驟。工作流實例執(zhí)行裝置15根據(jù)用戶輸入的配置參數(shù)信息,并發(fā)執(zhí)行并發(fā)控制節(jié)點對應的樹中的每個第一執(zhí)行節(jié)點,進一步地,并發(fā)執(zhí)行所述每個第一執(zhí)行節(jié)點對應的操作步驟。如圖8-2所示,為工作流實例化后的實例節(jié)點結構圖,每個實例節(jié)點對應工作流業(yè)務操作的基本步驟,需要執(zhí)行圖8-2中的所有實例節(jié)點對應的基本操作步驟,以實現(xiàn)整個工作流的業(yè)務操作。
參圖2所示,更更優(yōu)選地,所述工作流實例執(zhí)行裝置15用于根據(jù)所述工作流模板的數(shù)據(jù)結構信息,執(zhí)行所述工作流實例。
在該實施例中,所述工作流實例執(zhí)行裝置15根據(jù)所述工作流模板的數(shù)據(jù)結構信息,執(zhí)行所述工作流實例,具體地,工作流實例執(zhí)行裝置15執(zhí)行工作流模板中的不同數(shù)據(jù)結構對應的第一執(zhí)行節(jié)點其結果會產(chǎn)生不同,進一步地,工作流實例執(zhí)行裝置15需要執(zhí)行的步驟操作包括第一執(zhí)行節(jié)點、順序控制節(jié)點對應的第一執(zhí)行節(jié)點、并發(fā)控制節(jié)點對應的第一執(zhí)行節(jié)點分別對應的基本操作步驟。例如,在根據(jù)第一執(zhí)行節(jié)點的配置參數(shù)信息,執(zhí)行該節(jié)點對應的操作步驟時(其中該第一執(zhí)行節(jié)點為,分解裝置11分解的第一執(zhí)行節(jié)點中與第二執(zhí)行節(jié)點具有依賴關系,或者并發(fā)執(zhí)行關系的第一執(zhí)行節(jié)點),若執(zhí)行失敗,可根據(jù)該節(jié)點的配置參數(shù)信息決定是否重試、發(fā)出相關報警信號等操作。
繼續(xù)在該實施例中,工作流實例執(zhí)行裝置15根據(jù)用戶輸入的配置參數(shù)信息,順序執(zhí)行順序控制節(jié)點對應的列表中的每個第一執(zhí)行節(jié)點對應的操作步驟時,若其中的某個第一執(zhí)行節(jié)點對應的操作步驟失敗,則停止執(zhí)行,并標記該第一順序執(zhí)行節(jié)點對應的整個列表執(zhí)行失敗。工作流實例執(zhí)行裝置15根據(jù)用戶輸入的配置參數(shù)信息,并發(fā)執(zhí)行并發(fā)控制節(jié)點對應的樹中的每個第一執(zhí)行節(jié)點對應的操作步驟時,若其中的所有第一執(zhí)行節(jié)點對應的操作步驟均成功,則該并發(fā)控制節(jié)點對應的樹執(zhí)行成功,否則執(zhí)行失敗的第一執(zhí)行節(jié)點所在的樹執(zhí)行失敗,如此執(zhí)行整個多層樹。
與現(xiàn)有技術相比,本申請通過將工作流記錄分解為多個第一執(zhí)行節(jié)點,根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行 節(jié)點,根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板;從而支持工作流程復用,簡化數(shù)據(jù)處理操作,并改善用戶使用體驗。而且,本申請還可以對多個第二執(zhí)行節(jié)點進一步處理,獲得具有更高擴展性的工作流模板,從而應對更復雜的數(shù)據(jù)處理要求并進一步提高數(shù)據(jù)處理效率。此外,本申請還可以依據(jù)該工作流模板生成工作流實例,從而提供工作效率,改善用戶使用體驗;而且,還通過執(zhí)行工作流實例,提高處理效率,并降低了對操作人員經(jīng)驗的依賴性,適應大數(shù)據(jù)時代處理業(yè)務的需求,尤其是大數(shù)據(jù)運維,通過本申請建立的運維工作流模板,可以標準化的完成操作,不會出現(xiàn)紕漏,而且可以盡量減少變更需要的時間。
現(xiàn)有技術的實踐中,當在非常復雜的變更和發(fā)布系統(tǒng)中,人變得不可信賴,目前常見的大數(shù)據(jù)產(chǎn)品中都包含運維平臺,但是這些平臺需要有經(jīng)驗的人員去參與運維,只是形式化地幫助運維人員執(zhí)行他們定義好的步驟,沒有經(jīng)驗的留存,無法為其他并不熟悉該系統(tǒng)的運維人員操作。而本申請?zhí)峁┑墓ぷ髁髂0鍛迷谏鲜鱿到y(tǒng)的運維方面,能夠解決現(xiàn)有技術中的相應問題。
如圖3所示,展示了本申請的一種用于確定工作流模板的方法流程圖,該方法包括:
S1將工作流記錄分解為多個第一執(zhí)行節(jié)點;
S2根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點;
S3根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板。
本領域技術人員應能理解,在具體的方案實施中,所述第一執(zhí)行節(jié)點可包括業(yè)務處理操作中的基本操作步驟,例如,大數(shù)據(jù)平臺運維操作中對應的基本操作步驟;所述第二執(zhí)行節(jié)點可包括所述步驟S1分解獲得的第一執(zhí)行節(jié)點中,需要按照順序執(zhí)行的多個第一執(zhí)行節(jié)點組成的列表節(jié)點,也可包括其中可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點組成的樹根節(jié)點,還可包括其中未被所述 列表節(jié)點及樹節(jié)點包含的第一執(zhí)行節(jié)點。為表述方便,我們將在實施例中對第一執(zhí)行節(jié)點與業(yè)務處理操作中的基本操作步驟、第二執(zhí)行節(jié)點與所述列表節(jié)點或樹根節(jié)點或第一執(zhí)行節(jié)點分別進行互換使用。
在該實施例中,步驟S1將工作流記錄分解為多個第一執(zhí)行節(jié)點。其中工作流記錄,即業(yè)務操作中包括的模式化的步驟、流程等,例如,計算機系統(tǒng)的運維操作步驟、流程。其中第一執(zhí)行節(jié)點為業(yè)務操作中的基本操作步驟,例如,遠程執(zhí)行命令、遠程執(zhí)行腳本、推送配置文件、開關警報等。具體地,步驟S1中將工作流記錄分解為多個第一執(zhí)行節(jié)點的方式不做限制,可通過根據(jù)用戶輸入的配置文件,實現(xiàn)將工作流記錄分解為多個第一執(zhí)行節(jié)點的目的,使業(yè)務操作中的步驟的格式進行統(tǒng)一拆分,以備后續(xù)建立工作流模板時使用。
繼續(xù)在該實施例中,步驟S2根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點。具體地,將前述步驟S1分解的第一執(zhí)行節(jié)點,按照這些第一執(zhí)行節(jié)點間的執(zhí)行順序信息,進行組合,進一步地,可將需要按照前后順序執(zhí)行的第一執(zhí)行節(jié)點進行組合,并確定組合后對應的第二執(zhí)行節(jié)點信息,如圖5所示,其中的第一執(zhí)行節(jié)點1、2、3為需要順序執(zhí)行的節(jié)點,節(jié)點L1為該組合的第二執(zhí)行節(jié)點;也可將需要并發(fā)執(zhí)行的第一執(zhí)行節(jié)點進行組合,并確定組合后對應的第二執(zhí)行節(jié)點信息,如圖6所示,其中的第一執(zhí)行節(jié)點4、5、6為可并發(fā)執(zhí)行的節(jié)點,節(jié)點T1為該組合的第二執(zhí)行節(jié)點。其中的第二執(zhí)行節(jié)點信息包括對應組合中的第一執(zhí)行節(jié)點相關信息,例如,如圖5所示,其中第二執(zhí)行節(jié)點L1包括了第一執(zhí)行節(jié)點為1、2、3共三個節(jié)點,該組合為順序執(zhí)行等信息。其中第一執(zhí)行節(jié)點的執(zhí)行順序信息,需要根據(jù)實際執(zhí)行用戶業(yè)務的需求而定,并不限于上述的順序、并發(fā)執(zhí)行順序信息。另外,需要指出的是,步驟S2中根據(jù)執(zhí)行用戶業(yè)務的需要進行第二執(zhí)行節(jié)點的確定,并不必然將所有的第一執(zhí)行節(jié)點均確定在第二執(zhí)行節(jié)點對應的組合中。
繼續(xù)在該實施例中,步驟S3根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板,具體地,將前述步驟S2確定的第二執(zhí)行節(jié)點, 按照這些第二執(zhí)行節(jié)點間的執(zhí)行順序信息,進行組合形成工作流模板,進一步地,可將需要按照前后順序執(zhí)行,及并發(fā)執(zhí)行等執(zhí)行順序的第二執(zhí)行節(jié)點進行組合,以確定該業(yè)務操作對應的工作流模板。具體地,該工作流模板中的第二執(zhí)行節(jié)點包括步驟S2確定的第二執(zhí)行節(jié)點,及未被步驟S2確定的第二執(zhí)行節(jié)點所涵蓋的第一執(zhí)行節(jié)點;也即,步驟S1分解的第一執(zhí)行節(jié)點沒有完全被步驟S2用于組合對應的第二執(zhí)行節(jié)點的情況,如圖7所示,第一執(zhí)行節(jié)點10未被步驟S2用于組合對應的第二執(zhí)行節(jié)點,所述第一執(zhí)行節(jié)點10與第二執(zhí)行節(jié)點T1為并發(fā)執(zhí)行關系,此時第一執(zhí)行節(jié)點10便為第二執(zhí)行節(jié)點。
優(yōu)選地,所述第二執(zhí)行節(jié)點包括以下至少任一項:
所述第一執(zhí)行節(jié)點;
包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點;
包含多個可并發(fā)執(zhí)行的所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點。
在該實施例中,第二執(zhí)行節(jié)點可以為第一執(zhí)行節(jié)點,具體地,是指步驟S1分解獲得的業(yè)務處理基本步驟對應的第一執(zhí)行節(jié)點,并未被步驟S2全部組合至前述實施例中的第二執(zhí)行節(jié)點對應的組合中的情況。進一步地,第二執(zhí)行節(jié)點可以為不需要與其它第一執(zhí)行節(jié)點按照前后、并發(fā)等順序執(zhí)行的第一執(zhí)行節(jié)點,也即業(yè)務處理的過程中,有些第一執(zhí)行節(jié)點對應的基本步驟不需要與其它基本步驟具有執(zhí)行順序關系。更進一步地,這些第一執(zhí)行節(jié)點與其它第一執(zhí)行節(jié)點沒有執(zhí)行順序關系,而是需要與其它第二執(zhí)行節(jié)點按照前后、并發(fā)等順序進行執(zhí)行。例如,如圖7所示,第一執(zhí)行節(jié)點10未被步驟S2用于組合對應的第二執(zhí)行節(jié)點,所述第一執(zhí)行節(jié)點10與第二執(zhí)行節(jié)點T1為并發(fā)執(zhí)行關系,此時第一執(zhí)行節(jié)點10便為第二執(zhí)行節(jié)點。
繼續(xù)在該實施例中,第二執(zhí)行節(jié)點可以為包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點,具體地,多個第一執(zhí)行節(jié)點為順序執(zhí)行關系時,也即業(yè)務處理過程中多個第一執(zhí)行節(jié)點對應的步驟必須按照嚴格的先后順序進行執(zhí)行時,它們便組合成一個列表,該列表的控制節(jié)點便為順序控制節(jié)點,所述順序控制節(jié)點存儲該列表的信息,一般包括執(zhí)行順序信息、步驟操作信 息、包括的第一執(zhí)行節(jié)點相關信息等,該順序控制節(jié)點代表該列表,例如,如圖5所示,其中的第一執(zhí)行節(jié)點1、2、3為需要順序執(zhí)行的節(jié)點,節(jié)點L1為該組合對應的列表的順序控制節(jié)點,代表該列表。
繼續(xù)在該實施例中,第二執(zhí)行節(jié)點可以為包含多個可并發(fā)執(zhí)行的所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點,具體地,多個第一執(zhí)行節(jié)點為并發(fā)執(zhí)行關系時,也即業(yè)務處理過程中多個第一執(zhí)行節(jié)點對應的步驟需要并發(fā)執(zhí)行時,它們便組合成一個樹,該樹的樹根便為該樹的控制節(jié)點,也即并發(fā)控制節(jié)點,所述并發(fā)控制節(jié)點存儲該樹的信息,一般包括執(zhí)行順序信息、步驟操作信息、包括的第一執(zhí)行節(jié)點相關信息等。例如,當執(zhí)行某命令與執(zhí)行某腳本為并發(fā)執(zhí)行的第一執(zhí)行節(jié)點對應的基本操作步驟時,二者便可形成一個樹,樹根為該樹的控制節(jié)點,設置有二者的執(zhí)行關系、二者操作步驟信息等。例如,如圖6所示,其中的第一執(zhí)行節(jié)點4、5、6為可并發(fā)執(zhí)行的節(jié)點,節(jié)點T1為該組合對應的樹的并發(fā)控制節(jié)點,代表該樹。
更優(yōu)選地,所述第二執(zhí)行節(jié)點包括包含多個順序執(zhí)行的所述第一執(zhí)行節(jié)點的順序控制節(jié)點;
其中,所述S2包括:
S21(未示出)確定順序執(zhí)行的多個所述第一執(zhí)行節(jié)點;
S22(未示出)根據(jù)所述順序執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的順序控制節(jié)點,其中,該順序控制節(jié)點包括所述順序執(zhí)行的多個第一執(zhí)行節(jié)點。
該實施例主要針對第二執(zhí)行節(jié)點為包含順序執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的順序控制節(jié)點的情況,具體地,順序控制節(jié)點的確定方式及過程可以為:首先,步驟S21確定多個順序執(zhí)行的所述第一執(zhí)行節(jié)點。具體地,在步驟S1分解獲得的第一執(zhí)行節(jié)點中,可以根據(jù)用戶輸入的配置文件信息,查找或者計算分析出需要順序執(zhí)行的第一執(zhí)行節(jié)點;也可以根據(jù)預設的規(guī)則確定需要順序執(zhí)行的第一執(zhí)行節(jié)點;具體的確定方式及查找依據(jù)不做限制。
其次,步驟S22根據(jù)所述順序執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的順序控制節(jié)點,其中,該順序控制節(jié)點包括所述順序執(zhí)行的多個第一執(zhí)行節(jié)點, 具體地,生成對應的順序控制節(jié)點的方式,可以為根據(jù)業(yè)務處理的需要或用戶輸入的配置文件,將步驟S1中分解的所有順序執(zhí)行的第一執(zhí)行節(jié)點生成一個列表,該列表的控制節(jié)點即為順序控制節(jié)點;也可以為根據(jù)業(yè)務處理的需要或者用戶輸入的配置文件,將步驟S1中分解的第一執(zhí)行節(jié)點中,需要順序執(zhí)行的多個第一執(zhí)行節(jié)點生成對應的多個順序控制節(jié)點,每個順序控制節(jié)點對應一組需要順序執(zhí)行的多個第一執(zhí)行節(jié)點,例如,若步驟S1將業(yè)務操作步驟分解為15個第一執(zhí)行節(jié)點,其中每5個第一執(zhí)行節(jié)點需要順序執(zhí)行,那么便產(chǎn)生3個順序控制節(jié)點,每個順序控制節(jié)點包括5個需要順序執(zhí)行的第一執(zhí)行節(jié)點。
更優(yōu)選地,所述第二執(zhí)行節(jié)點包括包含多個可并發(fā)執(zhí)行的所述第一執(zhí)行節(jié)點的并發(fā)控制節(jié)點;
其中,所述步驟S2包括:
S23(未示出)確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點;
S24(未示出)根據(jù)所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的并發(fā)控制節(jié)點,其中,該并發(fā)控制節(jié)點包括所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點。
該實施例主要針對第二執(zhí)行節(jié)點為包含可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的并發(fā)控制節(jié)點的情況,具體地,并發(fā)控制節(jié)點的確定方式及過程可以為:首先,步驟S23確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點。具體地,在步驟S1分解獲得的第一執(zhí)行節(jié)點中,可以根據(jù)用戶輸入的配置文件,查找或者分析計算出需要并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點;也可以根據(jù)預設的規(guī)則確定需要并發(fā)執(zhí)行的第一執(zhí)行節(jié)點;確定可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點的具體方式及具體確定依據(jù)不做限制。
其次,步驟S24根據(jù)所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,生成對應的并發(fā)控制節(jié)點,其中,該并發(fā)控制節(jié)點包括所述可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點,具體地,生成對應的并發(fā)控制節(jié)點的方式,可以為根據(jù)業(yè)務處理的需要或用戶輸入的配置文件,將步驟S1分解的所有并發(fā)執(zhí)行的第一執(zhí)行節(jié)點生 成一個樹,該樹的控制節(jié)點即為并發(fā)控制節(jié)點;也可以為根據(jù)業(yè)務處理的需要或者用戶輸入的配置文件,將步驟S1分解的第一執(zhí)行節(jié)點中,可并發(fā)執(zhí)行的多個第一執(zhí)行節(jié)點生成對應的多個并發(fā)控制節(jié)點,每個并發(fā)控制節(jié)點對應一組可并發(fā)執(zhí)行的第一執(zhí)行節(jié)點,例如,若步驟S1將業(yè)務操作步驟分解為15個第一執(zhí)行節(jié)點,其中每5個第一執(zhí)行節(jié)點可并發(fā)執(zhí)行,那么便產(chǎn)生3個并發(fā)控制節(jié)點,每個并發(fā)控制節(jié)點包括5個可并發(fā)執(zhí)行的第一執(zhí)行節(jié)點。
另外,本申請中的步驟S2也可同時包括上述步驟S21、步驟S22、步驟S23及步驟S24。本領域的技術人員應當能夠理解,本申請中的第二執(zhí)行節(jié)點可同時包含順序執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的順序控制節(jié)點,及可并發(fā)執(zhí)行的多個所述第一執(zhí)行節(jié)點對應的并發(fā)控制節(jié)點,故本申請中的步驟S2同時包括上述步驟S21、步驟S22、步驟S23及步驟S24的方案也在本申請的保護范圍之內。
優(yōu)選地,所述步驟S2還包括:
當檢測到所述多個第一執(zhí)行節(jié)點構成回路時,啟動報錯機制。
在該實施例中,當檢測到所述多個第一執(zhí)行節(jié)點構成回路時,啟動報錯機制,該實施例主要針對步驟S2中根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點的過程中,第一執(zhí)行節(jié)點形成回路的情況。具體地,檢測的方式,可以為遍歷需要順序執(zhí)行的第一執(zhí)行節(jié)點,同時記錄每個需要順序執(zhí)行的第一節(jié)點的已依賴節(jié)點,當檢測到下一個第一執(zhí)行節(jié)點為之前已依賴的第一執(zhí)行節(jié)點之一時,則判定該順序執(zhí)行的第一執(zhí)行節(jié)點中存在回路,其中的已依賴節(jié)點為順序執(zhí)行節(jié)點中已經(jīng)排入順序的節(jié)點,例如,節(jié)點1、節(jié)點2、節(jié)點3為順序執(zhí)行節(jié)點,節(jié)點1執(zhí)行完畢執(zhí)行節(jié)點2,接著執(zhí)行節(jié)點3,那么節(jié)點1為節(jié)點2的依賴節(jié)點,節(jié)點2為節(jié)點3的依賴節(jié)點,節(jié)點1和節(jié)點2均為已依賴節(jié)點。
繼續(xù)在該實施例中,由于若順序執(zhí)行列表中存在回路,便陷入執(zhí)行的死循環(huán),使業(yè)務操作無法順序進行執(zhí)行。故,當檢測出順序執(zhí)行的列表中存在回路時,需要啟動報錯機制,通知用戶或者相關設備,并發(fā)出報錯的信號, 具體地,報錯機制可以為發(fā)出報警信號,也可以為自動停止,并顯示錯誤信息,本領域的技術人員應當能夠理解具體的報錯方式等不做限制,只要能夠滿足使用戶或者相關操作設備、人員等獲得該錯誤信息即可。
優(yōu)選地,所述步驟S3包括:
S31(未示出)根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的依賴關系;
S32(未示出)根據(jù)所述多個第二執(zhí)行節(jié)點之間的依賴關系,確定對應的工作流模板。
該實施例主要針對業(yè)務操作對應的工作流模板中包括需要順序執(zhí)行的第二執(zhí)行節(jié)點的情況。在該實施例中,步驟S31根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的依賴關系,具體地,根據(jù)步驟S2確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點的執(zhí)行順序信息,確定所述第二執(zhí)行節(jié)點之間的依賴關系,其中的依賴關系也即順序執(zhí)行關系。進一步地,根據(jù)業(yè)務處理需要、用戶輸入的業(yè)務操作對應的配置文件或者預設執(zhí)行規(guī)則等信息,查找需要順序執(zhí)行的第二執(zhí)行節(jié)點,這些第二執(zhí)行節(jié)點間的執(zhí)行關系便為依賴關系。
繼續(xù)在該實施例中,步驟S32根據(jù)所述多個第二執(zhí)行節(jié)點之間的依賴關系,確定對應的工作流模板。具體地,步驟S3將前述步驟S2中確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點間的依賴關系,進行組合形成工作流模板,進一步地,可將需要按照前后順序執(zhí)行的第二執(zhí)行節(jié)點形成工作流模板,其中的第二執(zhí)行節(jié)點可以為第一執(zhí)行節(jié)點、順序控制節(jié)點或者并發(fā)控制節(jié)點至少其一。如圖7所示,其中的節(jié)點10便為同時是第一執(zhí)行節(jié)點和第二執(zhí)行節(jié)點的情況。
更優(yōu)選地,所述步驟S3還包括:
根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的并發(fā)合并執(zhí)行關系。
本領域技術人員應能理解,在具體的方案實施中,所述第三執(zhí)行節(jié)點可 包括需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點組成的新的樹根節(jié)點。為表述方便,我們將在實施例中對第三執(zhí)行節(jié)點與新的樹根結點進行互換使用。
該實施例主要針對業(yè)務操作對應的工作流模板中還包括需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點的情況。在該實施例中,根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定所述多個第二執(zhí)行節(jié)點之間的并發(fā)合并執(zhí)行關系,具體地,根據(jù)業(yè)務處理需要、用戶輸入的業(yè)務操作對應的配置文件或者預設執(zhí)行規(guī)則等信息,查找需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點,這些第二執(zhí)行節(jié)點間的執(zhí)行關系便為并發(fā)合并執(zhí)行關系。步驟S3將前述步驟S2中確定的第二執(zhí)行節(jié)點,按照這些第二執(zhí)行節(jié)點間的依賴關系、并發(fā)合并執(zhí)行關系,進行組合形成工作流模板。
另外,在該實施例中,需要并發(fā)執(zhí)行的第二執(zhí)行節(jié)點并發(fā)合并成新的樹,并形成該樹的新的控制節(jié)點,該新的控制節(jié)點可以稱為第三執(zhí)行節(jié)點,以此類推,以便將模式化業(yè)務處理過程中的操作步驟分級別、按順序、有條不紊地執(zhí)行。如圖7所示,其中的第二執(zhí)行節(jié)點T1與第二執(zhí)行節(jié)點T2可并發(fā)執(zhí)行,形成新的控制節(jié)點R1,即第三執(zhí)行節(jié)點。
如圖4所示,優(yōu)選地,所述方法還包括:
S4根據(jù)用戶輸入的所述工作流模板的配置參數(shù),將所述工作流模板進行實例化。
在該實施例中,步驟S4根據(jù)用戶輸入的所述工作流模板的配置參數(shù),將所述工作流模板進行實例化,具體地,用戶輸入的所述工作流模板的配置參數(shù),一般地包括工作流模板中各個節(jié)點對應的參數(shù),也即其中的第一執(zhí)行節(jié)點、第二執(zhí)行節(jié)點等節(jié)點所對應的參數(shù)。進一步地,該方法根據(jù)工作流模板的節(jié)點信息及該節(jié)點信息對應的配置參數(shù)信息,生成與該節(jié)點對應的實例節(jié)點,以使所述工作流模板實例化。其中,具體生成與該節(jié)點對應的實例節(jié)點的個數(shù),需要根據(jù)用戶輸入的該節(jié)點的配置參數(shù)信息確定,配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。如圖8-1及圖8-2所示,根據(jù)工作流模板及該模板中各節(jié)點對應的配置參數(shù)信息,使 該工作流模板進行實例化。
更優(yōu)選地,所述步驟S4包括:
S41(未示出)根據(jù)用戶輸入的所述工作流模板配置參數(shù),生成與所述工作流模板中第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點對應的實例節(jié)點;
S42(未示出)遍歷所述工作流模板中的第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點,生成與所述工作流模板對應的工作流實例。
在該實施例中,步驟S41根據(jù)用戶輸入的所述工作流模板配置參數(shù),生成與所述工作流模板中第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點對應的實例節(jié)點,具體地,用戶輸入的所述工作流模板的配置參數(shù),一般地包括工作流模板中各個節(jié)點對應的參數(shù),也即其中的第一執(zhí)行節(jié)點、第二執(zhí)行節(jié)點等節(jié)點所對應的參數(shù),并且,該配置參數(shù)為根據(jù)用戶輸入的對應于業(yè)務處理工作流模板的參數(shù),并不是所有的節(jié)點都具有參數(shù),也不是每個節(jié)點只能夠對應一個參數(shù)。進一步地,該方法根據(jù)工作流模板的節(jié)點信息及該節(jié)點信息對應的配置參數(shù)信息,生成與該節(jié)點對應的實例節(jié)點,以使所述工作流模板實例化。其中,具體生成與該節(jié)點對應的實例節(jié)點的個數(shù),需要根據(jù)用戶輸入的該節(jié)點的配置參數(shù)信息確定,配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。
繼續(xù)在該實施例中,步驟S42遍歷所述工作流模板中的第一執(zhí)行節(jié)點及第二執(zhí)行節(jié)點,生成與所述工作流模板對應的工作流實例,具體地,遍歷工作流模板中所有節(jié)點(具體包括第一執(zhí)行節(jié)點第二執(zhí)行節(jié)點等),根據(jù)用戶輸入的每個節(jié)點對應的配置參數(shù)信息,將每個節(jié)點生成對應的實例節(jié)點,其中配置參數(shù)信息一般包括參數(shù)的類型,及該參數(shù)對應的節(jié)點是否具有迭代性等信息。更進一步地,可通過一個節(jié)點的配置參數(shù)信息中,表明該節(jié)點迭代性的迭代次數(shù)信息,確定該節(jié)點生成的實例節(jié)點個數(shù)。如此遍歷完整個工作流模板中的所有節(jié)點,便生成該工作流模板對應的工作流實例。如圖8-1及圖8-2所示,根據(jù)工作流模板及該模板中各節(jié)點對應的配置參數(shù)信息,使該工作流模板進行實例化。
如圖4所示,更優(yōu)選地,該方法還包括:
S5執(zhí)行所述工作流實例。
在該實施例中,步驟S5執(zhí)行所述工作流實例,具體地,根據(jù)第一執(zhí)行節(jié)點的配置參數(shù)信息,執(zhí)行該節(jié)點對應的操作步驟,其中該第一執(zhí)行節(jié)點為,步驟S1中分解的第一執(zhí)行節(jié)點中與第二執(zhí)行節(jié)點具有依賴關系,或者并發(fā)執(zhí)行關系的第一執(zhí)行節(jié)點。根據(jù)用戶輸入的配置參數(shù)信息,順序執(zhí)行順序控制節(jié)點對應的列表中的每個第一執(zhí)行節(jié)點,進一步地,順序執(zhí)行所述每個第一執(zhí)行節(jié)點對應的操作步驟。根據(jù)用戶輸入的配置參數(shù)信息,并發(fā)執(zhí)行并發(fā)控制節(jié)點對應的樹中的每個第一執(zhí)行節(jié)點,進一步地,并發(fā)執(zhí)行所述每個第一執(zhí)行節(jié)點對應的操作步驟。如圖8-2所示,為工作流實例化后的實例節(jié)點結構圖,每個實例節(jié)點對應工作流業(yè)務操作的基本步驟,需要執(zhí)行圖8-2中的所有實例節(jié)點對應的基本操作步驟,以實現(xiàn)整個工作流的業(yè)務操作。
參圖4所示,更更優(yōu)選地,所述步驟S5包括:
根據(jù)所述工作流模板的數(shù)據(jù)結構信息,執(zhí)行所述工作流實例。
在該實施例中,所述步驟S5根據(jù)所述工作流模板的數(shù)據(jù)結構信息,執(zhí)行所述工作流實例,具體地,執(zhí)行工作流模板中的不同數(shù)據(jù)結構對應的第一執(zhí)行節(jié)點其結果會產(chǎn)生不同,進一步地,步驟S5需要執(zhí)行的步驟操作包括第一執(zhí)行節(jié)點、順序控制節(jié)點對應的第一執(zhí)行節(jié)點、并發(fā)控制節(jié)點對應的第一執(zhí)行節(jié)點分別對應的基本操作步驟。例如,在根據(jù)第一執(zhí)行節(jié)點的配置參數(shù)信息,執(zhí)行該節(jié)點對應的操作步驟時(其中該第一執(zhí)行節(jié)點為,步驟S1分解的第一執(zhí)行節(jié)點中與第二執(zhí)行節(jié)點具有依賴關系,或者并發(fā)執(zhí)行關系的第一執(zhí)行節(jié)點),若執(zhí)行失敗,可根據(jù)該節(jié)點的配置參數(shù)信息決定是否重試、發(fā)出相關報警信號等操作。
繼續(xù)在該實施例中,步驟S5中根據(jù)用戶輸入的配置參數(shù)信息,順序執(zhí)行順序控制節(jié)點對應的列表中的每個第一執(zhí)行節(jié)點對應的操作步驟時,若其中的某個第一執(zhí)行節(jié)點對應的操作步驟失敗,則停止執(zhí)行,并標記該第一順序執(zhí)行節(jié)點對應的整個列表執(zhí)行失敗。根據(jù)用戶輸入的配置參數(shù)信息,并發(fā)執(zhí) 行并發(fā)控制節(jié)點對應的樹中的每個第一執(zhí)行節(jié)點對應的操作步驟時,若其中的所有第一執(zhí)行節(jié)點對應的操作步驟均成功,則該并發(fā)控制節(jié)點對應的樹執(zhí)行成功,否則執(zhí)行失敗的第一執(zhí)行節(jié)點所在的樹執(zhí)行失敗,如此執(zhí)行整個多層樹。
與現(xiàn)有技術相比,本申請通過將工作流記錄分解為多個第一執(zhí)行節(jié)點,根據(jù)所述多個第一執(zhí)行節(jié)點之間的執(zhí)行順序信息,確定對應的多個第二執(zhí)行節(jié)點,根據(jù)所述多個第二執(zhí)行節(jié)點之間的執(zhí)行順序關系,確定對應的工作流模板;從而支持工作流程復用,簡化數(shù)據(jù)處理操作,并改善用戶使用體驗。而且,本申請還可以對多個第二執(zhí)行節(jié)點進一步處理,獲得具有更高擴展性的工作流模板,從而應對更復雜的數(shù)據(jù)處理要求并進一步提高數(shù)據(jù)處理效率。此外,本申請還可以依據(jù)該工作流模板生成工作流實例,從而提供工作效率,改善用戶使用體驗;而且,還通過執(zhí)行工作流實例,提高處理效率,并降低了對操作人員經(jīng)驗的依賴性,適應大數(shù)據(jù)時代處理業(yè)務的需求,尤其是大數(shù)據(jù)運維,通過本申請建立的運維工作流模板,可以標準化的完成操作,不會出現(xiàn)紕漏,而且可以盡量減少變更需要的時間。
現(xiàn)有技術的實踐中,當在非常復雜的變更和發(fā)布系統(tǒng)中,人變得不可信賴,目前常見的大數(shù)據(jù)產(chǎn)品中都包含運維平臺,但是這些平臺需要有經(jīng)驗的人員去參與運維,只是形式化地幫助運維人員執(zhí)行他們定義好的步驟,沒有經(jīng)驗的留存,無法為其他并不熟悉該系統(tǒng)的運維人員操作。而本申請?zhí)峁┑墓ぷ髁髂0鍛迷谏鲜鱿到y(tǒng)的運維方面,能夠解決現(xiàn)有技術中的相應問題。
對于本領域技術人員而言,顯然本申請不限于上述示范性實施例的細節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化涵括在本申請內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要 求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復數(shù)。裝置權利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。