一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng)及實(shí)現(xiàn)方法
【專利摘要】一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng)及實(shí)現(xiàn)方法,包括流程管理模塊、業(yè)務(wù)服務(wù)模塊、定時(shí)任務(wù)模塊、配置文件管理模塊、接收器模塊、生成器模塊、發(fā)送器模塊、數(shù)據(jù)訪問(wèn)模塊、配置文件管理模塊、文件掃描模塊、文件處理模塊、文件內(nèi)容驗(yàn)證模塊、文件發(fā)送模塊、模型與文件轉(zhuǎn)換模塊;本發(fā)明具有良好的可擴(kuò)展能力和可重用性,適應(yīng)不同系統(tǒng)在功能需求和業(yè)務(wù)需求等方面的擴(kuò)展,有利于實(shí)現(xiàn)個(gè)性化調(diào)度請(qǐng)求,提高了可復(fù)用性。
【專利說(shuō)明】一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng)及實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及業(yè)務(wù)流程調(diào)度領(lǐng)域,具體來(lái)說(shuō)是一種中控式的用于業(yè)務(wù)流程調(diào)度的管 理系統(tǒng)及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002] 隨著信息化的普及,業(yè)務(wù)流程管理顯得越來(lái)越重要。在當(dāng)今社會(huì),多樣化的用戶需 求使業(yè)務(wù)流程發(fā)生不斷的更新和變化。因用戶需求、業(yè)務(wù)功能設(shè)置不同,各系統(tǒng)在業(yè)務(wù)流程 的管理設(shè)計(jì)上也不同。研究使用優(yōu)化的方法高效管理這些業(yè)務(wù)流程是一個(gè)亟待解決的問(wèn) 題。
[0003] 流程設(shè)計(jì)體現(xiàn)了系統(tǒng)的功能需求,它是系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)的重要環(huán)節(jié),也是影 響系統(tǒng)可擴(kuò)展性、可維護(hù)性的關(guān)鍵因素。在許多流程調(diào)度管理系統(tǒng)的設(shè)計(jì)中,通常圍繞流程 步驟構(gòu)建系統(tǒng)架構(gòu),這樣做可能符合解決問(wèn)題的思維方式,但是系統(tǒng)的可擴(kuò)展性和通用性 受到了限制。目前已公開發(fā)表的業(yè)務(wù)流程調(diào)度管理方法,其解決方案較為僵硬,如果業(yè)務(wù)流 程的頻繁變更,將給系統(tǒng)維護(hù)帶來(lái)了巨大挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的技術(shù)解決問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供一種中控式業(yè)務(wù)流程調(diào)度 管理系統(tǒng)及實(shí)現(xiàn)方法,具有良好的可擴(kuò)展能力和可重用性,適應(yīng)不同系統(tǒng)在功能需求和業(yè) 務(wù)需求等方面的擴(kuò)展。
[0005] 本發(fā)明的技術(shù)解決方案是:一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),如圖1所示包括 以下模塊:
[0006] 流程管理模塊:由流程管理器、流程調(diào)度器和流程處理器三部分組成;其中流程 管理器從文件處理模塊獲取訂單,從配置文件管理模塊獲取流程管理參數(shù)和流程調(diào)度參 數(shù),管理所有等待調(diào)度和正在運(yùn)行的流程實(shí)例;流程調(diào)度器從流程管理器獲取待調(diào)度流程, 根據(jù)調(diào)度策略選取流程,并交由流程處理器啟動(dòng)該流程;流程處理器從文件處理模塊獲取 報(bào)告,從配置文件管理模塊獲取流程配置參數(shù),將流程調(diào)度參數(shù)交給流程調(diào)度引擎,提供流 程處理服務(wù);
[0007] 業(yè)務(wù)服務(wù)模塊:接收流程調(diào)度引擎的調(diào)用,提供訂單、任務(wù)及報(bào)告在流程調(diào)度和數(shù) 據(jù)訪問(wèn)時(shí)所需的各類業(yè)務(wù)服務(wù),包括查詢操作、接收操作、審核操作、生成操作、發(fā)送操作、 取消操作;其中,接收操作調(diào)用接收器模塊處理,生成操作調(diào)用生成器模塊處理,發(fā)送操作 調(diào)用發(fā)送器模塊處理,其他數(shù)據(jù)訪問(wèn)操作調(diào)用數(shù)據(jù)訪問(wèn)模塊處理;
[0008] 定時(shí)任務(wù)模塊:從配置文件管理模塊獲取定時(shí)任務(wù)參數(shù),在約定的時(shí)間按定時(shí)任 務(wù)設(shè)定的參數(shù)啟動(dòng)定時(shí)任務(wù),讓定時(shí)任務(wù)在某時(shí)刻執(zhí)行一次,或者從某時(shí)刻開始,按指定的 時(shí)間間隔重復(fù)執(zhí)行多次;待執(zhí)行的定時(shí)任務(wù)、定時(shí)任務(wù)的執(zhí)行參數(shù)可配置;
[0009] 接收器模塊:接收業(yè)務(wù)服務(wù)模塊的接收參數(shù),完成接收操作,并將接收結(jié)果返回至 業(yè)務(wù)服務(wù)模塊;在執(zhí)行接收操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);根據(jù)數(shù)據(jù)類 型的不同提供了不同的接收器,數(shù)據(jù)類型不同,接收行為也不同,可以對(duì)接收器的類型進(jìn)行 擴(kuò)展,以滿足系統(tǒng)需求;
[0010] 生成器模塊:接收業(yè)務(wù)服務(wù)模塊的生成參數(shù),完成生成操作,并將生成結(jié)果返回至 業(yè)務(wù)服務(wù)模塊;在執(zhí)行生成操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);根據(jù)數(shù)據(jù)類 型的不同提供了不同的生成器,數(shù)據(jù)類型不同,生成行為也不同,可以對(duì)生成器的類型進(jìn)行 擴(kuò)展,以滿足系統(tǒng)需求;
[0011] 發(fā)送器模塊:接收業(yè)務(wù)服務(wù)模塊的發(fā)送參數(shù),完成發(fā)送操作,并將發(fā)送結(jié)果返回至 業(yè)務(wù)服務(wù)模塊;在執(zhí)行發(fā)送操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);在發(fā)送時(shí),調(diào) 用模型與文件轉(zhuǎn)換模塊將內(nèi)部模型對(duì)象轉(zhuǎn)換為相應(yīng)的外部接口文件,并調(diào)用文件發(fā)送模塊 將外部接口文件按指定的發(fā)送方式發(fā)送;外部接口定義不同,發(fā)送器的行為也不同;
[0012] 數(shù)據(jù)訪問(wèn)模塊:以適配方式與外部數(shù)據(jù)庫(kù)連接,接收業(yè)務(wù)服務(wù)模塊、接收器模塊、 生成器模塊和發(fā)送器模塊的數(shù)據(jù)訪問(wèn)請(qǐng)求,提供數(shù)據(jù)訪問(wèn)結(jié)果,為系統(tǒng)提供了數(shù)據(jù)的查詢、 更新、添加和刪除四類基本操作;
[0013] 配置文件管理模塊:管理系統(tǒng)配置文件,為流程管理模塊、定時(shí)任務(wù)模塊、文件發(fā) 送模塊和文件掃描模塊提供配置參數(shù);并提供了配置參數(shù)修改服務(wù);
[0014] 文件掃描模塊:當(dāng)外部接口為文件格式時(shí),從配置文件管理模塊獲取掃描參數(shù),定 時(shí)掃描指定的文件路徑,對(duì)文件進(jìn)行匹配、過(guò)濾、移除和備份,對(duì)于匹配成功文件交由文件 處理模塊執(zhí)行后續(xù)操作,否則給出文件不合法提示;
[0015] 文件處理模塊:當(dāng)外部接口為文件格式時(shí),接收文件掃描模塊的文件,調(diào)用文件內(nèi) 容驗(yàn)證模塊驗(yàn)證文件內(nèi)容的合法性;調(diào)用模型與文件轉(zhuǎn)換模塊完成外部接口文件到內(nèi)部模 型對(duì)象的轉(zhuǎn)換;調(diào)用流程管理模塊中的流程管理器處理訂單;調(diào)用流程管理模塊中的流程 處理器處理任務(wù)確認(rèn)報(bào)告和完成報(bào)告;
[0016] 文件內(nèi)容驗(yàn)證模塊:當(dāng)外部接口為文件格式時(shí),接收文件處理模塊的調(diào)用,完成文 件內(nèi)容驗(yàn)證操作;文件類型不同,驗(yàn)證邏輯可能不同;
[0017] 模型與文件轉(zhuǎn)換模塊:當(dāng)外部接口為文件格式時(shí),接收文件處理模塊的調(diào)用,提供 外部接口文件到內(nèi)部模型對(duì)象的轉(zhuǎn)換;接收發(fā)送器模塊的調(diào)用,提供內(nèi)部模型對(duì)象到外部 接口文件的轉(zhuǎn)換。不同的內(nèi)部模型對(duì)象轉(zhuǎn)換成的外部接口文件不同,不同的外部接口文件 轉(zhuǎn)換成的內(nèi)部模型對(duì)象也不同;內(nèi)部模型對(duì)象與外部接口文件的轉(zhuǎn)換規(guī)則可配置;
[0018] 文件發(fā)送模塊:當(dāng)外部接口為文件格式時(shí),接收待發(fā)送文件,從配置文件管理模塊 獲取發(fā)送參數(shù),提供文件發(fā)送服務(wù);文件發(fā)送方式包括FTP發(fā)送、SSH發(fā)送,可以根據(jù)發(fā)送方 式的不同對(duì)發(fā)送服務(wù)類型進(jìn)行擴(kuò)展,以滿足系統(tǒng)需求。
[0019] 所述的流程管理模塊實(shí)現(xiàn)過(guò)程如下:
[0020] (1)流程管理器從配置文件管理模塊獲取流程管理參數(shù),包括等待調(diào)度的流程隊(duì) 列的最大容量、運(yùn)行中的流程的最大容量,使用獲取的參數(shù)初始化并啟動(dòng)流程管理器;
[0021] (2)啟動(dòng)流程處理器,流程處理器從配置文件管理模塊獲取流程配置參數(shù),并將流 程調(diào)度參數(shù)交給流程調(diào)度引擎,提供流程處理服務(wù);
[0022] (3)流程管理器從配置文件管理模塊獲取流程調(diào)度參數(shù),包括流程調(diào)度策略、流程 調(diào)度時(shí)間間隔;根據(jù)流程調(diào)度策略查找相應(yīng)調(diào)度服務(wù),初始化并啟動(dòng)流程調(diào)度器,開啟調(diào)度 線程;
[0023] (4)流程管理器從文件處理模塊獲取訂單,并做如下處理:a.判斷當(dāng)前等待調(diào)度 的流程隊(duì)列是否已達(dá)到最大容量,如果已達(dá)到,則流程添加失敗,返回"等待添加";如果未 達(dá)到,則將流程添加到等待調(diào)度的流程隊(duì)列中,返回"添加成功";b.流程管理器管理流程標(biāo) 識(shí)和流程實(shí)例的映射關(guān)系,方便存取被管理的流程實(shí)例;
[0024] (5)流程調(diào)度器定期檢測(cè)當(dāng)前運(yùn)行中的流程隊(duì)列是否達(dá)到最大容量,如果已達(dá)到 最大容量,間隔固定時(shí)間間隔后重新檢測(cè),否則做如下處理:a、按流程調(diào)度策略從流程管理 器等待調(diào)度的流程隊(duì)列中獲取一個(gè)優(yōu)先級(jí)最高的流程實(shí)例;b、將獲取的流程實(shí)例從等待隊(duì) 列移入運(yùn)行隊(duì)列;c、調(diào)用流程處理器部署、啟動(dòng)該流程;
[0025] (6)在流程調(diào)度過(guò)程中,任務(wù)、訂單報(bào)告由流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊生成、 任務(wù)報(bào)告由流程處理器從文件處理模塊獲取,進(jìn)而執(zhí)行流程處理請(qǐng)求。流程處理請(qǐng)求包括 暫掛流程、喚醒暫掛流程、取消流程、重啟流程;
[0026] (7)當(dāng)某流程實(shí)例調(diào)度結(jié)束時(shí),流程管理器將該流程從運(yùn)行隊(duì)列中移除,并清理流 程相關(guān)數(shù)據(jù)。
[0027] 所述的定時(shí)任務(wù)模塊實(shí)現(xiàn)過(guò)程如下:
[0028] (1)用戶配置所有待執(zhí)行的定時(shí)任務(wù)和執(zhí)行參數(shù),定時(shí)任務(wù)模塊從配置文件管理 模塊獲取定時(shí)任務(wù)參數(shù),初始化并啟動(dòng)定時(shí)任務(wù)調(diào)度器;
[0029] (2)注冊(cè)所有的定時(shí)任務(wù)和定時(shí)任務(wù)監(jiān)聽(tīng)器。定時(shí)任務(wù)有兩種注冊(cè)方式:a、根據(jù) 配置文件中配置的定時(shí)任務(wù)參數(shù),注冊(cè)所有的定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器;b、在系統(tǒng)運(yùn)行時(shí)動(dòng) 態(tài)注冊(cè)定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器;
[0030] (3)為每一個(gè)注冊(cè)成功的定時(shí)任務(wù)開啟一個(gè)監(jiān)聽(tīng)線程,監(jiān)聽(tīng)該任務(wù)設(shè)定的定時(shí)事 件;
[0031] (4)在約定的時(shí)間按定時(shí)任務(wù)設(shè)定的參數(shù)啟動(dòng)定時(shí)任務(wù),讓定時(shí)任務(wù)在某時(shí)刻執(zhí) 行一次,或者從某時(shí)刻開始,按指定的時(shí)間間隔重復(fù)執(zhí)行多次。定時(shí)任務(wù)開始執(zhí)行時(shí),回調(diào) 該任務(wù)的啟動(dòng)監(jiān)聽(tīng)器方法;
[0032] (5)當(dāng)定時(shí)任務(wù)執(zhí)行結(jié)束后,回調(diào)該任務(wù)的結(jié)束監(jiān)聽(tīng)器方法。
[0033] 所述的文件掃描模塊實(shí)現(xiàn)過(guò)程如下:
[0034] (1)從配置文件管理模塊獲取掃描參數(shù),包括系統(tǒng)需要的匹配器,每種匹配器的名 稱和匹配規(guī)則即匹配器可匹配的文件類型,為文件匹配服務(wù)設(shè)置匹配參數(shù);
[0035] (2)從配置文件管理模塊獲取掃描參數(shù),包括所有的文件掃描目錄、文件備份路 徑、文件掃描時(shí)間間隔等,并開啟文件掃描線程;
[0036] (3)對(duì)于每個(gè)文件掃描路徑,每隔固定的時(shí)間間隔掃描一次,獲取該路徑下所有文 件;
[0037] (4)如果未獲取到任何文件,則轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行,否則執(zhí)行步驟(5);
[0038] (5)對(duì)于每一個(gè)掃描到的文件,首先根據(jù)文件類型獲取文件匹配服務(wù),驗(yàn)證該文件 是否為系統(tǒng)可忽略的文件,a、如果掃描到的文件為可忽略文件,掃描線程不做任何處理,文 件留在原目錄下;b、如果掃描到的文件為不可忽略文件,調(diào)用文件匹配服務(wù)對(duì)文件進(jìn)行匹 配過(guò)濾;如果匹配失敗,將文件移動(dòng)被備份路徑下,否則將文件交給文件處理模塊處理。如 果文件處理模塊處理結(jié)果為"等待處理",則文件留在原目錄下不做處理,否則將文件移動(dòng) 到備份路徑下;
[0039] (6)處理完所有掃描到的文件后,轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
[0040] 所述系統(tǒng)實(shí)現(xiàn)步驟如下:
[0041] (1)啟動(dòng)系統(tǒng);
[0042] (2)文件掃描模塊定期掃描指定文件路徑,對(duì)掃描到的所有文件進(jìn)行匹配、過(guò)濾、 移除和備份;如果該文件匹配不成功,則視為垃圾文件,移除后不做處理;對(duì)于匹配成功的 文件,如果該文件為可忽略文件,則文件留在掃描路徑下不做處理,否則將文件移除備份 后,將文件交給文件處理模塊進(jìn)行處理;
[0043] (3)文件處理模塊將文件交給文件內(nèi)容驗(yàn)證模塊,進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過(guò) 則執(zhí)行步驟(4),否則結(jié)束對(duì)該文件的處理,繼續(xù)處理其他文件;
[0044] (4)根據(jù)文件類型和文件內(nèi)容,文件處理模塊將文件交給模型與文件轉(zhuǎn)換模塊,將 文件轉(zhuǎn)換成相應(yīng)的內(nèi)部模型對(duì)象,交由流程管理模塊進(jìn)行處理;
[0045] (5)流程管理模塊處理接收的模型對(duì)象。如果接收的模型對(duì)象類型為訂單對(duì)象,執(zhí) 行步驟(6),如果接收的模型對(duì)象類型為任務(wù)確認(rèn)報(bào)告對(duì)象,則執(zhí)行步驟(13),如果接收的 模型對(duì)象類型為任務(wù)完成報(bào)告對(duì)象,則執(zhí)行步驟(14);
[0046] (6)流程管理模塊從配置文件管理模塊獲取該訂單對(duì)象對(duì)應(yīng)的流程參數(shù),根據(jù)該 流程參數(shù)生成流程對(duì)象實(shí)例,加入流程管理器的等待調(diào)度隊(duì)列;
[0047] (7)流程調(diào)度器使用指定的流程調(diào)度策略,定時(shí)從流程管理器等待調(diào)度的流程隊(duì) 列中獲取一個(gè)流程實(shí)例,將該流程加入到運(yùn)行隊(duì)列,并調(diào)用流程處理器處理。流程處理器將 流程調(diào)度參數(shù)交與流程調(diào)度引擎,開啟調(diào)度流程;
[0048] (8)流程開啟后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,首先持久化訂單文件轉(zhuǎn)換生成 的訂單對(duì)象;
[0049] (9)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,生成并保存訂單確認(rèn)報(bào)告,并將訂單確認(rèn)報(bào) 告對(duì)象轉(zhuǎn)換成訂單確認(rèn)報(bào)告文件,發(fā)送給訂單發(fā)送方;
[0050] (10)系統(tǒng)管理員完成訂單審核操作,保存審核結(jié)果。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù) 模塊,將審核結(jié)果轉(zhuǎn)換成訂單審核報(bào)告,發(fā)送給訂單發(fā)送方。如果審核通過(guò),繼續(xù)執(zhí)行步驟 (11),否則結(jié)束流程,執(zhí)行步驟(17);
[0051] (11)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,根據(jù)訂單數(shù)據(jù)生成并保存任務(wù)對(duì)象,對(duì)于 每一個(gè)生成的任務(wù)對(duì)象,開啟任務(wù)調(diào)度流程,任務(wù)調(diào)度流程執(zhí)行步驟為步驟(12)至(15);
[0052] (12)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,將生成的任務(wù)對(duì)象轉(zhuǎn)換成任務(wù)文件,發(fā)送 給任務(wù)接收方;
[0053] (13)當(dāng)文件掃描模塊接收到任務(wù)確認(rèn)報(bào)告文件時(shí),交給文件處理模塊。文件處理 模塊驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊 調(diào)用流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存確 認(rèn)報(bào)告對(duì)象,繼續(xù)等待任務(wù)完成報(bào)告;
[0054] (14)當(dāng)文件掃描模塊接收到任務(wù)完成報(bào)告文件時(shí),交給文件處理模塊。文件處理 模塊驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊 調(diào)用流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存任 務(wù)完成報(bào)告對(duì)象;
[0055] (15)任務(wù)調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該任務(wù)調(diào)度流程;
[0056] (16)當(dāng)訂單分解出的所有任務(wù)的調(diào)度流程完成后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模 塊,生成并保存訂單完成報(bào)告,并將訂單完成報(bào)告對(duì)象轉(zhuǎn)換成訂單完成報(bào)告文件,發(fā)送給訂 單發(fā)送方;
[0057] (17)訂單調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該流程。
[0058] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0059] (1)系統(tǒng)采用中控模式接收、管理和調(diào)度外部參與者發(fā)送的處理請(qǐng)求,按照業(yè)務(wù)流 程定義開啟調(diào)度流程,協(xié)調(diào)外部參與者共同完成對(duì)該請(qǐng)求的處理。在調(diào)度過(guò)程中,用訂單模 型描述本系統(tǒng)接收的處理請(qǐng)求,用任務(wù)模型描述本系統(tǒng)發(fā)送給其他系統(tǒng)的處理請(qǐng)求。任務(wù) 調(diào)度流程結(jié)束后,通知其所屬的訂單調(diào)度流程。訂單和任務(wù)處理過(guò)程中產(chǎn)生的處理報(bào)告用 報(bào)告模型表不。
[0060] (2)調(diào)度流程可通過(guò)配置文件進(jìn)行配置,流程活動(dòng)之間沒(méi)有強(qiáng)依賴關(guān)系,用戶可根 據(jù)實(shí)際需求定制流程步驟和流程參數(shù);系統(tǒng)可處理的訂單、任務(wù)和報(bào)告類型可通過(guò)配置文 件擴(kuò)展;系統(tǒng)采用了兩級(jí)核心包機(jī)制,一級(jí)核心包為系統(tǒng)提供基礎(chǔ)支撐,二級(jí)核心包為系統(tǒng) 使用文件作為外部接口的一個(gè)擴(kuò)展包。如果外部接口文件格式需要變動(dòng),只需要替換二級(jí) 核心包的接口實(shí)現(xiàn)即可。如果外部接口不是文件,而是其他形式,則二級(jí)核心包可替換。這 些為系統(tǒng)二次開發(fā)提供了良好的支撐。
[0061] (3)本系統(tǒng)提供了模塊化、低耦合、可動(dòng)態(tài)插拔的組件管理環(huán)境,每個(gè)組件可以向 服務(wù)注冊(cè)表注冊(cè)、查詢和使用服務(wù)。系統(tǒng)的服務(wù)模型是以服務(wù)發(fā)布、發(fā)現(xiàn)、綁定為基礎(chǔ)操作 的動(dòng)態(tài)協(xié)作模型。當(dāng)服務(wù)被注冊(cè)或注銷時(shí),其他使用該服務(wù)的組件可以感知服務(wù)是否可用, 并動(dòng)態(tài)的改變自己的行為。在整個(gè)過(guò)程中,系統(tǒng)保持穩(wěn)定,不需要重新啟動(dòng)。
【專利附圖】
【附圖說(shuō)明】
[0062] 圖1為本發(fā)明系統(tǒng)架構(gòu)圖;
[0063] 圖2為本發(fā)明系統(tǒng)實(shí)現(xiàn)過(guò)程;
[0064] 圖3為本發(fā)明系統(tǒng)中的流程管理模塊實(shí)現(xiàn)過(guò)程;
[0065] 圖4為本發(fā)明系統(tǒng)中的定時(shí)任務(wù)模塊實(shí)現(xiàn)過(guò)程;
[0066] 圖5為本發(fā)明系統(tǒng)中的文件掃描模塊實(shí)現(xiàn)過(guò)程。
【具體實(shí)施方式】
[0067] 下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0068] (1)中控式:本系統(tǒng)的外部參與者分為兩類:主動(dòng)系統(tǒng)和被動(dòng)系統(tǒng),主動(dòng)系統(tǒng)和被 動(dòng)系統(tǒng)彼此透明,不發(fā)生交互。主動(dòng)系統(tǒng)向本系統(tǒng)發(fā)送訂單調(diào)度請(qǐng)求,并等待本系統(tǒng)反饋的 各類訂單處理報(bào)告。本系統(tǒng)接收到主動(dòng)系統(tǒng)發(fā)送的訂單調(diào)度請(qǐng)求后,協(xié)調(diào)需要參與的被動(dòng) 系統(tǒng),根據(jù)訂單調(diào)度請(qǐng)求產(chǎn)生各類處理任務(wù),將任務(wù)派發(fā)至相應(yīng)的被動(dòng)系統(tǒng)。被動(dòng)系統(tǒng)接收 到處理任務(wù)后,執(zhí)行處理任務(wù)向本系統(tǒng)反饋各類任務(wù)處理報(bào)告。
[0069] (2)兩層模型:訂單和任務(wù)兩層模型,訂單為其他分系統(tǒng)發(fā)送給本系統(tǒng)的調(diào)度請(qǐng) 求,任務(wù)為本系統(tǒng)根據(jù)接收的訂單生成并派發(fā)給其他分系統(tǒng)的處理請(qǐng)求。在訂單和任務(wù)處 理過(guò)程中會(huì)產(chǎn)生訂單處理報(bào)告和任務(wù)處理報(bào)告,其中訂單處理報(bào)告包括訂單確認(rèn)報(bào)告、訂 單審核報(bào)告、訂單完成報(bào)告,任務(wù)處理報(bào)告包括任務(wù)確認(rèn)報(bào)告、任務(wù)完成報(bào)告。訂單處理報(bào) 告由本系統(tǒng)上報(bào)至主動(dòng)系統(tǒng),任務(wù)處理報(bào)告由被動(dòng)系統(tǒng)上報(bào)給本系統(tǒng);
[0070] (3)兩級(jí)核心包:一級(jí)核心包基于系統(tǒng)內(nèi)部模型對(duì)象提供各類服務(wù),二級(jí)核心包 基于外部接口文件,提供文件掃描、驗(yàn)證、發(fā)送、文件與內(nèi)部模型轉(zhuǎn)換等服務(wù)。一級(jí)核心包為 系統(tǒng)提供基礎(chǔ)支撐,二級(jí)核心包為系統(tǒng)使用文件作為外部接口的一個(gè)擴(kuò)展包。如果外部接 口不是文件而是其他形式,則二級(jí)核心包可替換。
[0071] 為了更好地理解本發(fā)明,先對(duì)一些基本概念進(jìn)行一下解釋說(shuō)明。
[0072] 訂單:在調(diào)度過(guò)程中,外部參與者向本系統(tǒng)發(fā)送的處理請(qǐng)求為訂單,訂單內(nèi)容描述 了該訂單的類型、緊急程度、發(fā)送方、接收方、創(chuàng)建時(shí)間、待執(zhí)行的處理任務(wù)參數(shù)等內(nèi)容。訂 單是一個(gè)調(diào)度流程的起點(diǎn)。
[0073] 任務(wù):在調(diào)度過(guò)程中,本系統(tǒng)接收外部參與者發(fā)送的訂單,對(duì)訂單內(nèi)容進(jìn)行解析, 分解且發(fā)送給其他外部分系統(tǒng)的處理請(qǐng)求為任務(wù)。任務(wù)內(nèi)容描述了該任務(wù)的類型、優(yōu)先級(jí)、 發(fā)送發(fā)、接收方、創(chuàng)建時(shí)間、待執(zhí)行的處理任務(wù)參數(shù)等。任務(wù)是一個(gè)調(diào)度流程的中間產(chǎn)出。
[0074] 報(bào)告:在調(diào)度過(guò)程中,本系統(tǒng)接收或發(fā)送給其他外部參與者的處理狀態(tài)為報(bào)告。報(bào) 告分兩類,一類是訂單處理報(bào)告,包括訂單確認(rèn)報(bào)告、訂單審核報(bào)告、訂單完成報(bào)告等;一類 是任務(wù)處理報(bào)告,包括任務(wù)確認(rèn)報(bào)告、任務(wù)完成報(bào)告等。訂單處理報(bào)告一般由本系統(tǒng)發(fā)送給 外部參與者,任務(wù)報(bào)告一般由外部參與者發(fā)送給本系統(tǒng)。
[0075] 訂單確認(rèn)報(bào)告:本系統(tǒng)接收到訂單后,將訂單確認(rèn)報(bào)告發(fā)送給外部系統(tǒng)。訂單確認(rèn) 報(bào)告中描述了訂單是否被接收、接收時(shí)間、發(fā)送方、接收方等參數(shù)。如果未被接收,報(bào)告中描 述了訂單被拒絕原因。
[0076] 訂單申核報(bào)告:本系統(tǒng)完成訂單申核后,將訂單申核報(bào)告發(fā)給外部系統(tǒng)。訂單申核 報(bào)告中描述了訂單審核結(jié)果、審核時(shí)間、發(fā)送方、接收方等參數(shù)。
[0077] 訂單完成報(bào)告:訂單處理完成后,本系統(tǒng)發(fā)送訂單完成報(bào)告給外部系統(tǒng),訂單完成 報(bào)告中描述訂單處理結(jié)果、處理時(shí)間、發(fā)送方、接收方等參數(shù)。
[0078] 任務(wù)確認(rèn)報(bào)告:外部系統(tǒng)接收到任務(wù)時(shí),發(fā)送任務(wù)確認(rèn)報(bào)告給本系統(tǒng)。任務(wù)確認(rèn)報(bào) 告中描述了任務(wù)是否被接收、接收時(shí)間、發(fā)送方、接收方等參數(shù)。如果任務(wù)未被接收,報(bào)告中 描述了任務(wù)被拒絕的原因。
[0079] 任務(wù)完成報(bào)告:任務(wù)處理完成后,外部系統(tǒng)發(fā)送任務(wù)完成報(bào)告給本系統(tǒng)。任務(wù)完成 報(bào)告中描述任務(wù)處理結(jié)果、處理時(shí)間、發(fā)送方、接收方等參數(shù)。
[0080] 流程活動(dòng):流程活動(dòng)指在流程調(diào)度過(guò)程中執(zhí)行的每一個(gè)步驟。流程活動(dòng)分為起始 活動(dòng)(流程的第一個(gè)活動(dòng))、任務(wù)活動(dòng)(執(zhí)行一個(gè)指定的流程動(dòng)作)、等待活動(dòng)(等待某特 定事件的發(fā)生才能繼續(xù)執(zhí)行流程的活動(dòng))、分支活動(dòng)(某流程步驟被分解為多個(gè)并行的分 支并發(fā)執(zhí)行)、合并活動(dòng)(多個(gè)分支活動(dòng)都執(zhí)行完成后才能繼續(xù)執(zhí)行流程的活動(dòng))、終止活 動(dòng)(流程的最后一個(gè)活動(dòng))等。
[0081] 流程調(diào)度策略:從等待調(diào)度的流程隊(duì)列中獲取一個(gè)優(yōu)先級(jí)最高的流程實(shí)例的方 法。調(diào)度策略可以有多種方式,如先進(jìn)先出、按緊急程度獲取、按最短調(diào)度時(shí)間獲取等。具 體使用的調(diào)度策略可在配置文件中配置。系統(tǒng)提供了默認(rèn)的流程調(diào)度策略。流程調(diào)度策略 也可通過(guò)二次開發(fā)進(jìn)行擴(kuò)展。
[0082] 業(yè)務(wù)流程定義:業(yè)務(wù)流程定義描述了所有流程活動(dòng)的執(zhí)行順序、流程活動(dòng)間的依 賴關(guān)系、流程活動(dòng)的執(zhí)行條件、流程活動(dòng)的執(zhí)行分支等。業(yè)務(wù)流程定義一般通過(guò)xml文件描 述。業(yè)務(wù)流程定義是可配置的,用戶可以根據(jù)自己的需求進(jìn)行個(gè)性化定制,以滿足項(xiàng)目需 求。
[0083] 文件匹配驗(yàn)證:驗(yàn)證文件是否與預(yù)定的要求相匹配。目前系統(tǒng)提供了文件名后綴 匹配、文件名前綴匹配、文件名是否含指定子字符串匹配、文件名是否符合指定正則表達(dá)式 匹配等匹配服務(wù)。
[0084] 模型與文件轉(zhuǎn)化規(guī)則:描述了模型對(duì)象與外部接口文件的轉(zhuǎn)換方式,即從模型對(duì) 象轉(zhuǎn)換成文件或者從文件轉(zhuǎn)換成模型對(duì)象時(shí),模型對(duì)象的屬性如何與文件的內(nèi)容相映射。 模型與文件轉(zhuǎn)換規(guī)則是可配置的,用戶可以根據(jù)自己的需求進(jìn)行個(gè)性化定制,以滿足項(xiàng)目 需求。
[0085] 如圖1所示,本發(fā)明由流程管理模塊、業(yè)務(wù)服務(wù)模塊、定時(shí)任務(wù)模塊、文件掃描模 塊、模型與文件轉(zhuǎn)換模塊等組成,整個(gè)系統(tǒng)實(shí)現(xiàn)過(guò)程如圖2所示。實(shí)現(xiàn)過(guò)程如下:
[0086] (1)啟動(dòng)系統(tǒng);
[0087] (2)文件掃描模塊定期掃描指定文件路徑,對(duì)掃描到的所有文件進(jìn)行匹配、過(guò)濾、 移除和備份;如果該文件匹配不成功,則視為垃圾文件,移除后不做處理;對(duì)于匹配成功的 文件,如果該文件為可忽略文件,則文件留在掃描路徑下不做處理,否則將文件移除備份 后,將文件交給文件處理模塊進(jìn)行處理;
[0088] (3)文件處理模塊將文件交給文件內(nèi)容驗(yàn)證模塊,進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過(guò) 則執(zhí)行步驟(4),否則結(jié)束對(duì)該文件的處理,繼續(xù)處理其他文件;
[0089] (4)根據(jù)文件類型和文件內(nèi)容,文件處理模塊將文件交給模型與文件轉(zhuǎn)換模塊,將 文件轉(zhuǎn)換成相應(yīng)的內(nèi)部模型對(duì)象,交由流程管理模塊進(jìn)行處理;
[0090] (5)流程管理模塊處理接收的模型對(duì)象。如果接收的模型對(duì)象類型為訂單對(duì)象,執(zhí) 行步驟(6),如果接收的模型對(duì)象類型為任務(wù)確認(rèn)報(bào)告對(duì)象,則執(zhí)行步驟(13),如果接收的 模型對(duì)象類型為任務(wù)完成報(bào)告對(duì)象,則執(zhí)行步驟(14);
[0091] (6)流程管理模塊從配置文件管理模塊獲取該訂單對(duì)象對(duì)應(yīng)的流程參數(shù),根據(jù)該 流程參數(shù)生成流程對(duì)象實(shí)例,加入流程管理器的等待調(diào)度隊(duì)列;
[0092] (7)流程調(diào)度器使用指定的流程調(diào)度策略,定時(shí)從流程管理器等待調(diào)度的流程隊(duì) 列中獲取一個(gè)流程實(shí)例,將該流程加入到運(yùn)行隊(duì)列,并調(diào)用流程處理器處理。流程處理器將 流程調(diào)度參數(shù)交與流程調(diào)度引擎,開啟調(diào)度流程;
[0093] (8)流程開啟后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,首先持久化訂單文件轉(zhuǎn)換生成 的訂單對(duì)象;
[0094] (9)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,生成并保存訂單確認(rèn)報(bào)告,并將訂單確認(rèn)報(bào) 告對(duì)象轉(zhuǎn)換成訂單確認(rèn)報(bào)告文件,發(fā)送給訂單發(fā)送方;
[0095] (10)系統(tǒng)管理員完成訂單審核操作,保存審核結(jié)果。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù) 模塊,將審核結(jié)果轉(zhuǎn)換成訂單審核報(bào)告,發(fā)送給訂單發(fā)送方。如果審核通過(guò),繼續(xù)執(zhí)行步驟 (11),否則結(jié)束流程,執(zhí)行步驟(17);
[0096] (11)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,根據(jù)訂單數(shù)據(jù)生成并保存任務(wù)對(duì)象,對(duì)于 每一個(gè)生成的任務(wù)對(duì)象,開啟任務(wù)調(diào)度流程,任務(wù)調(diào)度流程執(zhí)行步驟為步驟(12)至(15); [0097] (12)流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,將生成的任務(wù)對(duì)象轉(zhuǎn)換成任務(wù)文件,發(fā)送 給任務(wù)接收方;
[0098] (13)當(dāng)文件掃描模塊接收到任務(wù)確認(rèn)報(bào)告文件時(shí),交給文件處理模塊。文件處理 模塊驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊 調(diào)用流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存確 認(rèn)報(bào)告對(duì)象,繼續(xù)等待任務(wù)完成報(bào)告;
[0099] (14)當(dāng)文件掃描模塊接收到任務(wù)完成報(bào)告文件時(shí),交給文件處理模塊。文件處理 模塊驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊 調(diào)用流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存任 務(wù)完成報(bào)告對(duì)象;
[0100] (15)任務(wù)調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該任務(wù)調(diào)度流程;
[0101] (16)當(dāng)訂單分解出的所有任務(wù)的調(diào)度流程完成后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模 塊,生成并保存訂單完成報(bào)告,并將訂單完成報(bào)告對(duì)象轉(zhuǎn)換成訂單完成報(bào)告文件,發(fā)送給訂 單發(fā)送方;
[0102] (17)訂單調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該流程。
[0103] 上述主要模塊的具體實(shí)現(xiàn)過(guò)程如下:
[0104] 1、流程管理模塊
[0105] 該模塊的實(shí)現(xiàn)過(guò)程如圖3所示:
[0106] (1)流程管理器從配置文件管理模塊獲取流程管理參數(shù),包括等待調(diào)度的流程隊(duì) 列的最大容量、運(yùn)行中的流程的最大容量,使用獲取的參數(shù)初始化并啟動(dòng)流程管理器;
[0107] (2)啟動(dòng)流程處理器,流程處理器從配置文件管理模塊獲取流程配置參數(shù),并將流 程調(diào)度參數(shù)交給流程調(diào)度引擎,提供流程處理服務(wù);
[0108] (3)流程管理器從配置文件管理模塊獲取流程調(diào)度參數(shù),包括流程調(diào)度策略、流程 調(diào)度時(shí)間間隔;根據(jù)流程調(diào)度策略查找相應(yīng)調(diào)度服務(wù),初始化并啟動(dòng)流程調(diào)度器,開啟調(diào)度 線程;
[0109] (4)流程管理器從文件處理模塊獲取訂單,并做如下處理:a.判斷當(dāng)前等待調(diào)度 的流程隊(duì)列是否已達(dá)到最大容量,如果已達(dá)到,則流程添加失敗,返回"等待添加";如果未 達(dá)到,則將流程添加到等待調(diào)度的流程隊(duì)列中,返回"添加成功";b.流程管理器管理流程標(biāo) 識(shí)和流程實(shí)例的映射關(guān)系,方便存取被管理的流程實(shí)例;
[0110] (5)流程調(diào)度器定期檢測(cè)當(dāng)前運(yùn)行中的流程隊(duì)列是否達(dá)到最大容量,如果已達(dá)到 最大容量,間隔固定時(shí)間間隔后重新檢測(cè),否則做如下處理:1、按流程調(diào)度策略從流程管理 器等待調(diào)度的流程隊(duì)列中獲取一個(gè)優(yōu)先級(jí)最高的流程實(shí)例;2、將獲取的流程實(shí)例從等待隊(duì) 列移入運(yùn)行隊(duì)列;3、調(diào)用流程處理器部署、啟動(dòng)該流程;
[0111] (6)在流程調(diào)度過(guò)程中,任務(wù)、訂單報(bào)告由流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊生成、 任務(wù)報(bào)告由流程處理器從文件處理模塊獲取,進(jìn)而執(zhí)行流程處理請(qǐng)求。流程處理請(qǐng)求包括 暫掛流程、喚醒暫掛流程、取消流程、重啟流程等;
[0112] (7)當(dāng)某流程實(shí)例調(diào)度結(jié)束時(shí),流程管理器將該流程從運(yùn)行隊(duì)列中移除,并清理流 程相關(guān)數(shù)據(jù)。
[0113] 2、定時(shí)任務(wù)模塊
[0114] 該模塊的實(shí)現(xiàn)過(guò)程如圖4所示:
[0115] (1)用戶配置所有待執(zhí)行的定時(shí)任務(wù)和執(zhí)行參數(shù),定時(shí)任務(wù)模塊從配置文件管理 模塊獲取定時(shí)任務(wù)參數(shù),初始化并啟動(dòng)定時(shí)任務(wù)調(diào)度器;
[0116] (2)注冊(cè)所有的定時(shí)任務(wù)和定時(shí)任務(wù)監(jiān)聽(tīng)器。定時(shí)任務(wù)有兩種注冊(cè)方式:1、根據(jù) 配置文件中配置的定時(shí)任務(wù)參數(shù),注冊(cè)所有的定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器;2、在系統(tǒng)運(yùn)行時(shí)動(dòng) 態(tài)注冊(cè)定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器;
[0117] (3)為每一個(gè)注冊(cè)成功的定時(shí)任務(wù)開啟一個(gè)監(jiān)聽(tīng)線程,監(jiān)聽(tīng)該任務(wù)設(shè)定的定時(shí)事 件;
[0118] (4)在約定的時(shí)間按定時(shí)任務(wù)設(shè)定的參數(shù)啟動(dòng)定時(shí)任務(wù),讓定時(shí)任務(wù)在某時(shí)刻執(zhí) 行一次,或者從某時(shí)刻開始,按指定的時(shí)間間隔重復(fù)執(zhí)行多次。定時(shí)任務(wù)開始執(zhí)行時(shí),回調(diào) 該任務(wù)的啟動(dòng)監(jiān)聽(tīng)器方法;
[0119] (5)當(dāng)定時(shí)任務(wù)執(zhí)行結(jié)束后,回調(diào)該任務(wù)的結(jié)束監(jiān)聽(tīng)器方法。
[0120] 3、文件掃描模塊
[0121] 該模塊的實(shí)現(xiàn)過(guò)程如圖5所示:
[0122] (1)從配置文件管理模塊獲取掃描參數(shù),包括系統(tǒng)需要的匹配器,每種匹配器的名 稱和匹配規(guī)則(即匹配器可匹配的文件類型),為文件匹配服務(wù)設(shè)置匹配參數(shù);
[0123] (2)從配置文件管理模塊獲取掃描參數(shù),包括所有的文件掃描目錄、文件備份路 徑、文件掃描時(shí)間間隔等,并開啟文件掃描線程;
[0124] (3)對(duì)于每個(gè)文件掃描路徑,每隔固定的時(shí)間間隔掃描一次,獲取該路徑下所有文 件;
[0125] (4)如果未獲取到任何文件,則轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行,否則執(zhí)行步驟(5);
[0126] (5)對(duì)于每一個(gè)掃描到的文件,首先根據(jù)文件類型獲取文件匹配服務(wù),驗(yàn)證該文件 是否為系統(tǒng)可忽略的文件。1、如果掃描到的文件為可忽略文件,掃描線程不做任何處理,文 件留在原目錄下;2、如果掃描到的文件為不可忽略文件,調(diào)用文件匹配服務(wù)對(duì)文件進(jìn)行匹 配過(guò)濾。如果匹配失敗,將文件移動(dòng)被備份路徑下,否則將文件交給文件處理模塊處理。如 果文件處理模塊處理結(jié)果為"等待處理",則文件留在原目錄下不做處理,否則將文件移動(dòng) 到備份路徑下;
[0127] (6)處理完所有掃描到的文件后,轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
[0128] 本發(fā)明未詳細(xì)闡述的部分屬于本領(lǐng)域公知技術(shù)。
【權(quán)利要求】
1. 一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),其特征在于包括流程管理模塊、業(yè)務(wù)服務(wù)模塊、 定時(shí)任務(wù)模塊、配置文件管理模塊、接收器模塊、生成器模塊、發(fā)送器模塊、數(shù)據(jù)訪問(wèn)模塊、 配置文件管理模塊、文件掃描模塊、文件處理模塊、文件內(nèi)容驗(yàn)證模塊、文件發(fā)送模塊、模型 與文件轉(zhuǎn)換模塊;其中: 流程管理模塊:由流程管理器、流程調(diào)度器和流程處理器三部分組成;其中流程管理 器從文件處理模塊獲取訂單,從配置文件管理模塊獲取流程管理參數(shù)和流程調(diào)度參數(shù),管 理所有等待調(diào)度和正在運(yùn)行的流程實(shí)例;流程調(diào)度器從流程管理器獲取待調(diào)度流程,根據(jù) 調(diào)度策略選取流程,并交由流程處理器啟動(dòng)該流程;流程處理器從文件處理模塊獲取報(bào)告, 從配置文件管理模塊獲取流程配置參數(shù),將流程調(diào)度參數(shù)交給流程調(diào)度引擎,提供流程處 理服務(wù); 業(yè)務(wù)服務(wù)模塊:接收流程調(diào)度引擎的調(diào)用,提供訂單、任務(wù)及報(bào)告在流程調(diào)度和數(shù)據(jù)訪 問(wèn)時(shí)所需的各類業(yè)務(wù)服務(wù),包括查詢操作、接收操作、審核操作、生成操作、發(fā)送操作、取消 操作;其中,接收操作調(diào)用接收器模塊處理,生成操作調(diào)用生成器模塊處理,發(fā)送操作調(diào)用 發(fā)送器模塊處理,其他數(shù)據(jù)訪問(wèn)操作調(diào)用數(shù)據(jù)訪問(wèn)模塊處理; 定時(shí)任務(wù)模塊:從配置文件管理模塊獲取定時(shí)任務(wù)參數(shù),在約定的時(shí)間按定時(shí)任務(wù)設(shè) 定的參數(shù)啟動(dòng)定時(shí)任務(wù),讓定時(shí)任務(wù)在某時(shí)刻執(zhí)行一次,或者從某時(shí)刻開始,按指定的時(shí)間 間隔重復(fù)執(zhí)行多次;待執(zhí)行的定時(shí)任務(wù)、定時(shí)任務(wù)的執(zhí)行參數(shù)可配置; 接收器模塊:接收業(yè)務(wù)服務(wù)模塊的接收參數(shù),完成接收操作,并將接收結(jié)果返回至業(yè) 務(wù)服務(wù)模塊;在執(zhí)行接收操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);根據(jù)數(shù)據(jù)類型 的不同提供了不同的接收器,數(shù)據(jù)類型不同,接收行為也不同,可以對(duì)接收器的類型進(jìn)行擴(kuò) 展,以滿足系統(tǒng)需求; 生成器模塊:接收業(yè)務(wù)服務(wù)模塊的生成參數(shù),完成生成操作,并將生成結(jié)果返回至業(yè) 務(wù)服務(wù)模塊;在執(zhí)行生成操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);根據(jù)數(shù)據(jù)類型 的不同提供了不同的生成器,數(shù)據(jù)類型不同,生成行為也不同,可以對(duì)生成器的類型進(jìn)行擴(kuò) 展,以滿足系統(tǒng)需求; 發(fā)送器模塊:接收業(yè)務(wù)服務(wù)模塊的發(fā)送參數(shù),完成發(fā)送操作,并將發(fā)送結(jié)果返回至業(yè)務(wù) 服務(wù)模塊;在執(zhí)行發(fā)送操作的過(guò)程中,調(diào)用數(shù)據(jù)訪問(wèn)模塊進(jìn)行數(shù)據(jù)存儲(chǔ);在發(fā)送時(shí),調(diào)用模 型與文件轉(zhuǎn)換模塊將內(nèi)部模型對(duì)象轉(zhuǎn)換為相應(yīng)的外部接口文件,并調(diào)用文件發(fā)送模塊將外 部接口文件按指定的發(fā)送方式發(fā)送;外部接口定義不同,發(fā)送器的行為也不同; 數(shù)據(jù)訪問(wèn)模塊:以適配方式與外部數(shù)據(jù)庫(kù)連接,接收業(yè)務(wù)服務(wù)模塊、接收器模塊、生成 器模塊和發(fā)送器模塊的數(shù)據(jù)訪問(wèn)請(qǐng)求,提供數(shù)據(jù)訪問(wèn)結(jié)果,為系統(tǒng)提供了數(shù)據(jù)的查詢、更 新、添加和刪除四類基本操作; 配置文件管理模塊:管理系統(tǒng)配置文件,為流程管理模塊、定時(shí)任務(wù)模塊、文件發(fā)送模 塊和文件掃描模塊提供配置參數(shù);并提供了配置參數(shù)修改服務(wù); 文件掃描模塊:當(dāng)外部接口為文件格式時(shí),從配置文件管理模塊獲取掃描參數(shù),定時(shí)掃 描指定的文件路徑,對(duì)文件進(jìn)行匹配、過(guò)濾、移除和備份,對(duì)于匹配成功文件交由文件處理 模塊執(zhí)行后續(xù)操作,否則給出文件不合法提示; 文件處理模塊:當(dāng)外部接口為文件格式時(shí),接收文件掃描模塊的文件,調(diào)用文件內(nèi)容驗(yàn) 證模塊驗(yàn)證文件內(nèi)容的合法性;調(diào)用模型與文件轉(zhuǎn)換模塊完成外部接口文件到內(nèi)部模型對(duì) 象的轉(zhuǎn)換;調(diào)用流程管理模塊中的流程管理器處理訂單;調(diào)用流程管理模塊中的流程處理 器處理任務(wù)確認(rèn)報(bào)告和完成報(bào)告; 文件內(nèi)容驗(yàn)證模塊:當(dāng)外部接口為文件格式時(shí),接收文件處理模塊的調(diào)用,完成文件內(nèi) 容驗(yàn)證操作;文件類型不同,驗(yàn)證邏輯可能不同; 模型與文件轉(zhuǎn)換模塊:當(dāng)外部接口為文件格式時(shí),接收文件處理模塊的調(diào)用,提供外部 接口文件到內(nèi)部模型對(duì)象的轉(zhuǎn)換;接收發(fā)送器模塊的調(diào)用,提供內(nèi)部模型對(duì)象到外部接口 文件的轉(zhuǎn)換。不同的內(nèi)部模型對(duì)象轉(zhuǎn)換成的外部接口文件不同,不同的外部接口文件轉(zhuǎn)換 成的內(nèi)部模型對(duì)象也不同;內(nèi)部模型對(duì)象與外部接口文件的轉(zhuǎn)換規(guī)則可配置; 文件發(fā)送模塊:當(dāng)外部接口為文件格式時(shí),接收待發(fā)送文件,從配置文件管理模塊獲取 發(fā)送參數(shù),提供文件發(fā)送服務(wù);文件發(fā)送方式包括FTP發(fā)送、SSH發(fā)送,可以根據(jù)發(fā)送方式的 不同對(duì)發(fā)送服務(wù)類型進(jìn)行擴(kuò)展,以滿足系統(tǒng)需求。
2. 根據(jù)權(quán)利要求1的一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),其特征在于:所述的流程管 理模塊實(shí)現(xiàn)過(guò)程如下: (1) 流程管理器從配置文件管理模塊獲取流程管理參數(shù),包括等待調(diào)度的流程隊(duì)列的 最大容量、運(yùn)行中的流程的最大容量,使用獲取的參數(shù)初始化并啟動(dòng)流程管理器; (2) 啟動(dòng)流程處理器,流程處理器從配置文件管理模塊獲取流程配置參數(shù),并將流程調(diào) 度參數(shù)交給流程調(diào)度引擎,提供流程處理服務(wù); (3) 流程管理器從配置文件管理模塊獲取流程調(diào)度參數(shù),包括流程調(diào)度策略、流程調(diào) 度時(shí)間間隔;根據(jù)流程調(diào)度策略查找相應(yīng)調(diào)度服務(wù),初始化并啟動(dòng)流程調(diào)度器,開啟調(diào)度線 程; (4) 流程管理器從文件處理模塊獲取訂單,并做如下處理:a.判斷當(dāng)前等待調(diào)度的流 程隊(duì)列是否已達(dá)到最大容量,如果已達(dá)到,則流程添加失敗,返回"等待添加";如果未達(dá)到, 則將流程添加到等待調(diào)度的流程隊(duì)列中,返回"添加成功";b.流程管理器管理流程標(biāo)識(shí)和 流程實(shí)例的映射關(guān)系,方便存取被管理的流程實(shí)例; (5) 流程調(diào)度器定期檢測(cè)當(dāng)前運(yùn)行中的流程隊(duì)列是否達(dá)到最大容量,如果已達(dá)到最大 容量,間隔固定時(shí)間間隔后重新檢測(cè),否則做如下處理:a、按流程調(diào)度策略從流程管理器等 待調(diào)度的流程隊(duì)列中獲取一個(gè)優(yōu)先級(jí)最高的流程實(shí)例;b、將獲取的流程實(shí)例從等待隊(duì)列移 入運(yùn)行隊(duì)列;c、調(diào)用流程處理器部署、啟動(dòng)該流程; (6) 在流程調(diào)度過(guò)程中,任務(wù)、訂單報(bào)告由流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊生成、任務(wù) 報(bào)告由流程處理器從文件處理模塊獲取,進(jìn)而執(zhí)行流程處理請(qǐng)求。流程處理請(qǐng)求包括暫掛 流程、喚醒暫掛流程、取消流程、重啟流程; (7) 當(dāng)某流程實(shí)例調(diào)度結(jié)束時(shí),流程管理器將該流程從運(yùn)行隊(duì)列中移除,并清理流程相 關(guān)數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1的一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),其特征在于:所述的定時(shí)任 務(wù)模塊實(shí)現(xiàn)過(guò)程如下: (1) 用戶配置所有待執(zhí)行的定時(shí)任務(wù)和執(zhí)行參數(shù),定時(shí)任務(wù)模塊從配置文件管理模塊 獲取定時(shí)任務(wù)參數(shù),初始化并啟動(dòng)定時(shí)任務(wù)調(diào)度器; (2) 注冊(cè)所有的定時(shí)任務(wù)和定時(shí)任務(wù)監(jiān)聽(tīng)器。定時(shí)任務(wù)有兩種注冊(cè)方式:a、根據(jù)配置 文件中配置的定時(shí)任務(wù)參數(shù),注冊(cè)所有的定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器;b、在系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)注 冊(cè)定時(shí)任務(wù)及任務(wù)監(jiān)聽(tīng)器; (3) 為每一個(gè)注冊(cè)成功的定時(shí)任務(wù)開啟一個(gè)監(jiān)聽(tīng)線程,監(jiān)聽(tīng)該任務(wù)設(shè)定的定時(shí)事件; (4) 在約定的時(shí)間按定時(shí)任務(wù)設(shè)定的參數(shù)啟動(dòng)定時(shí)任務(wù),讓定時(shí)任務(wù)在某時(shí)刻執(zhí)行一 次,或者從某時(shí)刻開始,按指定的時(shí)間間隔重復(fù)執(zhí)行多次。定時(shí)任務(wù)開始執(zhí)行時(shí),回調(diào)該任 務(wù)的啟動(dòng)監(jiān)聽(tīng)器方法; (5) 當(dāng)定時(shí)任務(wù)執(zhí)行結(jié)束后,回調(diào)該任務(wù)的結(jié)束監(jiān)聽(tīng)器方法。
4. 根據(jù)權(quán)利要求1的一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),其特征在于:所述的文件掃 描模塊實(shí)現(xiàn)過(guò)程如下: (1) 從配置文件管理模塊獲取掃描參數(shù),包括系統(tǒng)需要的匹配器,每種匹配器的名稱和 匹配規(guī)則即匹配器可匹配的文件類型,為文件匹配服務(wù)設(shè)置匹配參數(shù); (2) 從配置文件管理模塊獲取掃描參數(shù),包括所有的文件掃描目錄、文件備份路徑、文 件掃描時(shí)間間隔等,并開啟文件掃描線程; (3) 對(duì)于每個(gè)文件掃描路徑,每隔固定的時(shí)間間隔掃描一次,獲取該路徑下所有文件; (4) 如果未獲取到任何文件,則轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行,否則執(zhí)行步驟(5); (5) 對(duì)于每一個(gè)掃描到的文件,首先根據(jù)文件類型獲取文件匹配服務(wù),驗(yàn)證該文件是否 為系統(tǒng)可忽略的文件,a、如果掃描到的文件為可忽略文件,掃描線程不做任何處理,文件留 在原目錄下;b、如果掃描到的文件為不可忽略文件,調(diào)用文件匹配服務(wù)對(duì)文件進(jìn)行匹配過(guò) 濾;如果匹配失敗,將文件移動(dòng)被備份路徑下,否則將文件交給文件處理模塊處理。如果文 件處理模塊處理結(jié)果為"等待處理",則文件留在原目錄下不做處理,否則將文件移動(dòng)到備 份路徑下; (6) 處理完所有掃描到的文件后,轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
5. 根據(jù)權(quán)利要求1的一種中控式業(yè)務(wù)流程調(diào)度管理系統(tǒng),其特征在于:所述系統(tǒng)實(shí)現(xiàn) 步驟如下: (1) 啟動(dòng)系統(tǒng); (2) 文件掃描模塊定期掃描指定文件路徑,對(duì)掃描到的所有文件進(jìn)行匹配、過(guò)濾、移 除和備份;如果該文件匹配不成功,則視為垃圾文件,移除后不做處理;對(duì)于匹配成功的文 件,如果該文件為可忽略文件,則文件留在掃描路徑下不做處理,否則將文件移除備份后, 將文件交給文件處理模塊進(jìn)行處理; (3) 文件處理模塊將文件交給文件內(nèi)容驗(yàn)證模塊,進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過(guò)則執(zhí) 行步驟(4),否則結(jié)束對(duì)該文件的處理,繼續(xù)處理其他文件; (4) 根據(jù)文件類型和文件內(nèi)容,文件處理模塊將文件交給模型與文件轉(zhuǎn)換模塊,將文件 轉(zhuǎn)換成相應(yīng)的內(nèi)部模型對(duì)象,交由流程管理模塊進(jìn)行處理; (5) 流程管理模塊處理接收的模型對(duì)象。如果接收的模型對(duì)象類型為訂單對(duì)象,執(zhí)行步 驟(6),如果接收的模型對(duì)象類型為任務(wù)確認(rèn)報(bào)告對(duì)象,則執(zhí)行步驟(13),如果接收的模型 對(duì)象類型為任務(wù)完成報(bào)告對(duì)象,則執(zhí)行步驟(14); (6) 流程管理模塊從配置文件管理模塊獲取該訂單對(duì)象對(duì)應(yīng)的流程參數(shù),根據(jù)該流程 參數(shù)生成流程對(duì)象實(shí)例,加入流程管理器的等待調(diào)度隊(duì)列; (7) 流程調(diào)度器使用指定的流程調(diào)度策略,定時(shí)從流程管理器等待調(diào)度的流程隊(duì)列中 獲取一個(gè)流程實(shí)例,將該流程加入到運(yùn)行隊(duì)列,并調(diào)用流程處理器處理。流程處理器將流程 調(diào)度參數(shù)交與流程調(diào)度引擎,開啟調(diào)度流程; (8) 流程開啟后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,首先持久化訂單文件轉(zhuǎn)換生成的訂 單對(duì)象; (9) 流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,生成并保存訂單確認(rèn)報(bào)告,并將訂單確認(rèn)報(bào)告對(duì) 象轉(zhuǎn)換成訂單確認(rèn)報(bào)告文件,發(fā)送給訂單發(fā)送方; (10) 系統(tǒng)管理員完成訂單審核操作,保存審核結(jié)果。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊, 將審核結(jié)果轉(zhuǎn)換成訂單審核報(bào)告,發(fā)送給訂單發(fā)送方。如果審核通過(guò),繼續(xù)執(zhí)行步驟(11), 否則結(jié)束流程,執(zhí)行步驟(17); (11) 流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,根據(jù)訂單數(shù)據(jù)生成并保存任務(wù)對(duì)象,對(duì)于每一 個(gè)生成的任務(wù)對(duì)象,開啟任務(wù)調(diào)度流程,任務(wù)調(diào)度流程執(zhí)行步驟為步驟(12)至(15); (12) 流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,將生成的任務(wù)對(duì)象轉(zhuǎn)換成任務(wù)文件,發(fā)送給任 務(wù)接收方; (13) 當(dāng)文件掃描模塊接收到任務(wù)確認(rèn)報(bào)告文件時(shí),交給文件處理模塊。文件處理模塊 驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊調(diào)用 流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存確認(rèn)報(bào) 告對(duì)象,繼續(xù)等待任務(wù)完成報(bào)告; (14) 當(dāng)文件掃描模塊接收到任務(wù)完成報(bào)告文件時(shí),交給文件處理模塊。文件處理模塊 驗(yàn)證文件內(nèi)容,并完成文件到模型的轉(zhuǎn)換后,調(diào)用流程處理器繼續(xù)處理;流程處理模塊調(diào)用 流程調(diào)度引擎,喚醒該文件對(duì)應(yīng)的流程實(shí)例。流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊,保存任務(wù)完 成報(bào)告對(duì)象; (15) 任務(wù)調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該任務(wù)調(diào)度流程; (16) 當(dāng)訂單分解出的所有任務(wù)的調(diào)度流程完成后,流程調(diào)度引擎調(diào)用業(yè)務(wù)服務(wù)模塊, 生成并保存訂單完成報(bào)告,并將訂單完成報(bào)告對(duì)象轉(zhuǎn)換成訂單完成報(bào)告文件,發(fā)送給訂單 發(fā)送方; (17) 訂單調(diào)度流程結(jié)束后,流程管理器結(jié)束并清除該流程。
【文檔編號(hào)】G06Q10/06GK104063273SQ201410265833
【公開日】2014年9月24日 申請(qǐng)日期:2014年6月13日 優(yōu)先權(quán)日:2014年6月13日
【發(fā)明者】石曉宇, 王海濤, 譚東宇, 李明泉, 王守信, 王智堯, 劉華, 趙坤 申請(qǐng)人:航天恒星科技有限公司