專利名稱:動態(tài)配置工作流的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及工作流的動態(tài)配置,特別涉及在運(yùn)行時對工作流進(jìn)行動態(tài)配置的系統(tǒng)和方法。
背景技術(shù):
工作流(Workflow)是一系列相互銜接、按照預(yù)先配置好的順序執(zhí)行的業(yè)務(wù)活動或任務(wù),其代表業(yè)務(wù)過程的部分或整體。參與者對文件、信息或任務(wù)按照規(guī)程采取行動,并使其在參與者之間傳遞。
工作流管理是指通過計(jì)算對工作流進(jìn)行設(shè)計(jì)、開發(fā)、管理、執(zhí)行和監(jiān)控,從而提供綜合的集成化解決方案。工作流管理系統(tǒng)通常使用軟件和其他信息技術(shù)來定義、創(chuàng)建業(yè)務(wù)過程并管理其執(zhí)行。所創(chuàng)建的
工作流被部署在一個或多個工作流引擎上運(yùn)行,這些引擎解釋工作流的定義和配置,與工作流的參與者進(jìn)行交互,并根據(jù)需要調(diào)用其他資源或應(yīng)用。
工作流管理改進(jìn)和優(yōu)化了業(yè)務(wù)流程,提高業(yè)務(wù)工作效率,實(shí)現(xiàn)更好的業(yè)務(wù)過程控制。然而,不斷變化的應(yīng)用環(huán)境和瞬息萬變的市場需求要求工作流必須不斷地進(jìn)行相應(yīng)的改變和調(diào)整。這要求工作流管理系統(tǒng)具有有效地響應(yīng)于修改和調(diào)整的適應(yīng)性。
最高層次的業(yè)務(wù)流程適應(yīng)性是指處理流程控制流動態(tài)變化的能力。流程的變化可以是可預(yù)知的或者非可預(yù)知的。變化可以纟皮施加為暫時修改(實(shí)例層變化)或者施加為流程定義(方案層變化)。
傳統(tǒng)的工作流修改方法通常需要在變化發(fā)生時停止已經(jīng)部署在工作流引擎上的工作流,由開發(fā)設(shè)計(jì)人員創(chuàng)建新的工作流模型或者修改和重配置工作流,而后將更新的工作流重新部署在引擎上執(zhí)行。由于傳統(tǒng)的業(yè)務(wù)流程管理系統(tǒng)通常將設(shè)計(jì)工具和運(yùn)行時間服務(wù)器區(qū)分
5為不同的部署階段和部署環(huán)境。因此這種需要重新設(shè)計(jì)和部署工作流模型的方案所導(dǎo)致的人力、物力、時間等資源的代價是顯著的。特別地,當(dāng)需要頻繁地修改工作流或?qū)ぷ髁鬟M(jìn)行較大修改時,其代價可能是無法承受的。因此,需要在運(yùn)行時間對工作流進(jìn)行動態(tài)、靈活配置的方法。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠在運(yùn)行時對工作流靈活地進(jìn)行動態(tài)配置的方法和系統(tǒng),能夠在不改變已經(jīng)部署的工作流引擎的情況下對工作流進(jìn)行動態(tài)的配置,而且無需停止現(xiàn)有工作流以對工作流模型重新進(jìn)行開發(fā)和部署。
根據(jù)本發(fā)明的 一個方面,提供一種支持動態(tài)配置工作流的方法。
該方法包括a)接收用戶對工作流的修改;b)確定工作流的邏輯斷點(diǎn),獲得針對修改操作的工作流的邏輯片段;c)生成適應(yīng)性模型,其中適應(yīng)性模型包括對邏輯片段的引用,以及邏輯片段之間的協(xié)作關(guān)系;d)根據(jù)適應(yīng)性模型監(jiān)視并控制工作流引擎執(zhí)行邏輯片段,以實(shí)現(xiàn)符合修改的虛擬工作 流。
根據(jù)本發(fā)明的另 一方面,提供一種支持動態(tài)配置工作流的適應(yīng)性系統(tǒng)。該系統(tǒng)包括被配置用于接收用戶對工作流的修改的裝置;工
作流分解器,被配置用于確定工作流邏輯斷點(diǎn),獲得針對修改操作的
工作流的邏輯片段;適應(yīng)性模型生成器,被配置用于生成適應(yīng)性模型,其中適應(yīng)性模型包括對邏輯片段的引用,以及邏輯片段之間的協(xié)作關(guān)
系;適應(yīng)性引擎,被配置用于根據(jù)適應(yīng)性模型監(jiān)視并控制工作流引擎
執(zhí)行邏輯片段,以實(shí)現(xiàn)符合修改的虛擬工作流。
根據(jù)本發(fā)明的另一方面,提供一種計(jì)算機(jī)軟件產(chǎn)品,包括用于在計(jì)算機(jī)設(shè)備上執(zhí)行時實(shí)現(xiàn)根據(jù)本發(fā)明的支持動態(tài)配置工作流的方法的計(jì)算機(jī)代碼。
根據(jù)本發(fā)明的技術(shù)方案,僅通過向現(xiàn)有工作流引擎附加部件就能夠在現(xiàn)有的工作流引擎上基于基本工作流引擎的管理功能支持先進(jìn)的適應(yīng)性特征,而無需對已經(jīng)部署的工作流引擎改變,或者對現(xiàn)有工作流模型重新進(jìn)行開發(fā)和部署。這為配置工作流的動態(tài)變化提供了靈活性。而且,根據(jù)本發(fā)明所生成工作流的適應(yīng)性模型可以被重復(fù)地利用,由此能夠降低對同 一 工作流多次進(jìn)行修改所耗費(fèi)的成本。
為了更好的理解本發(fā)明的特征和優(yōu)點(diǎn),將參考附圖對本發(fā)明的原
理及示例性實(shí)施方式進(jìn)行描述,其中
圖1示出了根據(jù)本發(fā)明的實(shí)施方式支持對工作流進(jìn)行動態(tài)配置的適應(yīng)性系統(tǒng)框圖2示出了根據(jù)本發(fā)明的一種實(shí)施方式根據(jù)用戶輸入的待修改節(jié)點(diǎn)T在原始工作流中確定斷點(diǎn)的示例性過程的流程圖3示出了^4居本發(fā)明的一種實(shí)施方式確定前斷點(diǎn)BT的示例性過程的流程圖4示出了根據(jù)本發(fā)明的一種實(shí)施方式確定后斷點(diǎn)AT的示例性過程的流程除、移動、替換和重復(fù)時劃分工作流片段的示意圖6A-圖6E示出了根據(jù)本發(fā)明的實(shí)施方式進(jìn)行添加、刪除、移動、替換和重復(fù)時通過協(xié)作操作來定義工作流片段之間協(xié)作關(guān)系的示
意圖7示出了根據(jù)本發(fā)明的實(shí)施方式支持動態(tài)配置工作流的方法的流程圖;以及
圖8示出了可以用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)示例。
具體實(shí)施例方式
本發(fā)明提供一種方法和系統(tǒng)以在現(xiàn)有的工作流引擎上基于基本工作流引擎的管理功能支持先進(jìn)的適應(yīng)性特征,即支持對工作流進(jìn)行動態(tài)配置。本發(fā)明將具有以下功能性
融合將被改變的工作流以及增加的工作流變化,以作為虛擬動態(tài)工作流。該虛擬動態(tài)工作流將任務(wù)分配到多個不同的工作流實(shí)例來4丸行,并且協(xié)作這些工作流實(shí)例以完成該動態(tài)工作流執(zhí)行。
將增加的工作流變化建模為工作流片段,這些工作流片段部分可以從原工作流模型中導(dǎo)出,而另一部分,例如加入的新流程片段,則需要用戶按原有流程建模工具完成相應(yīng)的開發(fā)。基于基本工作流引擎管理API定義實(shí)例協(xié)作操作,以支持對工作流的動態(tài)改變。
本發(fā)明的申請人已經(jīng)注意到,可以為工作流的修改定義基本修改類型。這些基本修改類型可以包括簡單的、常用的修改操作,而且通
過這些基本修改類型的組合可以實(shí)現(xiàn)復(fù)雜的工作流的修改。例如,這些基本修改類型可以包括對工作流中的節(jié)點(diǎn)進(jìn)行添加、刪除、移動、
替換和重復(fù)。因此在本說明書的后續(xù)說明中,將以上述基本修改類型作為示例說明本發(fā)明的基本原理。本領(lǐng)域的技術(shù)人員可以理解,基于在實(shí)現(xiàn)上述基本修改類型的適應(yīng)性解決方案后,實(shí)現(xiàn)對工作流的復(fù)雜修改的適應(yīng)性是顯而易見的。
述。在附圖和描述中,將盡量使用相同或類似的參考標(biāo)號來標(biāo)示相同或類似的部分。
圖1示出了根據(jù)本發(fā)明的實(shí)施方式支持對工作流進(jìn)行動態(tài)配置的適應(yīng)性系統(tǒng)100的框圖。根據(jù)本發(fā)明一種實(shí)施方式的適應(yīng)性系統(tǒng)100可以包括設(shè)計(jì)時的部件和運(yùn)行時的部件。其中,設(shè)計(jì)時的部件用于在客戶端環(huán)境下對工作流進(jìn)行開發(fā)、邏輯分段等;運(yùn)行時的部件用于在服務(wù)器端環(huán)境下支持工作流引擎運(yùn)行修改的工作流。在適應(yīng)性系統(tǒng)100中,設(shè)計(jì)時的部件可以包括工作流開發(fā)器101、標(biāo)記編輯器103和工作流分解器105;運(yùn)行時的部件可以包括適應(yīng)性模型生成器102 、適應(yīng)性模型庫110以及適應(yīng)性引擎112。
在設(shè)計(jì)階段,客戶端中的標(biāo)記編輯器103用于接收用戶對于工作流的修改。在一種實(shí)現(xiàn)方式中,標(biāo)記編輯器103可以實(shí)現(xiàn)為對用戶交互式接口, 一方面用戶可以通過顯示裝置(未示出)查看已有的工作流模型(實(shí)例),另一方面用戶可以根據(jù)需要使用輸入裝置(未示
出)對已有的工作流進(jìn)行標(biāo)記,以指明希望進(jìn)行修改的工作流節(jié)點(diǎn)T,以及對T所進(jìn)行的修改類型,例如添加、刪除、移動、替換、重復(fù)等。用戶對工作流標(biāo)記的編輯可以以各種形式來實(shí)現(xiàn)。例如,用戶可以通
過標(biāo)記編輯器103編輯指明標(biāo)記的腳本或文檔,或者通過標(biāo)記編輯器103以可視化的方式直接在顯示的工作流上以預(yù)定方式標(biāo)記各種修改。標(biāo)記編輯器103向工作流分解器105提供用戶所需的修改操作。工作流分解器105根據(jù)標(biāo)記編輯器103提供的修改操作,對原始工作流進(jìn)行處理,確定適當(dāng)?shù)倪壿嫈帱c(diǎn)(以下簡稱斷點(diǎn))。這是因?yàn)?,在工作流中并不是所有?jié)點(diǎn)都適合作為斷點(diǎn),如果用戶所標(biāo)記的需要修改的節(jié)點(diǎn)并不適合作為斷點(diǎn),則需要針對該修改搜索并確定適當(dāng)?shù)墓?jié)點(diǎn)作為斷點(diǎn)。工作流分解器105通過所確定的斷點(diǎn)將原始工作流在邏輯上劃分為工作流片段。工作流分解器105可以通過算法自動地確定斷點(diǎn)并且針對修改對原始工作流進(jìn)行邏輯片段劃分。然而,對于有經(jīng)驗(yàn)的用戶來說,也可以選擇手動完成斷點(diǎn)的設(shè)定以及邏輯片段的劃分。
工作流開發(fā)器101可以基于現(xiàn)有的工作流建模環(huán)境的各種開發(fā)模塊,用于創(chuàng)建修改中所添加工作流片段。開發(fā)者在開發(fā)這些用于添加的工作流片段時,同時應(yīng)該建立該添加的工作流片段和現(xiàn)有工作流片段之間業(yè)務(wù)對象的轉(zhuǎn)換和映射。
在運(yùn)行之前將,需要將工作流分解器105依據(jù)修改操作所劃分的工作流邏輯片段以及通過工作流開發(fā)器101所創(chuàng)建的用于添加的工作流片段(如果存在)例如以原有工作流系統(tǒng)的部署方式部署到工作流引擎122的工作流庫128中。
在運(yùn)行階段,適應(yīng)性模型生成器102生成針對特定修改的工作流適應(yīng)性模型,其中該工作流適應(yīng)性模型包括支持特定修改的對在設(shè)計(jì)時中建立的并且部署在工作流引擎12 8中的工作流邏輯片段的引用和上述邏輯片段間的協(xié)作關(guān)系。適應(yīng)性模型生成器102可以包括適應(yīng)性模型控制器104、適應(yīng)性模型編輯器106以及優(yōu)選地片段預(yù)覽器 108。
適應(yīng)性模型控制器104用于向適應(yīng)性模型庫IIO存儲適應(yīng)性模型 或者從適應(yīng)性模型庫110中獲得適應(yīng)性模型。適應(yīng)性模型控制器104 和適應(yīng)性模型庫110的存在使得適應(yīng)性模型是可以重復(fù)利用的,由此 可以在現(xiàn)有的適應(yīng)性模型上繼續(xù)進(jìn)行開發(fā),從而獲得新的適應(yīng)性模。
適應(yīng)性模型編輯器106用于編輯適應(yīng)性模型(例如以腳本,或者 任何其它可以解析的描述文件的形式)。所編輯的適應(yīng)性模型一方面 包括支持特定修改的對在設(shè)計(jì)時中建立的并且部署在工作流引擎128 中的工作流邏輯片段的引用;另 一方面還包括上述邏輯片段間的協(xié)作 關(guān)系。適應(yīng)性模型編輯器106可以根據(jù)修改類型確定各片段斷點(diǎn)處所 要執(zhí)行的適當(dāng)操作,從而定義各個片段在執(zhí)行時的協(xié)作關(guān)系,以便在 執(zhí)行修改后的工作流實(shí)例時實(shí)現(xiàn)用戶所需的修改。適應(yīng)性模型編輯器 106還可以按照用戶(開發(fā)者)的配置確定各個邏輯片段之間的協(xié)作 關(guān)系。
根據(jù)本發(fā)明的一種實(shí)施方式,在適應(yīng)性模型生成器102中提供片 段預(yù)覽器108,以可視化的輸出所生成的邏輯片段供用戶瀏覽。由此, 便于用戶檢查對原始工作流劃分的邏輯片段是否能給滿足其修改需求。
適應(yīng)性模型生成器102所生成的工作流適應(yīng)性模型被存儲在適應(yīng) 性模型庫110中。存儲在適應(yīng)性模型庫110中的適應(yīng)性模型可以被重 復(fù)地開發(fā)和利用。例如,適應(yīng)性模型生成器102可以通過適應(yīng)性模型 控制器104從適應(yīng)性模型庫110中讀取已經(jīng)保存的適應(yīng)性模型并對其 進(jìn)行修改,以重新定義新的適應(yīng)性模型。
適應(yīng)性引擎112根據(jù)適應(yīng)性模型監(jiān)視并控制工作流引擎122執(zhí)行 符合所接收修改的虛擬工作流。適應(yīng)性引擎U2可以包括適應(yīng)性模型 管理器114、用于管理監(jiān)視工作流執(zhí)行過程的觀察器管理器116、用 于控制工作流引擎工作流的執(zhí)行的片段協(xié)作器118,以及用于在工作流片段之間轉(zhuǎn)換和映射業(yè)務(wù)對象的對象映射器120。
適應(yīng)性引擎112的適應(yīng)性模型管理器114從適應(yīng)性模型庫110中 加載工作流的適應(yīng)性模型。觀察器管理器116向工作流引擎122的工 作流狀態(tài)觀察器124注冊適應(yīng)性模型中所標(biāo)識的用來劃分邏輯片段的 斷點(diǎn)。在現(xiàn)有的工作流引擎中,工作流狀態(tài)觀察器124用于監(jiān)視當(dāng)前 工作流實(shí)例的執(zhí)行。因此,適應(yīng)性引擎112的觀察器管理器116可以 借助于工作流引擎122中的工作流狀態(tài)觀察器124監(jiān)視工作流,從而 獲取是否已經(jīng)執(zhí)行到所劃分的邏輯片段的斷點(diǎn)的信息。響應(yīng)于工作流 已經(jīng)執(zhí)行到斷點(diǎn),適應(yīng)性引擎112的片段協(xié)作器118依據(jù)適應(yīng)性模型 中該斷點(diǎn)的協(xié)調(diào)操作,調(diào)用工作流引擎122的工作流實(shí)例管理API 126,從而將這些協(xié)作操作轉(zhuǎn)化為工作流引擎支持的操作序列。工作 流引擎122在適應(yīng)性引擎122的監(jiān)視與配置下執(zhí)行了適應(yīng)性模型中所 限定的虛擬動態(tài)工作流。
工作流狀態(tài)觀察器這類工具具有AOP(面向方向編程)特性。例 ^口在Websphere 5危禾呈月良務(wù)器(Websphere process server )產(chǎn)f口即存在 類似的工具,即狀態(tài)觀察器(state observer)。本領(lǐng)域的技術(shù)人員可 以理解,并不是所有工作流引擎都提供現(xiàn)成的觀察器工具。但是,本 領(lǐng)域的技術(shù)人員可以理解,可以為這些不具備現(xiàn)成觀察器的工作流引 擎通過面向方向編程開發(fā)類似地功能性。
如上所述,對于工作流的各種修改均可以分解為基本修改類型, 這些基本修改類型例如可以包括對工作流中的節(jié)點(diǎn)進(jìn)行添加、刪除、 移動、替換和重復(fù)。在執(zhí)行這些修改操作的過程中,可能涉及業(yè)務(wù)對 象在不同工作流片段之間的復(fù)制和設(shè)置。不同的片段所支持的業(yè)務(wù)對 象類型和屬性可能是不同的(例如,名稱不同,對應(yīng)關(guān)系不同等)。 為了保證協(xié)作操作的正確性,適應(yīng)性引擎112還包括對象映射器120, 用于在工作流片段之間轉(zhuǎn)換和映射對象,以保證工作流引擎122對協(xié) 作操作的正確執(zhí)行。流片段之間對象的轉(zhuǎn)換和映射可以由適應(yīng)性系統(tǒng) 100中設(shè)計(jì)時的部件中的相應(yīng)部件來提供。例如可以通過工作流開發(fā) 器101來提供,甚至還可以通過工作流分解器105來提供。
ii根據(jù)本發(fā)明的適應(yīng)性系統(tǒng)監(jiān)控或調(diào)用現(xiàn)有工作流引擎已有的功 能(例如工作流狀態(tài)觀察器、工作流實(shí)例管理API),已使得現(xiàn)有的 工作流引擎能夠通過按照協(xié)作關(guān)系執(zhí)行各個邏輯片段的實(shí)例來執(zhí)行 修改后的虛擬動態(tài)工作流。因此在根據(jù)本發(fā)明的實(shí)施方案中,無需對 現(xiàn)有工作流引擎進(jìn)行任何修改。
下面將結(jié)合具體的工作流修改示例來詳細(xì)闡釋適應(yīng)性系統(tǒng)100的
工作原理。
如上所述,對于工作流的各種修改均可以分解為基本修改類型, 這些基本修改類型例如可以包括對工作流中的節(jié)點(diǎn)進(jìn)行添加、刪除、 移動、替換和重復(fù)。
在客戶端的設(shè)計(jì)時,用戶通過標(biāo)記編輯器103輸入對于工作流的 修改,包括指定想要修改的節(jié)點(diǎn)T以及修改的類型。
響應(yīng)于用戶輸入的節(jié)點(diǎn)T,工作流分解器105在原始工作流中確 定適當(dāng)?shù)臄帱c(diǎn),以將原始工作流劃分為邏輯片段。作為斷點(diǎn)的工作流 節(jié)點(diǎn)應(yīng)該滿足特定約束條件,這些條件至少包括
1) 工作流執(zhí)行時在該節(jié)點(diǎn)處具有穩(wěn)定的狀態(tài);
2) 工作流執(zhí)行時可以在該節(jié)點(diǎn)處暫停;
3 )工作流執(zhí)行在該節(jié)點(diǎn)處可以被observer 4企測到。 例如,通常可以作為斷,泉使用的工作流節(jié)點(diǎn)包括但不限于調(diào)用其他應(yīng) 用或資源的節(jié)點(diǎn)、等待與用戶交互的節(jié)點(diǎn)等??梢愿鶕?jù)工作流所涉及 的具體應(yīng)用領(lǐng)域和用戶需求來確定可以作為斷點(diǎn)的工作流節(jié)點(diǎn)的類 型。
工作流分解器105可以自動地通過一定算法根據(jù)用戶輸入的節(jié)點(diǎn) T確定斷點(diǎn)。圖2示出了根據(jù)本發(fā)明一種實(shí)施方式適應(yīng)性系統(tǒng)的片段 劃分器根據(jù)用戶標(biāo)記的待修改節(jié)點(diǎn)T在原始工作流中確定斷點(diǎn)的示 例性過程的流程圖。
在步驟200中,該流程開始。
在步驟S205,將原始工作流轉(zhuǎn)化為樹結(jié)構(gòu)。以工作流入口為根節(jié) 點(diǎn),以序列中的節(jié)點(diǎn)為子節(jié)點(diǎn)。當(dāng)遇到條件判斷節(jié)點(diǎn)時,以該節(jié)點(diǎn)為父節(jié)點(diǎn),以各個分支的入口節(jié)點(diǎn)為子節(jié)點(diǎn),如此重復(fù),直到樹結(jié)構(gòu)構(gòu) 建完畢。
在步驟S210中,將該樹部分結(jié)構(gòu)轉(zhuǎn)換為等價的二叉樹結(jié)構(gòu)。例 如,可以對樹結(jié)構(gòu)進(jìn)行深度優(yōu)先遍歷,對于每個價(也即,子節(jié)點(diǎn)數(shù) 目)大于2的序列節(jié)點(diǎn),添加新的序列節(jié)點(diǎn)S,作為其子節(jié)點(diǎn),將序列 節(jié)點(diǎn)S除第一子節(jié)點(diǎn)之外的其他所有子節(jié)點(diǎn)都移動為序列節(jié)點(diǎn)S,的 子節(jié)點(diǎn)。
在步驟S215中,對于用戶標(biāo)記的需要修改的目標(biāo)節(jié)點(diǎn)T,在二 叉樹上確定距離其最近的在其之前的前斷點(diǎn)BT。根據(jù)本發(fā)明的一種 實(shí)施方式,可以根據(jù)圖3所示的過程來確定在二叉樹上距離節(jié)點(diǎn)T最 近的在其之前的前斷點(diǎn)BT。
轉(zhuǎn)而參考圖3,在步驟S300中,該過程開始。
在步驟S305中,判斷節(jié)點(diǎn)T是否位于while循環(huán)、事件處理、 錯誤處理、補(bǔ)償處理、并行等結(jié)構(gòu)的范圍中。如果判斷結(jié)果為"是", 則執(zhí)行步驟S310;如果判斷結(jié)果為"否",則執(zhí)行步驟S315。
在步驟S310中,將節(jié)點(diǎn)T所在結(jié)構(gòu)本身所對應(yīng)的流程節(jié)點(diǎn)確定 為前斷點(diǎn)BT,并且過程繼續(xù)執(zhí)行步驟S335。
在步驟S315中,將節(jié)點(diǎn)T的父節(jié)點(diǎn)設(shè)為S。
繼而在步驟S320中,判斷S的左兄弟節(jié)點(diǎn)是否屬于斷點(diǎn)類型。 如果判斷結(jié)果為"是",則執(zhí)行步驟S325;如果判斷結(jié)果為"否", 則執(zhí)行步驟S330。
在步驟S325中,在此將S確定為前斷點(diǎn)BT,并且過程繼續(xù)執(zhí)行 步驟S335。
在步驟S330中,將節(jié)點(diǎn)T設(shè)為節(jié)點(diǎn)T的父節(jié)點(diǎn),并且過程回到 步驟S315繼續(xù)執(zhí)行,直到找到前斷點(diǎn)BT。 在步驟S335中,該過程結(jié)束。
現(xiàn)在返回圖2,在步驟S215中確定前斷點(diǎn)BT (例如通過圖3所 示過程)之后,過程進(jìn)行到步驟S215,在此確定距離目標(biāo)節(jié)點(diǎn)T最 近的在其之后的后斷點(diǎn)AT。根據(jù)本發(fā)明的一種實(shí)施方式,可以根據(jù)圖4所示的過程來確定在二叉樹上距離節(jié)點(diǎn)T最近的在其之后的后斷 點(diǎn)AT。
轉(zhuǎn)而參考圖4,在步驟S400中,該過程開始。
在步驟S405中,判斷目標(biāo)節(jié)點(diǎn)T是否處于while/并行、事件處 理、錯誤處理、或補(bǔ)償處理等結(jié)構(gòu)的范圍中。如果判斷結(jié)果為"是", 則執(zhí)行步驟S410;如果判斷結(jié)果為"否",則執(zhí)行步驟S415。
在步驟S410中,將所在結(jié)構(gòu)對應(yīng)的流程節(jié)點(diǎn)設(shè)置為目標(biāo)節(jié)點(diǎn)T。
在步驟S415中,判斷目標(biāo)節(jié)點(diǎn)T是否屬于斷點(diǎn)類型。作為斷點(diǎn) 的工作流節(jié)點(diǎn)應(yīng)該滿足特定約束條件,這些條件至少包括
1) 工作流執(zhí)行時在該節(jié)點(diǎn)處具有穩(wěn)定的狀態(tài);
2) 工作流執(zhí)行時可以在該節(jié)點(diǎn)處暫停;
3 )工作流執(zhí)行在該節(jié)點(diǎn)處可以被observer ;險測到。
如果步驟S415中的判斷結(jié)果為"是,,,則執(zhí)行步驟S420;如果
判斷結(jié)果為"否",則執(zhí)行S440。
在步驟S420中,判斷節(jié)點(diǎn)T是否具有右兄弟節(jié)點(diǎn)。如果判斷結(jié)
果為"是,,,則執(zhí)行步驟S425;如果判斷結(jié)果為"否",則執(zhí)行步
驟S430。
在步驟S425中,在此將節(jié)點(diǎn)T的右兄弟節(jié)點(diǎn)確定為后斷點(diǎn)AT, 而后過程進(jìn)行到步驟S430。
在步驟S430中,找到節(jié)點(diǎn)T的所有這樣的祖先節(jié)點(diǎn)T,使得節(jié) 點(diǎn)T,的父節(jié)點(diǎn)是序列節(jié)點(diǎn)并且具有右兄弟節(jié)點(diǎn)T*,且節(jié)點(diǎn)丁*不是節(jié) 點(diǎn)T的纟且先。
在步驟S435,將步驟S430中找到的所有節(jié)點(diǎn)丁*確定為后斷點(diǎn) AT,而后在步驟S480中,該過程結(jié)束。
在步驟S440處,判斷節(jié)點(diǎn)T是否具有右兄弟節(jié)點(diǎn)。如果判斷結(jié) 果為"是,,,則執(zhí)行步驟S465;如果判斷結(jié)果為"否",則執(zhí)行步 驟S445。
在步驟S465中,由于節(jié)點(diǎn)T具有右兄弟節(jié)點(diǎn),所以將的右兄弟 節(jié)點(diǎn)記為T,,,并繼而在步驟S470中將T設(shè)置為T"。在步驟S475中,判斷節(jié)點(diǎn)T"是否屬于可作為斷點(diǎn)的節(jié)點(diǎn)類型。 如果判斷結(jié)果為"是",則該過程轉(zhuǎn)到步驟S405繼續(xù)執(zhí)行;如果判 斷結(jié)果為"否",則該過程轉(zhuǎn)到步驟S445繼續(xù)執(zhí)行。
在步驟S445中,判斷節(jié)點(diǎn)T是否是序列節(jié)點(diǎn)。如果判斷結(jié)果為 "是"則執(zhí)行步驟S450;如果判斷結(jié)果為"否",則執(zhí)行步驟S455。
在步驟S450中,將節(jié)點(diǎn)T設(shè)置為節(jié)點(diǎn)T的第一子節(jié)點(diǎn),并且該 過程轉(zhuǎn)到步驟S405繼續(xù)執(zhí)行。
在步驟S455中,將節(jié)點(diǎn)T設(shè)置為節(jié)點(diǎn)T的父節(jié)點(diǎn)。
在步驟S460中,判斷T具有右兄弟并且該右兄弟節(jié)點(diǎn)不是原始 T節(jié)點(diǎn)的祖先。如果判斷結(jié)果為"否",則該過程返回步驟S455繼 續(xù)執(zhí)行;如果判斷結(jié)果為"是",則該過程轉(zhuǎn)到步驟S405繼續(xù)執(zhí)行。
直到最終確定了后斷點(diǎn)AT,該過程在步驟S480中結(jié)束。
片段劃分器106根據(jù)用戶輸入的修改類型以及所確定的前斷點(diǎn) BT和后斷點(diǎn)AT將原始工作流劃分為若干片段,生成原有流程系統(tǒng) 的流程模型。這些生成的流程模型具有原流程一樣的流程接口定義和 流程變量定義。例如,采用下面的示例性方法來實(shí)現(xiàn)對工作流的片段 劃分
步驟l.如果目標(biāo)節(jié)點(diǎn)T的父節(jié)點(diǎn)是前斷點(diǎn)BT,則根據(jù)不同的修
改類型來產(chǎn)生相應(yīng)的片段
(1 )對于刪除操作產(chǎn)生針對后斷點(diǎn)AT的片段;
(2) 對于T向后移動操作若T是后斷點(diǎn)AT的左兄弟節(jié)點(diǎn), 產(chǎn)生針對節(jié)點(diǎn)T和后斷點(diǎn)AT的片段;
(3) 對于T的替換操作產(chǎn)生針對后斷點(diǎn)AT的片段
(4) 對于重復(fù)T操作若T是后斷點(diǎn)AT的左兄弟節(jié)點(diǎn),產(chǎn)生 針對T的片段。
步驟2.如果目標(biāo)節(jié)點(diǎn)T的父節(jié)點(diǎn)不是前斷點(diǎn)BT,則產(chǎn)生新的工 作流過程,其邏輯起點(diǎn)是前斷點(diǎn)BT,并包括所修改的邏輯。此情況 可以實(shí)現(xiàn)針對于添加操作的邏輯分段。
在上面的步驟1中,如果存在多個后斷點(diǎn)AT,則可以根據(jù)不同的策略來產(chǎn)生工作流片段,這些策略可以包括片段尺寸最小和片段 數(shù)目最少。根據(jù)片段尺寸最小的策略,為每個后斷點(diǎn)AT生成相應(yīng)的 片段;而根據(jù)片段數(shù)目最少節(jié)點(diǎn)中,產(chǎn)生包括所有后斷點(diǎn)AT分段的分段。
本領(lǐng)域技術(shù)人員可以理解,在工作流分解器中對上述示例性策略 以及其它可選策略的選用是靈活的。例如,可以通過用戶選擇或配置 具體采用何種策略進(jìn)行工作流的自動邏輯分段。又例如,還可以對同 一工作流的自動邏輯分段應(yīng)用多種策略,并向用戶顯示針對不同策略 的分段結(jié)果,用戶在分段結(jié)果中選擇符合其需求的分段結(jié)果。
圖5A-圖5E示出了根據(jù)本發(fā)明的實(shí)施方式進(jìn)行添加、刪除、移 動、替換和重復(fù)的工作流修改操作時劃分工作流片段的示意圖。
圖5A中,示出了向所示工作流中添加工作流節(jié)點(diǎn)F的修改操作。 所得劃分后的邏輯片段如圖5A中所示片段1和片段2。
圖5B中,示出了刪除工作流中的工作流節(jié)點(diǎn)B的修改操作。所 得劃分后的邏輯片段如圖5B中所示片段1和片段2。
圖5C中,示出了將工作流中的工作流節(jié)點(diǎn)B移動到節(jié)點(diǎn)E之前 的修改操作。所得劃分后的邏輯片段如圖5C中所示片段1、片段2 和片段3。
圖5D中,示出了將工作流中的工作流節(jié)點(diǎn)B替換為節(jié)點(diǎn)Bl的 修改操作。所得劃分后的邏輯片段如圖5D中所示片段1、片段2和 片段3。
圖5E中,示出了對工作流中的工作流節(jié)點(diǎn)B重復(fù)執(zhí)行的修改操 作。所得劃分后的邏輯片段如圖5E中所示片段1和片段2。
所獲得的例如圖5A至圖5E任一所示出的工作流邏輯片段將被部 署到工作流引擎122的工作流庫128,以用于執(zhí)行相應(yīng)的修改后的虛
擬工作流。
在服務(wù)器端的運(yùn)行時,適應(yīng)性模型生成器102的適應(yīng)性模型編輯 器106編輯適應(yīng)性模型。所編輯的適應(yīng)性模型一方面包括對諸如圖5A 至圖5E中任一所示出的工作流邏輯片段的引用;另一方面還包括這些邏輯片段間的協(xié)作關(guān)系。適應(yīng)性模型編輯器106需要根據(jù)修改類型 確定這些邏輯片段之間的協(xié)作關(guān)系,從而使工作流引擎能夠正確地協(xié) 調(diào)這些片段(實(shí)例)的執(zhí)行,以實(shí)現(xiàn)用戶所需的修改。例如,表示協(xié) 作關(guān)系的協(xié)作操作可以是在工作流引擎操作,例如,其原子操作,的
基礎(chǔ)上定義的。絕大多數(shù)工作流引擎所支持的工作流原子操作包括 (1 )創(chuàng)建工作流實(shí)例;(2)執(zhí)行工作流實(shí)例;(3)掛起工作流實(shí)
例;(4)恢復(fù)工作流實(shí)例;(5)終止工作流實(shí)例;(6)復(fù)制工作
流對象;以及(7)設(shè)置工作流對象。假設(shè)待操作的兩個工作流實(shí)例
分別是Wl和W2,可以定義如下協(xié)作操作
-SC操作掛起Wl—復(fù)制工作流對象—創(chuàng)建W2 -EC操作執(zhí)行W1—復(fù)制工作流對象~>創(chuàng)建W2 -TC操作復(fù)制工作流對象—創(chuàng)建W2—終止Wl -SR操作掛起Wl—復(fù)制工作流對象—恢復(fù)W2—設(shè)置工作流
對象
-ER操作執(zhí)行Wl —復(fù)制工作流對象—設(shè)置工作流對象—恢
復(fù)W2
- TR操作復(fù)制工作流對象—終止Wl~>設(shè)置工作流對象—恢
復(fù)W2
依據(jù)上述預(yù)定義的協(xié)作操作可以針對特定的修改實(shí)現(xiàn)工作流邏 輯片段之間的協(xié)作關(guān)系。
如圖6A至圖6E所示,在進(jìn)行添加、刪除、移動、替換和重復(fù) 的修改操作時可以通過上面預(yù)定義的協(xié)作操作來定義不同工作流片 段之間協(xié)作關(guān)系。
圖6A中,示出了向所示工作流中添加工作流節(jié)點(diǎn)F的修改操 作。邏輯片段之間的協(xié)作關(guān)系如圖6A中所示片段1的節(jié)點(diǎn)A之后 執(zhí)行到片段2的SC操作(掛起片段1實(shí)例—復(fù)制工作流對象—創(chuàng)建 片段2實(shí)例),并且在片段2之后執(zhí)行到片段1的TR操作(復(fù)制工 作流對象—終止片段2實(shí)例—設(shè)置工作流對象—恢復(fù)片段1實(shí)例)。
圖6B中,示出了刪除工作流中的工作流節(jié)點(diǎn)B的修改操作。邏輯片段之間的協(xié)作關(guān)系如圖6B中所示在片段1之后執(zhí)行到片段 2的TC操作(復(fù)制工作流對象—創(chuàng)建片段2實(shí)例~>終止片段1實(shí)例)。
圖6C中,示出了將工作流中的工作流節(jié)點(diǎn)B移動到節(jié)點(diǎn)E之 前的修改操作。邏輯片段之間的協(xié)作關(guān)系如圖6C中所示片段l之 后執(zhí)行到片段2的TC操作(復(fù)制工作流對象—創(chuàng)建片段2實(shí)例—終 止片段1 ),在片段2的節(jié)點(diǎn)E之前執(zhí)行到片段3的SC操作(掛起 片段2實(shí)例—復(fù)制工作流對象—創(chuàng)建片段2實(shí)例),在片段3后執(zhí)行 到片段2的TR操作(復(fù)制工作流對象—終止片段3實(shí)例—設(shè)置工作 流對象—恢復(fù)片段2實(shí)例)。
圖6D中,示出了將工作流中的工作流節(jié)點(diǎn)B替換為節(jié)點(diǎn)Bl 的修改操作。邏輯片段之間的協(xié)作關(guān)系如圖6D中所示片段1之后 執(zhí)行到片段2的TC操作(復(fù)制工作流對象—創(chuàng)建片段2實(shí)例—終止 片段1實(shí)例),片段2之后執(zhí)行到片段3的TC操作(復(fù)制工作流對 象—創(chuàng)建片段3實(shí)例—終止片段2實(shí)例)。
圖6E中,示出了對工作流中的工作流節(jié)點(diǎn)B重復(fù)執(zhí)行的修改 操作。邏輯片段之間的協(xié)作關(guān)系如圖6E中所示在片段1節(jié)點(diǎn)B之 后執(zhí)行到片段2的SC操作(SC操作掛起片段1實(shí)例—復(fù)制工作流 對象—創(chuàng)建片段2實(shí)例),在片段2之后執(zhí)行到片段1的TR操作(復(fù) 制工作流對象—終止片段2實(shí)例—設(shè)置工作流對象—恢復(fù)片段1實(shí) 例)。
在圖6所示的示例中,未使用EC操作、ER操作和SR操作定 義邏輯片段之間的協(xié)作關(guān)系。但是,EC操作、ER操作和SR操作也 可以用于定義邏輯片段之間的協(xié)作關(guān)系,特別是,為更復(fù)雜場景下的 修改定義邏輯片段之間的協(xié)作關(guān)系。例如,將EC操作用于創(chuàng)建多個 工作流實(shí)例;將SR和ER操作用于工作流實(shí)例之間的交錯,等等。
步擴(kuò)展現(xiàn)有流程引擎的執(zhí)行能力。
包括對上述如圖5A-5E任一所示的工作流的邏輯片段的引用和 如圖6A-6E相應(yīng)一圖所示的邏輯片段間的協(xié)作操作的工作流的適應(yīng)性模型可以例如,以腳本、描述文件的形式被存儲在適應(yīng)性模型庫1 1 0 中。
在服務(wù)器端的運(yùn)行時,在適應(yīng)性引擎112中,適應(yīng)性模型管理 器114從適應(yīng)性模型庫110中加載工作流的適應(yīng)性模型。觀察器管理 器116向工作流引擎122的工作流狀態(tài)觀察器124注冊適應(yīng)性模型中 所標(biāo)識的用來劃分邏輯片段的斷點(diǎn)。在現(xiàn)有的工作流引擎中,工作流 狀態(tài)觀察器124用于監(jiān)視工作流實(shí)例的執(zhí)行。因此,適應(yīng)性引擎112 的觀察器管理器116可以借助于工作流引擎122中的工作流狀態(tài)觀察 器124監(jiān)視工作流,從而獲取是否已經(jīng)執(zhí)行到所劃分的邏輯片段的斷 點(diǎn)的信息,以確定當(dāng)前是否應(yīng)該執(zhí)行相應(yīng)協(xié)作才喿作。響應(yīng)于工作流已 經(jīng)執(zhí)行到斷點(diǎn),適應(yīng)性引擎112的片段協(xié)作器U8依據(jù)適應(yīng)性模型中 該斷點(diǎn)的協(xié)調(diào)操作,調(diào)用工作流引擎122的工作流實(shí)例管理API 126, 也即執(zhí)行圖6A至圖6E任一的協(xié)作操作中所包括的各個工作流操作 (這里是工作流原子操作),來實(shí)現(xiàn)相應(yīng)的協(xié)作操作。當(dāng)在執(zhí)行協(xié)作 操作中需要執(zhí)行復(fù)制工作流對象或者設(shè)置工作流對象時,對象映射器 120用于在工作流片段之間轉(zhuǎn)換和映射對象,以保證工作流引擎l22 對協(xié)作操作的正確執(zhí)行。
這里需要說明的是,上文以示例性方式限定了協(xié)作操作,以及 針對各個修改類型應(yīng)用協(xié)作操作以實(shí)現(xiàn)各個片段之間的協(xié)作關(guān)系的
方式,但是這種限定方式并不是限制性的,多種能夠?qū)崿F(xiàn)對修改后的 虛擬工作流的執(zhí)行的限定方式都可以作為上文所描述示例的替換方案。
圖7示出了根據(jù)本發(fā)明的實(shí)施方式支持動態(tài)配置工作流的方法 的流程圖。
在步驟S700中,該流程開始。
在步驟S705中,在客戶端側(cè)的設(shè)計(jì)時,接收用戶對已有工作流 的動態(tài)修改需求。例如,可以通過標(biāo)記編輯器來接收用戶對已有工作 流的修改。所接收的修改需求可以以任何方式來表示,例如指明修改 內(nèi)容的腳本或文檔,在可視化用戶交互界面中直接指示修改。在步驟S710中,確定工作流的邏輯斷點(diǎn),獲得針對修改操作的
工作流的邏輯片段。例如,根據(jù)圖2-圖4所示的方式自動地確定斷點(diǎn), 并且例如如圖5A-5E中任一所示的方式對已有工作流進(jìn)行邏輯分段劃分。
在步驟S715中,將邏輯片段部署到工作流引擎。需要將工作流 分解器105依據(jù)修改操作所劃分的工作流邏輯片段部署到工作流引擎 的工作流庫中。在存在添加工作流的修改操作中,還需要將通過工作 流開發(fā)器所創(chuàng)建的工作流片段也部署到工作流引擎的工作流庫中。
在步驟S720中,在服務(wù)器側(cè)的運(yùn)行時,生成適應(yīng)性模型,該適 應(yīng)性模型包括針對該修改對工作流劃分的邏輯片段的引用和邏輯片 段間的協(xié)作關(guān)系。例如,如圖6A-6E中任一所示的方式限定各個邏輯 片段之間的協(xié)作關(guān)系。
在步驟S725中,加載該適應(yīng)性模型。所生成的適應(yīng)性模型可以 被存儲在適應(yīng)性模型庫中。當(dāng)需要執(zhí)行該修改的工作流時,從該適應(yīng) 性模型庫中加載適應(yīng)性模型。配置適應(yīng)性模型庫的另一優(yōu)勢在于,可
以對已經(jīng)生成的適應(yīng)性模型重復(fù)進(jìn)行利用,例如進(jìn)行再修改等。
在步驟S730中,根據(jù)適應(yīng)性模型監(jiān)視并控制工作流引擎執(zhí)行部 署到工作流引擎的工作流片段(實(shí)例),以便實(shí)現(xiàn)符合所接收修改的 虛擬工作流。具體而言,通過工作流引擎監(jiān)視已有工作流的執(zhí)行,獲 取是否已經(jīng)執(zhí)行到所劃分的邏輯片段的斷點(diǎn)的信息。響應(yīng)于已有工作 流已經(jīng)執(zhí)行到斷點(diǎn),依據(jù)適應(yīng)性模型中該斷點(diǎn)的協(xié)調(diào)操作,調(diào)用工作 流引擎的工作流實(shí)例管理API,來實(shí)現(xiàn)相應(yīng)的協(xié)作操作,從而使得工 作流引擎通過按照協(xié)作關(guān)系執(zhí)行各個邏輯片段的實(shí)例,來依據(jù)用戶修 改需求執(zhí)行符合所述修改的虛擬工作流。 在步驟S735中,該流程結(jié)束。
圖8示出了可以用于實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)示例。
圖8中所示的計(jì)算機(jī)系統(tǒng)包括CPU(中央處理單元)801、 RAM(隨機(jī)存取存儲器)802、 ROM(只讀存儲器)803、系統(tǒng)總線804,硬盤控制器805、鍵盤控制器806、串行接口控制器807、并行接口控 制器808、顯示器控制器809、硬盤810、鍵盤811、串行外部設(shè)備812、 并行外部設(shè)備813和顯示器814。在這些部件中,與系統(tǒng)總線804相 連的有CPU801、 RAM 802、 ROM 803、硬盤控制器805、鍵盤控制 器806,串行接口控制器807,并行接口控制器808和顯示器控制器 809。硬盤810與硬盤控制器805相連,鍵盤811與鍵盤控制器806 相連,串行外部設(shè)備812與串行接口控制器807相連,并行外部設(shè)備 813與并行接口控制器808相連,以及顯示器814與顯示器控制器809 相連。
圖8中每個部件的功能在本技術(shù)領(lǐng)域內(nèi)都是眾所周知的,并且 圖8所示的結(jié)構(gòu)也是常規(guī)的,該計(jì)算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的一個例 子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計(jì)算機(jī)系統(tǒng)設(shè)計(jì)也能 實(shí)現(xiàn)本發(fā)明的實(shí)施方式。
雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員 可以在所附權(quán)利要求的范圍內(nèi)做出各種變形或修改。
權(quán)利要求
1.一種支持動態(tài)配置工作流的方法,包括a)接收用戶對工作流的修改;b)確定工作流的邏輯斷點(diǎn),獲得針對修改操作的工作流的邏輯片段;c)生成適應(yīng)性模型,其中所述適應(yīng)性模型包括對所述邏輯片段的引用,以及所述邏輯片段之間的協(xié)作關(guān)系;d)根據(jù)所述適應(yīng)性模型監(jiān)視并控制工作流引擎執(zhí)行所述邏輯片段,以實(shí)現(xiàn)符合所述修改的虛擬工作流。
2. 根據(jù)權(quán)利要求1所述的方法,還包括在步驟b)之后 將所述邏輯片段部署到所述工作流引擎。
3. 根據(jù)權(quán)利要求1所述的方法,還包括在步驟d)之前 加載所述適應(yīng)性模型。
4. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟b)包括 根據(jù)所述修改所針對的節(jié)點(diǎn)T在所述流程中確定斷點(diǎn); 基于所述修改的類型和所確定的斷點(diǎn)以一定策略劃分所述邏輯片段。
5. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟c)包括以所述工作流引擎所支持的工作流操作定義所述邏輯片段之間 的協(xié)作關(guān)系。
6. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟d)包括 監(jiān)視所述工作流引擎對所述邏輯片段的執(zhí)行;響應(yīng)于所述邏輯片段已經(jīng)執(zhí)行到斷點(diǎn),依據(jù)所述適應(yīng)性模型的所 述協(xié)調(diào)關(guān)系,調(diào)用所述工作流引擎的工作流實(shí)例管理應(yīng)用程序接口 。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述步驟d)還包括 在所述邏輯片段之間轉(zhuǎn)換和映射所述邏輯片段中包含的對象。
8. 根據(jù)權(quán)利要求4所述的方法,其中所述修改的類型包括添力口、 刪除、移動、替換和重復(fù)。
9. 根據(jù)權(quán)利要求4所述的方法,其中所述策略包括以下各項(xiàng)中的 至少一項(xiàng)邏輯片段尺寸最??;邏輯片段數(shù)目最少。
10. —種支持動態(tài)配置工作流的適應(yīng)性系統(tǒng),包括 被配置用于接收用戶對工作流的修改的裝置; 工作流分解器,被配置用于確定工作流邏輯斷點(diǎn),獲得針對修改操作的工作流的邏輯片段;適應(yīng)性模型生成器,被配置用于生成適應(yīng)性模型,其中所述適應(yīng) 性模型包括對所述邏輯片段的引用,以及所述邏輯片段之間的協(xié)作關(guān)系;適應(yīng)性引擎,被配置用于根據(jù)所述適應(yīng)性模型監(jiān)視并控制工作流 I擎執(zhí)行所述邏輯片段,以實(shí)現(xiàn)符合所述修改的虛擬工作流。
11. 根據(jù)權(quán)利要求IO所述的適應(yīng)性系統(tǒng),還包括 被配置為將所述邏輯片段部署到所述工作流引擎的裝置。
12. 根據(jù)權(quán)利要求IO所述的適應(yīng)性系統(tǒng),還包括 適應(yīng)性模型庫,被配置用于向其中存儲所述適應(yīng)性模型,并且從其中加載所述適應(yīng)性模型。
13. 根據(jù)權(quán)利要求IO所述的適應(yīng)性系統(tǒng),其中所述工作流分解器 被配置用于根據(jù)所述修改所針對的節(jié)點(diǎn)T在所述流程中確定斷點(diǎn); 基于所述修改的類型和所確定的斷點(diǎn)以一定策略劃分所述邏輯片段。
14. 根據(jù)權(quán)利要求IO所述的適應(yīng)性系統(tǒng),其中所述適應(yīng)性模型生 成器被配置用于以所述工作流引擎所支持的工作流操作定義所述邏輯片段之間 的協(xié)作關(guān)系。
15. 根據(jù)權(quán)利要求IO所述的適應(yīng)性系統(tǒng),其中所述適應(yīng)性引擎包括觀察器管理器,被配置用于監(jiān)視所述工作流引擎對所述邏輯片段 的執(zhí)行;片段協(xié)作器,被配置用于響應(yīng)于所述邏輯片段已經(jīng)執(zhí)行到斷點(diǎn), 依據(jù)所述適應(yīng)性模型的所述協(xié)調(diào)關(guān)系,調(diào)用所述工作流引擎的工作流 實(shí)例管理應(yīng)用程序接口 。
16. 根據(jù)權(quán)利要求15所述的適應(yīng)性系統(tǒng),其中所述適應(yīng)性引擎還 包括對象映射器,被配置用于在所述邏輯片段之間轉(zhuǎn)換和映射所述邏 輯片段中包含的對象。
17. 根據(jù)權(quán)利要求12所述的適應(yīng)性系統(tǒng),其中所述修改的類型包 括添加、刪除、移動、替換和重復(fù)。
18. 根據(jù)權(quán)利要求12所述的適應(yīng)性系統(tǒng),其中所述策略包括以下 各項(xiàng)中的至少一項(xiàng)邏輯片段尺寸最??; 邏輯片段數(shù)目最少。
全文摘要
根據(jù)本發(fā)明的技術(shù)方案,提供一種支持動態(tài)配置工作流的方法。該方法包括a)接收用戶對工作流的修改;b)確定工作流的邏輯斷點(diǎn),獲得針對修改操作的工作流的邏輯片段;c)生成適應(yīng)性模型,其中適應(yīng)性模型包括對邏輯片段的引用,以及邏輯片段之間的協(xié)作關(guān)系;d)根據(jù)適應(yīng)性模型監(jiān)視并控制工作流引擎執(zhí)行邏輯片段,以實(shí)現(xiàn)符合修改的虛擬工作流。本發(fā)明還提供相應(yīng)的系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。根據(jù)本發(fā)明的技術(shù)方案,能夠在不改變已經(jīng)部署的工作流引擎的情況下對工作流的控制流進(jìn)行動態(tài)的修改,而且無需停止現(xiàn)有工作流以對工作流模型重新進(jìn)行開發(fā)和部署。
文檔編號G06Q10/00GK101593294SQ20081010884
公開日2009年12月2日 申請日期2008年5月29日 優(yōu)先權(quán)日2008年5月29日
發(fā)明者偉 孫, 闊 張, 靜 李, 歐鐵軍, 郭常杰 申請人:國際商業(yè)機(jī)器公司