欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

協(xié)作應(yīng)用程序中的工作流關(guān)聯(lián)的制作方法

文檔序號:6633887閱讀:169來源:國知局
專利名稱:協(xié)作應(yīng)用程序中的工作流關(guān)聯(lián)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)軟件,尤其涉及工作流的重復(fù)使用。
背景技術(shù)
管理項目任務(wù)的執(zhí)行的需求自從人類協(xié)同勞動起就存在了。圖1中示出簡單但卻是示例性的任務(wù)管理過程。由框100到132所表示的動作可認(rèn)為是準(zhǔn)備步驟,由框136到144所表示的動作可認(rèn)為是進(jìn)行中的項目管理的步驟。首先為項目定義一個或一組目標(biāo)100。然后,設(shè)定達(dá)成目標(biāo)的完成日期104。接下來,開發(fā)一列在完成日期前必需執(zhí)行以達(dá)成目標(biāo)的任務(wù)108。還要開發(fā)一列能夠執(zhí)行這些任務(wù)的參與者112。較佳的是,開發(fā)在給定可用參與者的假設(shè)下每個任務(wù)將花費(fèi)的時間的估計116。較佳的是還開發(fā)任務(wù)間的依賴關(guān)系,即,在另一任務(wù)可開始前哪個或那些任務(wù)必需被完成120。還可記錄各參與者可用于執(zhí)行任務(wù)的時間段124。使用來自之前各步驟的信息,為該項目開發(fā)任務(wù)進(jìn)度表128。為了確保任務(wù)正確地且準(zhǔn)時地完成,在任務(wù)進(jìn)度表內(nèi)設(shè)立里程碑,即檢查點132。在框136,對于該項目本身的工作開始,各任務(wù)被執(zhí)行并跟蹤。當(dāng)為每個里程碑設(shè)置的時間到來,評定有關(guān)任務(wù)和整個項目的狀態(tài)140。當(dāng)完成所有任務(wù)并達(dá)到所有里程碑,即達(dá)成該項目的目標(biāo)114。
圖1中所示并在上文描述的線性任務(wù)管理過程忽略了復(fù)雜因素,例如被重新安排、合并或移除的過程步驟,或被插入的新步驟,某些受其它任務(wù)牽制的參與者,當(dāng)項目上的工作進(jìn)行時改變的項目要求和目標(biāo),以及必需調(diào)整的過程。任務(wù)的計劃、管理和跟蹤是由手動地創(chuàng)建和更新列表、計劃表、圖表、及其它信息的視覺表示來實行的,使得任務(wù)管理甚至更加混亂,直到計算設(shè)備及計算機(jī)軟件對各組織廣泛可用。此類管理工具常為手寫或打字的,且不容易改變。聯(lián)系負(fù)責(zé)執(zhí)行任務(wù)的參與者常表現(xiàn)為不可靠且難以跟蹤口頭通信或?qū)憘渫浀臅r間消耗,直到基于計算機(jī)的通信,即電子郵件,成為可用。
任務(wù)管理歷史中下一個發(fā)展截斷是由計算設(shè)備和計算機(jī)軟件實現(xiàn)的。通過計算機(jī)軟件工具的強(qiáng)力應(yīng)用加速并簡化了許多計劃、列清單、作圖、作表,以及通信雜務(wù)。然而,仍然在各雜務(wù)或參與者間缺乏協(xié)調(diào)的情況下執(zhí)行這些雜務(wù)。大多數(shù)協(xié)調(diào)這些雜務(wù)的嘗試涉及需要經(jīng)訓(xùn)練計算機(jī)程序員的時間、努力、及成本的非平凡的計算機(jī)編程。使用計算機(jī)軟件工具來自動化職務(wù)過程的至少某些部分使得思考貫穿職務(wù)過程的工作流較為容易。因而,計算機(jī)軟件工具的開發(fā)從集中在給定職務(wù)過程,轉(zhuǎn)移到集中在貫穿職務(wù)過程的“工作流”(workflow)。
注意工作流不是職務(wù)過程。工作流是工作如何貫穿職務(wù)過程的抽象。例如,給定用于批準(zhǔn)文檔的職務(wù)過程,可開發(fā)工作流以跟蹤特定文檔貫穿批準(zhǔn)過程,其中批準(zhǔn)過程中的每個參與者收到并批準(zhǔn)文檔?!肮ぷ髁鳌钡倪@個抽象概念已被建模到計算機(jī)程序中,且用于支持貫穿職務(wù)過程的工作流的計算機(jī)軟件流已作為“工作流”而為人所知。在下文中,術(shù)語“工作流”指這樣一種軟件模型,即,支持工作貫穿職務(wù)過程的軟件程序。
工作流允許定義及跟蹤個人和/或部門間的工作流程。盡管工作流使許多任務(wù)管理雜務(wù)能夠自動化,工作流壓倒性的價值在于工作流所提供的在任務(wù)管理中固有的許多雜務(wù)間的協(xié)調(diào)。實踐上,工作流幫助使職務(wù)任務(wù)自動化,并在正確的時間將正確的信息電子化地發(fā)送給正確的人。自動地向參與者通報未決的工作。經(jīng)理能夠通過該系統(tǒng)迅速地發(fā)送批準(zhǔn)。工作流還可提供項目中工作流程的圖形表示,包括決策與動作間的依賴關(guān)系和次序。
毫無疑問,工作流顯著地改善了任務(wù)管理;然而開發(fā)工作流需要經(jīng)高度訓(xùn)練的計算機(jī)程序員的昂貴勞動,并且工作流的部署需要很多勞動和成本。即使工作流常常彼此類似,當(dāng)前技術(shù)的工作流開發(fā)和部署工具使得很難或不可能取為一個項目開發(fā)的工作流并將其應(yīng)用到另一項目。所需要的是通過對一個以上項目重復(fù)使用一個工作流,來將開發(fā)一個工作流的勞動和成本分?jǐn)偟皆S多工作流的方法。本發(fā)明是針對通過提供一種將為一個項目開發(fā)的工作流的結(jié)構(gòu)與元數(shù)據(jù)與其它項目相關(guān)聯(lián)的方法與設(shè)備,來重復(fù)使用工作流。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的各方面,提供了一種包括計算機(jī)可讀介質(zhì)的方法和設(shè)備,用于使用工作流模板來創(chuàng)建工作流。工作流模板的使用允許該方法和設(shè)備將為一個項目開發(fā)的工作流的結(jié)構(gòu)與元數(shù)據(jù)與其它項目相關(guān)聯(lián)。通過向參數(shù)賦值、插入新參數(shù)、釋放現(xiàn)有參數(shù)、啟用現(xiàn)有特征、釋放現(xiàn)有特征,及/或插入計算機(jī)實現(xiàn)表單,將工作流與進(jìn)度表相關(guān)聯(lián)。通過顯示計算機(jī)實現(xiàn)表單的圖形用戶界面來將工作流與進(jìn)度表相關(guān)聯(lián)。
根據(jù)本發(fā)明的一個方面,使用工作流模板來開發(fā)工作流。較佳的是模板允許插入和/或移除預(yù)編程的工作流組件,賦值給工作流組件中的參數(shù),插入新參數(shù)到工作流組件中、以及釋放在工作流組件中已有的參數(shù)。較佳的是通過向參數(shù)賦值、插入新參數(shù)、及/或釋放現(xiàn)有參數(shù),以及將工作流與有關(guān)數(shù)據(jù)儲存在持久的存儲內(nèi),將開發(fā)好的工作流被包裝以供安裝。較佳的是,可以安裝、部署、及/或啟用工作流。工作流可被實例化和/或終止。
根據(jù)本發(fā)明的另一個方面,被實例化并達(dá)到默許狀態(tài)的工作流可被釋放,描述該工作流內(nèi)部狀態(tài)的參數(shù)值可被持久地存儲任一長度的時間,并使用所述被持久存儲的參數(shù)值來重新存儲和重新啟用。
根據(jù)本發(fā)明的其它方面,通過開發(fā)工作流模板及使用工作流模板和/或預(yù)編程工作流組件,來重復(fù)使用現(xiàn)有工作流的結(jié)構(gòu)和元數(shù)據(jù)。工作流被建模為多個人人和/或人機(jī)交互點。交互點可以任意順序發(fā)生。工作流可由多個任務(wù)組成。一個任務(wù)可由單個用戶有輸入數(shù)據(jù)或無輸入數(shù)據(jù)地完成。多個任務(wù)可由單個經(jīng)理有輸入數(shù)據(jù)或無輸入數(shù)據(jù)地完成。任務(wù)可被分配一個或多個用戶,委托給一個或多個用戶,及/或轉(zhuǎn)交給一個或多個用戶。工作流中的任務(wù)可用由第三方開發(fā)的計算機(jī)實現(xiàn)表單來定義。開發(fā)工作流、包裝工作流、安裝工作流、部署工作流、啟用工作流、將工作流與進(jìn)度表相關(guān)聯(lián)、實例化工作流、以及終止工作流是通過顯示計算機(jī)實現(xiàn)表單的圖形用戶界面來控制的。
如同從上文的描述已可容易地理解,本發(fā)明提供一種通過將為一個項目開發(fā)的工作流的結(jié)構(gòu)和元數(shù)據(jù)與其它項目相關(guān)聯(lián),重復(fù)使用現(xiàn)有工作流的結(jié)構(gòu)和元數(shù)據(jù)的方法和設(shè)備。


