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

工作流服務體系結構的制作方法

文檔序號:6477273閱讀:257來源:國知局
專利名稱:工作流服務體系結構的制作方法
技術領域
本發(fā)明一般涉及自動化工作流技術。
背景技術
自動化工作流技術已被奉為用于提高工作生產(chǎn)力的萬能藥。通過將計算機自動化科學引入商業(yè)過程,工作流技術有希望將軟件的威力應用到公司運作的方法中去。
自動化工作流技術可在軟件中將商業(yè)過程呈現(xiàn)為一工作流。通常工作流設計者將商業(yè)過程分成要執(zhí)行和監(jiān)視的不同部分直到達到某些完成準則。
工作流技術的一個持續(xù)問題是通常它們對于一般商業(yè)工作者而言是難以理解的。例如,構建工作流通常需要編程技術和工作流系統(tǒng)的廣泛知識。甚至復雜信息工作者也不具備所需編程技術,并且不能或不愿意為了利用工作流技術而去學習另一種信息系統(tǒng)。
此外,信息工作者趨向對工作流系統(tǒng)失去興趣是因為它沒有反映他們真正進行運作的方法。例如,通常過程中的小例外不會被工作流系統(tǒng)考慮在內,因此它常常會抑制而不是便于商業(yè)過程的完成。
自動化工作流的常規(guī)方法通常相對于工作者真正所需的都太復雜和嚴格。因而,仍然需要一種自動化工作流的改進技術。

發(fā)明內容
在此所述的技術可用于各種各樣的自動化工作流情形中。例如,工作流服務可提供可合成動作的執(zhí)行。這些動作可發(fā)送并接收一個標準的消息集,其格式可由標準界面指定。
工作流服務可包括合成服務、約束服務以及跟蹤服務。合成服務可支持先驗基礎、特設基礎、或兩者組合上的動作合成。先驗合成可基于活動模型。
約束服務可支持大范圍的限制,包括基于行動者身份的限制。約束可限制動作或目標行動者。約束可以是相關的或否定的。此外,可支持用于轉移動作的約束。
服務可通過基于SOAP協(xié)議與客戶機通信,且服務可以是客戶不可知的。用于訪問服務的用戶界面可被結合到已顯現(xiàn)在用戶桌面上的常用應用程序。例如,工作流操作可被簡便地結合到熟悉的電子郵件或字處理界面中。
可跟蹤來自動作或發(fā)往動作的消息。結果,可提供工作流處理的狀態(tài)。
提供非預期情形的彈性工作流可通過在此實現(xiàn)的各種技術實現(xiàn)。
提供各種各樣動作功能和動作協(xié)作的可合成動作可通過在此所述的技術來實現(xiàn)。
從參閱附圖進行的以下被揭示實施例的詳細描述,前述和其它特征和優(yōu)點將變得顯然。


圖1是示出支持自動化工作流的示例性系統(tǒng)的框圖。
圖2是用于處理如圖1的自動化系統(tǒng)中工作流的示例性方法的流程圖。
圖3是示出可合成動作的示例性模式的框圖。
圖4是處理可合成動作中消息的示例性方法的流程圖。
圖5是示出通過消息進行的示例性動作-到-動作通信的框圖。
圖6是用于通過動作-到-動作通信完成同步的示例性方法的流程圖。
圖7是示出任務的示例性實現(xiàn)的框圖。
圖8是用于處理任務的示例性方法的流程圖。
圖9是示出約束的示例性實現(xiàn)的框圖。
圖10是用于實現(xiàn)可合成動作的約束的示例性方法的流程圖。
圖11是示出通過基于知識庫適配器的事實收集的框圖。
圖12是用于在應用約束時使用事實的示例性方法的流程圖。
圖13是示出示例性活動模型的框圖。
圖14是用于通過可合成動作實現(xiàn)活動模型的示例性方法的流程圖。
圖15是示出通過特設動作合成而構建的示例性活動流的框圖。
圖16是用于通過可合成動作建立一特設活動流的示例性方法的流程圖。
圖17是示出基于活動模型添加到活動流的示例性特設動作的框圖。
圖18是基于活動模型將特設動作添加到活動流中的示例性方法的流程圖。
圖19是基于用戶身份示出一示例性約束的框圖。
圖20是用于基于行動者約束呈現(xiàn)動作和目標選項的示例性方法的流程圖。
圖21是示出轉移動作的示例性約束的框圖。
圖22是按照約束基于動作中行動者而呈現(xiàn)選項的示例性方法的流程圖。
圖23是示出示例性跟蹤排列的框圖。
圖24是用于跟蹤可合成動作的活動流狀態(tài)的示例性方法的流程圖。
圖25是示出基于跟蹤的工作流狀態(tài)的示例性圖形呈現(xiàn)的屏幕截圖。
圖26是用于圖示地呈現(xiàn)活動流狀態(tài)的示例性方法的流程圖。
圖27是示出電子郵件用戶界面中一普及工作流用戶界面的示例性實現(xiàn)的屏幕截圖。
圖28是示出用于接受任務的普及工作流用戶界面的示例性實現(xiàn)的屏幕截圖。
圖29是用于通過普及工作流用戶界面呈現(xiàn)和接受選擇的示例性方法的流程圖。
圖30是示出字處理用戶界面中用于許可或否定條目的一普及工作流用戶界面的示例性實現(xiàn)的屏幕截圖。
圖31是示出對用于激活動作的參數(shù)指定的可發(fā)現(xiàn)性的示例性安排的屏幕截圖。
圖32是用于發(fā)現(xiàn)一動作的激活參數(shù)指定的示例性方法的流程圖。
圖33是示出用于支持可合成動作的模式的示例性模板的框圖。
圖34、35、36和37示出工作流技術的示例性執(zhí)行。
圖38示出帶有超鏈接的任務的示例性通知。
圖39是示出用于實現(xiàn)工作流系統(tǒng)的示例性體系結構的框圖。
圖40是示出用于顯示工作流狀態(tài)并接受對隨后動作的選擇的用戶界面的示例性實現(xiàn)的屏幕截圖。
圖41是示出用于可合成動作的示例性模板的屏幕截圖。
圖42是示出用于可合成動作的示例性模板一部分的屏幕截圖。
具體實施例方式
示例1-示例性工作流系統(tǒng)圖1示出了用于通過可合成動作實現(xiàn)自動化工作流的示例性系統(tǒng)100。在該示例中,多個客戶機程序122A-122N通過網(wǎng)絡132(例如經(jīng)網(wǎng)絡連接)訪問工作流服務140。實際上,客戶機程序122A-122N可分別由人類行動者操作。人類行動者是在工作流服務140中執(zhí)行的工作流處理的人類參與者,且可由身份信息(例如信息125)在系統(tǒng)中呈現(xiàn)。
工作流服務140可與用戶界面和客戶機程序122A-122N的其它細節(jié)無關地進行操作。因而,客戶機程序122A-122N可取各種形式或者按需統(tǒng)一。由于服務140可由各種客戶機(例如不同類型的客戶機軟件)訪問,它們有時稱為“客戶機不可知的”。
工作流服務140可通過合成服務141執(zhí)行工作流處理,該服務將可合成動作(例如動作142)組裝到活動流中??珊铣蓜幼骺筛鶕?jù)標準界面發(fā)送和接收消息(例如消息143)。
消息的指示可由跟蹤服務存儲(例如在跟蹤數(shù)據(jù)庫162中)用于后來的檢索,諸如跟蹤活動流的狀態(tài)。約束服務152可實現(xiàn)約束來添加大范圍的約束以在工作流處理期間引導用戶。約束服務可查閱事實存儲器以按需應用約束。這樣的事實存儲器可包含機構的大范圍信息,并可包括新的事實類型。
實際上,系統(tǒng)100可具有任意數(shù)量的客戶機程序,在多個網(wǎng)絡上執(zhí)行,并支持各種各樣的并發(fā)執(zhí)行動作和活動流。
示例2-用于處理工作流的示例性方法圖2示出用于在諸如圖1的自動化工作流系統(tǒng)中處理工作流的示例性方法200。該方法200可由軟件執(zhí)行。
在212,可合成動作按照約束被合成到活動流中。例如,約束服務可基于一事實存儲而指示可能的動作和目標行動者。在222,由工作流服務執(zhí)行動作。執(zhí)行可取各種各樣的形式并包括各種各樣的處理,包括從人類行動者處接收信息或指示。在執(zhí)行期間,可分配任務并收集有關各任務的信息。
在232,跟蹤活動流的進展。例如,可記錄發(fā)送給和來自可合成動作的消息用于后來的檢查。也可跟蹤有關與該活動流相關聯(lián)的任務的信息。
實際上,工作流系統(tǒng)可提供各種各樣的其它功能,包括建立指定一個用于在工作流服務中執(zhí)行的動作集的活動模型的能力。
示例3-示例性動作在任一在此所述的示例中,可合成動作可取如圖3所示的示例性可合成動作300的形式。動作300可從可合成動作定義中例示,該可合成動作定義通常包括動作的動作特定工作流處理(例如商業(yè)邏輯)308的定義。
動作可通過一組通信接口312、322、332、342、352、362來發(fā)送和接收消息以支持各種各樣的可合成性情形。例如,當由用戶引導或在工作流中適當位置時,工作流服務可例示該動作并向其發(fā)送一激活消息。圖3所示的排列可用作動作的模式從而可在自動化工作流服務上支持可合成性。
接口312、322、332、342、352、362可取標準接口的形式。例如,接口312、322、332、342、352、362可接受在工作流系統(tǒng)中使用的遵從XML模式(例如XSD規(guī)范)的消息。這樣,開發(fā)者可開發(fā)新的動作;如果動作遵從XML模式,它們可與工作流服務中的其它動作合成并獲益于工作流服務特征??蓪涌?12、322、332、342、352、362的每一個使用不同的模式。例如,與任務接口322相關的模式可包括如何指定與該任務相關聯(lián)的行動者。
消息(例如消息362)可由動作因各種原因而封裝的邏輯所接收,包括要激活動作、中斷動作、完成動作、或使動作與其它可合成動作同步(例如解開)。類似地,消息可由動作因各種原因而封裝的邏輯所發(fā)送,包括指示已激活動作、已完成動作、或要分配(例如給動作者)的任務。
各接口的可替換的排列是可能的,諸如較少、較多、或不同的接口。然而,如果需要一致性,則可全部實用某些相同的接口(例如用于接收激活和中斷消息的接口)。由于各接口便于可合成動作的彼此連接,工作流服務和客戶機系統(tǒng)有時被稱為“插針”(pin)。具有插針的動作定義可被安裝在工作流服務中由工作流參與者使用。有關被安裝動作的可訪問性約束可由管理員指定。然后工作流系統(tǒng)可將該動作呈現(xiàn)為僅對適當行動者的選項。
示例4-通過接口處理消息的示例性方法圖4示出了以可合成動作處理消息的示例性方法,諸如圖3所示可合成動作300。在412,通過由動作封裝的邏輯由動作經(jīng)標準接口之一接收消息。在422,處理該消息。在432通過由動作封裝的邏輯由動作從標準接口之一發(fā)送消息。
實際上,發(fā)送和接收消息可以復雜得多,包括消息之間的同步以及由動作進行的各種處理。然而,可向開發(fā)者提供一模板,通過它動作的所需商業(yè)邏輯可被簡便地結合到該模板中以便于開發(fā)者不熟悉工作流服務的詳細工作方式也能創(chuàng)建動作。
示例5-示例性活動流一個或多個可合成動作的可執(zhí)行集可取活動流的形式。工作流服務可協(xié)調激活、例示、以及動作之間的執(zhí)行流。在執(zhí)行期間,動作可向工作流服務收發(fā)消息,并在各工作流服務之間收發(fā)消息。此外,動作可從客戶機程序收發(fā)消息(例如通過工作流服務)。
示例6-示例性消息各種各樣的消息可由工作流服務支持。然而,通過選擇可能的消息集,可獲取動作、工作流服務、以及工作流服務的客戶機之間通信的標準模式。表格1示出工作流系統(tǒng)的一示例性消息集。

