專利名稱:配置作業的屬性的方法和系統的制作方法
技術領域:
本發明涉及在工作流處理系統中定義和使用屬性的領域,更具體地說,涉及用于簡化在工作流處理系統中定義作業屬性的用戶交互的方法和結構。
背景技術:
工作流處理系統通常根據工作流模型或作業類型來處理作業。可以通過一個或多個階段的序列來處理作業,每個階段可以包括一個或多個過程,每個過程可以包括一個或多個步驟。將輸入施加到各個階段、過程和步驟,并可從各個階段、過程和步驟生成相應的輸出。工作流模型或作業類型定義了適于處理特定種類作業的階段、過程和步驟的特定序列。美國專利申請No.BLD9-2006-0003-US1提供了具有顯著客戶可配置性的一個示例性工作流處理系統,以便更靈活地定義作業和關聯的工作流模型。
在此類工作流處理系統中,很常見的是,特定作業和/或工作流模型可以包括大量的定義處理作業的各方面的參數或屬性。很常見的是,可以根據數以百計(如果不是數以千計)的作業屬性或參數來定義復雜的作業。工作流系統的用戶必須配置這些眾多屬性中的每個屬性,以便工作流處理系統可以正確地處理作業。
在當前的工作流處理系統中,在呈現要由用戶定義的大量作業屬性方面將出現第一個問題。組織如此大量的屬性本身就是個問題。當前的技術只是呈現要定義的作業屬性的線性列表,在某些情況下按照名稱或其他ID以字母順序排序。用戶必須按照該順序瀏覽各個屬性中的每個屬性,并且更改任何對正確配置關聯作業的處理所必需的屬性值。此外,在定義屬性值以配置特定作業的工作流處理中的大量手動人工處理非常容易出錯。雖然向用戶呈現了大量合理的默認值,但是實際所需的值可能取決于具有多種因素的復雜函數,所述因素不僅與作業本身有關,而且還與工作流處理系統的各方面、將在其中處理作業的環境,以及可能在作業通過工作流處理系統時更改的其他動態因素有關。為作業屬性確定和定義如此復雜的值增加了人工出錯以及因此不正確的作業處理的機會。
從上述討論很明顯的是,需要一種改進的系統和方法,其允許更好的用戶交互來呈現屬性以便用戶進行配置,并且還允許更靈活多樣地定義作業的屬性值。
發明內容
通過用于提高在工作流處理系統中定義作業的屬性值的容易程度和靈活性的方法、關聯系統和裝置,本發明解決了上述和其他相關的問題。將按照作業屬性與用于處理作業類型的工作流模型的各種元素的關系來分組或組織的作業屬性呈現給用戶。此外,可以根據使用作業屬性的工作流模型的元素和/或根據涉及各種作業屬性和其他參數的函數的動態計算來靈活地定義作業屬性的默認值。
本發明的一個方面提供了一種用于配置作業的屬性以便在工作流處理系統中處理所述作業的方法。所述方法包括向用戶呈現所述作業的屬性,其中根據與在所述工作流處理系統中執行所述作業關聯的工作流模型的各方面來對所述作業屬性分組。所述方法還包括根據用戶輸入來生成所述作業的屬性的屬性值。
本發明的另一個方面提供了一種根據多個屬性在工作流處理系統中處理作業的方法。所述方法包括在與要處理的作業關聯的數據庫中定義作業的屬性值,其中根據定義用于處理所述作業的順序步驟的工作流模型來對所述多個屬性分組。所述方法還包括在與處理所述作業的步驟關聯的所有組件間共享所述數據庫中的屬性值。
本發明可以包括下面描述的其他示例性實施例。
相同的標號表示所有附圖中的相同元素,這些附圖是圖1是根據本發明的特征和方面增強以實現改進的用戶交互來配置作業屬性的示意性工作流處理系統的方塊圖;圖2和3是描述了根據本發明的特征和方面以改進在工作流處理系統中定義作業屬性值的用戶交互和靈活性的示意性方法的流程圖;以及圖4是適于處理包含計算機程序產品的計算機可讀介質的系統的方塊圖,所述計算機程序產品實現根據本發明的特征和方面的方法以使用串行化和解串行化技術來遷移數據庫。
具體實施例方式
圖1到4以及以下描述示出了本發明的特定示例性實施例以教導本領域的技術人員如何實施和使用本發明。出于此教導的目的,簡化或忽略了本發明的一些常規方面。本領域的技術人員將理解來自這些實施例的落入本發明的范圍內的變型。本領域的技術人員將理解,可以以各種方式組合以下描述的特征以形成本發明的多個變型。因此,本發明不限于以下描述的特定實施例,而僅由權利要求及其等同物來限制。
圖1是根據本發明的特征和方面增強的工作流處理系統100的方塊圖。此類工作流處理系統100的示例是美國專利申請No.BLD9-2006-0003-US1中披露的系統體系結構。此類工作流處理系統1 00使用集成的工作流數據庫102來存儲所有與要由系統執行的作業108以及工作流模型112有關的信息(如作業類型),所述工作流模型112定義了要執行的階段、過程和步驟的特定序列以便執行相應類型的作業。工作流處理系統100根據相應工作流模型112定義的階段、過程和步驟的序列來執行作業108。工作流模型112定義的各種步驟可以調用工作流處理系統100中或與工作流處理系統100關聯的大量其他處理組件104。例如,在打印環境的上下文中,工作流處理系統100可以根據相應的工作流模型112來處理打印作業108。作業處理組件104可以包括處理打印作業中使用的各種元素,例如,包括轉換組件、光柵化組件、格式化組件、打印引擎組件、后處理組件等。本領域的技術人員將很容易地認識到,作業處理組件104可以如圖1所示緊密集成在工作流處理系統100中,或者可以是單獨的和不同的元件。各個組件104和工作流處理系統100優選地共享對集成工作流數據庫102中的信息的訪問。
如上所述,每個作業108都包括關聯的多個作業屬性110。手動配置大量此類作業屬性(編號可能是數以百計,如果不是數以千計的話)的復雜性是此類工作流處理系統中現存的問題。根據本發明的特征和方面,作業屬性管理元素106提供了增強的能力以改進在工作流處理系統100中配置和使用作業屬性。
如上所述,在作業屬性管理元素106中由本發明的特征和方面提供的第一個主要改進是呈現根據與作業關聯的工作流模型的各方面來分組或組織的多個作業屬性。如在本文中的別處描述的和在美國專利申請No.BLD9-2006-0003-US1中更充分討論的,工作流模型將對相應類型作業的處理定義為一個或多個階段的序列,每個階段包括一個或多個過程,每個過程包括一個或多個步驟。此類工作流模型通常從預定義的模板來構建以允許用戶更簡單地生成和配置工作流模型。因此,根據本發明的特征和方面,向用戶呈現根據屬性與之相關的工作流模型階段、過程和/或步驟來定義和分組的作業屬性。與任何特定階段、過程和/或步驟不同,可以使其他屬性更全面地與作業本身相關。進而,本領域的技術人員將認識到,可以將單個屬性與多個此類分組關聯。例如,可以將特定屬性與多個步驟以及相應的階段關聯。或者,例如,可以在多個階段中使用單個步驟,因此可以為多個不同階段中的相同步驟定義作業屬性。這樣,向用戶呈現要定義的所有作業屬性(根據屬性與之相關的工作流處理元素來分組)通過闡明屬性與何種特性相關而簡化了用戶的任務。
更進一步地,根據本發明的特征和方面,作業屬性管理106可以確定一個或多個與作業關聯的屬性的默認值。根據本發明的特征和方面增強了默認值的確定以允許根據多種因素更靈活地確定此類默認值。在一個方面中,作業屬性管理106可以根據使用關聯的作業屬性的工作流模型模板來確定默認值。然后,工作流處理中的步驟的特定實例和/或作業類型或用于定義工作流模型的其他更高層級的模板可以取代如此確定的默認值(如果有)。更進一步地,用戶輸入可以取代所述默認值。此外,可以根據與其中工作流處理系統正在運行的環境的各方面關聯的可計算函數來動態地確定默認值。隨著作業執行的進行,系統的各種環境方面可以動態地改變。例如,工作流處理系統100中使用的服務器節點數可以動態地改變,或者正在執行的當前作業數可以隨系統的進行而改變。工作流處理系統100中各種其他作業處理組件104的數量或可用性也可以隨作業的執行而動態地改變。可以在用于計算相應作業屬性的默認值的函數中考慮任何數量的此類動態的、變化的環境值。屬性值的動態計算還可以根據已定義的其他作業屬性的值。進一步地,所述動態計算可以涉及動態的句法符號替換功能以動態地確定要在計算默認值時使用的函數。這樣,可以根據工作流處理系統100的環境方面及其執行一個或多個作業108的進度來動態地改變函數本身。將在下面進一步討論這些和其他確定技術。
本領域的技術人員將容易地認識到,圖1只是旨在建議一種包含本發明的特征和方面的示例性系統體系結構。具體地說,本領域的技術人員將容易地認識到,工作流處理系統100可以包括任意數量的計算節點,使得處理和工作負荷可以分布在任意數量的此類計算設備中。同樣,如本領域中所公知的,工作流處理數據庫102可以直接連接到工作流處理系統100或者可以使用網絡存儲體系結構功能來實現。數據庫102的存儲也可以集中或分布在整個企業中。因此,對本領域的技術人員來說,作為典型的設計選擇問題,集中或分布存儲在工作流數據庫102內的數據的體系結構和/或工作流處理系統100執行的計算是公知的。
圖2是廣泛描述根據本發明的特征和方面的改進工作流處理系統中的作業屬性管理和利用的方法的流程圖。在圖2的方法開始和繼續處理作業時,可以在與工作流處理系統關聯的任何適合的計算節點中執行所述方法。元素200首先用于確定作業的每個屬性的默認值(如果有)并將確定的默認值存儲在屬性數據庫中以供本發明的其他方面后續利用。元素202然后用于根據作業屬性與用于執行作業的相應工作流模型的各方面的相應關系來將作業屬性分組。此外,元素202用于將分組的作業屬性呈現給用戶以允許用戶輸入取代任何確定的默認值。接著,元素204用于從任何適當的用戶輸入設備(如,語音輸入、鍵盤輸入、指點設備輸入等)接收用戶輸入。用戶可以在開始作業執行之前更改或取代默認值。定義了每個屬性的當前默認值并如所指示的將呈現給用戶的作業屬性分組后,用戶可以更容易地標識需要更改的作業屬性并輸入任何修改的默認值。最后,元素206接著用于根據屬性數據庫中當前設置的作業屬性值并按照工作流模型對階段、過程和步驟的定義來執行作業。如上所述和下面進一步討論的,可以根據工作流處理系統的當前操作環境參數來動態地確定某些作業屬性值。這樣,元素206的處理還可以包括在作業執行中初次使用屬性值時動態地計算該屬性值。因此,將隨作業執行的繼續而動態地確定的作業屬性默認值可以在恰好使用該屬性之前在作業執行期間被重新計算。
如上所述,圖2的處理優選地將所有作業屬性和相應默認值存儲在作業屬性數據庫中。如圖1所示,作業屬性數據庫可以簡單地實現為集成工作流數據庫中的表,或者作為一種設計選擇問題,可以實現為單獨的數據庫。在一個方面中,可以使用屬性名稱將屬性與在特定階段、過程和步驟的特定工作流模型中執行的特定作業相關聯。為了隱藏所有此類結構,可以提供簡單的訪問方法以通過提供屬性名稱和值來設置屬性值。還可以提供通過提供屬性名稱獲取屬性的相應訪問方法。所述獲取屬性值方法可以例如動態地計算當前屬性值,其中將屬性值定義為工組流處理系統的其他參數或屬性的函數。對本領域的技術人員來說,作為一種設計選擇問題,用于將屬性值存儲在此類數據庫中和訪問屬性值的結構和相關方法將是顯而易見的。
圖3是提供了圖2的元素200的處理的其他示例性詳細信息的流程圖。如上所述,圖2的元素200可用于確定作業的每個屬性的默認值(如果有)。圖3提供了根據本發明的特征和方面來靈活地定義作業屬性的默認值的特定技術的其他示例性詳細信息。通常,可以由與各個階段、過程和步驟關聯的模板來定義作業屬性,所述模板包括與處理特定作業關聯的工作流模型。可以使用來自此類模板的默認值以便可以建立分層結構,由此特定作業類型模板屬性的默認屬性值可以取代屬性的特定步驟默認值,而用戶輸入或作業特定屬性值又可以取代所述默認屬性值。進而,如上所述,屬性默認值可以定義為其他屬性值和其中工作流處理正在執行特定作業的環境的其他方面的函數。進一步地,此類函數可以包括動態定義函數本身(通過對對定義默認值計算的函數執行符號替換)。因此,默認值計算函數本身可以被動態地定義。進一步地,還可以通過這些不同特征的組合來定義任何特定作業屬性的默認值。對本領域的技術人員來說,組合此類特征以便確定默認值的技術和結構是顯而易見的。
元素300-308描述了根據與執行特定作業關聯的工作流模型的各方面來確定默認值的處理。如上所述,工作流模型定義了用于執行特定關聯的作業類型的階段、過程和步驟的序列。可以通過為可用階段、過程和步驟配置預定義模板的實例來定義工作流模型。每個此類模板可以定義與相應工作流模型元素關聯的作業屬性的默認值。因此,元素300首先用于根據從其生成作業屬性的工作流模型模板來確定特定作業屬性的默認值。使用的模板可以是定義工作流模型所用的步驟模板,過程模板和/或階段模板。然后,通過處理元素302(其中在工作流模型中定義了特定步驟、過程或階段的特定實例),可以取代如此確定的默認屬性值。如上所述,任何特定步驟可以在某一特定階段中被多次實例化,或在不同階段或過程中被多次實例化。這樣,由特定步驟模板確定的默認值可以被工作流模型中的步驟的特定實例所取代。通過處理元素300和302至此確定的默認值可以進一步被與整個作業類型或工作流模型關聯的模板所取代。因此,元素304表示可以取代由工作流模型的較低分層方面確定的默認值的下一分層。進一步地,根據特定于執行的特定作業的各方面,元素306可用于取代由元素300-304至此確定的任何默認屬性值。因此,元素300-306可以根據預定義的默認值(可以在工作流模型的各方面中分層定義)和/或要執行的特定作業來確定任何作業屬性的默認屬性值。
可以將如此確定的任何默認值存儲在屬性數據庫中以供工作流處理系統將來訪問和處理。元素308然后指示可以為作業的所有屬性(可以為其確定默認值)重復步驟300-306。
本領域的技術人員將容易地認識到與作業屬性關聯的數據庫結構以指示與此類元素的特定階段、過程、步驟、作業類型或特定實例的屬性關系。例如,屬性數據庫可以包括多個表項,每個表項根據可以彼此取代的元素的此分層模型定義了特定作業屬性的可能默認屬性值。因此,元素300-308的處理根據此類多個默認值的分層取代來計算默認值(如果有)。
元素320-324表示根據與執行特定作業的工作流處理系統的環境關聯的動態計算來確定作業屬性默認值的處理。通常,作業屬性默認值可以定義為其他作業屬性值或執行一個或多個作業的工作流處理系統的環境的任何其他方面的函數。此類函數可以例如引用特定作業的其他作業屬性的屬性值。這樣,元素320首先用于遞歸地使用此方法來確定在此函數中引用的作業屬性值的當前值或默認值以確定作業屬性默認值。此類遞歸編程技術是本領的技術人員公知的。接著,元素322在用于確定作業屬性的默認值或當前值的函數中執行句法符號替換。如所指出的,用于確定默認值的函數可以引用其他屬性值或與工作流處理系統的操作關聯的環境參數。通過對其他屬性的名稱的句法引用或保留的關鍵字變量(用于引用操作工作流處理系統的特定屬性或參數的當前值),可以指示對其他屬性或參數值的引用。這樣,元素322搜索針對此類句法引用求值的函數,并使用相應的當前值替換此類引用。然后,元素324使用指定的函數計算屬性的默認值或當前值。如所指出的,遞歸調用元素320-324的方法可用于完整地對任何函數的當前值求值,與對其他屬性或參數值的引用的數量無關。本領域的技術人員將容易地認識到編程技術以避免根據此類對其他屬性或參數值的間接引用進行無限循環計算。
本領域的技術人員將容易地認識到用于組織、呈現和確定工作流處理系統中的作業屬性的當前值或默認值的大量等同方法。圖2和3的方法以及圖1的結構因此僅旨在作為本發明的特征和方面的一個可能實施例的示例。
本發明的實施例可以采取完全硬件實施例、完全軟件實施例或同時包含硬件和軟件元素的實施例的形式。在優選實施例中,本發明以軟件實現,所述軟件包括但不限于固件、駐留軟件、微代碼等。圖4是示出作為數據處理設備的數據處理系統401的方塊圖,所述數據處理設備適于通過執行編程的指令并訪問存儲在計算機可讀存儲介質412中的數據來提供本發明的特征和方面。
此外,本發明可以采取可從計算機可用或計算機可讀介質412訪問的計算機程序產品的形式,所述計算機可用或計算機可讀介質412提供了可以被計算機或任何指令執行系統使用或與計算機或任何指令執行系統結合的程序代碼。出于在此說明的目的,計算機可用或計算機可讀介質可以是任何能夠包含、存儲、傳送、傳播或傳輸由指令執行系統、裝置或設備使用或與所述指令執行系統、裝置或設備結合的程序的裝置。
所述介質可以是電、磁、光、電磁、紅外線或半導體系統(或裝置或設備)或傳播介質。計算機可讀介質的實例包括半導體或固態存儲器、磁帶、可移動計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當前實例包括光盤-只讀存儲器(CD-ROM)、光盤-讀/寫(CR-R/W)和DYD。
適合于存儲和/或執行程序代碼的數據處理系統將包括至少一個通過系統總線450直接或間接連接到存儲器元件402的處理器400。所述存儲器元件可以包括在程序代碼的實際執行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時存儲以減少必須在執行期間從大容量存儲裝置檢索代碼的次數的高速緩沖存儲器。
輸入/輸出或I/O設備404(包括但不限于鍵盤、顯示器、指點設備等)可以直接或通過中間I/O控制器與系統相連。網絡適配器接口406也可以被連接到系統,以使所述數據處理系統能夠通過中間專用或公共網絡變得與其他數據處理系統或存儲設備相連。調制解調器、電纜調制解調器、IBM通道附件、SCSI、光纖通道以及以太網卡只是少數幾種當前可用的網絡或主機接口適配器類型。
雖然在此描述了特定實施例,但是本發明的范圍并不限于這些特定實施例。本發明的范圍將由以下權利要求及其任何等同物來定義。
權利要求
1.一種用于配置作業的屬性以便在工作流處理系統中處理所述作業的方法,所述方法包括向用戶呈現所述作業的屬性,其中根據與在所述工作流處理系統中執行所述作業關聯的工作流模型的各方面來對所述作業屬性分組;以及根據用戶輸入來生成所述作業的屬性的屬性值。
2.根據權利要求1的方法,其中所述工作流模型將對所述作業的處理定義為由一個或多個階段組成的序列,每個階段包括一個或多個過程,每個過程包括一個或多個步驟,并且其中所述呈現步驟還包括將與每個階段相關的屬性分組以便呈現;將與每個階段的每個過程相關的屬性分組以便呈現;以及將與每個階段的每個過程的每個步驟相關的屬性分組以便呈現。
3.根據權利要求2的方法,其中所述作業的屬性與所述工作流模型的多個步驟、過程和/或階段相關,并且被與所述屬性與之相關的所述多個步驟、過程和/或階段中的每個步驟、過程和/或階段一起分組以便呈現。
4.根據權利要求2的方法,還包括為所述作業的一個或多個屬性提供默認值,其中所述提供步驟還包括根據所述屬性與之相關的步驟來提供步驟默認值;如果作業類型默認值不同于步驟默認值,則根據所述屬性與之相關的作業類型使用所述作業類型默認值來取代所述步驟默認值;以及如果作業特定的默認值不同于所述步驟默認值或不同于作業類型默認值,則根據所述屬性與之相關的特定作業使用所述作業特定的默認值來取代所述步驟默認值和任何所述作業類型默認值。
5.根據權利要求4的方法,其中每個步驟派生自關聯的步驟模板,并且步驟模板可用于在工作流模型中派生步驟的多個實例,其中可以為派生自步驟模板的步驟的多個實例中的每個實例定義不同的步驟默認值,并且其中所述提供步驟默認值的步驟還包括根據所述屬性與之相關的步驟的所述實例來提供步驟默認值。
6.根據權利要求1的方法,其中所述生成步驟還包括作為其中執行所述作業的環境的當前狀態的函數來計算屬性的默認值。
7.根據權利要求6的方法,其中所述計算步驟還包括通過函數模板中符號的符號替換來動態地確定要計算的函數以由此生成要計算的函數。
8.一種根據多個屬性在工作流處理系統中處理作業的方法,所述方法包括在與要處理的作業關聯的數據庫中定義作業的屬性值,其中根據定義處理所述作業的順序步驟的工作流模型來對所述多個屬性分組;以及在與處理所述作業的步驟關聯的所有組件間共享所述數據庫中的所有屬性值。
9.根據權利要求8的方法,其中所述工作流模型將對所述作業的處理定義為由一個或多個階段組成的序列,每個階段包括一個或多個過程,每個過程包括一個或多個步驟,并且其中所述定義步驟還包括定義與每個階段相關的一組屬性的屬性值;定義與每個階段的每個過程相關的一組屬性的屬性值;以及定義與每個階段的每個過程的每個步驟相關的一組屬性的屬性值。
10.根據權利要求9的方法,其中所述定義步驟還包括接收用于定義所述屬性組的屬性值的用戶輸入。
11.根據權利要求8的方法,其中所述定義步驟還包括作為其中執行所述作業的環境的當前狀態的函數來動態地確定多個屬性中的每個屬性的值。
12.根據權利要求11的方法,其中所述動態地確定的步驟還包括通過函數模板中符號的符號替換來動態地確定要計算的函數以由此生成確定所述值的函數。
13.一種可在工作流處理系統中運行以便根據與作業關聯的多個屬性來處理所述作業的計算機程序產品,所述計算機程序產品包括計算機可讀介質,所述計算機可讀介質包含計算機可讀程序,其中當在工作流處理系統上執行所述計算機可讀程序時,將導致所述工作流處理系統執行根據權利要求1-12中的任一權利要求的方法。
全文摘要
一種提高在工作流處理系統中定義作業的屬性值的容易程度和靈活性的方法、系統和裝置。將按照作業屬性與用于處理作業類型的工作流模型的各種元素的關系來分組或組織的作業屬性呈現給用戶。此外,可以根據使用作業屬性的工作流模型的元素和/或根據涉及各種作業屬性和其他參數的函數的動態計算來靈活地定義作業屬性的默認值。
文檔編號G06Q10/00GK101051368SQ20071009107
公開日2007年10月10日 申請日期2007年4月6日 優先權日2006年4月7日
發明者D·R·帕爾默, K·P·曼寧, E·M·西格萊爾, J·E·雅恩, S·P·瓊斯, L·S·利貝爾特, M·M·瓦利 申請人:國際商業機器公司