當(dāng)連同附圖參考以下詳細(xì)描述,本發(fā)明的前述各方面及許多伴隨的優(yōu)勢將更容易理解,并被更好地理解,附圖中圖1所示是示例性線性任務(wù)管理過程的流程圖;圖2所示是支持本發(fā)明示例性實施例的SharePoint主要組件的框圖;圖3所示是在工作流生命周期中各個階段的流程圖;圖4A所示是開發(fā)示例性工作流的流程圖;圖4B是用于設(shè)計工作流的示例性圖形用戶界面;圖4C是用于將工作流模板與文檔庫相關(guān)聯(lián)的示例性圖形用戶界面;圖4D是用于自定義工作流的示例性圖形用戶界面;圖5A所示是如何包裝示例性工作流的流程圖;圖5B是示例性工作流包的頂層組件的框圖;圖6所示是如何安裝示例性工作流包的流程圖;圖7A所示是如何部署示例性工作流的流程圖;圖7B是用于創(chuàng)建新工作流并將該工作流與文檔庫相關(guān)聯(lián)的示例性圖形用戶界面;圖7C是用于察看和選擇與文檔庫相關(guān)聯(lián)的工作流的示例性圖形用戶界面;圖7D是用于在工作流中設(shè)置任務(wù)的示例性圖形用戶界面;圖7E是用于設(shè)置與工作流相關(guān)聯(lián)的文檔庫的參數(shù)值的示例性圖形用戶界面;圖8所示是如何啟用示例性工作流的流程圖;圖9A所示是如何將示例性工作流與內(nèi)容類型向關(guān)聯(lián)的流程圖;圖9B所示是如何將示例性工作流與文檔列表或庫相關(guān)聯(lián)的流程圖;圖10A所示是如何實例化示例性工作流的流程圖;圖10B是顯示工作流中延誤任務(wù)的示例性圖形用戶界面;圖10C是顯示工作流中活動議題的示例性圖形用戶界面;圖10D是提供對多個工作流的多個報告的訪問的示例性圖形用戶界面;
圖11A所示是如何終止示例性工作流的流程圖;圖11B是啟用工作流的終止的示例性圖形用戶界面。
具體實施例方式
本發(fā)明的各實施例提供了一種包括計算機(jī)可讀介質(zhì)的計算機(jī)實現(xiàn)方法和設(shè)備(工具),用于將為一個項目開發(fā)的工作流的結(jié)構(gòu)和元數(shù)據(jù)與其它項目相關(guān)聯(lián),并用于開發(fā)和使用工作流及工作流模板??芍苯?、或通過使用工作流模板來創(chuàng)建工作流。第一部分描述針對于定義工作流以及揭示如何直接創(chuàng)建它們。工作流模板及使用工作流模板來創(chuàng)建工作流將于稍后描述。
工作流包括關(guān)于職務(wù)過程的信息,諸如(a)職務(wù)過程的程序上的步驟;(b)在職務(wù)過程的每個步驟所牽涉到的人;(c)在職務(wù)過程的每個步驟所需的輸入信息和輸出信息;以及(d)在職務(wù)過程的每個步驟所需的工具。如本領(lǐng)域技術(shù)人員將容易地理解的,除了前述示例性的信息類型外,工作流可包括其它類型的信息。
在本發(fā)明的示例性實施例中,工作流所基于的模型接近地模仿人類工作流,即,在工作流生命周期中通常與人類交互點相關(guān)聯(lián)的時間和項。此類工作流建模使得難以在人類/工作流交互的過程中預(yù)測事件,例如,休假、生病、忘記過程中的步驟,等等。為討論方便起見,由其在與工作流的關(guān)系中的角色來指示與工作流交互的人(a)所有者,創(chuàng)建并控制工作流的人;(b)開發(fā)者,設(shè)計和實施工作流和/或工作流組件的全部或部分的人;(c)參與者,參與由該工作流所控制的一個或多個動作的人。動作包括,但不限于,檢閱、修正、及批準(zhǔn)。顯然,各“角色”可重疊。例如,所有者也可以是開發(fā)者和/或參與者。相應(yīng)來自工作流的輸入的實體是“行動者”。行動者可以是參與者或計算設(shè)備。較佳的是,人類行動者通過使用圖形用戶界面表單(GUI表單)來與本發(fā)明的實施例交互。GUI表單可以是應(yīng)用程序中的窗口、Web頁、或類似的使人類行動者能夠輸入察看、選擇、及/或輸入信息的圖形用戶界面組件。
作為例子而非限制,可以在諸如Microsoft SharePointTMPortal Server(SharePoint)等的協(xié)作的計算機(jī)應(yīng)用程序內(nèi)支持本發(fā)明的示例性實施例,即開發(fā)和使用工作流的方法與設(shè)備。SharePoint是將來自各個聯(lián)網(wǎng)計算設(shè)備和聯(lián)網(wǎng)計算系統(tǒng)的信息集成到一個軟件實體以提供便利的門戶部署和管理的可升級門戶服務(wù)器。本領(lǐng)域技術(shù)人員將理解,門戶是諸如Web站點的,作為到諸如因特網(wǎng)等的網(wǎng)絡(luò)的網(wǎng)關(guān)的站點。Web站點門戶是設(shè)計成將用戶引領(lǐng)到他們很可能感興趣的信息(新聞、天氣、娛樂、商業(yè)站點、聊天室,諸如此類)的鏈接、內(nèi)容和服務(wù)的集合。Yahoo!、Excite、MSN.com及Netscape NetCenter是門戶的例子。由SharePoint提供的服務(wù)被總稱為Windows SharePointTM服務(wù)(WSS)。用于與WSS交互的GUI表單被稱作WSS表單。
本發(fā)明的示例性實施例作為SharePoint服務(wù)運(yùn)行。SharePoint服務(wù)提供協(xié)作與信息共享,還可提供與其它軟件應(yīng)用程序的集成。圖2所示是支持本發(fā)明示例性實施例的SharePoint主要組件及主要組件間關(guān)系的框圖。示出的主要組件包括應(yīng)用程序156、Windows SharePoint服務(wù)工作流對象模型(WSS工作流OM)158、及諸如Windows工作流服務(wù)中的工作流引擎等的工作流引擎170?!皩ο竽P汀卑瑧?yīng)用程序編程接口(API)及由API使用的數(shù)據(jù)結(jié)構(gòu),即,向?qū)懙紸PI的函數(shù)傳遞或從其返回的數(shù)據(jù)結(jié)構(gòu)。WSS工作流OM 158包含Windows SharePoint服務(wù)工作流API及由Windows SharePoint服務(wù)工作流API使用的數(shù)據(jù)結(jié)構(gòu)。應(yīng)用程序156可以是啟用工作流或未啟用工作流的。啟用工作流的應(yīng)用程序150是包含專用于工作流的特征的應(yīng)用程序。未啟用工作流的應(yīng)用程序154是可作為服務(wù)與工作流交互、但不包含專用于工作流的特征的應(yīng)用程序。
WSS工作流OM 158是接口,通過該接口將工作流狀態(tài)信息162傳遞給工作流引擎170。工作流引擎170運(yùn)行工作流,并向工作流提供進(jìn)程安排、消息通信、數(shù)據(jù)持久化、角色定義及任務(wù)跟蹤的支持。工作流可能引起產(chǎn)生指令166。工作流引擎170將工作流指令166通過WSS工作流OM 158傳遞到應(yīng)用程序。注意應(yīng)用程序156與WSS工作流OM 158交互以訪問SharePoint服務(wù)。因為工作流是SharePoint服務(wù),通過WSS工作流OM 158來訪問工作流。因而,應(yīng)用程序156能通過WSS工作流OM 158訪問工作流。還要注意工作流不直接與WSS工作流OM 158交互。工作流引擎170與WSS工作流OM 158交互,向工作流提供了到WSS工作流OM 158的接口。
工作流與工作流引擎交互,工作流引擎與WSS工作流OM 158交互。例如,參與者可在企圖改變工作流狀態(tài)的應(yīng)用程序156中執(zhí)行動作。應(yīng)用程序156將消息傳遞給WSS工作流OM 158。該消息包含標(biāo)識該工作流并指示工作流狀態(tài)改變的信息。WSS工作流OM 158將消息從應(yīng)用程序轉(zhuǎn)換為工作流狀態(tài)信息162并將工作流狀態(tài)信息162傳遞給工作流引擎170。工作流引擎170從該工作流引擎170正在運(yùn)行的工作流中選中指定的工作流,并將工作流狀態(tài)信息162傳遞給在來自應(yīng)用程序156的消息中指定的工作流。
工作流引擎170通過令工作流遍歷工作流進(jìn)度表來運(yùn)行工作流。工作流進(jìn)度表是包含任務(wù)、工作流邏輯、及各種元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。在本發(fā)明的示例性實施例中,適于在Windows工作流服務(wù)中運(yùn)行且與WSS工作流相關(guān)聯(lián)的WSS工作流進(jìn)度表是包含工作流任務(wù)和邏輯的XML結(jié)構(gòu)。此類的WSS工作流進(jìn)度表可作為XML文檔存儲在安裝于諸如Web站點的合適站點中的工作流包中。
當(dāng)遍歷工作流進(jìn)度表時,工作流常常處理文檔和列表。在SharePoint的環(huán)境中,文檔是任何一件用應(yīng)用程序創(chuàng)建的自包含工作。且若被持久化存儲,則被給予唯一的文件名,可用文件名來檢索文檔。在SharePoint的環(huán)境中,列表是明確定義的字段類型的關(guān)系模式的抽象。列表可包含一個或多個文檔。如和關(guān)系模式一樣,列表有使一個列表與另一個列表相異的特定唯一屬性??赏ㄟ^使用“簡要表”從多個列表中選中一組特殊的列表。“簡要表”是包含期望列表的屬性的過濾器。應(yīng)用于一個列表的函數(shù)也可應(yīng)用于將簡要表應(yīng)用于多個列表所得的結(jié)果。稱作文檔庫的一種更特殊的列表可能不止包含文檔,而還可按使得搜尋和過濾關(guān)于文檔的數(shù)據(jù)及包含在文檔內(nèi)的數(shù)據(jù)容易的方式來組織文檔。例如,工作流文檔要求文檔被一個或多個參與者批準(zhǔn)。在工作流生命周期期間,文檔的多個版本可被創(chuàng)建、取消、修改、等等。與此類文檔相關(guān)聯(lián)的工作流管理并跟蹤此類動作。
工作流通常以工作流定義的形式開始。工作流定義是包含Windows工作流服務(wù)工作流進(jìn)度表和完全說明工作流所需的支持代碼文件和表單的可安裝軟件包。當(dāng)工作流定義遍歷了工作流關(guān)聯(lián)和工作流參數(shù)化的過程,一個特定的工作流就被創(chuàng)建了。工作流關(guān)聯(lián)是在列表或簡要表上使工作流可用的過程。工作流參數(shù)化是收集并向工作流發(fā)送一組諸如參與者、到期日、發(fā)送順序等的參數(shù)的過程。某些參數(shù)化在當(dāng)工作流與列表或簡要表相關(guān)聯(lián)時發(fā)生。某些參數(shù)化在當(dāng)工作流被初始化時發(fā)生。工作流的設(shè)計者,即該工作流的構(gòu)造者或工作流所有者,決定要包括哪些參數(shù)以及何時請求它們的值。
工作流無需來自行動者的輸入即可從開始行進(jìn)到結(jié)束;然而,較為可能的是工作流會需要某些來自行動者的外部輸入來繼續(xù)前進(jìn)。行動者,即參與者和計算設(shè)備,可在工作流中某些離散的、明確定義的點,向在工作流引擎(即Windows工作流服務(wù))上運(yùn)行的工作流提供外部輸入。這樣的點稱作“任務(wù)”。概念上,可以認(rèn)為任務(wù)是具有開始、結(jié)束以及諸如狀態(tài)信息等相關(guān)聯(lián)的元數(shù)據(jù)的一個單元的工作。每個工作流包含一組任務(wù)列表。每個工作流將其任務(wù)存儲在任務(wù)列表中。
可將工作流與列表(其中文檔庫是一種類型的列表)或內(nèi)容類型相關(guān)聯(lián)。工作流關(guān)聯(lián)的設(shè)置作為列表的屬性被存儲。如果列表被復(fù)制,這些設(shè)置被保留。如果庫被復(fù)制,這些設(shè)置被保留。
在本發(fā)明的WSS實施例中,可用諸如Microsoft Office InfoPathTM或Microsoft Visual StudioTM等應(yīng)用程序來定義任務(wù),或者可以用自定義數(shù)據(jù)集合表單,即由獨(dú)立軟件銷售商(ISV)開發(fā)的GUI表單或WSS表單來定義任務(wù)。任務(wù)由參與者完成。例如,參與者可點擊任務(wù)的鏈接以察看該任務(wù)的表單。參與者將數(shù)據(jù)輸入到表單中,并以某種方式(例如通過選擇示意該表單的“狀態(tài)”為“完成”的復(fù)選框)示意單已經(jīng)完成。提供表單的應(yīng)用程序156將狀態(tài)信息傳遞給WSS工作流OM 158,由其將該狀態(tài)信息作為工作流狀態(tài)信息162傳遞給工作流引擎170。工作流引擎170接收此信息并回傳工作流指令166來通知工作流所有者該任務(wù)已完成。在類似的過程中,工作流所有者,及項目經(jīng)理,可通過選擇一組具有類似要求的任務(wù)并將其標(biāo)記為完成或被批準(zhǔn),來完成多個任務(wù)。
本發(fā)明的示例性實施例使用稱為“ToDo(要完成的事情)”的特定類型的WSS任務(wù)。ToDo是要由行動者完成的任務(wù)。ToDo可被完成、取消或委托。將一個ToDo與其它ToDo同步,來執(zhí)行適當(dāng)?shù)膭幼?,這些動作反過來使適當(dāng)?shù)南⒈话l(fā)送到工作流引擎170。工作流通過創(chuàng)建ToDo并將其指向一組行動者,開始請求外部輸入的過程。因為ToDo是一類WSS任務(wù),ToDo可被插入到WSS任務(wù)列表中,并可被分配給行動者。ToDo是可擴(kuò)展的,因為它可以有表示在運(yùn)行于工作流引擎內(nèi)的進(jìn)度表中的特定點,工作流所需數(shù)據(jù)的任意模式。ToDo可被委托或轉(zhuǎn)交給其它行動者。在缺少所需的輸入數(shù)據(jù)時,ToDo可被當(dāng)場完成。如果需要來自參與者的數(shù)據(jù)來完成ToDo,則通過向參與者呈現(xiàn)表單來收集數(shù)據(jù)。在數(shù)據(jù)被輸入到表單后,數(shù)據(jù)被提交給WSS工作流OM 158,由其隨即將工作流狀態(tài)信息162提交給工作流引擎170。
信息以消息形式從WSS工作流OM 158被傳遞到工作流引擎170。在示例性實施例中,消息的類型包含啟用、發(fā)送和接收。通過在WSS中“保存”事件來生成消息。例如,作為工作流引擎內(nèi)工作流狀態(tài)轉(zhuǎn)換的一部分,工作流進(jìn)度表可創(chuàng)建工作流任務(wù),并指定“保存”事件的訂閱,即指定要向哪個軟件對象通知“保存”事件。在工作流引擎內(nèi)由工作流進(jìn)度表對工作流任務(wù)的創(chuàng)建被轉(zhuǎn)化為在WSS中創(chuàng)建ToDo,并登記適當(dāng)?shù)腡oDo事件的動作。在本發(fā)明的示例性實施例中,當(dāng)參與者提交表單以完成ToDo,該ToDo通過提交引起下列動作執(zhí)行的請求,在支持?jǐn)?shù)據(jù)庫中執(zhí)行“保存”事件1.往返數(shù)據(jù)庫以取回關(guān)于使用無類型事件的ToDo的元數(shù)據(jù)。
2.執(zhí)行事件前處理器,并執(zhí)行訪問控制列表(ACL)檢查。
3.保存請求的載荷,并構(gòu)造事件隊列載荷。數(shù)據(jù)庫服務(wù)器計算“保存”操作將在數(shù)據(jù)庫中引起的變化。基于在中層完成的過濾,數(shù)據(jù)庫服務(wù)器將該組無類型事件歸納為特定的一組適當(dāng)類型化的事件。
4.再往返數(shù)據(jù)庫以執(zhí)行“保存”事務(wù)。在“保存”事務(wù)中執(zhí)行以下動作a.在數(shù)據(jù)庫中提交“保存”。
b.為該操作生成類型化的事件,并將其加入到事件隊列中。
c.工作流進(jìn)度表被鎖定。
d.工作流進(jìn)度表被串行化,并將串行化的工作流進(jìn)度表作為事務(wù)的結(jié)果返回。
5.如果成功地獲得工作流進(jìn)度表,在中等異步地發(fā)放“保存后”事件。
在4.c.項,如果鎖定工作流進(jìn)度表失敗(這可能發(fā)生,因為在某個其它機(jī)器上的某個其它過程可能已鎖定該工作流進(jìn)度表)串行化并返回該工作流進(jìn)度表以完成該事務(wù),但“保存后”事件未被發(fā)放)。基于自適應(yīng)定時方案,當(dāng)工作流進(jìn)度表能被鎖定時,“保存后”事件被發(fā)放。一完成ToDo,可使用類似于以上所描述的過程來刪除該ToDo。這樣一個ToDo刪除使WSS工作流OM刪除該ToDo以及適當(dāng)?shù)膶υ揟oDo的訂閱。
當(dāng)工作流創(chuàng)建ToDo,在該ToDo和運(yùn)行于工作流引擎170中的進(jìn)度表間建立起一個或多個鏈接,并將其與該工作流相關(guān)聯(lián)。ToDo為一個或多個由用于向該ToDo提交數(shù)據(jù)的表單所生成的事件進(jìn)行登記。當(dāng)參與者將數(shù)據(jù)輸入到表單的一個或多個字段中,就生成了一個事件。ToDo檢測到該事件,處理所提交的數(shù)據(jù),并將處理過的數(shù)據(jù)傳遞給啟用工作流或未啟用工作流的應(yīng)用程序150、154。工作流可以工作流指令166來響應(yīng)。代表性的指令是更新ToDo。當(dāng)ToDo被更新,執(zhí)行多個一致性檢查。如果所有檢查都成功,將一個異步事件加入隊列,以向初始化該ToDo的進(jìn)度表傳送。一致性檢查包括,但不限于,檢查同步性、安全、及數(shù)據(jù)有效性。為了維護(hù)數(shù)據(jù)庫的一致性,將該異步事件進(jìn)隊列是發(fā)生在更新該ToDo的同一事務(wù)中。一旦將事件加入隊列,以向工作流進(jìn)度表傳送,即通知提交該更新的參與者,該更新已被成功傳送。
出于若干理由,可以異步地向工作流傳送事件。一個理由是實施例可能只允許進(jìn)度表的一個實例,且該進(jìn)度表實例可能僅被允許在單個、任意的、中層機(jī)器上運(yùn)行。盡管可能將到達(dá)中層機(jī)器的新事件發(fā)送到另一中層機(jī)器上運(yùn)行中的進(jìn)度表的實例,此類機(jī)制對整個設(shè)計增加了不必要的復(fù)雜性。因此,在進(jìn)度表出于活動的運(yùn)行狀態(tài),并假定不存在將新事件傳送到運(yùn)行的進(jìn)度表的發(fā)送機(jī)制的情形下,必需將工作流事件進(jìn)隊列以供稍后消費(fèi)。一旦在隊列中有等待由其特制工作流進(jìn)度表消費(fèi)的未決事件,必需設(shè)計一種機(jī)制來使這些事件出隊列。因為同步地點名來察看進(jìn)度表是否能夠消費(fèi)事件是不夠的,因此異步地處理出隊列過程。依賴于異步出隊列機(jī)制以進(jìn)行事件傳送也意味著單個代碼路徑既可用于標(biāo)稱代碼執(zhí)行路徑,又可用于異常代碼路徑,即事件傳送和消費(fèi)未能完成,且必需在稍后重試。注意,如果期望的話,事件隊列可以是數(shù)據(jù)庫中的表,且不在存儲器中維護(hù)。這為設(shè)計增加了健壯性,預(yù)防了災(zāi)難性的系統(tǒng)故障。
較佳的是,一旦工作流被引導(dǎo)到運(yùn)行狀態(tài)中,就由擁有事件的工作流直接將事件進(jìn)隊列。一旦運(yùn)行了,工作流通過按FIFO順序從事件隊列中取事件,來消費(fèi)指派給工作流的事件。在指派給工作流的事件棧上的事件最終使工作流遍歷進(jìn)度表,使得進(jìn)度表最終完成。
在本文中描述的示例性實施例中,WSS容納工作流引擎,即Windows工作流服務(wù),并為工作流的狀態(tài)提供持久的存儲。在工作流運(yùn)行以完成的時間的過程中,存在一些點,在這些點上工作流的狀態(tài)可被持久地存儲。可以在由工作流開發(fā)者在進(jìn)度表中顯式地定義的點,或者在默認(rèn)點捕捉并持久地存儲工作流的狀態(tài)。默認(rèn)點是工作流進(jìn)入默認(rèn)狀態(tài)的點,即無有用工作或交互發(fā)生的一段時間。本質(zhì)上,工作流為某事發(fā)生等待很長且不確定量的時間。當(dāng)檢測到此類條件,工作流設(shè)置事務(wù)點。在事務(wù)點,工作流收集描述該工作流內(nèi)部狀態(tài)的數(shù)據(jù),并將內(nèi)部狀態(tài)數(shù)據(jù)隨對應(yīng)的進(jìn)度表持久地存儲到數(shù)據(jù)庫中。隨此事務(wù),其它模式管理也可發(fā)生。進(jìn)度表的工作流狀態(tài)以二進(jìn)制或XML的串行化形式存儲。在事務(wù)點,可使工作流進(jìn)入“冬眠”狀態(tài)。工作流冬眠是工作流進(jìn)度表不消耗除在數(shù)據(jù)庫中持久化的靜態(tài)存儲以外的計算資源的狀態(tài)。例如,如果所有工作流線程在ToDo任務(wù)完成上被阻塞,且沒有未決時間要傳送給工作流,則釋放該工作流的互斥鎖,并允許工作流進(jìn)入冬眠。較佳的是,活動的過程不斷地監(jiān)視時間隊列,以尋找需要讓擁有它們的工作流喚醒的事件。一旦確定了此類工作流,即指派合適的中層機(jī)器為該工作流的主機(jī)。關(guān)于工作流的二進(jìn)制代碼和狀態(tài)信息從持久化存儲加載到主機(jī)機(jī)器上。工作流給引導(dǎo)到運(yùn)行狀態(tài)。
前述的對工作流的描述支持前述關(guān)于項目經(jīng)理,即工作流所有者,如何使用運(yùn)行于諸如SharePoint等協(xié)作應(yīng)用程序中的本發(fā)明的實施例來創(chuàng)建工作流以管理項目的解釋。首先,工作流開發(fā)者開發(fā)工作流的定義。開發(fā)者將工作流定義包裝,并將工作流定義安裝到服務(wù)器上以使工作流所有者能訪問工作流定義。然后,所有者部署工作流定義,即復(fù)制工作流定義以用于特定項目。所有者啟用,即激活,部署的工作流定義,將部署的工作流定義與關(guān)于項目的文檔組相關(guān)聯(lián),并且將部署的工作流定義實例化,即為項目創(chuàng)建工作流。最后,所有者為項目開始該工作流。其后并直到工作流被終止,參與者通過使用GUI表單與工作流交互來為該項目完成任務(wù),并且所有者使用GUI表單來檢查過程等。前述的過程被稱作“工作流生命周期”,且由圖3中的流程圖示出,并在以下詳細(xì)描述。
如圖3中所示,工作流的生命周期是由8個階段組成。接下來給出每個階段的簡短定義,并在下文描述每個階段的細(xì)節(jié)。第一階段是開發(fā)階段200。在開發(fā)階段定義工作流并創(chuàng)建組成該工作流的部件或元素。第二階段是包裝階段204。在包裝階段期間,使用在開發(fā)階段創(chuàng)建的部分或元素建立工作流本身。通常在開發(fā)階段200完成之后建立工作流;然而,某些例如Microsoft FrontPage等的計算機(jī)應(yīng)用程序允許在開發(fā)階段200期間編輯工作流。第三階段是安裝階段208。在安裝階段期間工作流包被加載到服務(wù)器上。第四階段是部署階段212。在部署階段期間將工作流的定義安裝到服務(wù)器上,并將工作流的參與者與工作流相關(guān)聯(lián)。第五階段是啟用階段216。在啟用階段期間工作流所有者開啟工作流內(nèi)的特征使得其它人(參與者)能看到工作流。第六階段是關(guān)聯(lián)階段220。在關(guān)聯(lián)階段期間,所有者將工作流與文檔庫和/或列表相關(guān)聯(lián)。第七階段是實例化階段224。在實例化階段期間,設(shè)置工作流參數(shù)值并啟動工作流。第八和最終階段是終止階段228。當(dāng)工作流中所有任務(wù)都完成或工作流被取消時,終止階段發(fā)生。
用工作流的示例來幫助理解每個階段的具體解釋。該示例性工作流由一組工作于涉及視頻編輯工具的開發(fā)的參與者使用。
在開發(fā)階段200,由工作流開發(fā)者或工作流所有者開發(fā)和/或聚集組成工作流或工作流模板的部件。因為工作流開發(fā)者在開發(fā)階段擔(dān)任首要角色,在開發(fā)階段200僅提及工作流開發(fā)者。所開發(fā)和/或聚集的部件包括,但不限于(a)工作流進(jìn)度表;(b)由工作流使用或與其有關(guān)的數(shù)據(jù)的視圖;(c)支持工作流的計算機(jī)實現(xiàn)表單;以及(d)關(guān)于工作流的元數(shù)據(jù)。可使用例如Microsoft Visual Studio或Microsoft FrontPage來創(chuàng)建所開發(fā)和/或聚集的部件。在開發(fā)階段200,對于工作流定義中的每個部件,可在該部件與SharePoint及/或在客戶計算設(shè)備上運(yùn)行的例如Microsoft Office等的應(yīng)用程序之間建立交互。
盡管可如上文所描述的來直接創(chuàng)建所開發(fā)和/或聚集的部件,使用工作流模板來創(chuàng)建工作流是更有利的。通過復(fù)制工作流模板并修改工作流模板副本以將該工作流模板副本改變成期望的新工作流,即從工作流模板創(chuàng)建了工作流。工作流模板允許將為一個項目所開發(fā)的工作流的結(jié)構(gòu)和元數(shù)據(jù)與其它項目相關(guān)聯(lián)。注意工作流模板不是GUI表單,而是一組隨后用GUI表單來修改的工作流組件。
圖4A所示是直接或使用工作流模板來開發(fā)和聚集工作流的部件或元素的代表性順序的流程圖。如果直接開發(fā)工作流,則使用由部件或元素的類型所決定的默認(rèn)值來創(chuàng)建每個部件或元素。如果使用工作流模板來開發(fā)工作流,很可能大多數(shù)部件或元素是可用的,且只需被修改以滿足新工作流的要求。參考圖4A,定義了工作流的頂層進(jìn)度表240。接下來,對定義工作流的數(shù)據(jù)和元素?fù)?jù)的視圖進(jìn)行定義244。向開發(fā)者呈現(xiàn)被設(shè)計以呈現(xiàn)并收集關(guān)于工作流進(jìn)度表、視圖及元數(shù)據(jù)的信息的表單模板,以用于設(shè)計支持進(jìn)度表、視圖和元數(shù)據(jù)的表單248。接下來,按需編寫自定義計算機(jī)代碼252。最后,定義如何及何時跟蹤工作流的任務(wù)256。
在開發(fā)階段200期間,提供表單以使開發(fā)者能完成前述步驟。圖4B是用于設(shè)計工作流的示例性GUI表單239。提供GUI表單內(nèi)的字段241以供輸入工作流中步驟的名稱。在表單的右邊顯示了工作流的示例性步驟243。該示例性步驟是“Sendfor Approval(發(fā)送以供批準(zhǔn))”和“Select Vendor(選擇銷售商)”?!癝end forApproval”步驟有兩個子標(biāo)準(zhǔn),即“On Manager Approve(經(jīng)理批準(zhǔn))”和“OnControlling Approval(監(jiān)督者批準(zhǔn))”在圖4B中,著重是表示被選中進(jìn)行編輯的步驟是“Send for Approval”。點擊“Send for Approval”步驟致使步驟名(未示出)在字段241中示出?!癝end for Approval”步驟在下拉菜單的顯示字段245中被指定為“Regular Step(常規(guī)步驟)”。在工作流步驟內(nèi),當(dāng)滿足條件時所發(fā)生的條件和動作是可設(shè)置的。
在圖4B中所示的示例性工作流“Send for Approval”步驟中,示出了兩個條件,每個條件都具有相關(guān)聯(lián)的動作。第一個條件是“when Amount is less thanor equal to $1000(當(dāng)量小于或等于$1000)”,并且當(dāng)滿足第一個條件時發(fā)生的動作是“assign Current Document to Manager for Approval Then run substepOn Manager Approve(將當(dāng)前文檔給予經(jīng)理以供批準(zhǔn),然后運(yùn)行子步驟經(jīng)理批準(zhǔn))”。第二個條件是“else when Amount is greater than $1000(否則當(dāng)量大于$1000)”,并且當(dāng)滿足第二個條件時發(fā)生的動作是“assign Current Document to Controllingfor Approval then run substepOn Controlling Approve(將當(dāng)前文檔給予監(jiān)督者以供批準(zhǔn),然后運(yùn)行子步驟監(jiān)督者批準(zhǔn)”。注意對應(yīng)于兩個子標(biāo)準(zhǔn)“On ManagerApprove”和“On Controlling Approve”的兩個“動作”在圖4B的右邊示出,并在上文描述。
注意圖4B中的條件和動作中的某些項被加了下劃線。在本文所描述的本發(fā)明的示例性實施例中,帶下劃線的項可被改變??梢栽诶缡怯糜趧?chuàng)建工作流的工作流模板的一部分的GUI表單中提供帶下劃線的條件和動作。在GUI表單239的底部,提供了按鈕以使開發(fā)者能(a)檢查工作流,“Check Workflow”;(b)取消對工作流的編輯,“Cancel”;(c)回到前一個步驟,“Back”;(d)前進(jìn)至下一個步驟,“Next”;以及(e)結(jié)束對工作流的編輯,“Finish”。
可通過選擇“Add Conditional Branch(添加條件分支)”249來創(chuàng)建額外的條件分支。選擇“Add Conditional Branch”249致使新的條件和動作框247被岔道現(xiàn)有的條件分支之下??墒褂孟吕藛蝸磉x擇條件和動作框內(nèi)每個組件的類型。例如,在條件和動作框247的左邊,從下拉菜單選中“Set Condition(選擇條件)”和“Actions(動作)”。在條件和動作框247的右邊,從下拉菜單選中條件“whenAmount is less than or equal to $1000”和條件“else when Amount is greaterthan $1000”。
在開發(fā)階段200期間支持的另一個動作是將工作流與文檔庫相關(guān)聯(lián)。圖4C示出用于將工作流與文檔庫相關(guān)聯(lián)的示例性GUI表單251。該GUI表單251包括三個部分,它們的標(biāo)題反映了在將工作流與文檔庫相關(guān)聯(lián)中所涉及的三個動作“Workflow Definition(工作流定義)”,“Name and Status Menu(名稱和狀態(tài)菜單)”,和“Initial Conditions(初始條件)”?!癢orkflow Definition”部分向工作流開發(fā)者呈現(xiàn)一列工作流模板。示出了示例性工作流庫關(guān)聯(lián)模板“Document Approval(文檔批準(zhǔn))”、“Document Review(文檔審閱)”、“DocumentCirculation(文檔流通)”、“Manager Approval(經(jīng)理批準(zhǔn))”、“Team Review(團(tuán)隊審閱)”、“Private Document Review(私人文檔審閱)”、“ResourceProcurement(資源獲得)”。工作流開發(fā)者可從該列工作流庫關(guān)聯(lián)模板中選擇一個工作流庫關(guān)聯(lián)模板。替換地,如果列表未包括合適的模板,工作流開發(fā)者可選擇“Create a workflow...(創(chuàng)建一個工作流)”,這允許工作流開發(fā)者創(chuàng)建新的工作流庫關(guān)聯(lián)模板。“Name and Status Menu”部分允許工作流開發(fā)者為工作流庫關(guān)聯(lián)創(chuàng)建唯一名稱。通常名稱將會基于之前選中的工作流庫關(guān)聯(lián)模板?!癗ame andStatus menu”部分還包括一個單選按鈕,該按鈕允許開發(fā)者向狀態(tài)菜單為與文檔庫相關(guān)聯(lián)的工作流添加菜單項?!癐nitial Conditions”部分允許開發(fā)者為新近創(chuàng)建的工作流庫關(guān)聯(lián)選擇一個或多個初始條件??赡艿某跏紬l件是“Allow thisworkflow to be manually started from an item or folder.(允許該工作流從項或文件夾中手動啟動)”;“Automatically start this workflow when a newitem or folder is created.(當(dāng)創(chuàng)建新項或文件夾時,自動啟動該工作流)”;以及“Automatically start this workflow whenever an item or folder is changed.(只要項或文件夾改變,就自動啟動該工作流)”。
在本文所描述的本發(fā)明的示例性實施例中,在于開發(fā)階段200期間創(chuàng)建工作流之后,可以自定義該工作流。圖4D中示出用于自定義工作流的GUI表單253的例子。在圖4D的左邊,所示的自定義GUI表單253以一系列步驟的形式,向工作流開發(fā)者呈現(xiàn)4個問題(1)Would you like to route approval or gather feedback?(你希望發(fā)送批準(zhǔn)還是收集反饋?)(2)Who will participate in the workflow?(誰會參與該工作流?)(3)How would you like the workflow to progress?(你希望工作流如何進(jìn)展?)(4)How should the workflow end?(該工作流應(yīng)如何結(jié)束?)選擇這些“問題”之一致使有關(guān)面板出現(xiàn)在圖4D中的GUI表單的右邊。在圖4D中所示的例子中,工作流開發(fā)者選擇了第一個步驟——Would you like toroute approval or gather feedback?此步驟打開了具有兩個選項的面板“Routea document for approval(發(fā)送文檔以供批準(zhǔn))”和“Route a document for feedbackand comments(發(fā)送文檔以獲得反饋和評論)”——每個具有兩個子選項?!癛outea document for approval”選項的子選項是“Allow resubmit(允許重新提交)”和“Restrict editing(限制編輯)”?!癛estrict editing”具有題為“NoChanges(read only).(沒有改變(只讀))”的禁止改變的控制復(fù)選框?!癛outea document for feedback and comments”的子選項是“Make a new copy of thisdocument for each participant(為每一參與者作出該文檔的新副本)”和“Allowparticipants to see each others copies.(允許參與者看見彼此的副本)”。
在圖4D中所示的例子中,工作流開發(fā)者選擇了“Route a document forapproval.”。工作流開發(fā)者還選擇允許參與者重復(fù)遞交更新的文檔(Allowresubmit)以及限制對原始文檔進(jìn)行編輯(Restrict editing)。
如圖3中所示并在上文所描述,在開發(fā)階段之后,在包裝階段204工作流被包裝。在圖5A中示出示例性包裝階段的各個步驟。包裝階段204的各個步驟可由工作流開發(fā)者或工作流所有者執(zhí)行;然而,為描述容易起見,接下來的討論假設(shè)各個步驟由工作流所有者執(zhí)行。工作流所有者首先通過確定工作流的組件來定義包270。
圖5B是示例性工作流包320頂層組件的框圖。所示的示例性工作流包320包含3個頂層組件產(chǎn)品團(tuán)隊審閱324、市場審閱328、以及法律審閱332,應(yīng)當(dāng)理解工作流包可包含更多或更少的指定為相同或不同的頂層組件。每個示例性頂層組件與一組不同的工作流參與者相關(guān)聯(lián)。例如,市場審閱組件與包含在工作流所跟蹤的項目中的市場組參與者相關(guān)聯(lián)。每個頂層組件被示為角色、任務(wù)及里程碑的包含性列表,應(yīng)當(dāng)理解這些列表的數(shù)量和確定是示例性的,且不應(yīng)被解釋為限制。即,頂層組件可包含更多或更少的列表,并且列表可以是或可以不是角色、任務(wù)及里程碑。
回到圖5A,在定義包270之后,工作流所有者將工作流進(jìn)度表插入到包中272。然后工作流所有者把將被包含在工作流中的這些類型的任務(wù)插入到包中274。其后工作流所有者將參與者所需的用于與工作流交互的表單插入到包中276。工作流所有者接下來將工作流運(yùn)作所需的資源插入到包中278。工作流所有者隨后將關(guān)于工作流的元數(shù)據(jù)加入到包清單中280。包清單是包內(nèi)容的詳細(xì)描述。包清單包含描述包內(nèi)名稱、版本、類型及資源,以及對其它包依賴關(guān)系的元數(shù)據(jù)。清單允許包成為子描述的并能被容易地部署。最后,工作流所有者使包可用282。顯然,圖5A中所示的步驟,由其是插入步驟,可按除圖5A中所示并與上文描述的次序以外的各種次序完成。在本發(fā)明的實施例中,包可以是一個或多個Microsoft.NETTM程序集。Microsoft.NETTM程序集是可以安全方式共享的代碼庫。
在被包裝后,工作流進(jìn)入安裝階段208(圖3)。圖6所示是如何安裝工作流包的示例性流程圖。工作流所有者將工作流包放到全局程序集高速緩存(GAC)的二進(jìn)制代碼文件夾350中。例如,可將包放到“GAC/bin folder”中,且工作流包被添加到特征列表。工作流所有者隨后通過諸如SharePoint的適當(dāng)程序使工作流可用354。在圖6中所示的例子中,工作流被命名為“產(chǎn)品審閱”。
在安裝了工作流之后,工作流進(jìn)入部署階段212(圖3)。圖7A所示是在部署階段212內(nèi)發(fā)生的動作的示例性流程圖。在框400,所有者從多個已安裝的工作流表單中選擇適當(dāng)?shù)墓ぷ髁鞅韱?。適當(dāng)?shù)墓ぷ髁鞅韱伟M(jìn)度表及跟蹤在由工作流管理的項目的一個方面所涉及的任務(wù)所需的所有或大多數(shù)組件。在框404,使用適當(dāng)?shù)墓ぷ髁髂0鍋韺iT為要由該工作流管理的項目創(chuàng)建工作流。例如,名為“產(chǎn)品審閱”的工作流可被用作模板來定義名為“視頻編輯產(chǎn)品審閱”的新工作流。圖7B示出適用于創(chuàng)建此類工作流的示例性GUI表單410。示例性GUI表單410包括3個部分“Workflow Definition(工作流定義)”;“Name and Status Menu(名稱和狀態(tài)菜單)”;以及“Initiation Conditions(初始條件)”?!癢orkflowDefinition”部分允許所有者從多個已安裝的工作流中選擇工作流定義,即工作流定義可借鑒的現(xiàn)有工作流?,F(xiàn)有工作流被用作模板。例如,在圖7B中,所有者可選擇“Route for Approval(發(fā)送已供批準(zhǔn))”或“Document Circulation(文檔流通)”工作流模板。通過選擇兩個前述工作流模板之一,所有者將工作流與包含與項目(例如“Video Editing Project(視頻編輯項目)”)相關(guān)聯(lián)的各個文檔的文檔庫相關(guān)聯(lián)。工作流現(xiàn)在能夠跟蹤該項目的文檔庫中的所有文檔。在“Name andStatus Menu”部分中,所有者為工作流輸入唯一的名稱,該名稱將出現(xiàn)在文檔庫中的項列表和文件夾中。還有一個允許用戶為此工作流,向狀態(tài)菜單添加菜單項的單選按鈕。在“Initiation Conditions”部分,所有者設(shè)置如果所有必需的工作流參數(shù)值被設(shè)置將致使工作流啟動的條件??蓮囊韵聴l件中選擇至少一個,可能多于一個的開始條件“Allow this workflow to be manually started from an itemor folder(允許該工作流從項或文件夾手動啟動)”;“Automatically start thisworkflow whenever an item or folder is changed(只要項或文件夾改變就自動啟動該工作流)”。圖7A的框408示出部署階段212的最終步驟,在該步驟將參與者與工作流(在此例中為“視頻編輯產(chǎn)品審閱”工作流)相關(guān)聯(lián)。
一個文檔庫可參與一個以上的項目,因此可與一個以上工作流相關(guān)聯(lián)。圖7C是用于添加或移除與文檔庫相關(guān)聯(lián)的工作流的示例性GUI表單412。圖7C中所示的示例性GUI表單還允許察看工作流設(shè)置及改變工作流運(yùn)行的順序。具體地,圖7C的GUI表單412顯示與文檔庫相關(guān)聯(lián)的工作流的數(shù)量,并提供控制來選擇其它GUI表單以將工作流與該文檔庫相關(guān)聯(lián),將一個或多個工作流從該文檔庫解除關(guān)聯(lián),以及改變相關(guān)聯(lián)的工作流運(yùn)行的順序。
圖7D是用于設(shè)置工作流中的任務(wù)的示例性GUI表單414。該GUI表單提供工作流中的任務(wù)的5個視圖416工作流中所有任務(wù)(All Tasks);工作流中被分配給已登陸用戶的任務(wù)(My Tasks);工作流中在當(dāng)天到期的任務(wù)(Due Today);工作流中活動的任務(wù)(Active Tasks);以及工作流中按照分配的任務(wù)(By AssignedTo)。在視圖面板418中,基于選中的視圖416呈現(xiàn)了每個任務(wù)的標(biāo)題(Title)、所分配的參與者(Assigned to)、狀態(tài)(Status)、優(yōu)先級(Priority)、到期日(Due Date)、以及完成的百分率(%Complete)。提供了控制420以向一列喜愛的鏈接添加工作流、當(dāng)必需由一參與者作工作流中的某件事時張貼警報、將工作流信息導(dǎo)出到數(shù)據(jù)表、以及修改工作流上的設(shè)置與報告列。
圖7E的示例性GUI表單422用于改變與文檔庫相關(guān)聯(lián)的工作流的參數(shù)值。該GUI表單分為4個部分?!癙articipants and Routing Order(參與者和發(fā)送順序)”、“Due Date(到期日)”、“Notification Options(通知選項)”、以及“ApprovalConditions(批準(zhǔn)條件)”。在“Participants and Routing Order”部分中,可從地址簿選擇參與者,并將其添加到參與者列表,以使其與和工作流相關(guān)聯(lián)的文檔庫相關(guān)聯(lián)??蛇x擇同時向所有參與者發(fā)送文檔庫,或按照參與者在列表中出現(xiàn)的順序?qū)⑽臋n庫發(fā)送給每個參與者。在“Due Date”部分中,可輸入必需完成批準(zhǔn)的日期和時間。在“Notification Options”部分中,可選擇當(dāng)任務(wù)被分配給參與者時通知每個參與者,也可選擇當(dāng)工作流完成時通知工作流的所有者。在“ApprovalConditions”部分中,可選擇一個或多個表示批準(zhǔn)的條件“All participants haveapproved the document.(所有參與者都批準(zhǔn)該文檔)”、“One participant hasapproved the document.(一個參與者批準(zhǔn)該文檔)”、“A majority ofparticipants have approved the document.(大多數(shù)參與者批準(zhǔn)了該文檔)”、以及“The due date has passed.(已超過到期日)”。
在工作流被部署以后,工作流進(jìn)入啟用階段216(圖3)。圖8所示是在啟用階段216內(nèi)發(fā)生的動作的流程圖。在框500,所有者確定哪個工作流啟用工具被參與者所使用500??蓪τ蓞⑴c者所使用的工作流啟用工具插入菜單項或其它工具,以直接訪問工作流。在框504,所有者開啟每個工作流啟用工具中的工作流選擇控制,例如,所有者開啟每個工作流啟用工具中的“視頻編輯工具產(chǎn)品審閱”工作流選擇特征。
在工作流被啟用后,工作流進(jìn)入關(guān)聯(lián)階段220(圖3)。在關(guān)聯(lián)階段220起見發(fā)生的關(guān)聯(lián)動作將工作流與內(nèi)容類型或列表相關(guān)聯(lián)。相關(guān)聯(lián)的工作流是為了使文檔庫或列表對該文檔庫或列表的用戶可用而與文檔庫或列表相關(guān)聯(lián)的工作流。
內(nèi)容類型是可應(yīng)用于其它內(nèi)容類型或列表(其中文檔庫是一類列表)的設(shè)置的集合。例如,說明書的內(nèi)容類型可在文檔庫列表上定義用于輸入說明書作者、說明書實施者、以及說明書文檔的說明領(lǐng)域的元數(shù)據(jù)列。說明書內(nèi)容類型可包括當(dāng)創(chuàng)建此內(nèi)容類型的新文檔時使用的默認(rèn)文檔模板。當(dāng)說明書內(nèi)容類型被添加到文檔庫,其設(shè)置被復(fù)制到文檔庫,且該文檔庫的用戶能將該內(nèi)容類型的項或文檔保存到該文檔庫。注意多個內(nèi)容類型可被添加到同一個列表或文檔庫,且內(nèi)容類型也可被添加到其它內(nèi)容類型。工作流關(guān)聯(lián)是可添加到內(nèi)容類型的一類設(shè)置。例如,可將說明書批準(zhǔn)工作流關(guān)聯(lián)添加到說明書內(nèi)容類型,且該工作流關(guān)聯(lián)會被復(fù)制到添加了說明書內(nèi)容類型的列表。對說明書內(nèi)容類型上的工作流關(guān)聯(lián)的后續(xù)改變可被下推至繼承該內(nèi)容類型的文檔庫,使得站點管理員能夠在一個地方配置工作流設(shè)置,并將其廣播到許多其它地方。
圖9A所示是工作流如何與內(nèi)容類型相關(guān)聯(lián)的示例性流程圖。此類關(guān)聯(lián)的優(yōu)勢是可以有可基于內(nèi)容類型或內(nèi)容類型的屬性的任務(wù)。首先,選擇內(nèi)容類型520。然后將內(nèi)容類型與工作流相關(guān)聯(lián)524。在這個點,盡管已經(jīng)進(jìn)行關(guān)聯(lián),它還不是非常有用,因為關(guān)聯(lián)中沒有文檔。為準(zhǔn)備向關(guān)聯(lián)添加文檔,創(chuàng)建文檔庫528。隨后將內(nèi)容類型添加到文檔庫532。在框536,如果諸如一列適當(dāng)內(nèi)容類型的文檔等的項可用,則可將該項添加到文檔庫。在框536可用的另一個選項是創(chuàng)建適當(dāng)內(nèi)容類型的列表,將適當(dāng)內(nèi)容類型的文檔添加到該列表,并將該列表添加到文檔庫。在框536的第三個選項是向文檔庫添加適當(dāng)內(nèi)容類型的空列表,并向該列表添加適當(dāng)內(nèi)容類型的文檔。最后在項或文檔上啟動工作流540。
圖9B所示是工作流如何與不同種類的文檔庫(即,允許一種以上內(nèi)容類型的文檔庫)相關(guān)聯(lián)的示例性流程圖。此類關(guān)聯(lián)的優(yōu)勢是可以有基于非內(nèi)容類型屬性的共同特性的任務(wù)。首先,選擇文檔庫544。然后將工作流與整個文檔庫或庫內(nèi)的一個或多個列表相關(guān)聯(lián)548。在圖9A的框536可用的3個選項在圖9B的框552仍然可用。最后,如同在框540,如框556中所示,在項或文檔上啟動工作流。
工作流關(guān)聯(lián)還可通過使用一類專用GUI表單,工作流關(guān)聯(lián)表單,來完成。此類表單用于從列表或簡要表管理者收集工作流參數(shù)與限制。在安裝于服務(wù)器上并啟用于站點或站點集合的工作流包中定義工作流關(guān)聯(lián)表單。
在工作流被關(guān)聯(lián)后,工作流進(jìn)入實例化階段224(圖3),在此期間進(jìn)一步調(diào)整工作流以適應(yīng)該工作流要跟蹤的項目的特定要求。在工作流適應(yīng)于被該工作流跟蹤的項目之后,使該工作流對工作流的參與者可用。圖10A所示是關(guān)于題為“視頻編輯工具項目”的示例性項目,在實例化階段224內(nèi)發(fā)生的動作的示例性流程圖。在框600,對工作流模板中的類屬參數(shù)賦予專用于“視頻編輯工具項目”的值。在框604,向工作流添加專用于“視頻編輯工具項目”的自定義參數(shù),以及自定義參數(shù)的默認(rèn)值。在框608,啟動(即激活)關(guān)于“視頻編輯工具項目”的工作流。動作可以顯示地發(fā)生。例如,參與者可提交文檔請求批準(zhǔn),這可能顯示地激活關(guān)于批準(zhǔn)該文檔的工作流。動作也可自動發(fā)生。例如,在開支報告所需的文檔被添加到與該開支報告相關(guān)聯(lián)的文檔庫之后,關(guān)于批準(zhǔn)該開支報告文檔的工作流可被自動激活。在兩個例子中,都在WSS子系統(tǒng)中生成事件以調(diào)用將工作流引擎導(dǎo)向?qū)嵗桀愋偷墓ぷ髁鬟M(jìn)度表的專門事件處理器。將提示觸發(fā)工作流生成的所有者或參與者輸入連接到進(jìn)度表中所描述的變量的特定參數(shù)。用于提示所有者或參與者的表單的生成是基于在部署時從工作流定義許用的元數(shù)據(jù)。
啟動工作流激活了與該工作流相關(guān)聯(lián)并運(yùn)行于工作流引擎170(圖2)中的進(jìn)度表。如前文某種程度上所描述的,當(dāng)進(jìn)度表在工作流引擎中運(yùn)行時,進(jìn)度表中已分配給參與者的任務(wù)致使工作流指令166被發(fā)送給WSS工作流OM 158。WSS工作流OM 158將此類工作流指令166轉(zhuǎn)換為發(fā)送到應(yīng)用程序156的消息。當(dāng)應(yīng)用程序156接收到此類消息,該應(yīng)用程序在GUI表單內(nèi)呈現(xiàn)關(guān)于該任務(wù)的信息。例如,圖10B中所示的示例性GUI表單614提供了關(guān)于延誤工作流任務(wù)的消息的視圖。圖10B中所示的示例性GUI表單包括關(guān)于工作流中所有任務(wù)的消息的摘要。該摘要包括outstanding task(未完成任務(wù))的總數(shù)、overdue task(延誤任務(wù))的總數(shù)、以及任務(wù)已被延誤的average number of days(平均天數(shù))。提供了一列關(guān)于分配給每個參與者的任務(wù)的信息。列中最高的條目顯示參與者的名字、平均的延誤天數(shù)、以及任務(wù)完成百分率。列中每一個余下的條目顯示每個所分配的任務(wù)延誤的天數(shù)、任務(wù)完成百分率、任務(wù)的名稱、以及任務(wù)的到期日。
圖10C是可由工作流所有者調(diào)用以查看跨越若干星期的工作流中的活動要點(即任務(wù))摘要的示例性GUI表單618。該示例性GUI表單示出了工作流中所有活動任務(wù)的摘要620,包括活動任務(wù)的總數(shù)、每周活動任務(wù)的平均數(shù)、每人活動任務(wù)的平均數(shù)、以及每人活動任務(wù)的最大數(shù)。圖10C中所示的示例性GUI表單618還提供若干行所報告的時間段中的每個星期的信息。每行以顯示所覆蓋的時間段中的一個星期的開始日期以及該星期內(nèi)活動任務(wù)的平均數(shù)的條目開始。行中每個余下的條目顯示參與者的名字、分配給該參與者的活動任務(wù)數(shù)、該參與者所負(fù)責(zé)的第一個和最后一個期限、以及任務(wù)完成百分率。
工作流所有者可使用圖10D中所示的示例性GUI表單622來生成各種關(guān)于工作流的報告。圖10D中所示的示例性GUI表單622提供兩種報告Specific ReviewReports(特定審閱報告)和Expense Approval Reports(費(fèi)用批準(zhǔn)報告)。SpecificReview Reports包含Overdue tasks by person(按人排列的過時任務(wù))、Notcomplete high priority tasks by person(按人排列的未完成高優(yōu)先級任務(wù))、Not complete tasks by person(按人排列的未完成任務(wù))、Not complete tasksby item(按項排列的未完成任務(wù))、Overdue workflows by due date(按到期日排列的過時工作流)、Overdue workflows by initiator(按發(fā)起者排列的過時工作流)、以及Completed workflows by initiator(按發(fā)起者排列的已完成工作流)。Expense Approval Reports包含Overdue tasks by person(按人排列的過時任務(wù))、Not complete high priority tasks by person(按人排列的未完成高優(yōu)先級任務(wù))、Not complete tasks by person(按人排列的未完成任務(wù))、Notcomplete tasks by item(按項排列的未完成任務(wù))、Overdue workflows by duedate(按到期日排列的過時工作流)、Overdue workflows by initiator(按發(fā)起者排列的過時工作流)、Overdue workflows by expense amount(按費(fèi)用量排列的過時工作流)、Completed workflows by initiator(按發(fā)起者排列的已完成工作流)、以及Completed workflows by expense amount(按費(fèi)用量排列的已完成工作流)。
在圖3中所示的示例性工作流生命周期中,最后的階段是終止階段228。圖11A所示是如何終止工作流的示例性流程圖。當(dāng)完成工作流中的任務(wù),且在規(guī)律的時間間隔,檢查工作流的完成700。如果工作流已完成,從SharePoint 708刪除工作流狀態(tài)。如果工作流還未完成,但與關(guān)聯(lián)了該工作流的文檔或列表被刪除704,則從SharePoint 708刪除工作流狀態(tài)。如果未刪除該文檔或列表,該過程循環(huán)回到工作流完成測試700。
無論工作流怎樣被刪除,SharePoint等待用戶可配置的天數(shù),例如90天,以允許工作流的所有者刪除該工作流或?qū)⑵渲貑?12。如果90天后工作流未被重啟,則從SharePoint刪除該工作流任務(wù)并不再對其進(jìn)行跟蹤716。圖11B是啟用工作流終止的示例性GUI表單。該GUI表單顯示工作流的標(biāo)題以及該工作流的示例數(shù)。所有者可選擇允許創(chuàng)建工作流的新實例,可選擇不移除工作流運(yùn)行中的實例就限制新工作流實例的創(chuàng)建,或者移除工作流的所有運(yùn)行中的實例。工作流任務(wù)列表具有跟蹤有多少工作流與其相關(guān)聯(lián)的使用計數(shù)器。如果試圖刪除具有大于0的計數(shù)的工作流任務(wù)列表,則發(fā)布該工作流任務(wù)列表仍在被使用的警告。
本發(fā)明的各實施例可為特定工作流提供諸如實時狀態(tài)等關(guān)于工作流的狀態(tài)信息,并聚合關(guān)于一組工作流的信息。例如,本發(fā)明的實施例可為工作流中的項提供一批批準(zhǔn)意見、一批已簽署特定項的批準(zhǔn)者、一組當(dāng)前活動并在使用中的工作流、或者職務(wù)過程各個方面的度量。
盡管已示出并描述了本發(fā)明較佳的實施例,應(yīng)當(dāng)理解可在其中進(jìn)行各種改變而不會偏移本發(fā)明的精神和范疇。例如,在SharePoint的環(huán)境中,工作流可與包括但不限于,標(biāo)準(zhǔn)Microsoft Outlook消息表單的許多種表單相關(guān)聯(lián)或一同運(yùn)行。仍舊在SharePoint的環(huán)境中,本發(fā)明的實施例可與包含自定義字段及其它控制的自定義用戶界面一同運(yùn)行。盡管上面所描述的本發(fā)明的實施例用于與SharePoint環(huán)境中Web站點的開發(fā)與維護(hù)有關(guān)的職務(wù)過程,應(yīng)當(dāng)理解本發(fā)明可應(yīng)用于其它環(huán)境中的其它類型的職務(wù)過程。在這點上,應(yīng)當(dāng)理解可以除了連同SharePoint以外的方式來實施本發(fā)明。應(yīng)當(dāng)理解在所附的權(quán)利要求書的范疇內(nèi),可以除本文所明確描述的方式以外的其它方式來實施本發(fā)明。
權(quán)利要求
1.一種創(chuàng)建用于支持工作如何流過商務(wù)過程(即工作流)的軟件程序的方法,包括(a)響應(yīng)于用戶輸入,定義一工作流并使用先前開發(fā)的模板來設(shè)計支持所述工作流的表單;(b)將所述工作流安裝到服務(wù)器上;(c)將參與者與所述工作流相關(guān)聯(lián);(d)啟用所述工作流;以及(e)將所述工作流與文檔庫相關(guān)聯(lián)。
2.如權(quán)利要求1所述的方法,其特征在于,定義工作流并使用先前所開發(fā)的模板設(shè)計支持所述工作流的表單包括設(shè)計支持所述工作流的進(jìn)度表和元數(shù)據(jù)的表單。
3.如權(quán)利要求2所述的方法,其特征在于,定義工作流并使用先前開發(fā)的模板設(shè)計支持所述工作流的表單包括定義如何跟蹤所述工作流。
4.如權(quán)利要求1所述的方法,其特征在于,定義工作流并使用先前開發(fā)的模板設(shè)計支持所述工作流的表單包括包裝所述工作流。
5.如權(quán)利要求4所述的方法,其特征在于,包裝所述工作流包括(a)將工作流進(jìn)度表插入到包中;(b)將任務(wù)類型插入到包中;(c)將表單插入到包中;(d)將資源插入到包中;以及(e)將元數(shù)據(jù)添加到包清單中。
6.如權(quán)利要求1所述的方法,其特征在于,還包括響應(yīng)于用戶輸入,啟動所述工作流。
7.如權(quán)利要求1所述的方法,其特征在于,包括終止所述工作流。
8.如權(quán)利要求1所述的方法,其特征在于,將所述工作流與文檔庫相關(guān)聯(lián)包括創(chuàng)建文檔庫、創(chuàng)建內(nèi)容類型并將工作流關(guān)聯(lián)到所述內(nèi)容類型、將所述內(nèi)容類型添加到所述列表或文檔庫中、以及將適當(dāng)內(nèi)容類型的文檔添加到所述列表或文檔庫中。
9.一種用于管理工作流的計算機(jī)實現(xiàn)的方法,所述方法包括(a)開發(fā)一工作流;(b)包裝所述工作流;(c)將所述工作流安裝到服務(wù)器上;(d)部署所述工作流;(e)啟用所述工作流;(f)將所述工作流與進(jìn)度表相關(guān)聯(lián);(g)將所述工作流實例化;以及(h)終止所述工作流。
10.如權(quán)利要求9所述的計算機(jī)實現(xiàn)的方法,其特征在于,開發(fā)所述工作流包括(a)使用工作流模板來設(shè)計工作流表單,所述工作流表單包括參數(shù);以及(b)對所述工作流表單的參數(shù)賦值。
11.如權(quán)利要求9所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流包括要由參與者執(zhí)行的多個任務(wù)。
12.如權(quán)利要求9所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流具有結(jié)構(gòu),且其中,所述結(jié)構(gòu)由聲明性語言描述。
13.如權(quán)利要求11所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流結(jié)構(gòu)被存儲以在其它工作流創(chuàng)建中使用。
14.一種用于管理工作流的計算機(jī)實現(xiàn)的方法,所述方法包含(a)從預(yù)編程組件創(chuàng)建一工作流,所述預(yù)編程組件包括適用于創(chuàng)建表單的模板,所述模板包括參數(shù);(b)向所述工作流表單的參數(shù)賦值;(c)將所述工作流表單安裝到服務(wù)器上;以及(d)將參與者與所述工作流相關(guān)聯(lián)。
15.如權(quán)利要求14所述的計算機(jī)實現(xiàn)的方法,其特征在于,包括啟用所述工作流表單以供參與者使用。
16.如權(quán)利要求14所述的計算機(jī)實現(xiàn)的方法,其特征在于,包括將所述工作流與文檔庫相關(guān)聯(lián)。
17.如權(quán)利要求14所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流包括多個任務(wù),所述任務(wù)與所述參與者相關(guān)聯(lián)。
18.如權(quán)利要求14所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流包括進(jìn)度表,且其中,所述任務(wù)根據(jù)所述進(jìn)度表與所述參與者相關(guān)聯(lián)。
19.如權(quán)利要求18所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流創(chuàng)建所述任務(wù)的完成狀態(tài)的報告。
20.如權(quán)利要求14所述的計算機(jī)實現(xiàn)的方法,其特征在于,所述工作流具有一結(jié)構(gòu),并且其中,所述結(jié)構(gòu)由說明性語言描述。
全文摘要
揭示了一種用于開發(fā)和管理工作流的方法。該方法使得能從工作流模板和/或預(yù)編程組件來開發(fā)工作流;將工作流與進(jìn)度表相關(guān)聯(lián);將工作流建模為多個任務(wù)和多個人人或人機(jī)交互點;以及持久化地存儲工作流的內(nèi)部狀態(tài)。該方法使用計算機(jī)實現(xiàn)的表單來控制工作流的開發(fā)、包裝、安裝、部署、啟用、關(guān)聯(lián)、實例化、以及終止。
文檔編號G06Q10/00GK1838068SQ20051008851
公開日2006年9月27日 申請日期2005年7月29日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者G·E·哈堂, I·阿茲孜 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
尉氏县| 邛崃市| 宝兴县| 都兰县| 辉南县| 常德市| 霸州市| 东乌珠穆沁旗| 杂多县| 安平县| 宾川县| 卢氏县| 乡宁县| 灌阳县| 若羌县| 开封县| 嘉义市| 兴山县| 和田县| 望江县| 怀化市| 琼结县| 紫阳县| 塔城市| 东源县| 社旗县| 日喀则市| 宝鸡市| 大城县| 兴隆县| 五台县| 信阳市| 东山县| 剑川县| 丹巴县| 云安县| 广南县| 日喀则市| 昌吉市| 凤山市| 长治县|