每個協(xié)議消息可遵從XSD模式。因而,可用XML發(fā)送消息。
示例7-示例性同步情景在某些情形中,需要動作彼此同步執(zhí)行。例如,第一動作可執(zhí)行而第二動作等待第一動作指示繼續(xù)第二動作是恰當?shù)摹?墒褂眠@樣一種方法來實現(xiàn)活動流中的超時設定。
圖5示出通過消息進行的示例性動作-對-動作通信。這樣的排列500可用作相關動作的可合成性和同步功能。
在該示例中,由于行動者A的活動,活動流的執(zhí)行已到達將任務分配給行動者B的動作512。然后行動者B激活動作514和516,使動作516依賴于動作514。例如,動作514可以是“委派”動作,而動作516可以是“升級”動作。行動者B可選擇行動者C作為委派的目標,也可指定如果C未在某時間限制內響應則向C的管理人員發(fā)送升級。動作516可在這樣的情形框中直到動作514超時并發(fā)送同步消息572。
同步消息572在接口562和564之間發(fā)送。在接收同步消息572之后,動作516變得不受障礙并執(zhí)行其功能而向C的管理人員發(fā)送一消息。然后C的管理人員可將流延伸到下一動作518。
圖6示出由于通過動作-對-動作通信完成同步的示例性方法600。在612,阻擋動作的執(zhí)行。在622被阻動作接收一同步消息。在632,被阻動作恢復執(zhí)行。
排列500或600對于沿平行執(zhí)行路徑協(xié)調執(zhí)行是有用的,并可被用以實現(xiàn)超時條件(諸如當行動者被分配一任務時),但如果行動者未在超時時段內響應則任務升級。在其它各種各樣通信情形的任一情形中,可使用同步消息(例如監(jiān)視另一動作的進程)。
示例8-示例性任務在工作流處理中,常需要對人類參與者分配工作。這樣的分配可通過向行動者分配任務來完成。任務功能一般可由工作流服務實現(xiàn)以由工作流服務客戶機支持各種各樣的實現(xiàn)。有關任務的細節(jié)可由客戶機軟件處理。例如,工作流服務可跟蹤有一分配給特定行動者的任務,但如何完成該任務無需由工作流服務理解或實現(xiàn)。
例如,客戶機軟件可向人類行動者呈現(xiàn)任務,行動者作出響應并采取其它步驟來完成該任務。在許多實例中,在完成該任務中涉及人-對-人的交互,因此實現(xiàn)工作流服務中的任務一般使工作流服務能夠在更廣泛的情形中有用。
圖7示出通過它工作流服務712可支持任務的示例性排列700。在該示例中,動作714可通過標準接口722發(fā)送任務消息724。任務消息724可被導向客戶機軟件732,732包括任務獲取功能、任務完成功能、或兩者734。
工作流服務724可攔截消息724用于跟蹤目的,并將該消息的指示724存儲在數(shù)據(jù)庫732中。例如,表格734可指示所分配的任務和相關聯(lián)行動者。實際上,可存儲附加信息(例如何時分配該任務,任務結果等)。該信息可取由動作收發(fā)的消息的形式,或可由其表示。
圖8示出了用于處理任務的示例性方法800。在812,任務消息被發(fā)送給任務支持軟件。在822,任務的結果由工作流服務從任務支持軟件接收。
在832,更新工作流服務的跟蹤系統(tǒng)。這樣,可回答有關工作流進程(例如任務的進程)的查詢,并向用戶呈現(xiàn)誰想要監(jiān)視工作流進程。
示例9-動作的示例性可合成性在此所述的任一示例中,可合成(例如接合在一起)各動作以形成活動流。由于工作流服務的設計,可在活動流的執(zhí)行時間(例如運行時間)合成各動作。在與一活動流有關的工作流處理進行時,可向活動流添加其它動作。因而,系統(tǒng)可支持以先驗方式(例如在活動模型的設計期間)、特設方式(例如在活動模型的執(zhí)行期間)、或其某些組合(在特設基礎上將動作添加到以先驗方式創(chuàng)建的活動流中)。
開發(fā)者可設計新的動作,只要它們符合工作流服務所支持的模式就可被安裝到系統(tǒng)中。
示例10-示例性約束在此所述的任一示例中,工作流服務可通過約束服務容納各約束。一般約束可被定義為支持各種各樣的形式。例如,約束可估算當前情形的各個方面,并將其與指示哪個動作或目標可用于當前情形的存儲相比較。可向客戶機軟件提供可用動作和目標,該客戶機軟件可由參與行動者考慮在活動流的執(zhí)行或構建期間呈現(xiàn)它們。
除了在執(zhí)行任一動作之前應用,約束還可在相關聯(lián)活動流的執(zhí)行時間應用。盡管約束可用以限制行動者接下去做什么,它們還可具有在工作流執(zhí)行期間可用動作上的引導行動者的必然效果。這樣,系統(tǒng)可避免用許多無意義的選項來控制用戶,且可呈現(xiàn)簡單但有效的用戶界面。
一示例性約束限制哪些行動者可執(zhí)行哪些動作,或基于特定的活動模型起動活動流。例如,對特定動作或活動模型的訪問可被限制于特定角色、小組或行動者。約束服務一般可參照事實施加約束。
類似地,成為目標的行動者(例如可向其分配任務的)可受到類似的限制。例如,行動者僅被允許將一會計任務分配給會計部門的人們等。
各種各樣的事實可被包括以由約束服務考慮。例如,機構可存儲信息,指示行動者名字、相關聯(lián)部門、行動者是否是管理人員、行動者的直接報告等。這樣的事實可從各個源中提取,如在此其它地方所述。約束可被定義為通過知識庫可得到的任一事實。
另外,工作流服務可支持相關約束。例如,任務僅對升級行動者的管理人員是可升級的?;蛘撸袆诱邇H被允許將任務分配給她部門內的目標行動者。因而,可考慮行動者和目標之間的關系。
此外,約束可以否定方式定義。例如,不指定可開始活動流的行動者,而可指定不開始活動流的行動者。
還有,工作流動作可支持用于轉移動作的約束。例如,在任務已被分配給會計部門某人的情形中,約束可指定允許哪些行動者在該任務上動作(例如升級)并限制轉移目標(例如要分配給任務的新人)。約束也可考慮執(zhí)行行動者(已將任務分配給他的目標行動者)。可相對地指定轉移動作的約束(例如源行動者和執(zhí)行行動者之間的關系)。
其它約束可基于文檔類型。例如,如果任務具有特定文檔類型(例如提議),則約束可控制哪些動作和什么目標可用。在一活動模型中,確定要執(zhí)行的下一動作可被實現(xiàn)為約束的形式。
還有其它約束可基于活動流進程狀態(tài)(例如,其中活動流已在活動模型內進行)。例如,如果活動模型與一文檔相關聯(lián),且該活動模型并未被例示(例如進程狀態(tài)是“未起動”),約束可影響可得到的動作。當活動的活動流已起動時(例如進程狀態(tài)是“已起動”),不同的約束可呈現(xiàn)不同的動作。類似地,當活動流已結束(例如進程狀態(tài)是“已結束”)時,約束可這樣反映(例如,以不將結束活動流呈現(xiàn)為一選項)??芍С制渌鼱顟B(tài)(例如結束特定動作等)。
圖9示出涉及用于決定下一可得到動作的約束的示例性排列900。在該示例中,工作流服務正在確定動作912的可能的下一動作。在該示例中,動作922A-922N的任一個是可能的。取決于圍繞該情形的各個情況(例如選擇下一動作的行動者的身份、組合或角色等),下一動作集922A-922N受限于由工作流服務存儲的約束所指示的動作子集。確定下一動作可由將約束應用于當前情況的約束引擎來執(zhí)行。
圖10示出用于實現(xiàn)活動流中約束的示例性方法1000。在1012,例示用于活動流的動作。然后開始執(zhí)行。在活動流的執(zhí)行時間,可用于合成為下一動作的各動作在1022基于事實而受限。
以一般方法采用約束啟用了各種各樣的機制,通過它們工作流參與者可在工作流執(zhí)行期間受到引導。通常約束通過管理員進行管理,但參與行動者可致力于各約束(例如當組合成活動流時)。
示例11-用于約束的事實的示例性獲取圖11示出一示例性排列1100,其中工作流服務為了應用約束1132而與一個或多個知識庫1162A-1162N交互。在該示例中,一個或多個相應適配器1122A-1122N被用以與知識庫1162A-1162N通過接口相連以獲取事實。
各事實在知識庫(例如知識庫1162A)中的可用性可通過在工作流服務中安裝相應的知識庫適配器(例如適配器1122A)來完成。適配器1122A包括一映射,通過它可檢索知識庫1162A中的信息用于由工作流服務1112使用。例如,在應用約束1132時,工作流服務1112可能想要咨詢有關行動者、其位置、安全級別等的事實。這樣,對工作流服務1112可用的事實可來自各種各樣的源。
圖12示出在應用約束時用于使用各事實的示例性方法1200。在1212,在約束處理期間接收對事實的請求。例如,可請求行動者的安全級別或部門。在1222,檢索事實。然后在1232,檢索到的事實被用于應用約束。
實際上,可在周期性基礎上或一次性基礎上檢索各事實(例如從一個或多個知識庫),并存儲于工作流服務控制下的從中可完成請求的中央事實存儲裝置中。
此外,事實可包括活動流的現(xiàn)有進程狀態(tài)、與一活動流相關聯(lián)的文檔類型、或其中的某些組合。
實例12-用于構建活動模型的示例性可合成性在所述任一示例中,一個或多個動作可被合成到可例示用以創(chuàng)建活動流的動作和相關聯(lián)約束的集合中。這樣的動作集有時被稱為“活動模型”。
執(zhí)行活動模型有時被稱為執(zhí)行先驗活動流,因為動作已由活動模型設計者選定。如果需要,活動模型設計者可將活動模型定義為不可變的,從而在相關聯(lián)活動流的執(zhí)行期間不可作改變。
圖13示出示例性活動模型1300。在該示例中,對動作定義1322、1324、1326、1328和1330的各個引用已被組裝成一可調用單元,該單元可被選擇用于由用戶執(zhí)行(例如當受約束允許時)。為了方便用戶,可給予活動模型1300一友好名字,通過該名字可選擇這個模型。
圖14示出通過可合成動作用于實現(xiàn)活動模型的示例性方法1400。在1412,接收(例如來自人類行動者的)運行活動模型的請求(例如通過工作流服務的客戶機軟件)。在1422,活動流的可合成動作基于活動模型定義而例示。在1432,動作基于活動流定義被合成為一活動流。例如,動作的順序可由活動模型定義,從而在完成動作之后執(zhí)行活動流中的下一動作。
示例13-特設選擇動作的示例性可合成性在所述任一示例中,一個或多個動作可由人類行動者合成為一動作集以在特設基礎上形成活動流。例如,人類行動者可選擇一用于例示的動作。如果需要,可由人類行動者(例如通過電子形式)向被例示動作提供適于特定環(huán)境的各個參數(shù)。
圖15示出一示例性活動流1500,其中活動集1522和1552已在特設基礎上合成。在該示例中,用戶已選定例示查看動作1522,該動作導致產(chǎn)生對目標行動者的任務。在該示例中,任務以用戶界面1532的形式向目標行動者展示自己,指示目標行動者查看一項(例如附加文檔)。目標行動者可選擇認可(Approve)(1534)或拒絕(Reject)(1536)該項??商峁┳⒔?Notes)1538。實際上,可提供更綜合的或其它用戶界面。
然而,在該示例中,目標行動者并未在所需時間查看該項。相應地,行動者(例如選擇例示查看動作1522的同一行動者或另一行動者)已選擇在活動流的執(zhí)行時間(例如在活動流已完成之前)添加一升級動作1552。相應地,新動作1552被例示并被置入活動流1500中。結果,任務被重新分配給另一目標用戶。如果需要,可向查看動作1522發(fā)送中斷消息,該動作可采取適當步驟(例如取消第一目標行動者的任務)。
作為新任務的結果,新的用戶界面1562向目標行動者顯示。再一次,該用戶界面可包括元素1564、1566和1568。
所示動作僅是示例性的。實際上,按照約束可提供各種各樣的特設動作。
圖16示出用于實現(xiàn)特設活動流的示例性方法1600。在1612,接收在活動流執(zhí)行時間將動作添加到活動流的請求。在1622,動作在活動流的執(zhí)行時間被合成為一活動流。
示例14-將特設動作添加到活動模型的示例性可合成性除了支持用于執(zhí)行先驗活動流和活動流的特設合成的活動模型之外,工作流服務可支持基于特設基礎上的活動模型將活動添加到活動流中。
圖17示出基于活動模型在特設基礎上將動作添加其中的示例性活動流700。在該示例中,活動流是活動模型的一個實例,且包括動作1722、1724、1726、1728和1730?;趧幼?788的添加,可改變執(zhí)行流。盡管未示出行動者,可將動作導向行動者(例如分配任務)。
圖18示出用于在特設基礎上基于活動模型將動作添加到活動流的示例性方法1800。在1812,確定可得到的特設動作(例如基于約束)。例如,然后可將可得到的動作發(fā)送給客戶機軟件用于向人類行動者呈現(xiàn)以便選擇。
在1822,接收所需特設動作的指示。例如,客戶機軟件可指示用戶已選擇的選項。
在1832,特設動作被合成為該活動流。工作流服務的跟蹤服務可被更新以指示已添加的新動作和添加其的行動者。
示例15-任務的示例性特設動作一個特定的任務專用的特設動作集可被作成以對任務可用。這樣的特設動作在包括任務的任何時候可顯示用于由行動者選擇(即使它們并未顯現(xiàn)在相關聯(lián)的活動模型中)。這樣的特設動作可基于約束來有選擇地呈現(xiàn)。
任務的示例性特設動作包括升級、委托等等。例如,當呈現(xiàn)任務時,可向行動者呈現(xiàn)升級或委托任務的選項。這樣的選項是否可用以及可能的目標都由各約束來控制。這樣的選項也可呈現(xiàn)在活動流進程的特性表示中。這樣,監(jiān)視進程的行動者可按升級或委托來簡便地繼續(xù)執(zhí)行。
指定這樣的有關任務的特設動作的能力可使工作流服務更為有用,因為工作流處理更有能力響應于未曾料到的情況。
示例16-基于用戶身份的示例性約束圖19示出工作流服務1912基于行動者身份支持約束的示例性排列1900。在該示例中,人類行動者由工作流服務1912中的行動者1922表示。
已定義約束1914將確定行動者1922(即源行動者)是否可選擇動作1931用于例示以及可選擇哪個目標1934。該確定可基于行動者1922的身份。這種身份考慮可包括行動者的用戶名、行動者是其成員的組合、以及行動者1922是其成員的角色。此外,關系約束可指定行動者1922與另一行動者具有一關系。
此外,約束1914將確定可對動作1931指定哪個目標行動者1934。目標行動者1934可以是單個行動者、組合或某些其它名稱。各種約束可使該動作(例如通過與動作定義相關聯(lián)的動作id)與所允許的例示行動者和目標行動者相關聯(lián)(例如對于特定例示行動者)。
實際上,可實現(xiàn)約束從而與行動者1922相關聯(lián)的人類行動者僅看到如約束1914所示的適當選項。這樣,人類行動者不會淹沒在太多的選擇之中并在工作流處理中受到引導。
圖20示出用于基于行動者約束呈現(xiàn)動作和目標選項的示例性方法2000。在2012,可能的動作基于行動者身份呈現(xiàn)。在2033,可能的目標行動者基于行動者身份呈現(xiàn)。實際上,工作流服務可通過呈現(xiàn)用于由可接收選擇(例如從選擇列表、單選按鈕、組合框等)的客戶機軟件呈現(xiàn)的選項來控制這樣的呈現(xiàn)。
示例17-示例性轉移動作工作流還可支持對轉移動作的約束。轉移動作包括可應用于其它動作的通常已具有相關聯(lián)目標行動者的那些動作。轉移動作的示例包括委派和升級。
圖21示出一示例性排列2100,其中工作流系統(tǒng)2112將約束應用于轉移動作。在該示例中,動作2131已被應用于目標行動者2134或“行動中”行動者。行動者2122(即源行動者)正在把轉移動作2144應用于動作2131。
轉移動作2144是否將顯現(xiàn)為行動者2122的選項將取決于約束2114。這樣的確定可基于行動者2122的身份、轉移動作2144的類型、動作2131的類型、行動中行動者2134或其中的某些組合。最后,可通過約束2114來控制允許目標2148(例如基于同樣的考慮或像選項是否將顯現(xiàn)的其它考慮組合)。
圖22示出用來基于行動中用戶而呈現(xiàn)可能動作和可能目標的示例性方法。在2212,至少基于行動中行動者呈現(xiàn)可能動作。在2233,至少基于行動中行動者呈現(xiàn)可能目標。
可在任意情形中使用相關約束。例如,行動者可受限于僅在該行動者管理的那些行動者上執(zhí)行特定的轉移動作等等。
示例18-示例性跟蹤圖23示出工作流服務2312支持跟蹤的示例性排列2300。在該示例中,工作流服務2312支持一個或多個活動流2322A-2322N的執(zhí)行。有關執(zhí)行流的信息可被存儲于跟蹤數(shù)據(jù)塊2332用于后來的檢索。例如,來自和送往動作的消息指示可通過使用定制攔截器來存儲以攔截并存儲指示消息的信息。此外,其它信息可被存儲用于構建指示工作流處理進程的狀態(tài)報告。
圖24示出用于跟蹤可合成動作的活動流的跟蹤狀態(tài)的示例性方法2400。在2412,攔截來自和送往可合成動作的消息。在2422,將該信息指示存儲于跟蹤數(shù)據(jù)庫中。
示例19-工作流狀態(tài)的示例性描繪圖25示出呈現(xiàn)基于跟蹤(例如采集消息)的工作流狀態(tài)的圖形表示的示例性用戶界面2500。在該示例中,各個框2521、2522、2523、2524、2525和2526表示參與工作流處理(例如活動流)的已分配或被分配任務的行動者。此外,用戶界面2500可呈現(xiàn)行動者之間的通信。例如,箭頭可包括Julian已認可一文檔的指示2534。這樣的指示可以是文本、圖標等。另一箭頭包括任務已被升級的指示2532。
圖26示出用于呈現(xiàn)活動流狀態(tài)的示例性方法2600。在2612,查詢跟蹤庫。在2622,基于查詢結果可視化地示出活動流。
實際上,可呈現(xiàn)各種各樣的用戶界面。此外,用戶界面可呈現(xiàn)更多對人類行動者的選項,從而他們可在監(jiān)視時參與工作流。例如,可呈現(xiàn)升級或中斷選項的選項。
示例20-示例性實現(xiàn)為Web服務在所述任一示例中,工作流服務可作為Web服務呈現(xiàn)給客戶機。例如,用戶界面可以由客戶機提供的HTML窗體來提供。
示例21-示例性普及界面技術在所述任一示例中,工作流服務可通過一普及用戶界面而被利用。例如,工作流服務的用戶界面可被組合到通用軟件程序中,諸如電子郵件程序或字處理程序。這樣,通用熟悉的條件可被用作工作流服務的客戶機??赏ㄟ^發(fā)送XML消息(例如根據(jù)SOAP協(xié)議)來完成通信,而用戶界面可通過HTML示出。
圖27示出其中工作流服務呈現(xiàn)為電子郵件程序的用戶界面一部分的示例用戶界面2700。在該示例中,電子郵件程序包括熟悉的文件夾列表2712和收件箱2722。作為收件箱的一部分,任務顯現(xiàn)。當被選中時,電子郵件的預覽顯現(xiàn)于預覽窗格2762。
該用戶界面表示目標行動者的任務(例如用戶預覽電子郵件)是要預覽預算文檔。該用戶界面元素2764、2766和2768可被用于傳送回工作流服務。例如,在激活按鈕2764之后,已向目標行動者起動任務的消息被發(fā)送回動作。然后由相關聯(lián)活動流采取適當步驟。
與窗格2762相反,可示出圖28的窗格2800。在該示例中,除了子窗格2862的標準任務選項(例如用戶界面元素2864、2866和2868),用于特設動作的選項顯現(xiàn)于子窗格2872中(例如用戶界面元素2876)。
圖29示出用于通過普及工作流用戶界面呈現(xiàn)和接受選擇的示例性方法2900。在2912,工作流相關的用戶界面被呈現(xiàn)于普及應用程序中。在2922,用戶(即人類行動者)選擇可通過用戶界面接收。
圖30示出其中用于訪問工作流服務的用戶界面元素被呈現(xiàn)為結合到文檔編輯(例如字處理或電子制表)程序的用戶界面3000。在該示例中,文檔呈現(xiàn)于文檔窗格3062中。在文檔窗格3062旁邊呈現(xiàn)工作流選項3072。在該示例中,行動者可選擇動作和目標行動者的特設選項顯現(xiàn)。動作的起動可通過用戶界面元素3076完成。實際上,可呈現(xiàn)其它或不同的選項(例如用于認可正在編輯的文檔)。
示例22-示例性可發(fā)現(xiàn)性圖31示出可獲取用于激活動作3136的激活參數(shù)的指定的示例性排列3100。在該示例中,客戶機軟件3134(例如動作、工作流服務或某些其它軟件)將一個查詢發(fā)送給動作3136,該動作響應于用來激活動作的參數(shù)的指定(例如由動作3136開發(fā)者指定的參數(shù)列表)。實際上,由于動作3136尚未例示,查詢(例如指定動作類型)可由工作流服務發(fā)動,該工作流服務可逐個查閱動作類型和參數(shù)列表以確定激活參數(shù)指定。
可以可收集參數(shù)的HTML窗體或轉換成這種窗體來提供指定。例如,查看動作可指定要提供的目標從而產(chǎn)生適當?shù)腍TML窗體由行動者來完成。可使用約束來填寫適當?shù)哪繕诵袆诱摺?br> 圖32示出用于發(fā)現(xiàn)動作的激活參數(shù)指定的示例性方法3200。在3212,接收對激活參數(shù)指定的查詢。在3222,響應于查詢提供該指定。
可使用類似方法用于活動模型參數(shù)指定的可發(fā)現(xiàn)性??砂l(fā)現(xiàn)性可在動作或活動流的執(zhí)行時間執(zhí)行。
示例23-示例性動作模板為便于開發(fā)動作,可向開發(fā)者提供模板。圖33示出包括模板動作定義3314的示例性排列3300??捎秒S后產(chǎn)生動作的適當可執(zhí)行代碼的可視化編程語言來編輯模板。
在該示例中,動作的接口可由引腳3322、324、3326和3328表示。模板容許激活消息通過激活接口3322接收。由該動作封裝的激活邏輯3332接收激活消息,并將激活響應消息返回到其本身,以便初始化與由動作模板接收的其它消息相關聯(lián)的值。
模板3314還容許依賴合成(例如同步情形)。例如,同步邏輯3342和收聽邏輯3344可并行地執(zhí)行。如果動作已用依賴方式(例如其進一步執(zhí)行依賴于接收來自另一動作的消息)合成,則同步邏輯3342可阻擋執(zhí)行直到從同步接口3324接收消息。
并行地,收聽邏輯3344可收聽中斷或完成消息。如果接收來自中斷接口3326的中斷消息,則可執(zhí)行中斷邏輯(例如返回狀態(tài))。
如果未受阻或開通,則可執(zhí)行動作特定處理(例如商業(yè)邏輯)3352。最后,可執(zhí)行完成邏輯3362,并且一完成消息被送往完成接口3328。該消息由動作在收聽邏輯3344中接收并導致并行分支也完成。
實際上,可包括附加或其它邏輯。在完成開發(fā)之后,可將動作定義安裝到工作流服務和被定義為與該動作相關聯(lián)的適當約束中。
示例24-工作流技術的示例性執(zhí)行圖34、35、36和37示出了工作流技術的示例性執(zhí)行。在該示例中,客戶向涉及協(xié)調對RFP響應的專家組的帳戶管理人發(fā)送對提議(RFP)的請求。
圖34示出所涉及的行動者。客戶3410向帳戶管理人3420發(fā)送RFP文檔(例如通過電子郵件)例如,文檔可以是字處理文檔。帳戶管理人可向專家3430A-3430D發(fā)送任務以完成響應RFP所需的處理。
圖35-37示出示例性屏幕截圖。圖35示出其中帳戶管理人已接收來自客戶的電子郵件3520的示例性電子郵件程序3510。包括在該電子郵件中的是電子郵件附件3530形式的RFP文檔。在該示例中,帳戶管理人可通過將電子郵件3520轉發(fā)給電子郵件別名來基于活動模型開始一活動流(例如“RFP許可”)。該電子郵件可基于電子郵件處理規(guī)則來進行處理以基于活動模型開始活動流,該活動模型產(chǎn)生專家3430A-3430D的適當任務并可包括附件3350(或其鏈接)作為任務的一部分。
圖36示出當打開與任務相關聯(lián)的文檔時呈現(xiàn)給專家3430A-3430D之一的示例性用戶界面。該用戶界面可以是一熟悉的呈現(xiàn)文檔3620(例如基于附件3530)的文檔編輯(例如字處理)程序3610。
該用戶界面還可包括允許專家3430A-3430D之一升級任務或將任務委托給另一行動者的窗格3630。在該示例中,查看行動者將任務委托給行動者“Kerri”并激活用戶界面元素3635。
由于工作流技術的跟蹤特征,示圖3700可示出上述工作流的狀態(tài)??蛻鬚eter3721通過發(fā)送電子郵件起動工作流。例如,替代手動轉發(fā)電子郵件,行動者Jenny 3722可在其電子郵件收件箱中設置一規(guī)則以基于檢測消息主體中的“新RFP”來自動起動活動模型。專家3723-3725已接收RFP用于查看。Julian 3723已許可RFP,而Michael 3725已將其任務委托給Kerry 3726,如指示符3732所示。
示例25-任務的示例性通知圖38示出了當任務被分配給接收行動者時所發(fā)送(例如通過電子郵件)的示例性通知3800的屏幕截圖。該通知可給出有關如何響應于任務的指令。該通知可包括與文檔的超鏈接和與任務的超鏈接。
示例26-消息類型的示例性模式各種消息類型的示例性模式如下所示。消息類型可包括激活、激活響應、同步、任務、完成、以及中斷。盡管某些示例指出為了遵從模式不應更改該模式,但可選實現(xiàn)了使用不同的模式集來完成相似功能。例如,盡管GUID在示例中被指定,也可使用其它標識符(例如另一唯一標識符)。在各示例中,該工作流系統(tǒng)有時被稱為人類工作流(“HWS”)。
示例27-激活消息類型的示例性模式Hws_Activate消息是在激活期間用以向動作提供參數(shù)的示例性激活消息。一動作最多具有與其相關聯(lián)的一個激活消息。在該示例中,Hws_Activate消息有三個HwsMessage節(jié)點下的子元素。它們是HwsSection、ActionSection和Payload(有效載荷),解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本部分中定義的元素或屬性。表格2示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格2-HwsSection節(jié)點下的示例性元素/屬性


