專利名稱:數(shù)據(jù)觸發(fā)的工作流過程的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種用于管理工作流過程的系統(tǒng)和方法;更具體地說,涉及一種用于管理工作流過程的系統(tǒng)和方法,其中提供工作流定義語言(語法和語義)與工作流引擎用于實(shí)現(xiàn)數(shù)據(jù)觸發(fā)的工作流過程。
背景技術(shù):
工作流管理是一項(xiàng)新興的軟件技術(shù),用于通過監(jiān)控工作地進(jìn)展并通知人們下一步應(yīng)采取何種活動(dòng),來協(xié)調(diào)計(jì)算機(jī)支持的人為活動(dòng)。市場(chǎng)上提供有多種工作流管理產(chǎn)品,但這些產(chǎn)品多數(shù)還不成熟或使用范圍有限。在工作流管理聯(lián)盟的領(lǐng)導(dǎo)下,制定了該市場(chǎng)的某些標(biāo)準(zhǔn)。該聯(lián)盟發(fā)布了幾個(gè)文檔定義規(guī)范、術(shù)語、參考體系結(jié)構(gòu)等(見www.wfmc.org),旨在使不同工作流管理產(chǎn)品之間具有互用性,并改善工作流應(yīng)用與諸如電子郵件和文檔管理的其它IT業(yè)務(wù)的集成。
工作流管理系統(tǒng)(由WfMC規(guī)范定義)是通過使用軟件、運(yùn)行一個(gè)或多個(gè)工作流引擎來定義、創(chuàng)建和管理工作流執(zhí)行的一種系統(tǒng),它能夠解釋過程的定義、與工作流的參與者相互作用,并根據(jù)需要調(diào)用IT工具或應(yīng)用(見“工作流管理聯(lián)盟術(shù)語與詞匯”(WorkflowManagement Coalition Terminology and Glossary,Document NumberWFMC-TC-1011,Issue 3.0,F(xiàn)ebruary,1999),通過引用將該文檔結(jié)合在此)。術(shù)語“工作流”指業(yè)務(wù)過程整體或部分自動(dòng)化,在該過程中,文檔、信息或任務(wù)根據(jù)一組程序規(guī)則,從一個(gè)參與者傳遞到另一個(gè)參與者,以便進(jìn)行處理。
圖1說明了符合WfMC的工作流管理系統(tǒng)的基本術(shù)語之間的關(guān)系。業(yè)務(wù)過程包括一組一個(gè)或多個(gè)鏈接的步驟或活動(dòng),一般是在定義功能作用和關(guān)系的組織結(jié)構(gòu)環(huán)境內(nèi),共同實(shí)現(xiàn)業(yè)務(wù)目的或策略目標(biāo)。業(yè)務(wù)過程由某種形式的過程定義表示,這種形式支持諸如工作流管理系統(tǒng)的建?;蜃饔?enactment)的自動(dòng)操作。過程定義可包括對(duì)分別定義的子過程的參考,這些子過程構(gòu)成整個(gè)過程定義的一部分。
過程定義包括一系列活動(dòng)及其關(guān)系、表示相關(guān)過程的開始和終止的準(zhǔn)則、以及有關(guān)各個(gè)活動(dòng)的信息,諸如參與者、有關(guān)IT應(yīng)用和數(shù)據(jù)等。一個(gè)活動(dòng)是在某一過程中形成一個(gè)邏輯的一件工作的說明。雖然活動(dòng)可包括“人工”或“自動(dòng)”活動(dòng),但只有自動(dòng)活動(dòng)才是計(jì)算機(jī)支持的過程執(zhí)行所產(chǎn)生的自動(dòng)工作流的一部分。
活動(dòng)(自動(dòng)的)在過程作用期間由工作流引擎安排。工作流引擎包括提供操作功能的軟件程序,以支持基于相關(guān)過程定義的業(yè)務(wù)過程的執(zhí)行(實(shí)例)。
過程實(shí)例表示過程的單個(gè)作用,其中過程實(shí)例由工作流管理系統(tǒng)創(chuàng)建、管理并(最終)終止。過程實(shí)例包括一個(gè)或多個(gè)活動(dòng)實(shí)例。
活動(dòng)實(shí)例包括過程實(shí)例中活動(dòng)的表示?;顒?dòng)實(shí)例包括工作項(xiàng)和/或調(diào)用的應(yīng)用。工作項(xiàng)表示在過程實(shí)例的活動(dòng)環(huán)境中要(由工作流參與者)處理的工作。調(diào)用的應(yīng)用包括工作流應(yīng)用,所述工作流應(yīng)用被調(diào)用以使活動(dòng)完全或部分自動(dòng)進(jìn)行,或支持工作流參與者處理工作項(xiàng)。
工作流參與者包括運(yùn)行工作流活動(dòng)實(shí)例所表示的工作的資源(一般是人)。
當(dāng)前可用的過程定義語言及其相關(guān)解釋器(即工作流引擎)使用“基于狀態(tài)的范例”描述工作流,例如在活動(dòng)網(wǎng)絡(luò)中,工作流規(guī)定與給定過程實(shí)例相關(guān)的活動(dòng)將要作用(執(zhí)行)的順序。一系列活動(dòng)(或過程)可以形象化為圖,該圖包括表示活動(dòng)的框和表示排序或定序的箭頭,即活動(dòng)之間的關(guān)系。除簡(jiǎn)單的順序關(guān)系(“A之后為B”)外,這些語言常支持并發(fā)(如“與-分”和“與-合”連接符)、保護(hù)(例如,“A完成時(shí),如果P,則進(jìn)行B”)、子程序、產(chǎn)生新過程實(shí)例、循環(huán)和其它控制結(jié)構(gòu)。
圖2說明示例性活動(dòng)網(wǎng)絡(luò),包括常規(guī)過程定義語言中的過程實(shí)例。示例性過程實(shí)例包括活動(dòng)網(wǎng)絡(luò)20,該網(wǎng)絡(luò)包括多個(gè)活動(dòng)開始活動(dòng)21、開發(fā)活動(dòng)22、集成活動(dòng)23、測(cè)試活動(dòng)24、發(fā)行活動(dòng)25和結(jié)束活動(dòng)26。示例性活動(dòng)網(wǎng)絡(luò)20還包括判決節(jié)點(diǎn)27。相關(guān)過程實(shí)例使開始活動(dòng)21作用一次,然后重復(fù)使開發(fā)、集成和測(cè)試序列活動(dòng)22、23、24作用。每次測(cè)試活動(dòng)24完成時(shí),依據(jù)測(cè)試活動(dòng)24的結(jié)果是“通過”或“失敗”來作出判決27是否使發(fā)行活動(dòng)25作用或者重復(fù)前面的活動(dòng)序列22-24。一旦使發(fā)行活動(dòng)25作用,便使結(jié)束活動(dòng)26作用,并且過程20結(jié)束。
如上所述,活動(dòng)指定要由工作者執(zhí)行的簡(jiǎn)單或合成的工作項(xiàng)。通常,活動(dòng)指定如何依據(jù)工作流相關(guān)數(shù)據(jù)填寫工作項(xiàng)規(guī)范的細(xì)節(jié)。工作流相關(guān)數(shù)據(jù)包括與業(yè)務(wù)過程相關(guān)、并可由相關(guān)工作流過程實(shí)例訪問的數(shù)據(jù)。如圖3所示,常規(guī)活動(dòng)通常通過一組狀態(tài)來進(jìn)行,諸如WfMC接口2API(應(yīng)用程序接口)(WfMC Interface 2API)所定義的那些狀態(tài)。WfMC工作流參考模型(WfMC Workflow ReferenceModels)的接口2API為工作流管理系統(tǒng)與客戶應(yīng)用和工作列表處理器軟件之間的相互作用定義了API(見“工作流管理應(yīng)用編程接口(接口2&3)規(guī)范(Workflow Management ApplicationProgrammingInterface(Interface 2&3)Specification,Document Number WFMC-TC-1009,July-98);“工作流管理聯(lián)盟工作流參考模型(DavidHollingsworth,Workflow Management CoalitionThe WorkflowReference Model,Document Number TC00-1003,Document Status-Issue 1.1,19-Jan-95))。
在圖3中,打開狀態(tài)37包括未運(yùn)行狀態(tài)31、運(yùn)行狀態(tài)32和具有如圖所示狀態(tài)過渡的暫停狀態(tài)34;關(guān)閉狀態(tài)38包括完成狀態(tài)33、終止?fàn)顟B(tài)35和中斷狀態(tài)36。通常,在未運(yùn)行狀態(tài)中例示常規(guī)活動(dòng)30的情況是例示了包含該活動(dòng)的過程,或者活動(dòng)網(wǎng)絡(luò)中在它之前的活動(dòng)已完成。工作流引擎(它解釋過程定義)一般會(huì)創(chuàng)建相應(yīng)的工作項(xiàng),并將它放置在具有執(zhí)行該工作項(xiàng)的適當(dāng)技能和權(quán)限的一個(gè)或多個(gè)工作者或其它工作流參與者的工作列表上。工作流參與者可以是智能代理而不是人。本文中使用的術(shù)語工作流參與者和參與者同義。工作列表處理器一般在工作者的計(jì)算機(jī)屏幕上顯示工作列表,由此工作者從工作列表中選擇工作項(xiàng),使它作用,并通知工作列表處理器該工作項(xiàng)已完成。在參與者從工作列表選擇任務(wù)時(shí),工作流引擎把活動(dòng)狀態(tài)從未運(yùn)行31改變?yōu)檫\(yùn)行32。
工作項(xiàng)成功完成后,活動(dòng)狀態(tài)從運(yùn)行狀態(tài)32改變?yōu)橥瓿蔂顟B(tài)33,并且活動(dòng)實(shí)例會(huì)銷毀39。如果參與者決定不完成工作項(xiàng),則參與者可以取消它,這種情況下,狀態(tài)從運(yùn)行32改回未運(yùn)行31。圖3的模型說明了其它狀態(tài)暫停34、中斷36和終止35,以包括其它情況,諸如暫時(shí)放下某一工作項(xiàng)以處理另一工作項(xiàng),或以異常方式終止某一工作項(xiàng),使得正常情況下在它后面進(jìn)行的活動(dòng)不如期進(jìn)行。
活動(dòng)30到達(dá)完成狀態(tài)33時(shí),工作流引擎檢查相關(guān)的過程定義,確定下一步應(yīng)作用什么活動(dòng),并將其狀態(tài)改變?yōu)榫途w。簡(jiǎn)單地說,假定在上面參照?qǐng)D2所述的示例性過程中,正好是一次打開了一個(gè)活動(dòng)。隨后,通過給出打開活動(dòng)的名稱和狀態(tài),可以概括示例性過程的過程狀態(tài)(即在特定時(shí)間點(diǎn)定義過程實(shí)例的狀態(tài)的內(nèi)部條件的表示)。
全函數(shù)常規(guī)語言的過程狀態(tài)語義更為復(fù)雜。例如,并發(fā)允許同時(shí)打開多個(gè)活動(dòng)。不過,可因此而將常規(guī)工作流建模語言看作使用基于狀態(tài)的范例。該范例適合工作是例行程序且“面向作業(yè)”的企業(yè)。“面向作業(yè)”是指在作業(yè)(例如,保險(xiǎn)索陪、貸款申請(qǐng)或采購(gòu)要求)輸入系統(tǒng)的情況下,由幾個(gè)人以完全標(biāo)準(zhǔn)的順序進(jìn)行象保險(xiǎn)索賠處理、貸款核準(zhǔn)等的工作,并完成工作。
在此類企業(yè)中,一般可以指定“主”過程定義,描述如何處理某一類型的作業(yè)。在這樣的作業(yè)輸入系統(tǒng)時(shí),工作流管理系統(tǒng)創(chuàng)建適當(dāng)?shù)倪^程定義的過程實(shí)例,并開始執(zhí)行它,將該過程實(shí)例連接到與該作業(yè)相關(guān)的工作流相關(guān)數(shù)據(jù)。
“基于狀態(tài)”的過程定義語言要求過程定義指定所有的活動(dòng)的法定順序,其中活動(dòng)網(wǎng)絡(luò)指定某一活動(dòng)僅在某些其它活動(dòng)先被作用后才被打開。因此,基于狀態(tài)的過程定義語言通常不太適合工作是合作性、創(chuàng)造性或“非確定性”的企業(yè)。例如,雖然工作流管理系統(tǒng)已被認(rèn)為是對(duì)整合保健企業(yè)有利的一項(xiàng)技術(shù),特別是在醫(yī)院的放射科,但此類企業(yè)的“業(yè)務(wù)過程”在其可預(yù)知性方面,從同一日常事務(wù)(例如,又一支斷臂)到同一不可預(yù)知性(例如,具有多種先存條件的病人出現(xiàn)心臟病癥狀,可能需要旁通外科手術(shù)),均會(huì)有所不同。在不可預(yù)知環(huán)境可能要求活動(dòng)不按平常順序發(fā)生的業(yè)務(wù)過程中,試圖使用這樣的語言在活動(dòng)網(wǎng)絡(luò)中編程所有可允許的狀態(tài)序列可能即麻煩又困難,并導(dǎo)致非常復(fù)雜和難以讀取的程序。此外,難以保證這樣的程序?qū)嶋H包括所有可能發(fā)生的情況。
參照?qǐng)D4,下面考慮圖中的活動(dòng)“添加測(cè)試?yán)?。假設(shè)預(yù)期的業(yè)務(wù)過程如下
除正常工作流外,允許工作者隨時(shí)使“添加測(cè)試?yán)弊饔?。之后,“測(cè)試”最終必須被作用,即使它以前已被作用。
常規(guī)的“基于狀態(tài)”的工作流管理系統(tǒng)將不接受此活動(dòng)網(wǎng)絡(luò),因?yàn)樗粗付◤拈_始活動(dòng)21通向添加測(cè)試?yán)顒?dòng)28的任何路徑。解決該問題的一種方法是在工作流中允許的每個(gè)地方創(chuàng)建一份單獨(dú)的添加測(cè)試?yán)顒?dòng)28,添加“或-分”與“或-合”連接以表示它是任選的活動(dòng)。然而,結(jié)果活動(dòng)網(wǎng)絡(luò)將具有給定網(wǎng)絡(luò)幾乎兩倍的節(jié)點(diǎn)和三倍的邊緣。如果有兩個(gè)或更多活動(dòng),而不是只有一個(gè),圖將隨這樣的活動(dòng)的數(shù)量而組合增長(zhǎng)或變差。這種解決方案假定每次只作用一個(gè)活動(dòng)。嘗試?yán)貌l(fā)活動(dòng)網(wǎng)絡(luò)解決該問題導(dǎo)致不同的復(fù)雜性。
因?yàn)闃I(yè)務(wù)過程的添加部分基本上是數(shù)據(jù)觸發(fā)的而不是基于狀態(tài)的,所以出現(xiàn)了這些復(fù)雜性。在開發(fā)者、集成者或測(cè)試者注意到應(yīng)用數(shù)據(jù)中的某些事情時(shí),會(huì)出現(xiàn)新測(cè)試?yán)男枰R坏┨砑恿诵聹y(cè)試?yán)?,以前的測(cè)試結(jié)果就廢棄。必須使“測(cè)試”作用,原因在于測(cè)試序列比最近測(cè)試結(jié)果新這樣一個(gè)事實(shí),而不是使“添加測(cè)試?yán)弊饔玫倪@樣一個(gè)事實(shí)。
因此,極需一種用于提供工作流管理的系統(tǒng)和方法,其中提供工作流定義語言(語法和語義)與工作流引擎,用于實(shí)現(xiàn)數(shù)據(jù)觸發(fā)的工作流過程。
發(fā)明內(nèi)容
本發(fā)明針對(duì)一種用于提供數(shù)據(jù)觸發(fā)的工作流管理的系統(tǒng)和方法。在一個(gè)方面,本發(fā)明定義數(shù)據(jù)觸發(fā)的過程定義語言。無論以前作用了哪些活動(dòng),只要符合指定的數(shù)據(jù)條件組合(允許規(guī)則),就允許優(yōu)選過程定義語言中指定的每個(gè)活動(dòng)被作用。在更嚴(yán)格的數(shù)據(jù)條件組合變?yōu)檎鏁r(shí)安排活動(dòng)作用(調(diào)度規(guī)則)。數(shù)據(jù)觸發(fā)的工作流引擎包括活動(dòng)調(diào)度程序,它利用過程實(shí)例的當(dāng)前狀態(tài)、允許規(guī)則和調(diào)度規(guī)則、活動(dòng)網(wǎng)絡(luò)及安排活動(dòng)作用的其它活動(dòng)屬性。然而,與常規(guī)過程定義語言不同,活動(dòng)網(wǎng)絡(luò)并不完全規(guī)定作用順序,而是控制數(shù)據(jù)觸發(fā)的工作流引擎將向參與者建議的作用順序?;顒?dòng)調(diào)度程序依據(jù)其具有的信息計(jì)算活動(dòng)屬性,所述活動(dòng)屬性建議使活動(dòng)作用的順序。然而,參與者可以依據(jù)其它信息而選擇不同的順序,并且甚至可以使未安排的活動(dòng)作用?;顒?dòng)調(diào)度程序不假定遵循了建議的順序,它只是通過修改建議的作用順序,來響應(yīng)每個(gè)活動(dòng)作用事件(例如,開始、結(jié)束、取消)。
在本發(fā)明的另一方面,活動(dòng)在分布式系統(tǒng)中發(fā)生的情況下,要求把數(shù)據(jù)從一個(gè)位置復(fù)制到另一位置以供不同活動(dòng)使用,數(shù)據(jù)觸發(fā)的過程定義語言的活動(dòng)定義包括輸入、輸出和自動(dòng)路由規(guī)范,由支持軟件用于使移動(dòng)數(shù)據(jù)自動(dòng)化。
在另一個(gè)方面,活動(dòng)指定數(shù)據(jù)觸發(fā)的例外。如果活動(dòng)正被作用時(shí)出現(xiàn)指定的數(shù)據(jù)條件,則消息被發(fā)送給活動(dòng),告知出現(xiàn)了例外。一般情況下,活動(dòng)隨后將中斷。
結(jié)合附圖,通過下面優(yōu)選實(shí)施例的詳細(xì)說明,本發(fā)明的這些和其它目的、特性與優(yōu)點(diǎn)將被描述并變得明顯。
附圖簡(jiǎn)述
圖1是流程圖,說明符合WfMC標(biāo)準(zhǔn)的工作流管理方法;
圖2是符合先有技術(shù)的示例性的基于狀態(tài)的活動(dòng)網(wǎng)絡(luò)的流程圖3是示例過程的活動(dòng)的狀態(tài)轉(zhuǎn)換圖,說明通過WfMC接口2API定義的一組狀態(tài)的活動(dòng)的進(jìn)展;
圖4是流程圖,說明符合本發(fā)明示例性實(shí)施例的數(shù)據(jù)觸發(fā)的活動(dòng)網(wǎng)絡(luò);
圖5是符合本發(fā)明實(shí)施例的數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)的框圖;以及
圖6是流程圖,說明一種用于執(zhí)行符合本發(fā)明一個(gè)方面的過程實(shí)例的方法。
具體實(shí)施例方式
本發(fā)明針對(duì)一種用于提供數(shù)據(jù)觸發(fā)的工作流管理的系統(tǒng)和方法。本發(fā)明適用于在其業(yè)務(wù)過程中允許大量不可預(yù)測(cè)性或自發(fā)性的諸如保健管理的任何企業(yè)。通常,數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)支持參與者(一般為人)偶爾執(zhí)行未安排的活動(dòng)的業(yè)務(wù)過程。具體地說,本發(fā)明提供新穎的數(shù)據(jù)觸發(fā)的過程定義語言和不同的機(jī)制,以多種方式支持未安排的活動(dòng)??梢岳斫?,符合本發(fā)明的數(shù)據(jù)觸發(fā)的過程定義語言與工作流引擎的優(yōu)選實(shí)施例包括對(duì)常規(guī)工作流過程定義和組成部分的擴(kuò)展。本發(fā)明根據(jù)需要利用與工作流管理有關(guān)的常規(guī)過程定義和組成部分,它們并非與此處所述的機(jī)制不一致,例如,活動(dòng)狀態(tài)圖上的變化、活動(dòng)網(wǎng)絡(luò)中節(jié)點(diǎn)和邊緣的類型、子程序、例外處理及過程例示。
如下面通過示例進(jìn)行詳細(xì)說明,通過實(shí)施可用于區(qū)分安排和未安排的活動(dòng)的允許規(guī)則、調(diào)度規(guī)則和預(yù)期規(guī)則,符合本發(fā)明優(yōu)選實(shí)施例的優(yōu)選數(shù)據(jù)觸發(fā)的過程定義語言擴(kuò)展了常規(guī)工作流協(xié)議。無論以前作用了哪些活動(dòng),只要符合指定的數(shù)據(jù)條件組合(允許規(guī)則),便允許優(yōu)選過程定義語言中指定的每個(gè)活動(dòng)被作用。在更嚴(yán)格的數(shù)據(jù)條件組合變?yōu)檎鏁r(shí)安排活動(dòng)作用(調(diào)度規(guī)則)。
數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)分析過程實(shí)例的當(dāng)前狀態(tài)、允許規(guī)則和調(diào)度規(guī)則、活動(dòng)網(wǎng)絡(luò)及安排活動(dòng)作用的其它活動(dòng)屬性。與常規(guī)過程定義語言不同,符合本發(fā)明的活動(dòng)網(wǎng)絡(luò)規(guī)范并不完全規(guī)定作用順序,它僅控制工作流引擎將建議的作用順序。數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)依據(jù)系統(tǒng)具有的信息,計(jì)算建議活動(dòng)作用的順序的活動(dòng)屬性。工作流參與者可以依據(jù)其它信息選擇不同的活動(dòng)順序,并且甚至可以使根本未安排的活動(dòng)作用。數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)不假定遵循了建議的順序,而是通過修改建議的作用順序來響應(yīng)每個(gè)活動(dòng)作用事件(例如,開始、結(jié)束、取消)。
現(xiàn)在參照?qǐng)D5的框圖,它說明了符合本發(fā)明實(shí)施例的數(shù)據(jù)觸發(fā)的工作流管理系統(tǒng)。系統(tǒng)包括過程定義編輯器51(例如工具、文本編輯器等),用于利用數(shù)據(jù)觸發(fā)的工作流定義語言(語法和語義)生成一個(gè)或更多的過程定義52。數(shù)據(jù)觸發(fā)的工作流定義語言包括多個(gè)規(guī)范,其中有作業(yè)記錄規(guī)范53、活動(dòng)規(guī)范54和活動(dòng)網(wǎng)絡(luò)規(guī)范55。下面將詳細(xì)描述這些規(guī)范中的每個(gè)規(guī)范。
系統(tǒng)50還包括數(shù)據(jù)觸發(fā)的工作流引擎59,該引擎例如可解釋過程定義52以例示和執(zhí)行定義過程的過程實(shí)例,以及管理過程的執(zhí)行。數(shù)據(jù)觸發(fā)的工作流引擎59包括活動(dòng)調(diào)度程序56和事件處理器57。事件處理器57監(jiān)控工作流相關(guān)數(shù)據(jù)64和活動(dòng)狀態(tài)的變化,將它們的影響傳播到其它活動(dòng)的狀態(tài)?;顒?dòng)調(diào)度程序56計(jì)算建議作用活動(dòng)的順序的活動(dòng)屬性,并依據(jù)活動(dòng)作用事件,動(dòng)態(tài)修改建議的作用順序。下面將提供工作流引擎59、活動(dòng)調(diào)度程序56和事件處理器57操作的更詳細(xì)的論述。
系統(tǒng)50還包括存儲(chǔ)數(shù)據(jù)的多個(gè)永久存儲(chǔ)裝置。例如,系統(tǒng)50包括工作流控制數(shù)據(jù)存儲(chǔ)器61,用于存儲(chǔ)由系統(tǒng)50和引擎59管理、表示系統(tǒng)50動(dòng)態(tài)狀態(tài)和過程實(shí)例的數(shù)據(jù)。另外,應(yīng)用數(shù)據(jù)存儲(chǔ)器62被提供用于存儲(chǔ)由支持過程實(shí)例的一個(gè)或多個(gè)應(yīng)用63管理的數(shù)據(jù)。此外,工作流相關(guān)數(shù)據(jù)存儲(chǔ)器64包括通常在事務(wù)處理上永久性的數(shù)據(jù)池,數(shù)據(jù)池在工作流過程執(zhí)行期間由支持人的活動(dòng)的應(yīng)用63和數(shù)據(jù)觸發(fā)的工作流引擎59來訪問。工作流相關(guān)數(shù)據(jù)由系統(tǒng)50用于確定工作流實(shí)例的狀態(tài)轉(zhuǎn)換。例如,在活動(dòng)保護(hù)(先決條件)中引用的應(yīng)用數(shù)據(jù)是工作流相關(guān)數(shù)據(jù)。
系統(tǒng)50還包括自動(dòng)路由服務(wù)器和存檔服務(wù)器66。在分布系統(tǒng)中作用活動(dòng),其中要求把數(shù)據(jù)從一個(gè)位置復(fù)制到另一位置供不同活動(dòng)使用時(shí),輸入和輸出規(guī)范及包括活動(dòng)規(guī)范54的自動(dòng)路由規(guī)范由系統(tǒng)50用于使數(shù)據(jù)移動(dòng)自動(dòng)化。下面提供與自動(dòng)路由服務(wù)器的功能和作用有關(guān)的細(xì)節(jié)。此外,下面將詳細(xì)說明,存檔服務(wù)器66依據(jù)活動(dòng)規(guī)范54的存檔規(guī)范,把由活動(dòng)生成的數(shù)據(jù)復(fù)制到指定的位置。
工作流參與者67(例如人)通過參與者界面68與系統(tǒng)50交互。工作列表處理器60管理參與者67與引擎59維護(hù)的工作列表58之間的交互。工作列表處理器60允許參與者67例如從工作列表58選擇工作項(xiàng)。工作項(xiàng)表示在過程實(shí)例內(nèi)活動(dòng)環(huán)境中要處理的工作。
現(xiàn)將詳細(xì)論述數(shù)據(jù)觸發(fā)的過程定義語言優(yōu)選組成部分及符合本發(fā)明的工作流管理的優(yōu)選方法和系統(tǒng)。
I.過程定義根據(jù)本發(fā)明的一個(gè)方面,過程定義52包括
(A)作業(yè)記錄規(guī)范53;
(B)一組活動(dòng)規(guī)范54;以及
(C)活動(dòng)網(wǎng)絡(luò)規(guī)范55。
通常,在數(shù)據(jù)觸發(fā)的工作流引擎59創(chuàng)建過程定義52的實(shí)例時(shí),它會(huì)創(chuàng)建作業(yè)記錄規(guī)范的實(shí)例及表示過程實(shí)例的執(zhí)行狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。執(zhí)行狀態(tài)包括過程活動(dòng)的任何過程專用數(shù)據(jù)和實(shí)例,及其狀態(tài)。另外,對(duì)于需要審計(jì)歷史記錄的應(yīng)用,執(zhí)行狀態(tài)還包括過程執(zhí)行的審計(jì)歷史。根據(jù)本發(fā)明,數(shù)據(jù)觸發(fā)的工作流引擎59使用過程實(shí)例的當(dāng)前執(zhí)行狀態(tài)、活動(dòng)規(guī)范54和活動(dòng)網(wǎng)絡(luò)55,以確定允許哪些活動(dòng)作用、安排了哪些活動(dòng)作用以及安排的活動(dòng)的優(yōu)先級(jí)特性。
I(A)作業(yè)記錄規(guī)范符合本發(fā)明的作業(yè)記錄規(guī)范53定義執(zhí)行某類作業(yè)所需的所有數(shù)據(jù),包括輸入數(shù)據(jù)(例如,工作順序)、中間結(jié)果及將作為完成作業(yè)的一部分而傳送的輸出數(shù)據(jù)。作業(yè)數(shù)據(jù)一般也包括對(duì)在幾個(gè)作業(yè)中共享的其它工作流相關(guān)數(shù)據(jù)的參考。本發(fā)明的其它實(shí)施例包括鎖定機(jī)制,允許在某些執(zhí)行間隔期間過程實(shí)例對(duì)共享數(shù)據(jù)對(duì)象具有專有訪問權(quán)限。
I(B)活動(dòng)規(guī)范符合本發(fā)明的活動(dòng)規(guī)范54包括(i)任選的允許規(guī)則規(guī)范;(ii)調(diào)度規(guī)則規(guī)范;(iii)任選的預(yù)期規(guī)則規(guī)范;(iv)工作項(xiàng)規(guī)范;(v)任選的輸入規(guī)范;(vi)任選的輸出規(guī)范;(vii)任選的完成狀態(tài)規(guī)范;(viii)任選的資源規(guī)范;(ix)任選的例外規(guī)范;(x)任選的自動(dòng)路由規(guī)范;以及(xi)任選的存檔規(guī)范,下面將詳細(xì)描述這些規(guī)范中的每一個(gè)規(guī)范。對(duì)于每個(gè)任選的規(guī)范,在忽略規(guī)范時(shí)最好使用默認(rèn)值。
通常,在活動(dòng)允許規(guī)則為真時(shí)僅作用該活動(dòng)。只要活動(dòng)的調(diào)度規(guī)則為真且該活動(dòng)尚未打開,便安排該活動(dòng)作用。預(yù)期規(guī)則通知活動(dòng)調(diào)度程序60,以假定將來將作用該活動(dòng),并因此預(yù)先為其資源、自動(dòng)路由等作計(jì)劃?;顒?dòng)可以僅讀取在其輸入規(guī)范中所列的數(shù)據(jù),并可以僅寫入在其輸出規(guī)范中所列的數(shù)據(jù)。允許規(guī)則、調(diào)度規(guī)則和預(yù)期規(guī)則可以僅參考輸入規(guī)范中的數(shù)據(jù)。在活動(dòng)到了完成狀態(tài)時(shí),它也具有完成狀態(tài)。每次任何工作流相關(guān)數(shù)據(jù),包括作業(yè)記錄中的數(shù)據(jù),發(fā)生變化時(shí),數(shù)據(jù)觸發(fā)的工作流引擎會(huì)檢查哪些活動(dòng)規(guī)則受所述數(shù)據(jù)的影響,并相應(yīng)地更新安排的活動(dòng)的列表。
I(B)(i)允許規(guī)則符合本發(fā)明的允許規(guī)則包括對(duì)活動(dòng)輸入的布爾表達(dá)式,指定作業(yè)的當(dāng)前狀態(tài)是否允許活動(dòng)被作用。作為默認(rèn),調(diào)度規(guī)則最好被用作允許規(guī)則。
I(B)(ii)調(diào)度規(guī)則符合本發(fā)明的調(diào)度規(guī)則包括對(duì)活動(dòng)輸入的布爾表達(dá)式,指定數(shù)據(jù)觸發(fā)的工作流引擎安排活動(dòng)作用應(yīng)依據(jù)的條件。允許規(guī)則與調(diào)度規(guī)則之間的不同之處在于,在參與者主動(dòng)進(jìn)行某一活動(dòng)而不論它是否在工作列表上時(shí),檢查允許規(guī)則。而調(diào)度規(guī)則指示數(shù)據(jù)觸發(fā)的工作流引擎主動(dòng)通知參與者,要求參與者應(yīng)執(zhí)行某一活動(dòng)(一般是將該活動(dòng)放到工作列表上)。
I(B)(iii)預(yù)期規(guī)則符合本發(fā)明的預(yù)期規(guī)則包括對(duì)活動(dòng)輸入的布爾表達(dá)式,在作業(yè)完成前指定是否預(yù)期活動(dòng)在將來被作用。例如,在圖4中,如果最新版本的代碼比已測(cè)試的版本更新,則在作業(yè)完成前,預(yù)期測(cè)試活動(dòng)24再次被作用?;顒?dòng)調(diào)度程序60使用預(yù)期規(guī)則,以便預(yù)先為要被作用的尚未安排或甚至未允許的活動(dòng)作計(jì)劃。預(yù)期活動(dòng)的事實(shí)并不保證它在將來一定被作用。在優(yōu)選實(shí)施例中,預(yù)期規(guī)則的默認(rèn)值為“如果活動(dòng)從未在運(yùn)行狀態(tài),則為真,否則為假”。
可以理解,除此處所述優(yōu)選的數(shù)據(jù)觸發(fā)的工作流系統(tǒng)外,預(yù)期規(guī)則規(guī)范可以在任何適合的工作流范例中實(shí)施,諸如在上述常規(guī)的基于狀態(tài)的工作流范例中實(shí)施。
I(B)(iv)工作項(xiàng)規(guī)范工作項(xiàng)規(guī)范描述在相關(guān)活動(dòng)過程中要執(zhí)行的工作。工作項(xiàng)規(guī)范一般包括模板,數(shù)據(jù)觸發(fā)的工作流引擎用作業(yè)記錄中的信息例示該模塊。如上所述,工作項(xiàng)被呈現(xiàn)給工作列表上的參與者。本發(fā)明可與大多數(shù)常規(guī)工作項(xiàng)規(guī)范技術(shù)一起工作。
I(B)(v)輸入規(guī)范符合本發(fā)明的輸入規(guī)范列出活動(dòng)可能需要讀取的作業(yè)記錄中的所有數(shù)據(jù)。如果相同的數(shù)據(jù)可能也被修改,則它必須列在輸出規(guī)范中。為提高效率,符合本發(fā)明的輸入規(guī)范可以區(qū)分以不同方式使用的輸入數(shù)據(jù),諸如“需要的”與“任選的”,“僅允許”、“僅調(diào)度”、“復(fù)制”與“參考”等。輸入規(guī)范可以為一些或所有輸入?yún)^(qū)供應(yīng)自動(dòng)路由規(guī)范(如下所述)。
作為默認(rèn),假定活動(dòng)讀取所有輸入?yún)^(qū)。
I(B)(vi)輸出規(guī)范符合本發(fā)明的輸出規(guī)范列出某一活動(dòng)可能產(chǎn)生、修改或重寫的作業(yè)記錄中的所有數(shù)據(jù)。每種輸出狀態(tài)可能有一個(gè)不同的列表。每個(gè)列表項(xiàng)可限定有象“始終”、“可能”等的屬性。每個(gè)列表可具有表明數(shù)據(jù)屬性的有關(guān)謂詞(predicate),當(dāng)活動(dòng)在指定的狀態(tài)結(jié)束時(shí),所述數(shù)據(jù)的屬性預(yù)期為真。謂詞是否實(shí)際為真,這取決于工作流引擎是否推行謂詞。輸出規(guī)范可為一些或所有輸出區(qū)供應(yīng)存檔規(guī)范(如下所述)。作為默認(rèn),假定活動(dòng)修改所有輸出區(qū)。
I(B)(vii)完成狀態(tài)規(guī)范符合本發(fā)明實(shí)施例的完成狀態(tài)規(guī)范包括不同活動(dòng)輸出的名稱的列表(即活動(dòng)可能結(jié)束的方式)。在一個(gè)實(shí)施例中,默認(rèn)規(guī)范為“{完成}”。其它有用的完成狀態(tài)規(guī)范的示例包括“{成功,失敗}”、“{認(rèn)可、拒絕、要求、撤消}”等?;顒?dòng)結(jié)束時(shí),活動(dòng)會(huì)發(fā)送消息給數(shù)據(jù)觸發(fā)的工作流引擎,以指出活動(dòng)達(dá)到哪個(gè)完成狀態(tài)。例如,在隨后活動(dòng)的規(guī)則中,使用完成狀態(tài)。
I(B)(viii)資源規(guī)范根據(jù)本發(fā)明的實(shí)施例,資源規(guī)范包括企業(yè)資源,諸如使活動(dòng)作用所需的人、工作站、設(shè)備、耗用品、文件服務(wù)器和數(shù)據(jù)存儲(chǔ)空間。符合本發(fā)明實(shí)施例的活動(dòng)調(diào)度程序60利用資源規(guī)范以選擇應(yīng)先作用哪些安排的活動(dòng)實(shí)例。資源規(guī)范也可以在活動(dòng)被允許前用于預(yù)先計(jì)劃資源使用。作為默認(rèn),假定活動(dòng)不使用需要調(diào)度或影響優(yōu)先級(jí)的資源。
I(B)(ix)例外規(guī)范符合本發(fā)明實(shí)施例的例外規(guī)范包括要求異常處理的異常情況,并且這可以在活動(dòng)進(jìn)行時(shí)發(fā)生。例外可源于活動(dòng)本身,也可以由某一外部代理施加于活動(dòng)上。例如,如果放射科醫(yī)師發(fā)現(xiàn)病人無法忍受該過程,可將其作為“內(nèi)部”例外。另一方面,如果臨床醫(yī)師在放射科醫(yī)師口述報(bào)告時(shí)取消了順序,則可將其作為“外部”例外。此規(guī)范的默認(rèn)設(shè)置是“無例外”。
可以理解,除此處所述優(yōu)選的數(shù)據(jù)觸發(fā)的工作流系統(tǒng)外,例外規(guī)范可在任何適合的工作流范例中實(shí)施,諸如在上述常規(guī)的基于狀態(tài)的工作流范例中實(shí)施。
I(B)(x)自動(dòng)路由規(guī)范具有涉及大量數(shù)據(jù)的業(yè)務(wù)過程的大企業(yè)可分布有許多工作站和許多文件服務(wù)器。這會(huì)產(chǎn)成這樣的情況一個(gè)活動(dòng)已產(chǎn)生、修改或重寫了某些數(shù)據(jù),而另一活動(dòng)準(zhǔn)備使用所述數(shù)據(jù),但在將執(zhí)行下一活動(dòng)的工作站卻不易于訪問到該數(shù)據(jù)。此處把在作用活動(dòng)前移動(dòng)數(shù)據(jù)稱為自動(dòng)路由選擇。此處所用術(shù)語“自動(dòng)路由選擇”包括由產(chǎn)生、修改或重寫數(shù)據(jù)的工作站“推”到隨后的活動(dòng)位置的數(shù)據(jù),以及由隨后活動(dòng)位置“拉”來的數(shù)據(jù)(例如,從存檔中)。
符合本發(fā)明實(shí)施例的自動(dòng)路由選擇規(guī)范包括一種規(guī)則,列出在開始活動(dòng)前哪些輸入數(shù)據(jù)項(xiàng)要復(fù)制以及將其復(fù)制到何處??梢砸罁?jù)作業(yè)記錄中的數(shù)據(jù)來計(jì)算自動(dòng)路由選擇目的地。自動(dòng)路由選擇規(guī)范的實(shí)施例可包括“強(qiáng)制”自動(dòng)路由選擇和/和“優(yōu)選”自動(dòng)路由選擇。
符合本發(fā)明實(shí)施例的強(qiáng)制自動(dòng)路由選擇一般被指定用于活動(dòng)需要的、但如果不自動(dòng)路由選擇就根本無法從作用活動(dòng)的工作站訪問的數(shù)據(jù)。優(yōu)選的自動(dòng)路由選擇一般被指定用于活動(dòng)任選的或者需要的、但在無自動(dòng)路由選擇時(shí)雖然慢卻仍可訪問的數(shù)據(jù)。然而,對(duì)為特定數(shù)據(jù)項(xiàng)指定優(yōu)選還是強(qiáng)制自動(dòng)路由選擇的選擇是由過程設(shè)計(jì)者確定。
一完成強(qiáng)制自動(dòng)路由選擇便開始活動(dòng),但如果活動(dòng)延遲到優(yōu)選自動(dòng)路由選擇完成后再執(zhí)行會(huì)更有效或更有作用?;顒?dòng)的自動(dòng)路由選擇狀態(tài)可包括在工作列表中,這樣,參與者可以選擇是否等待優(yōu)選自動(dòng)路由選擇完成。
符合本發(fā)明的自動(dòng)路由選擇規(guī)則可以多種方式使用。例如,所述規(guī)則可用于構(gòu)建移動(dòng)數(shù)據(jù)的命令和/或測(cè)試強(qiáng)制自動(dòng)路由選擇和/或優(yōu)選自動(dòng)路由選擇是否已完成。在優(yōu)選實(shí)施例中,數(shù)據(jù)觸發(fā)的工作流引擎使用的自動(dòng)路由選擇規(guī)范包括下面的內(nèi)容
·在活動(dòng)允許規(guī)則評(píng)估為真及活動(dòng)強(qiáng)制自動(dòng)路由選擇測(cè)試評(píng)估為真前,不允許活動(dòng)被作用。
·在活動(dòng)調(diào)度規(guī)則評(píng)估為真及活動(dòng)強(qiáng)制自動(dòng)路由選擇測(cè)試評(píng)估為真前,不使活動(dòng)列在工作項(xiàng)池中準(zhǔn)備執(zhí)行。
·工作項(xiàng)帶有反映其優(yōu)選自動(dòng)路由選擇是否完成的屬性。此屬性可用于工作列表查詢并顯示在工作列表中。
·只要數(shù)據(jù)項(xiàng)D被創(chuàng)建或修改,數(shù)據(jù)觸發(fā)的工作流引擎59便收集可能要求D移到和/或?qū)儆陬A(yù)期活動(dòng)的所有自動(dòng)路由選擇規(guī)范,并將這些規(guī)則發(fā)送到自動(dòng)路由選擇模塊65。
·自動(dòng)路由選擇模塊65依據(jù)可用的存儲(chǔ)空間、網(wǎng)絡(luò)業(yè)務(wù)量、活動(dòng)最終期限及任何其它相關(guān)信息,安排和監(jiān)督數(shù)據(jù)移動(dòng)。
·每次自動(dòng)路由選擇規(guī)則變?yōu)闂l件滿足時(shí),自動(dòng)路由選擇模塊65便通知數(shù)據(jù)觸發(fā)的工作流引擎59,使得該引擎可以更新受影響的活動(dòng)的屬性。
·只要預(yù)期到與受影響的自動(dòng)路由選擇規(guī)則有關(guān)的活動(dòng)停止,數(shù)據(jù)觸發(fā)的工作流引擎59便通知自動(dòng)路由選擇服務(wù)器65,這樣,它可以取消有關(guān)的復(fù)制命令。
可以理解,除此處所述的優(yōu)選數(shù)據(jù)觸發(fā)的工作流系統(tǒng)外,自動(dòng)路由選擇規(guī)范可在任何適合的工作流范例中實(shí)施,諸如在上述常規(guī)的基于狀態(tài)的工作流范例中實(shí)施。
I(B)(xi)存檔規(guī)范在一些實(shí)例中,最好是,一旦完成活動(dòng)實(shí)例,就將活動(dòng)產(chǎn)生、修改或重寫的數(shù)據(jù)復(fù)制到“安全位置”。符合本發(fā)明實(shí)施例的存檔規(guī)范57識(shí)別哪些數(shù)據(jù)應(yīng)被復(fù)制、數(shù)據(jù)應(yīng)被復(fù)制到何處以及是使復(fù)制作為活動(dòng)實(shí)例事務(wù)處理的一部分還是作為單獨(dú)的隨后步驟。這種區(qū)別在某些情況下對(duì)容錯(cuò)是重要的。
只要活動(dòng)實(shí)例進(jìn)入完成狀態(tài),數(shù)據(jù)觸發(fā)的工作流引擎便把存檔規(guī)范傳送到后臺(tái)存檔服務(wù)器66以執(zhí)行復(fù)制。存檔服務(wù)器66在復(fù)制完成時(shí)通知數(shù)據(jù)觸發(fā)的工作流引擎59。如果這樣指定,則數(shù)據(jù)觸發(fā)的工作流引擎59延遲完成活動(dòng)實(shí)例的事務(wù)處理,直至收到此通知。
可以理解,除此處所述優(yōu)選的數(shù)據(jù)觸發(fā)的工作流系統(tǒng)外,存檔規(guī)范可在任何適合的工作流范例中實(shí)施,諸如在上述常規(guī)的基于狀態(tài)的工作流范例中實(shí)施。
I(C)活動(dòng)網(wǎng)絡(luò)
符合本發(fā)明實(shí)施例的活動(dòng)網(wǎng)絡(luò)規(guī)范55描述了在沒有“自發(fā)”活動(dòng)情況下活動(dòng)發(fā)生的正常順序。在優(yōu)選實(shí)施例中,活動(dòng)網(wǎng)絡(luò)由為某一過程定義的活動(dòng)組上的兩個(gè)關(guān)系定義。
(i)Precedes<X,Y>指“在作用X后,可能要作用Y”。其主要原因是X產(chǎn)生、修改或重寫Y需要的數(shù)據(jù),但那即不是Precedes<X,Y>的必需條件,也不是其充分條件。最好是在作業(yè)的活動(dòng)組上部分安排所述關(guān)系。
(ii)Precedes-back<X,Y>類似于第一關(guān)系,但用于指定排序圖中的“后緣”。此關(guān)系的意思是“在作用X后,可能要重新作用Y”。例如,在活動(dòng)序列由于其輸出不能通過質(zhì)檢而應(yīng)重復(fù)的情況下,使用該關(guān)系。
符合本發(fā)明的活動(dòng)網(wǎng)絡(luò)包括兩個(gè)關(guān)系Precedes<X,Y>和Precedes-back<X,Y>的并集(union)。例如,在一個(gè)以上的活動(dòng)的調(diào)度規(guī)則滿足條件時(shí),此排序關(guān)系用于確定哪些活動(dòng)應(yīng)在其它活動(dòng)之前作用。通常,如果Precedes*(X,Y),則X應(yīng)先于Y被作用,其中Precedes*是Precedes關(guān)系的傳遞閉包。然而,可能出現(xiàn)Precedes-back(X,Y)也影響最佳作用順序的情況。
II.執(zhí)行過程實(shí)例
通常,數(shù)據(jù)觸發(fā)的工作流引擎59負(fù)責(zé)監(jiān)督過程實(shí)例的執(zhí)行。例如,數(shù)據(jù)觸發(fā)的工作流引擎通過以下方式執(zhí)行此功能(i)推行執(zhí)行的規(guī)則;(ii)創(chuàng)建和刪除工作項(xiàng)并跟蹤其狀態(tài)和屬性;(iii)與工作列表處理器交互,以構(gòu)建工作列表并接收作用事件;和/或(iv)通過更新過程的執(zhí)行狀態(tài)來響應(yīng)作用事件。
數(shù)據(jù)觸發(fā)的工作流引擎最好按如下方式保持工作列表。在活動(dòng)被例示時(shí),引擎依據(jù)角色規(guī)范、參與者簡(jiǎn)檔等信息,以常規(guī)方式按規(guī)范例示工作項(xiàng),并將工作項(xiàng)放置到所有適當(dāng)?shù)墓ぷ髁斜砩稀⑴c者從工作列表選擇工作項(xiàng),開始作用所述工作項(xiàng),隨后結(jié)束對(duì)所述工作項(xiàng)的作用或?qū)⑵淙∠?。參與者對(duì)工作項(xiàng)的行為使工作列表管理器把事件發(fā)送到工作流引擎,告訴它改變對(duì)應(yīng)活動(dòng)實(shí)例的狀態(tài)。工作流引擎通過以適當(dāng)?shù)姆绞礁淖兓顒?dòng)實(shí)例狀態(tài)及過程實(shí)例和作業(yè)記錄的內(nèi)容,來響應(yīng)工作列表的消息。
現(xiàn)在,參照?qǐng)D6的流程圖來描述符合本發(fā)明一個(gè)方面的數(shù)據(jù)觸發(fā)的工作流引擎操作的優(yōu)選方法。在啟動(dòng)工作流引擎后(步驟100),引擎在收到事件前進(jìn)行等待(步驟101)。事件發(fā)生時(shí)(即特定條件發(fā)生,對(duì)工作流管理系統(tǒng)來說,可能是內(nèi)部的或外部的)(步驟101中為肯定確定),引擎便確定接收到什么類型的事件(步驟102)。如果確定事件類型為“改變的工作流相關(guān)數(shù)據(jù)”(步驟103中為肯定結(jié)果)或“自動(dòng)路由選擇事件”(步驟104中為肯定結(jié)果),則工作流引擎繼續(xù)進(jìn)行步驟119-122(在下面描述)。
如果工作流引擎確定事件類型是“新過程”(在步驟105中為肯定結(jié)果),則引擎將例示過程(步驟106),包括例示“未運(yùn)行”狀態(tài)中的每個(gè)過程活動(dòng)(步驟107),并隨后繼續(xù)進(jìn)行步驟119-122。
如果引擎確定事件類型是“更新活動(dòng)狀態(tài)”事件(步驟108中為肯定結(jié)果),則引擎將按照狀態(tài)機(jī)更新活動(dòng)(步驟109)。更具體地說,工作流引擎將檢查事件參數(shù)以確定哪個(gè)活動(dòng)實(shí)例受影響及需要什么樣的更新,將它與活動(dòng)實(shí)例的當(dāng)前狀態(tài)相比較(參考圖3)并相應(yīng)地改變狀態(tài)。工作流引擎將隨后繼續(xù)進(jìn)行步驟119-122。
如果工作流引擎確定事件類型為“存檔事件”(步驟110中為肯定結(jié)果),則引擎將定位等待存檔行為完成的活動(dòng)實(shí)例,相應(yīng)地更新該活動(dòng)實(shí)例的事務(wù)處理和活動(dòng)狀態(tài)(步驟112),并隨后繼續(xù)進(jìn)行步驟119-122。
如果工作流引擎確定事件類型為“作用活動(dòng)”事件(步驟113中為肯定結(jié)果),則工作流引擎首先評(píng)估請(qǐng)求的活動(dòng)實(shí)例的允許規(guī)則,以確定是否允許該活動(dòng)被作用(步驟114)。如果當(dāng)前不允許該活動(dòng)實(shí)例(步驟114中為否定確定),則工作流引擎拒絕請(qǐng)求并回到步驟101以等待另一事件。另一方面,如果當(dāng)前允許請(qǐng)求的活動(dòng)實(shí)例(步驟114中為肯定結(jié)果),則工作流引擎確定請(qǐng)求的活動(dòng)是否為“結(jié)束”活動(dòng)實(shí)例(步驟115)。如果是(步驟115中為肯定確定),則工作流引擎終止包括該活動(dòng)實(shí)例的過程實(shí)例的執(zhí)行(步驟116)并繼續(xù)進(jìn)行步驟119-122。可以理解,由于過程實(shí)例中的數(shù)據(jù)必須被保留用于記錄和其它目的,因此終止活動(dòng)或過程實(shí)例并不銷毀它。也可以理解,如果允許,最好能作用“結(jié)束”活動(dòng)(步驟116),終止過程實(shí)例,即使其它活動(dòng)已安排、在運(yùn)行或仍在預(yù)期中。
如果活動(dòng)實(shí)例不是“結(jié)束”活動(dòng)(步驟115中為否定確定),該活動(dòng)狀態(tài)被設(shè)為運(yùn)行(步驟117),引擎會(huì)激活執(zhí)行對(duì)應(yīng)工作項(xiàng)所需的任何軟件應(yīng)用程序(步驟118),并且邏輯流程繼續(xù)進(jìn)行步驟119。
在步驟119,根據(jù)本發(fā)明,數(shù)據(jù)觸發(fā)的工作流引擎通過查看接收事件對(duì)過程數(shù)據(jù)的影響,也處理接收事件。它重新評(píng)估活動(dòng)實(shí)例的允許、調(diào)度和預(yù)期規(guī)則,以了解哪些表達(dá)式改變了值,并隨后相應(yīng)地調(diào)整工作列表。數(shù)據(jù)觸發(fā)的工作流引擎計(jì)算活動(dòng)的其它調(diào)度特性,并將該信息附到工作項(xiàng)。例如,如果兩個(gè)活動(dòng)實(shí)例X和Y均為未運(yùn)行狀態(tài),并且Precedes<X,Y>,則Y的工作項(xiàng)可能包括“X在先”屬性。構(gòu)建特定工作列表的查詢可能過濾或不過濾此類在先活動(dòng),這要視工作列表的用途而定。
引擎隨后發(fā)送更新的信息到自動(dòng)路由選擇服務(wù)器(步驟120)和存檔服務(wù)器(步驟121),檢測(cè)任何數(shù)據(jù)觸發(fā)的例外,并發(fā)送例外消息給受影響的活動(dòng)(步驟122),并隨后等待下一事件到達(dá)(步驟101)。
可以理解,活動(dòng)的任選規(guī)范被用于使工作引擎更有效。例如,輸入規(guī)范允許引擎限制它重新評(píng)估哪些就緒規(guī)則,這基于改變哪些數(shù)據(jù)。完成狀態(tài)和輸出規(guī)范允許引擎僅檢查實(shí)際上可能改變了的那些作業(yè)記錄區(qū)?;顒?dòng)調(diào)度程序的另一實(shí)施例使用輸入-輸出相關(guān)性、估計(jì)的作用次數(shù)和資源需求,以執(zhí)行調(diào)度優(yōu)化和瓶頸預(yù)測(cè)。
可以理解,考慮關(guān)于活動(dòng)何時(shí)可以被作用一次以上的情況。有三種情況必須考慮到(a)過程定義包括兩個(gè)或更多具有共享規(guī)范的邏輯不同的活動(dòng)(這些活動(dòng)視為不同的活動(dòng))(b)曾經(jīng)完成的活動(dòng)的特定實(shí)例以后可能要被重新作用(這視為同一活動(dòng)的重復(fù),即使它極其可能帶來新實(shí)例);以及(c)過程幾次明確重復(fù)某個(gè)活動(dòng),例如,處理一系列類似數(shù)據(jù)對(duì)象。執(zhí)行可以在時(shí)間上重疊。這些被視為不同的活動(dòng)。
如果需要特定應(yīng)用,活動(dòng)可以被實(shí)施為作業(yè)記錄實(shí)例和過程實(shí)例數(shù)據(jù)上不可分割的事務(wù)處理,以確保下面屬性中的一個(gè)或多個(gè)
·活動(dòng)對(duì)工作流相關(guān)數(shù)據(jù)、特別是對(duì)作業(yè)記錄進(jìn)行的任何改變是在“全部或沒有”的基礎(chǔ)上進(jìn)行的。
·輸入規(guī)范可能鎖定一些輸入。在當(dāng)前活動(dòng)實(shí)例正運(yùn)行時(shí),任何其它活動(dòng)實(shí)例不可改變那些輸入?yún)^(qū)。
·調(diào)度規(guī)則可以鎖定一些輸入,其中,在該活動(dòng)打開時(shí),不能改變那些輸入?yún)^(qū)。
III.支持再工作的、基于狀態(tài)的調(diào)度規(guī)則
下面描述根據(jù)本發(fā)明實(shí)施例的、基于狀態(tài)的調(diào)度規(guī)則規(guī)范58,用于定義調(diào)度規(guī)則,使得只要沒有不預(yù)期的活動(dòng)作用,過程便表現(xiàn)象是基于狀態(tài),但在出現(xiàn)諸如再工作的這種不預(yù)期作用時(shí)也可切合實(shí)際地做出響應(yīng)。下面的謂詞幫助描述調(diào)度規(guī)則。
(i)輸入輸出一致謂詞
單獨(dú)為每個(gè)活動(dòng)指定符合本發(fā)明的輸入輸出一致謂詞,并且通過參考活動(dòng)輸入查看活動(dòng)輸出決定活動(dòng)是否需要被(重新)作用的概念被符合本發(fā)明的輸入輸出一致謂詞獲得。這樣,優(yōu)選的輸入輸出一致謂詞包括活動(dòng)的輸入和輸出的布爾函數(shù),其值表示輸出是否與輸入一致,好象活動(dòng)剛剛作用完一樣。
(ii)前綴一致謂詞
從輸入輸出一致謂詞、活動(dòng)網(wǎng)絡(luò)和活動(dòng)網(wǎng)絡(luò)語言的規(guī)則自動(dòng)構(gòu)建符合本發(fā)明的前綴一致謂詞。前綴一致謂詞的目的是表示通過活動(dòng)網(wǎng)絡(luò)有到選定活動(dòng)的法定執(zhí)行路徑,這樣,該路徑上直到該活動(dòng)但不包括該活動(dòng)本身的所有活動(dòng)是一致的。當(dāng)然,如果網(wǎng)絡(luò)語言允許并發(fā),則“路徑”可以是并發(fā)的。
活動(dòng)是前綴一致的,只要活動(dòng)內(nèi)緣上的保護(hù)為真,且活動(dòng)的前趨的特定子集是輸入輸出一致的和前綴一致的,其中,該子集最好是根據(jù)引入到活動(dòng)的邊緣類型來指定,并且“前趨”由Precedes*<X,Y>關(guān)系定義,且不包括Precedes-back<X,Y>關(guān)系。例如
·一旦開始活動(dòng)已被作用,它便是前綴一致和輸入輸出一致。
·如果邊緣是普通順序邊緣,則其唯一的前趨必須是前綴一致。
·如果邊緣是或聯(lián)合(OR-join),則僅需前趨之一為前綴一致。
·如果邊緣是與聯(lián)合(AND-join),則所有前趨必須為前綴一致。
·如果指定子集為空,則活動(dòng)是前綴一致。
調(diào)度規(guī)則
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,為了模擬基于狀態(tài)的調(diào)度,同時(shí)也支持再工作,每個(gè)活動(dòng)的調(diào)度規(guī)則自動(dòng)從一致謂詞中構(gòu)建,如下只要活動(dòng)具有前趨且活動(dòng)是前綴一致的而不是輸入輸出一致的,每個(gè)活動(dòng)的調(diào)度規(guī)則便為真。
只要沒有未安排的活動(dòng)作用,所述規(guī)則便模擬基于狀態(tài)的范例。一旦開始規(guī)則已經(jīng)被作用,其后繼的調(diào)度規(guī)則將變?yōu)檎?。一旦它們作用,其后繼的調(diào)度規(guī)則將變?yōu)檎?,等等。在活?dòng)圖中有后緣的任何之處,該邊緣的目標(biāo)活動(dòng)的輸入輸出一致規(guī)則將包括子句,檢查可能由源活動(dòng)引起的數(shù)據(jù)改變是否要求重新作用目標(biāo)。
在未安排的活動(dòng)確實(shí)發(fā)生時(shí),調(diào)度規(guī)則負(fù)責(zé)決定哪些正?;顒?dòng)需要被重新作用,或根本無需被作用。除了跳過因已經(jīng)是輸入輸出一致而無需被作用的活動(dòng)外,按標(biāo)準(zhǔn)順序安排作用。下面示例說明作用序列如何受影響。
在一個(gè)示例中,一個(gè)特定的行為(實(shí)際根本不是活動(dòng))可能改變一些作業(yè)數(shù)據(jù),使以前作用的一致的活動(dòng)變得不一致。該活動(dòng)的調(diào)度規(guī)則將變?yōu)檎?,一旦它被作用,所有后面不一致的活?dòng)將被安排并被作用??赡苡幸恍┖髞淼幕顒?dòng)即使其前趨被重新作用也保持輸入輸出一致。在重新作用期間跳過這些活動(dòng)。
在另一示例中,活動(dòng)可能比其正常安排的時(shí)間更早被作用,使得它至少暫時(shí)輸入輸出一致。它以后是否要被安排及被重新作用取決于它變?yōu)榍熬Y一致后是否仍是輸入輸出一致。
IV.未安排的人為活動(dòng)
如上所述,本發(fā)明的主要?jiǎng)訖C(jī)是支持其中參與者(一般為人)有時(shí)需要執(zhí)行未安排的活動(dòng)的業(yè)務(wù)過程。有利地,本發(fā)明以不同方式支持未安排的活動(dòng)。例如,本發(fā)明識(shí)別允許、調(diào)度和預(yù)期規(guī)則,這些規(guī)則可用于區(qū)分安排和未安排的活動(dòng)。此外,本發(fā)明提供用于接收并響應(yīng)外部事件的機(jī)制。這些機(jī)制區(qū)分并支持以下類型的人為活動(dòng),其中“約束”給出該類活動(dòng)的規(guī)則的特性。
V.其它工作流管理功能
本發(fā)明適用于作為對(duì)大多數(shù)工作流管理系統(tǒng)的增強(qiáng)。例如,此處所述的過程定義語言和數(shù)據(jù)觸發(fā)的工作流引擎最好是與常規(guī)工作流管理系統(tǒng)交互操作。觸發(fā)數(shù)據(jù)過程中的每個(gè)活動(dòng)可執(zhí)行以常規(guī)語言編寫的子過程。反過來,常規(guī)過程應(yīng)能調(diào)用數(shù)據(jù)觸發(fā)的子過程。借助于數(shù)據(jù)觸發(fā)的工作流引擎計(jì)算的其它屬性的擴(kuò)展,常規(guī)系統(tǒng)提供的任何工作列表服務(wù)應(yīng)可適用于數(shù)據(jù)觸發(fā)的工作流管理。雖然關(guān)于WfMC標(biāo)準(zhǔn)活動(dòng)狀態(tài)模型描述了本發(fā)明,但它旨在以可比方式適用于其它活動(dòng)狀態(tài)模型。雖然本發(fā)明被描述為好象參與者通常為人,但它同樣適用于由智能代理作用的活動(dòng),也適用于調(diào)用的應(yīng)用。
雖然在此參考附圖描述了說明性實(shí)施例,但可以理解本發(fā)明不限于這些實(shí)施例,其中,在不脫離本發(fā)明范圍或精神的情況下,本領(lǐng)域的技術(shù)人員可以實(shí)現(xiàn)不同的其它改變和修改。例如,本領(lǐng)域的技術(shù)人員均知道在創(chuàng)建規(guī)范語言及該語言的解釋器時(shí),開發(fā)員在決定是否在解釋器或語言中結(jié)合特定組成部分或功能時(shí)有許多選擇。通過在解釋器中結(jié)合所需的組成部分或功能,使結(jié)果系統(tǒng)更加專業(yè)和/或有效,而在語言中結(jié)合所需的組成部分和功能使系統(tǒng)更加通用。
例如,在本發(fā)明的另一實(shí)施例中,可以在常規(guī)工作流管理系統(tǒng)的過程定義語言中實(shí)施大量數(shù)據(jù)觸發(fā)的工作流引擎功能。實(shí)際上,通過例如添加步驟,執(zhí)行數(shù)據(jù)觸發(fā)的工作流引擎更適宜執(zhí)行的測(cè)試,數(shù)據(jù)觸發(fā)的工作流管理原理可手工設(shè)計(jì)為常規(guī)工作流過程定義。相反,可以在工作流引擎內(nèi)硬編碼(hard-code)特定活動(dòng)規(guī)范(例如,允許、預(yù)期、許可、自動(dòng)路由選擇、存檔規(guī)則),而不是允許每個(gè)處理的規(guī)范具有不同的規(guī)則。因此,所有此類改變和修改均包括在后附權(quán)利要求書中定義的本發(fā)明范圍之內(nèi)。
權(quán)利要求
1.一種用于提供數(shù)據(jù)觸發(fā)的工作流管理的系統(tǒng),它包括
數(shù)據(jù)觸發(fā)的過程定義語言,用于生成過程定義,其中所述過程定義包括作業(yè)記錄規(guī)范、活動(dòng)規(guī)范和活動(dòng)網(wǎng)絡(luò)規(guī)范,所述活動(dòng)規(guī)范包括用于指定活動(dòng)被安排作用的條件的調(diào)度規(guī)則;
存儲(chǔ)裝置,用于存儲(chǔ)工作流相關(guān)數(shù)據(jù);以及
數(shù)據(jù)觸發(fā)的工作流引擎,用于從過程定義中生成過程實(shí)例并管理所述過程實(shí)例的執(zhí)行,其中所述數(shù)據(jù)觸發(fā)的工作流引擎處理活動(dòng)屬性和所述調(diào)度規(guī)則,以確定所述安排的活動(dòng)可以被作用的順序。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于所述數(shù)據(jù)觸發(fā)的工作流引擎在所述工作流相關(guān)數(shù)據(jù)被修改后重新評(píng)估所述調(diào)度規(guī)則。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范還包括允許規(guī)則,用于指定允許活動(dòng)被作用的條件。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范包括預(yù)期規(guī)則,用于指定預(yù)期活動(dòng)被作用的條件。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范包括輸入規(guī)范,用于列出活動(dòng)可以讀取的作業(yè)記錄中的數(shù)據(jù)。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于所述輸入規(guī)范還包括至少一個(gè)用于對(duì)使用輸入?yún)^(qū)的數(shù)據(jù)的方式進(jìn)行指定的屬性。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范包括輸出規(guī)范,用于列出活動(dòng)可產(chǎn)生、修改或重寫的作業(yè)記錄中的數(shù)據(jù)。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范包括完成狀態(tài)規(guī)范,用于列出活動(dòng)的至少一種類型的結(jié)果。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范包括資源規(guī)范,用于列出至少一個(gè)需要用來使活動(dòng)作用的資源。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于所述數(shù)據(jù)觸發(fā)的工作流引擎利用所述資源規(guī)范來確定安排的活動(dòng)可被作用的順序。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)網(wǎng)絡(luò)規(guī)范包括活動(dòng)排序關(guān)系,所述活動(dòng)排序關(guān)系由所述數(shù)據(jù)觸發(fā)的工作流引擎處理以確定使安排的活動(dòng)作用的優(yōu)選順序。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范還包括自動(dòng)路由選擇規(guī)范,所述自動(dòng)路由選擇規(guī)范包括用于指定要復(fù)制的數(shù)據(jù)項(xiàng)及位置的規(guī)則,所述位置與被復(fù)制的數(shù)據(jù)項(xiàng)發(fā)往的活動(dòng)有關(guān)。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于自動(dòng)路由選擇規(guī)則包括強(qiáng)制自動(dòng)路由選擇規(guī)則或優(yōu)選自動(dòng)路由選擇規(guī)則、或它們兩者。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于還包括用于安排和管理被復(fù)制數(shù)據(jù)項(xiàng)的移動(dòng)的自動(dòng)路由選擇服務(wù)器。
15.如權(quán)利要求1所述的系統(tǒng),其特征在于所述活動(dòng)規(guī)范還包括存檔規(guī)范,用于指定要存檔的數(shù)據(jù)和存檔位置。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于還包括存檔服務(wù)器,用于復(fù)制數(shù)據(jù)項(xiàng)和發(fā)送被復(fù)制數(shù)據(jù)項(xiàng)到指定存檔位置。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于所述數(shù)據(jù)觸發(fā)的工作流引擎延遲完成與活動(dòng)有關(guān)的事務(wù)處理,直至從所述存檔服務(wù)器接收到復(fù)制過程完成的通知為止。
18.如權(quán)利要求1所述的系統(tǒng),其特征在于所述過程定義還包括基于狀態(tài)的調(diào)度規(guī)則規(guī)范,用于支持基于狀態(tài)的調(diào)度模擬和響應(yīng)未安排的活動(dòng)對(duì)工作流相關(guān)數(shù)據(jù)的改變。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于所述基于狀態(tài)的調(diào)度規(guī)則每個(gè)都包括輸出輸出一致謂詞和前綴一致謂詞。
20.一種用于執(zhí)行數(shù)據(jù)觸發(fā)的過程的方法,它包括以下步驟
從過程定義生成過程實(shí)例;
依據(jù)活動(dòng)規(guī)范,確定安排與所述過程實(shí)例有關(guān)的哪些活動(dòng)作用;以及
依據(jù)活動(dòng)規(guī)范和所述過程實(shí)例當(dāng)前執(zhí)行狀態(tài),計(jì)算安排的活動(dòng)可被作用的順序。
21.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟顯示安排的活動(dòng)的列表,以供參與者選擇所需的安排的活動(dòng)。
22.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟在被作用的活動(dòng)的狀態(tài)改變時(shí),如有必要,重新計(jì)算安排的活動(dòng)可被作用的順序。
23.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟
依據(jù)活動(dòng)規(guī)范,確定是否允許未安排的活動(dòng)被作用;以及
如果允許,則使所述未安排的活動(dòng)作用。
24.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟
依據(jù)活動(dòng)規(guī)范,在所述過程實(shí)例執(zhí)行期間確定活動(dòng)是否預(yù)期要被作用;以及
如果預(yù)期要被作用,則準(zhǔn)備作用所述活動(dòng)。
25.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟在結(jié)束被作用的活動(dòng)時(shí),生成指定所述活動(dòng)的完成狀態(tài)的消息,在所述活動(dòng)的作業(yè)記錄中記錄所述完成狀態(tài),并且如果必要,依據(jù)所述完成狀態(tài),重新評(píng)估隨后活動(dòng)的規(guī)則。
26.如權(quán)利要求20所述的方法,其特征在于所述計(jì)算安排的活動(dòng)可被作用的順序的步驟包括利用安排的活動(dòng)的資源規(guī)范來確定所述安排的活動(dòng)的優(yōu)先級(jí)。
27.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟依據(jù)活動(dòng)規(guī)范,自動(dòng)對(duì)與活動(dòng)有關(guān)的數(shù)據(jù)項(xiàng)進(jìn)行路由選擇。
28.如權(quán)利要求20所述的方法,其特征在于還包括以下步驟依據(jù)活動(dòng)規(guī)范,自動(dòng)存檔與活動(dòng)有關(guān)的數(shù)據(jù)項(xiàng)。
29.一種可由機(jī)器讀取的存儲(chǔ)裝置,實(shí)際體現(xiàn)為所述機(jī)器可執(zhí)行的指令程序,以執(zhí)行用于執(zhí)行數(shù)據(jù)觸發(fā)的過程的方法步驟,所述方法步驟包括
從過程定義生成過程實(shí)例;
依據(jù)活動(dòng)規(guī)范,確定安排與所述過程實(shí)例有關(guān)的哪些活動(dòng)作用;以及
依據(jù)活動(dòng)規(guī)范和所述過程實(shí)例當(dāng)前執(zhí)行狀態(tài),計(jì)算安排的活動(dòng)可被作用的順序。
30.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令顯示安排的活動(dòng)的列表,以供參與者選擇所需的安排的活動(dòng)。
31.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令在被作用的活動(dòng)狀態(tài)改變時(shí),如有必要,重新計(jì)算安排的活動(dòng)可被作用的順序。
32.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令
依據(jù)活動(dòng)規(guī)范,確定是否允許未安排的活動(dòng)被作用;以及
如果允許,則使所述未安排的活動(dòng)作用。
33.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令
依據(jù)活動(dòng)規(guī)范,在所述過程實(shí)例執(zhí)行期間確定活動(dòng)是否預(yù)期要被作用;以及
如果預(yù)期要被作用,則準(zhǔn)備作用所述活動(dòng)。
34.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令在結(jié)束被作用的活動(dòng)時(shí),生成指定所述活動(dòng)的完成狀態(tài)的消息,在所述活動(dòng)的作業(yè)記錄中記錄所述完成狀態(tài),并且如有必要,依據(jù)所述完成狀態(tài),重新評(píng)估隨后活動(dòng)的規(guī)則。
35.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于所述用于執(zhí)行計(jì)算安排的活動(dòng)可被作用的順序的步驟的指令包括用于利用安排的活動(dòng)的資源規(guī)范來確定所述安排的活動(dòng)的優(yōu)先級(jí)的指令。
36.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令依據(jù)活動(dòng)規(guī)范,自動(dòng)對(duì)與活動(dòng)有關(guān)的數(shù)據(jù)項(xiàng)進(jìn)行路由選擇。
37.如權(quán)利要求29所述的程序存儲(chǔ)裝置,其特征在于還包括用于執(zhí)行以下步驟的指令依據(jù)活動(dòng)規(guī)范,自動(dòng)存檔與活動(dòng)有關(guān)的數(shù)據(jù)項(xiàng)。
全文摘要
一種提供數(shù)據(jù)觸發(fā)的工作流管理的系統(tǒng)和方法。一方面,采用數(shù)據(jù)觸發(fā)的過程定義語言,無論以前作用了哪些活動(dòng),只要符合指定數(shù)據(jù)條件組合(允許規(guī)則),便允許優(yōu)選過程定義語言中指定的每個(gè)活動(dòng)被作用。此外,當(dāng)數(shù)據(jù)條件變成真時(shí)安排活動(dòng)作用(調(diào)度規(guī)則)。數(shù)據(jù)觸發(fā)的工作流引擎利用過程實(shí)例當(dāng)前狀態(tài)、允許和調(diào)度規(guī)則、活動(dòng)網(wǎng)絡(luò)及安排活動(dòng)作用的其它活動(dòng)屬性?;顒?dòng)網(wǎng)絡(luò)控制數(shù)據(jù)觸發(fā)的工作流引擎將向參與者建議的作用順序引擎依據(jù)其信息,計(jì)算建議作用活動(dòng)的順序的活動(dòng)屬性。參與者可依據(jù)其它信息來選擇不同順序,甚至可作用未安排的活動(dòng)。數(shù)據(jù)觸發(fā)的引擎不假定遵循建議的順序,只是通過修改建議的作用順序來響應(yīng)每個(gè)活動(dòng)作用事件。
文檔編號(hào)G06Q10/00GK1399218SQ02126888
公開日2003年2月26日 申請(qǐng)日期2002年7月19日 優(yōu)先權(quán)日2001年7月19日
發(fā)明者R·施萬克 申請(qǐng)人:西門子共同研究公司