這些屬性缺省地創(chuàng)建用于在動作模板中引用和使用。
ActionSectionActionSection可由動作開發(fā)者定制并可包含任何動作特定參數(shù)和值以在例示期間被傳遞到動作中。本部分可包含對應于動作的人類目標的元素。ActionSection中元素/屬性的值不由Hws攔截器跟蹤。如果需要應跟蹤的屬性,則在預定義的HwsSection\ActionProperties集合下的實例文檔中指定它們。
有效載荷模式中的有效載荷節(jié)點是應用程序用以指定需要包括在由動作發(fā)出的其它消息中的其它信息的占位符。
ο注解激活消息模式攜有由Hws系統(tǒng)使用的注解。有在模式根節(jié)點層次上定義的某些屬性,還有在元素節(jié)點層次上定義的某些屬性。
·模式節(jié)點屬性以下屬性在模式節(jié)點層次上定義。
·描述該屬性中的值被用以描述激活消息與之相關聯(lián)的動作。
·輸入同步消息該屬性指定由與激活消息相關聯(lián)的控制所接收的同步消息的目標名字空間。
·輸出同步消息該屬性指定由與激活消息相關聯(lián)的控制所發(fā)送的同步消息的目標名字空間。
·元素節(jié)點屬性對于在模式文檔Hws的ActionSection元素下定義的元素節(jié)點定義以下屬性·目標這是一布爾值屬性。該值“真”標識該元素節(jié)點是作為由與激活消息相關聯(lián)的動作發(fā)送的一個或多個任務消息的接收者的人類目標?!凹佟钡闹祷蛉绻滴粗付ǎ该髟摴?jié)點不是人類目標。
每個激活消息模式可具有在使用模式集中唯一地標識它的目標名字空間。
示例28-激活響應消息類型的示例性模式Hws_ActivateResponse消息是由動作模板內部使用以初始化用于接收模板中其它消息的相關聯(lián)變量集的示例性激活響應消息。
Hws_ActivateResponse消息僅有一個HwsMessage節(jié)點下的子元素。它是HwsSection,解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本部分中定義的元素或屬性。表格3示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格3-HwsSection節(jié)點下的示例性元素/屬性

這些屬性缺省地創(chuàng)建用于初始化由動作模板使用的相關集。
ο注解激活消息模式攜有由Hws系統(tǒng)使用的注解。該注解的值不可用于編輯。
該模式的TargetNamespace通過URL(例如http//[base]/Hws_ActivateResponse)定義。該模式可被編譯成匯編(例如DLL)并由動作模板引用。該消息在動作中構建并在直接相鄰的端口上收發(fā)。
示例29-同步消息類型的示例性模式Hws_Synchronize消息是從一個動作發(fā)送到另一動作以開啟接收動作的執(zhí)行的示例性同步消息。該接收動作實例應已用其激活消息集中的IsDependentOnParent屬性激活為真,以能夠等待同步消息。
在該示例中,Hws_Synchronize消息有三個在HwsMessage節(jié)點下的子元素。它們是HwsSection、ActionSection和Payload(有效載荷),解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本節(jié)中定義的元素或屬性。表格4示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格4-HwsSection節(jié)點下的示例性元素/屬性

這些屬性缺省地創(chuàng)建用于在動作模板中引用和使用。
ActionSectionActionSection可由動作開發(fā)者定制并可包含任何動作特定參數(shù)和值以被傳遞到接收動作中。
有效載荷模式中的有效載荷節(jié)點是應用程序用以指定需要包括在由動作發(fā)出的其它消息中的其它信息的占位符。
ο注解同步消息模式具有用于消息描述的注解。該屬性在模式根節(jié)點層次上定義。
·模式節(jié)點屬性以下屬性在模式節(jié)點層次上定義。
·描述該屬性中的值被用以描述同步消息。
每個同步消息模式都應具有在使用模式集中唯一標識它的TargetNamespace(目標名字空間)。如果同步消息的目標名字空間改變,或者如果新的同步消息模式被添加到動作中,則(發(fā)送同步消息或接收它的動作的)激活消息上的輸入同步消息和輸出同步消息屬性也需要更新。同步消息可在直接相鄰的端口上收發(fā)。
示例30-任務消息類型的示例性模式
Hws_Task消息是用于發(fā)送給動作參與目標的消息的示例性模式。一動作可發(fā)送一類或多類任務消息。它也可發(fā)送給定任務消息類型的一個或多個實例。Hws_Task消息也可用于將響應發(fā)送回動作。
Hws_Task消息有三個在HwsMessage節(jié)點下的子元素。它們是HwsSection、ActionSection和Payload(有效載荷),解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本部分中定義的元素或屬性。表格5示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格5-HwsSection節(jié)點下的示例性元素/屬性


這些屬性缺省地創(chuàng)建用于在動作模板中引用和使用。
ActionSectionActionSection可由動作開發(fā)者定制并可包含任何動作特定參數(shù)和值以在例示期間被傳遞到參與目標中。也可用于定義目標可在其響應中提供的任意參數(shù)。
有效載荷模式中的有效載荷節(jié)點是應用程序用以指定需要包括在由動作發(fā)出的其它消息中的其它信息的占位符。
ο注解任務消息模式攜有由Hws系統(tǒng)使用的注解。這些屬性在模式根節(jié)點層次上定義。
·模式節(jié)點屬性以下屬性在模式節(jié)點層次上定義。
·描述該屬性中的值被用以描述任務消息模式。
·目標XPath該屬性指定該任務消息促成的激活消息中目標節(jié)點的XPath。
每個任務消息模式可具有在使用模式集中唯一地標識它的目標名字空間。
示例31-完成消息類型的示例性模式Hws_Finish消息是由動作模板內部使用并在動作完成執(zhí)行時發(fā)出的示例性完成消息。Hws_Finish消息僅有一個HwsMessage節(jié)點下的子元素。它是HwsSection,解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本節(jié)中定義的元素或屬性。表格6示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格6-HwsSection節(jié)點下的示例性元素/列表

這些屬性缺省地創(chuàng)建用于初始化由動作模板使用的相關聯(lián)集。
ο注解該完成消息模式具有注解用于描述該消息。該注解的值不可用于編輯。
該模式的TargetNamespace通過URL(例如http//[base]/Hws_Finish)定義。該模式可被編譯成匯編(例如DLL)并由動作模板引用。該消息在動作中構建并在直接相鄰的端口上收發(fā)。
示例32-中斷消息類型的示例性模式Hws_Interrupt消息是用以中斷動作的一個運行實例的示例性中斷消息。中斷消息可被發(fā)送給單個動作實例、整個活動流、或整個活動模型實例。有兩類中斷-中止和退回。
Hws_Interrupt消息僅有一個在HwsMessage節(jié)點下的子元素。它是HwsSection,解釋如下HwsSectionHwsSection持有被保留由Hws系統(tǒng)使用的XML元素和屬性的定義。不應更改在本節(jié)中定義的元素或屬性。表格7示出在HwsSection節(jié)點下定義的元素/屬性的示例性列表。
表格7-HwsSection節(jié)點下的示例性元素/屬性

這些屬性缺省地創(chuàng)建用于在動作模板中引用和使用。
ο注解中斷消息模式具有用于描述該消息的注解。該注解的值不可用于編輯。
該模式的TargetNamespace可通過URL(例如http//[base]/Hws_Interrupt)定義。該模式可被編譯成匯編(例如DLL)并由動作模板引用。該中斷消息的實例在模板中通過ActionInterruptPort上被接收?;顒恿鲗哟位蚧顒幽P蛯嵗龑哟紊系闹袛嘞⒈话l(fā)送給當前在活動流或活動模型實例中活動的每個動作。中斷類型Abort(中止)使被中斷動作結束而沒有補償動作已做的工作。Rollback(退回)中斷類型使動作能補償已由動作完成的工作。
示例33-體系結構的示例性完成圖39示出包括工作流服務3902的系統(tǒng)3900的體系結構的示例性實現(xiàn)。在該示例中,客戶機應用程序3904可發(fā)揮工作流服務3902以使行動者能創(chuàng)建并參與工作流。工作流服務3902可向客戶機應用程序提供三個主要服務工作流合成3908、工作流約束3906、以及工作流跟蹤和查看3910。
工作流可由活動流中的合成動作3912創(chuàng)建。動作3912的合成通過由工作流服務3902實施的約束3914來管理。約束3914可用任意數(shù)眾所周知的方法來定義,包括通過工作流經(jīng)營和管理(例如MMC)或通過編程方法的管理API。
這些約束3914的定義可利用事實檢索器展現(xiàn)的事實。事實檢索器可實現(xiàn)一標準接口從而約束服務3906可查詢這些事實并將其應用于工作流中。事實檢索器可展現(xiàn)來自任意下層數(shù)據(jù)源3916的事實,諸如活動目錄或SQL數(shù)據(jù)庫。
客戶機應用程序3904可在需要參與活動流時向工作流服務3902登記。合成服務3908可使唯一ID與客戶機請求相關聯(lián),并使用該ID跟蹤行動者將其作為活動流一部分的動作3912。
跟蹤服務3910可被用以跟蹤活動流的狀態(tài)并按客戶機所要求的重建該活動流。當客戶機嘗試將動作3912附于活動流時,約束服務3906可檢查約束(例如基于事實存儲3916或流的狀態(tài))以查看哪個動作3912可附在活動流上。例如,示出選項可限于在約束下可用的選項。在用戶從受約束集合中選擇一動作之后,合成服務3908可將選中動作與那些已在使用的進行合成。
可提供動作以發(fā)出由跟蹤服務3910消費的跟蹤事件。然后可由客戶機訪問這些事件以向行動者提供最近的工作流。
示例34-用于訪問工作流服務的用戶界面的示例性實現(xiàn)圖40示出用于訪問工作流服務的用戶界面4000的示例性實現(xiàn)。在該示例中,示出活動流的圖形表示,并向用戶呈現(xiàn)升級任務的選項(例如通過右擊行動者)。
示例35-用于建立動作的模板的示例性實現(xiàn)圖41示出用于建立動作的示例性模板4100。在該示例中,模板4100在可視化編程環(huán)境中呈現(xiàn),但它也可用其它方法呈現(xiàn)。模板4100可處理各種各樣的情況,從而開發(fā)者僅需引入用于特定情況的邏輯。例如,依賴合成可由模板支持。
模板4100可包括激活接收器邏輯4110?;顒涌稍谙抻贖TTP傳送的單向端口上接收激活消息。然后可創(chuàng)建ActiveResponse消息。該響應消息被用以初始化后來在控制中使用的相關聯(lián)集合。該動作向其本身發(fā)送消息。它可使用ActionDirectBoundOutPort的SendOrReceiveActiveResponse操作來發(fā)出消息并使用ActionDirectBoundInPort來接收返回的消息。模板部分4110還可查看ParentActionInstanceID或ActivityModeInstanceID的值是否是空的標識符(例如空的GUID)。如果這樣,它可產(chǎn)生屬性的新的標識符值。如果所例示動作沒有父動作或如果動作未例示為活動模型的一部分,則這些將是空的標識符。如果有許多這樣的動作實例,可創(chuàng)建對完成和中斷消息類型的等量的非唯一訂閱,這可負面地影響性能。
這樣的情形可通過產(chǎn)生新的標識符來避免,并且由于并未期望訂閱在這樣的情況中完成這是安全的。訂閱的唯一性確保有效訂購者的消息的路由性能沒有下降。
并行語句4120有兩個分支。左分支允許動作與另一動作合成(例如4130),并還提供模板內定制開發(fā)的場所(例如4140)。右分支允許動作收聽中斷和完成消息(例如4150)。
判定框4130(放大為圖42)查看是否用將動作按依賴于另一動作的意圖來激活該動作。在4210檢查激活消息中的IsDependentOnParent升級屬性。如果有,則在4230等待接收來自父動作的同步消息或完成消息。
同步消息或完成消息的接收框(4250或4240)基于父動作的實例id來使用相互關聯(lián)集。在接收同步消息之后,執(zhí)行繼續(xù)ScopeAllActionSpecificLogic并可執(zhí)行由開發(fā)者在4255引入的邏輯。
而完成消息的接收,則導致動作在4245結束。這樣,在終止之前動作經(jīng)直接相鄰的端口向消息框發(fā)出完成消息以表示其完成。
在同步消息上使用的相互關聯(lián)集合可被擴展成包括在激活消息外創(chuàng)立的其它屬性。也可在同步消息的接收框4250上使用附加的相關聯(lián)集合。
收聽與同步消息并行的完成消息使依賴動作能在父動作結束時不發(fā)送同步消息而清空。
定制邏輯(例如商業(yè)邏輯)可被結合到用于定制開發(fā)的場所4140。在場所4140周圍定義有事務范圍和補償框。這使定制補償能在請求退回操作的中斷消息發(fā)送給動作時或在動作中有未知例外產(chǎn)生時被建立。
4150收聽多個訂購的基于中斷消息的實例。它也收聽來自它本身的完成消息。該動作在三個粒度級別上訂購中斷消息動作實例級、活動流級和活動模型級。中斷消息可請求動作操作的中止或退回。中斷消息的接收致使在動作中產(chǎn)生中止或退回例外。這些例外在模板內被捕捉(例如在4160),且例外處理器在4140調用對ScopeAllSpecificLogic范圍的補償。
收聽框4150中的其它消息是來自它本身的完成消息。該消息由動作本身產(chǎn)生,并通過并行語句4120左邊分支中的直接相鄰端口被發(fā)送到消息框。該消息在ScopeAllSpecificLogic范圍完成之后馬上發(fā)送。該消息在右邊分支中的接收使收聽框ListenForAbortOrFinish完成且該分支結束。
動作部分4160具有對中止、退回和未知例外的例外處理器。中止和退回例外在接收中斷消息之后在動作內產(chǎn)生。中止例外的例外處理器建立并發(fā)送指示動作完成的完成消息,然后進入中止狀態(tài)。退回例外的例外處理器在建立和發(fā)送完成消息之前調用補償框CompensateForAllActionSpecificLogic。然后它進入結束狀態(tài)。
未知例外的例外處理器也在建立和發(fā)送完成消息然后結束之前調用補償框CompensateForAllActionSpecificLogic。
每個例外處理器可經(jīng)直接相鄰端口向消息框發(fā)送完成消息。該消息向其它子動作指示出它們被獨立合成到該動作并尚未接收到結束的同步消息。該完成消息由獨立合成的子動作接收(例如在4230)。
4170收聽來自父動作的完成消息。如果未收到消息則超時(例如5秒后);然后動作完成。這使得動作消費了來自父動作的路由但未經(jīng)消費的一個完成消息。如果父動作發(fā)送一同步消息隨后馬上發(fā)送一完成消息,則該情況發(fā)生。僅有同步消息由收聽框內依賴子動作消費(例如4230)。完成消息被傳遞給子動作,但由于收聽框僅接受兩個消息中的第一個它并未消費。如果子動作不消費該消息就完成且該模式還對其它實例持續(xù),則眾多獨立消息條目可在消息框數(shù)據(jù)庫中建立從而負面影響性能。有了收聽框4170,則如果完成消息已被路由到動作中,可避免動作不消費該完成消息就完成。
示例36-各技術的結合來自所述任一示例的技術可與在此所述的一個或多個其它示例的任意組合中的技術相結合。
示例37-示例性計算機系統(tǒng)在此所述的任一示例性系統(tǒng)可通過運行在計算機系統(tǒng)上的軟件來實現(xiàn),諸如包括運行各種操作系統(tǒng)的任一種(包括微軟Windows操作系統(tǒng)和其它)的基于微處理器系統(tǒng)的通用可編程計算機。這樣的計算機系統(tǒng)可包括或結合計算機可讀介質工作,諸如RAM、ROM、硬盤、CD-ROM、DVD-ROM等。
示例38-示例性計算機可執(zhí)行指令在此所述的任一示例性方法可由包括存儲在計算機可讀介質的計算機可執(zhí)行指令的軟件來實現(xiàn)。
可選方案按照可應用本發(fā)明各原理的許多可能實施例,應理解所示實施例僅是本發(fā)明的示例,且不應作為本發(fā)明范圍的限制。相反,本發(fā)明的范圍包括以下權利要求所涵蓋的。因此我們聲明本發(fā)明出自這些權利要求的范圍和精神。
權利要求
1.一種自動化工作流服務系統(tǒng),其特征在于,包括一動作合成服務,它可操作用來將多個動作合成為活動流,其中所述合成服務可作為服務由客戶機程序訪問;一約束服務,它可操作用來根據(jù)所存儲的約束來提供可用的任選項,其中所述約束服務可作為服務由所述客戶機程序訪問;以及一跟蹤服務,它可操作用來提供所述活動流的進程,其中所述跟蹤服務可作為服務由所述客戶機程序訪問。
2.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述合成服務、約束服務和跟蹤服務被提供為可由所述客戶機程序訪問的單個服務。
3.如權利要求2所述的自動化工作流服務系統(tǒng),其特征在于,所述單個服務是web服務。
4.如權利要求2所述的自動化工作流服務系統(tǒng),其特征在于,所述單個服務可操作用以通過基于SOAP的協(xié)議與所述客戶機程序通信。
5.如權利要求2所述的自動化工作流服務系統(tǒng),其特征在于,所述單個服務是客戶機不可知的。
6.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述約束服務可操作用來基于行動者的身份約束可用動作,其中所述可用動作向所述行動者呈現(xiàn)為任選項。
7.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述約束服務可操作用來基于行動者的身份約束目標行動者,其中所述目標行動者向所述行動者呈現(xiàn)為任選項。
8.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述約束服務可操作用來基于行動中行動者的身份約束轉移動作。
9.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述動作合成服務可操作用來在所述活動流的執(zhí)行時間將可執(zhí)行動作添加到所述活動流。
10.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述動作合成服務可操作用來基于具有相關聯(lián)多個動作的預定義的活動模型例示活動流。
11.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述約束服務可操作用來以對事實的一般方式約束選項。
12.如權利要求10所述的自動化工作流服務系統(tǒng),其特征在于,所述動作合成服務還可操作用來在所述活動流的執(zhí)行時間基于所述預定義的活動模型將可執(zhí)行動作添加到所述活動流中。
13.如權利要求12所述的自動化工作流服務系統(tǒng),其特征在于,所述約束服務可操作用來指示作為所述活動流一部分而產(chǎn)生的任務的一可用特設動作集。
14.如權利要求13所述的自動化工作流服務系統(tǒng),其特征在于,所述可用動作可基于行動者身份受到約束。
15.如權利要求13所述的自動化工作流服務系統(tǒng),其特征在于,所述可用動作基于與行動者身份的相對關系受到約束。
16.如權利要求1所述的自動化工作流服務系統(tǒng),其特征在于,所述自動化工作流服務系統(tǒng)包括以下功能可發(fā)現(xiàn)性功能,它可操作用來提供響應于查詢對動作的激活參數(shù)的指定。
17.一種自動化工作流服務系統(tǒng),其特征在于,包括一活動流合成服務,它可操作用來經(jīng)基于SOAP的協(xié)議與客戶機通信,并響應于來自所述客戶機的請求例示多個被例示動作,所述活動流合成服務還可操作用來響應于來自所述客戶機的通信在活動流的執(zhí)行時間將一動作例示添加到所述活動流中;一事實存儲,包括經(jīng)具有相應知識庫模式的知識庫適配器從多個知識庫中提取的多個事實;一約束服務,它可操作用來經(jīng)所述基于SOAP協(xié)議與所述客戶機通信,并可操作用來基于所述活動流的參與行動者的身份實施約束,所述約束服務還可操作用來基于所述事實存儲實施約束;以及一跟蹤服務,它可操作用來跟蹤來自和送往所述例示動作的消息。
18.一種自動化工作流服務系統(tǒng),其特征在于,包括一合成裝置,它可操作用來將多個動作合成為活動流,其中所述合成裝置可作為服務由客戶機程序訪問;一約束裝置,它可操作用來根據(jù)所存儲的約束來提供可用選項,其中所述約束裝置可作為服務由所述客戶機程序訪問;以及一跟蹤裝置,它可操作用來提供所述活動流的進程,其中所述跟蹤裝置可作為服務由所述客戶機程序訪問。
19.一種提供自動化工作流服務的方法,其特征在于,所述方法包括在一服務上,接收來自客戶機程序的請求以將動作例示為活動流的一部分,并例示作為響應的所述動作;在所述服務上,接收對在所述活動流執(zhí)行期間可用的選項的請求,并提供作為響應的選項列表;以及在所述服務上,接收對所述活動流狀態(tài)的請求并提供作為響應的狀態(tài)信息。
20.一種或多種具有計算機可執(zhí)行指令的計算機可讀介質,其特征在于,所述指令用于執(zhí)行如權利要求19所述的方法。
21.如權利要求19所述的方法,其特征在于,所述服務被實現(xiàn)為web服務。
22.如權利要求19所述的方法,其特征在于,所述客戶機程序經(jīng)基于SOAP協(xié)議與所述服務交互。
23.如權利要求19所述的方法,其特征在于,所述服務是客戶機不可知的。
24.如權利要求19所述的方法,其特征在于,所述選項列表是基于行動者身份和所存儲約束而提供的一可用動作列表。
25.如權利要求19所述的方法,其特征在于,所述選項列表是基于行動者身份和所存儲約束而提供的一可用目標行動者列表。
26.如權利要求19所述的方法,其特征在于,所述選項列表是基于轉移動作的行動中的目標行動者而提供的一可用目標行動者列表。
27.如權利要求19所述的方法,其特征在于,所述來自所述客戶機程序對例示所述動作的請求在所述活動流的執(zhí)行時間接收。
28.一種完成文檔的工作流處理的方法,其特征在于,所述方法包括起動一活動流,其中所述活動流將與所述文檔相關聯(lián)的多個任務分配給多個行動者;以及響應于所述行動者在任務上的動作,更新所述活動流的狀態(tài)。
29.如權利要求28所述的方法,其特征在于,所述例示響應于以電子形式接收所述文檔查看者的指示而執(zhí)行,其中所述行動者包括所述查看者。
30.如權利要求28所述的方法,其特征在于,還包括在將所述任務之外的任務分配給所述行動者之外的行動者之后,將電子郵件通知發(fā)送給與所述文檔有超鏈接的所述行動者。
31.如權利要求28所述的方法,其特征在于,還包括在將所述任務之外的任務分配給所述行動者之外的行動者之后,將電子郵件通知發(fā)送給與所述任務有超鏈接的所述行動者。
32.如權利要求28所述的方法,其特征在于,所述行動者的動作包括委托一任務。
33.如權利要求28所述的方法,其特征在于,所述行動者的動作包括升級一任務。
34.如權利要求28所述的方法,其特征在于,所述行動者的動作包括提供對所述文檔的許可。
35.如權利要求28所述的方法,其特征在于,所述行動者的動作包括提供對所述文檔的評論。
36.如權利要求28所述的方法,其特征在于,所示起動響應于接收包括發(fā)送給電子郵件別名用于起動所述活動流的所述附加文檔的電子郵件而起動。
全文摘要
自動化工作流服務系統(tǒng)可適應各種各樣的工作流情形。可向客戶機程序提供合成服務、約束服務和跟蹤服務。該合成服務可支持用于活動流的動作的客戶機導向的例示?;顒恿骺苫诨顒幽P汀⒃谔卦O基礎上構建、或兩者的組合。動作可在活動流的執(zhí)行時間被添加到活動流中。跟蹤服務可跟蹤來自和發(fā)往動作的消息。
文檔編號G06Q10/00GK101044498SQ200480003256
公開日2007年9月26日 申請日期2004年7月27日 優(yōu)先權日2003年12月19日
發(fā)明者I·阿茲孜, K·-K·翁, H·A·蒂耿 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
山阴县| 三亚市| 和龙市| 汉寿县| 柳江县| 德格县| 沅陵县| 平阴县| 长汀县| 嘉兴市| 全椒县| 南澳县| 溆浦县| 龙海市| 新安县| 永丰县| 新蔡县| 六安市| 扶绥县| 沾化县| 酉阳| 武邑县| 武隆县| 正定县| 泸水县| 迁西县| 天津市| 岗巴县| 丰台区| 青河县| 平安县| 淳安县| 南乐县| 龙海市| 视频| 阜宁县| 特克斯县| 凭祥市| 宜昌市| 汤阴县| 高邮市|