新四季網

工作流上的對象模型的製作方法

2023-05-23 17:34:06

專利名稱:工作流上的對象模型的製作方法
工作流上的對象模型 背景
通常,現在企業所採用的所有軟體都支持業務流程。有些這樣的流程僅依 靠應用程式之間的通信,是完全自動化的,而其它則依靠人們啟動該流程,批 準該流程所使用的文檔、解決出現的任何例外情形,等等。不管在哪種情況下, 指定被稱為工作流的一系列離散的步驟是常見的做法,該工作流描述了流程中 所涉及的人和軟體的活動。 一旦定義了這樣的工作流,則可圍繞該定義建立應 用程序以支持業務流程。
換言之,工作流通常是在這種組織中的信息和控制流。為了有效地競爭, 企業不斷努力定義、記錄並精簡這樣的流程。在企業環境中,這些流程包括銷 售和訂單處理、採購任務、庫存控制和管理、製造和生產控制、發貨和驗貨、 應付帳款等。
計算機系統和相關聯的軟體現在提供企業和其它組織可以用於改進他們 的工作流的工具。軟體工具可以用來對業務工作流流程或進度表建模並標識效 率不高的地方和可能的改進。另外,當一流程涉及在人員、部門、車間、或甚 至獨立的公司之間交換數據時,計算機系統和網絡可以用來實現這些交換。這 樣的系統和軟體工具還能夠實現通常與業務相關信息相關聯的大規模計算和 其它數據或信息處理。
因此,工作流管理包括對一組織的業務流程中的信息流動和控制進行有效 管理,其中這種信息處理的自動化導致了現代商業界中的許多有效改進。而且, 工作流管理的這種自動化現在正允許企業和其他組織通過在包括諸如網際網路 等全球計算機網絡的計算機系統中執行工作流事務來進一步改進績效。
一個典型的基於工作流的應用程式常常需要滿足多個條件。例如, 一個這 樣的條件是基於業務規則作出決策的能力。這可以包括簡單規則(例如,就像 基於信用檢查的結果做出的是或否的決定),以及更複雜的規則(例如,必須 對可能的大型標的進行評估以作出初步擔保決定)。另外的要求是與工作流外的其它軟體和其它系統進行通信。例如,初始請求可以從應用程式的一部分接
收到,而其它方面(例如,聯繫信用服務)可以要求使用其它Web服務或技
術進行的通信。需要滿足的另一條件是工作流與用戶的適當交互。例如,工作 流應該通常能夠顯示用戶界面本身或通過其它軟體與人們交互。此外,另一個 需要滿足的條件是維持整個工作流生命周期中的狀態的能力。因此,對在軟體 中創建和執行工作流提出了獨特的挑戰。
例如,某些業務流程可能需要數小時、數天、或數星期來完成,並且在這 樣的時間長度內維持關於工作流當前狀態的信息是高要求的。此外,這樣一種 長時間運行的工作流還通常將以非阻斷方式與其它軟體通信,並且異步通信會 有困難。與此同時,儘管對軟體中的固定交互的建模是相對直接的,但消費者 往往會不斷要求額外的靈活性,例如在進行中改變業務流程的能力。處理不同 的應用程式還會進一步增加工作流創建和管理中所涉及的複雜度。
許多用於工作流工具的應用程式是在企業或組織的內部的。隨著具有調製 解調器或其它類型的通信鏈路的聯網計算機的到來,在遠程位置處的計算系統 現在可以彼此方便地通信。這種增強的通信允許在一個公司的遠程設備之間使 用計算系統工作流應用程式。 一個示例可以包括向異地銷售辦公室轉發來自公 司總部的一個客戶訂單以供合適的銷售人員來驗證並將驗證返回給總部。工作 流應用程式還可以具有處理不同公司之間的業務往來的特定用途。在一典型的 應用中,具有買方一賣方關係的兩個公司可能希望自動化對採購訂單、產品運 輸、帳單和託收的生成和處理。
例如,針對一個專門問題的應用程式(例如客戶關係管理(CRM)或一個 例如金融服務的特定垂直市場)可以圍繞工作流來構建。這種類型的應用程式 通常實現多個不同業務流程。在諸如Windows Workflow Foundation等常見的 工作流基礎上構建驅動那些流程的邏輯可以使得應用程式能更快地建立、更快 地改變、以及更容易定製。此外,這種流程的自動化可以帶來本來是不可能的 顯著的效率上的改進。然而,這種對工作流技術的公司間應用需要公司之間的 合作以及單個公司的現有計算機系統和應用程式的適當接口和適當的持久服
務實現。
到目前為止,已開發的工作流應用程式工具通過定義工作流進度表來提供自動化業務工作流的某些能力。然而,進一步建立在問題空間(企業/流程域) 內找到的以及那些在解決方案中所採用的(實際工作流模型/定義)對象之間的
更高程度的同構的能力是煩累的,並且仍然被認為是對高質量軟體的重要要求。
因此,需要克服與常規系統和設備相關聯的上述示例性缺陷。
概述
以下展示了簡化的概述,以便提供對所請求保護的主題的某些方面的基本 理解。本概述並不是詳盡的概要。它並非意在確定所請求保護的主題的關鍵/ 重要特徵,也並非意在對所請求保護的主題的範圍進行劃界。其唯一目的是以 簡化的形式作為接下來要被展示的更詳細的描述的前序來展示一些概念。
本發明提供通過提供對工作流實例的宿主訪問的訪問組件(例如,
GetWorkflow〈workflow〉方法)來對象化工作流和管理行為的意圖的系統和方 法,其中可定義自定義特徵以用於運行時的交互。這種自定義特徵(例如,強 類型工作流)可包括一個或多個特性、 一種或多種方法、 一個或多個事件、一 接口等。而且,本發明提供正從工作流定義中創建的工作流實例,並且通常不 是圍繞該實際工作流實例對象的代理、外表、包裝。由此,實際的工作流實例 可直接被訪問。所以,工作流可被展示為對象類型或類,其中新成員可被添加 並且該工作流可被擴展。這提供了靈活性並且允許用戶與自定義特性交互。
在一相關方面,自定義方法和特性可在宿主與工作流實例之間的數據交換 期間被調用。宿主可與工作流示例進行交互以將自定義行為與工作流類相關 聯。例如,宿主可訂閱自定義事件以訪問這種工作流實例,並且將工作流作為 對象來操控。可通過編程和/或通過可視工具來定義各種類型的工作流。
根據本發明的方法,可從基本工作流定義中定義具有自定義特性、自定義 方法、自定義事件等的新的工作流定義。此外,宿主應用程式能通過與工作流 實例相關聯的標識來向工作流提供者請求工作流實例。這種標識唯一地標識了 工作流的實例並且可通過編程來生成或者由宿主應用程式分配/訪問。工作流提 供者可生成/返回工作流的一個實例,並且用戶可以通過調用諸如特性、方法、 事件等類成員來與該實例交互。隨後,當完成這種交互時,該工作流實例可被保存。
為了實現上述以及相關的目的,此處結合以下的描述以及附圖來描述所請 求保護的主題的某些說明性方面。這些方面指示了可實踐本主題的各種方式, 所有這些方面意在落入所請求保護的主題的範圍內。當結合附圖考慮時,其它 優點和新穎的特徵將從以下的詳細描述中變得明顯。
附圖簡述
圖l示出用於為工作流定義自定義特徵的通過訪問組件與工作流交互的宿 主應用程式的示例性系統圖示。
圖2示出在基本工作流定義之上構建的自定義特徵。 圖3示出宿主應用程式與工作流實例交互的框圖,其中可在基類之上構建 自定義特徵。
圖4示出採用具有自定義特性的工作流類型的示例性方法。 圖5示出根據本發明的一個特定方面的各進程之間的信息流動的示例性序 列圖示。
圖6示出保存工作流實例的示例性方法。 圖7示出加載工作流實例的示例性方法。
圖8示出根據本發明的一個示例性方面的宿主與工作流之間的數據交換的 又一個方法。
圖9示出用於實現本發明的各方面的示例性環境。


圖10是根據本發明的一個方面的可被用來豐富工作流的額外的計算環境 的示意性框圖。
詳細描述
現在參考附圖描述本發明主題的各方面,在所有附圖中,相同的標號表示 相同或對應的元素。然而,應該理解,附圖和與其有關的詳細描述並非意在將 所請求保護的主題限於所公開的具體形式。相反,意在涵蓋落入所請求保護的 主題的精神和範圍之內的所有修改、等效技術方案以及替換技術方案。
如此處所使用的,術語"組件"、"系統"、"服務"等意在指的是計算機相關的實體,其或者是硬體、硬體和軟體的組合、軟體、或執行中的軟體。 例如,組件可以是,但不限於,在處理器上運行的進程、處理器、對象、f5T執 行l碼、執行的線程、程序、和/或計算機。作為說明,在計算機上運行的應用程 序和計算機兩者可以是組件。 一個或多個組件可駐留在進程和/或執行的線程 內,並且組件可位於一臺計算機上和/或分布在兩臺或更多的計算機之間。
術語"示例性"在此處用來表示作為示例、實例或說明。此處作為"示例 性"來描述的任何方面或設計並不必然被理解為相比其它方面或設計是優選或 有利的。
此外,所公開的主題可被實現為採用標準編程和/或工程技術來生產軟體、 固件、或它們的任何組合來控制計算機或基於處理器的設備以實現此處所詳述 的各方面的系統、方法、裝置或製品。此處使用的術語"電腦程式"意在包 含可從任何計算機可讀設備、載體或介質中訪問的電腦程式。例如,計算機 可讀介質可包括但不限於磁存儲設備(例如,硬碟、軟盤、磁帶......)、光碟
(例如,壓縮盤(CD)、數字多功能盤(DVD)......)、智慧卡和快閃記憶體設備
(例如,卡、棒)。另外,應該意識到,可使用載波來承載諸如那些在發送和 接收電子郵件或在訪問諸如網際網路或區域網(LAN)等網絡時所使用的計算機 可讀電子數據。當然,本領域的技術人員將認識到,在不背離所請求保護的主 題的範圍或精神的情況下可對該配置做出許多修改。
首先轉到圖l,示出了用於工作流系統130的框圖,該工作流系統向宿主 110提供對工作流實例的訪問,其中可定義自定義特徵以用於運行時的交互。 這種自定義特徵(例如,強類型工作流)可包括一個或多個方法、 一個或多個 事件、接口等。工作流可以對被定義為活動圖的人或系統流程建模。 一個活動 是工作流中的一個動作,並且是工作流的執行、重複使用和組成的單元。活動 圖表達規則、行動、狀態以及它們的關係。通常,工作流通過工作流引擎/運行 庫150來運行,並且根據如宿主IIO描述的幾個規則,工作流運行庫需要外部 的應用程式來主宿它。
宿主110通過提供對工作流實例的訪問的訪問組件120來與工作流系統 130交互,其中可定義自定義特徵以供運行時的交互。這種自定義特徵(例如, 強類型工作流)可包括一種或多種方法、 一個或多個事件、 一個或多個特性、
9接口等。因此,工作流可被展示為對象類型或類,其中可添加新的成員並擴展 工作流。這提供了靈活性並且允許用戶與自定義特性交互。
此外,如以下詳細描述的,通過這種訪問組件120,宿主110可與工作流
系統130的工作流實例交換數據。宿主IIO可以負責多個另外的且重要的方面, 例如一個或多個工作流的創建,為適當執行工作流所需要的各組件之間的調用 進行的調度;以及隔離機制的設置。此外,出於可縮放性的原因,宿主110可 以創建多個進程以便利用機器中的多個中央處理單元(CPU),或在機器農場 (farm)上運行大量工作流實例。宿主110還可以控制在工作流經歷長時間等 待時應用的策略、監聽特定的事件並將它們傳達給用戶或管理員、設置超時時 限和對每個工作流的重試、展示性能計數器、以及出於調試和診斷目的而寫日 志信息。
與工作流系統130相關聯的工作流可以通過為工作流與外界通信的目的而 專門建立的服務與外界通信,其中該服務可以引發事件,使得工作流內的事件 驅動活動將被掛鈎(hookup)。同樣,該服務展示供工作流調用並向宿主110 發送數據的公共方法。工作流可被定義成用於在計算機系統內執行的進度表的 形式。進度表可包括具有指定的並發性、依賴性以及與其相關聯的事務屬性的 一組動作。每個進度表具有相關聯的進度表狀態,其包括進度表的定義、在進 度表中的當前位置、以及與該進度表相關聯的活動或實況數據和對象。在進度 表內,事務邊界可基於動作的分組而存在。在這個方面,事務可包含個人動作、 或事務、或動作或事務的組。如以下進一步討論的,動作可被分組成按串行方 式執行的序列,以及其中能並發執行動作的任務。從而,基於分組,並發屬性 可被分解,以用於進度表內的動作和事務。
如圖1所示,訪問組件120可創建/檢索工作流實例並將其提供給宿主應用 程序以供進一步交互。訪問組件120可提供到工作流實例的句柄以供宿主110 來訪問特性、方法和事件。這樣,訪問組件120可提供工作流的一個實例,其 中該工作流實例是一種工作流類型的。
以下提供了訪問組件120的示例性定義,其中方法 GetWorkflow〈WorkflowType〉提供對運行中的工作流定義及其自定義特性、方 法和事件的訪問(例如,當工作流被閒置時)。對〈WorkflowType〉的基於類屬的機制的這一使用可通常幫助按類型安全的方式獲得強類型工作流定義。
public class InteractiveWorkflow
public event EventHandlei: Suspended,, public event EventHandler<EventArgs〉 Completed,'
public InteractiveWorkflow { }
public InteractiveWorkflow(Guid workflowlnstanceld〉 { }
public InteractiveWorkflow(Workflowlnstance workflowlnstance){}
public IRootActivity Workflow {get,' } public WorkflowSuspendType SuspendType { get} public string Interactionidentifier { get/ } public string UserName { get/ }
public WorkflowType GetWorkflow where WorkflowType : Activity
public void StartWorkflow{ }
public void ResumeWorkflow (string action){ }
public void Save { }
現在參考圖2,示出根據本發明的一個方面的從基本工作流定義210中創 建的新工作流定義220和自定義特性的框圖。該類型可以通過添加類成員來擴 展。通常,在這種框架中的主要構件塊是活動(Activity),該活動表示當關聯 的執行(Execute)方法被該框架調用時所執行的工作的一個或多個任務或單個 邏輯單元。每個活動可提供由特性、方法和事件組成的對象模型,其中該特性、 方法和事件可由開發者針對應用程式代碼進行編程(例如,類似於針對UI控
件和組件的編程)。存在各種不同的活動,並且本發明允許獨立方構建類似於 UI控制項等的自定義活動。
例如,該框架可定義一核心的活動基類集,以及少許特定的活動。這可包括StartActivity (開始活動)和StopActivity (停止活動)(表示工作流中的 開始點和停止點);CodeActivity (代碼活動)(允許工作流開發者實現與工 作流類型中的事件處理程序中的活動相關聯的功能);ControlFlowActivity (控 制流活動)(允許工作流開發者根據條件和規則將分支邏輯引入工作流); SuspendableActivity (可掛起活動)(允許工作流開發者或者按照時間或者通 過切換當前用戶來對工作流的執行中的掛起進行建模,例如,DelayActivity(延 遲活動)和SwitchUserActivity (切換用戶活動));InteractiveActivity (交互 式活動)(允許工作流開發者對用戶交互點進行建模,其中來自最終用戶的動 作決定工作流中的執行什麼時候以及如何進行下去),該InteractiveActivity可 被視為一種類型的SuspendableActivity,該活動將執行掛起直至執行了有效動 作;CompositeActivity (合成活動)(允許工作流開發者將活動合併在一起); LoopActivity (循環活動)(是CompositeActivity的一個示例,它重複其包含 的活動的執行);IMultiActionActivity (多動作活動接口)(一種被活動實 現的接口,這些活動支持多個動作並且要求在執行能繼續進行並且 InteractiveActivity能實現該接口之前選擇這些動作中的一個); IMuMResultActivity (多結果活動接口)(一種被活動實現的接口,這些活動 在它們的執行期間生成 一 組可能的結果中的 一 個結果)並且 ControlFlowActivity (控制流活動)實現這個接口; ISuspendableActivity (可掛 起活動接口)(一種由活動實現的接口,這些活動能為一組特定的等待條件掛 起工作流的執行)。
該工作流可通過執行所包含的StartActivity來啟動執行,並且當執行 StopActivity時結束。在執行過程中,可檢査每個活動以驗證它是否被執行。 如果由於活動在等待來自宿主的一些信息(例如,消息、定時器等)而使得活 動不能繼續執行,則工作流被(例如)掛起。如果活動可以被執行,則調用關 聯的Execute (執行)方法,並且如果該方法返回成功的結果,則使用適當的 活動事務來確定下一個活動。此外,工作流可出於數個理由在它們的生命周期
內被掛起,諸如取消活動的執行,由於活動在等待來自宿主的諸如消息、定 時器等一些信息而使得活動不能夠繼續執行,被引入來延長後續執行的特定延 遲,以及要求由不同用戶執行後續執行而進行的用戶上下文的切換。 一旦被掛起,該工作流實例可被串行化至從中可隨後檢索、解串行化以及恢復它的數據 庫或等效的存儲中。如果活動執行導致錯誤,且該錯誤沒有被處理,則工作流 還會進入錯誤狀態。
圖3示出宿主應用程式310與工作流實例330交互的框圖,其中可在基類 之上構建自定義特性320,其中數據傳入和傳出該工作流以形成交互式工作流。 在執行過程中,可檢查每個活動以驗證它是否能被執行。如果活動不能執行, 則工作流被(例如)掛起。如果活動可以被執行,則調用關聯的Execute方法, 並且如果該方法返回成功的結果,則使用適當的活動事務來確定下一個活動。 如所示,宿主應用程式310可與工作流實例330交換數據(例如,獲得數據)。 這允許工作流實例和宿主應用程式之間的受控/同步的數據交換,其中自定義方 法和特性可以被調用。由此,宿主應用程式310可與工作流實例交互以便將自 定義行為與工作流類相關聯。例如,宿主可訂閱自定義事件來訪問該工作流實 例,以便將工作流作為對象來操控。此外,可通過編程和/或通過可視工具來定 義工作流的豐富類型。
圖4示出根據本發明的一個示例性方面的採用自定義特徵和/或定義新的 工作流定義的相關方法。這種新的工作流定義可具有從基本工作流定義中定義 的自定義屬性、自定義方法、自定義事件等。儘管示例性方法在此處被示出並 描述為表示各種事件和/或動作的一系列框,但是本發明不受這種框所示出的順 序的限制。例如,除了此處所示出的順序之外,某些動作或事件可根據本發明 按不同順序發生和/或與其它動作或事件並發。另外,不是所有示出的框、事件 或動作都是實現根據本發明的方法所必需的。此外,將意識到,根據本發明的 示例性方法和其它方法可聯繫此處所示出和描述的方法以及沒有示出或描述 的其它系統和裝置來實現。首先,在410處,獲得工作流提供者,並且然後在 420處,宿主應用程式可通過與工作流實例相關聯的標識來向該工作流提供者 請求工作流實例。這種標識唯一地標識了工作流的實例並且可通過編程來生成 或由宿主應用程式分配而得。在步驟430處,執行驗證以檢查該工作流實例是 否存在。如果不存在,則在435處,該方法停止。
否則,該方法前進至動作440,其中該工作流提供者可生成該工作流的一 個實例。然後,宿主應用程式通過調用諸如特性、方法、事件等類成員(460)與該實例交互(450)。當完成這種交互,如以下所詳述的,保存該工作流進程。
圖5示出根據本發明的一個特定方面的進程之間的信息流動的示例性序列 圖示。首先,宿主應用程式可採用訪問組件(例如, GetWorkflow)來獲得工作流定義以及其自定義屬性、方法和 事件(例如,當工作流被閒置時)。對〈WorkflowType〉的基於類屬的機制的這 種使用可通常幫助按類型安全的方式獲得強類型工作流定義。自定義特徵(例 如,強類型工作流)可包括一種或多種方法、 一個或多個事件、 一個或多個特 性、接口等。因此,工作流可被展示為對象類型或類,在其中可添加新成員並 擴展工作流。這提供了靈活性並且允許用戶與自定義屬性交互。
工作流提供者510可創建/檢索工作流的實例,並且宿主應用程式可通過調 用諸如特性、方法、事件等類成員來與該實例交互。由此,基於工作流實例標 識(例如,ID號),工作流實例進而可被訪問(例如,通過宿主應用程式)。 宿主可通過其與工作流類型/類相關聯的自定義行為來與工作流實例進行交互。 例如,宿主可訂閱自定義事件來訪問該工作流實例,以便將該工作流作為對象 來操控。可通過編程和/或通過可視工具來定義工作流的豐富類型。
圖6示出與宿主應用程式進行數據交換期間加載工作流的實例的相關方法 600。如圖6所示,在610處,提供對存儲工作流實例表示的持久存儲的訪問。 隨後,在步驟620處,從對應的持久存儲中獲得該工作流實例狀態表示。在630 處,該表示可被轉換成工作流實例。接著,在640處,向宿主應用程式提供工 作流實例,其中宿主可通過其與工作流類型/類相關聯的自定義行為來與工作流
實例交互。例如,宿主可訂閱自定義事件來訪問該工作流實例,以便將該工作 流作為對象來操控。通過編程和/或通過可視工具可定義工作流的豐富類型。
類似地,如圖7所示,為了保存工作流的實例,在710處,獲得工作流實 例。隨後,在720處,生成作為該工作流實例的表示的工作流狀態。然後,在 725處,宿主應用程式可通過調用諸如特性、方法、事件等類成員來與該實例 交互。然後,在730處,與該交互/表示有關的數據可被保存到數據存儲和/或 持久服務實現中。由此,在740處,可引發工作流運行時保存事件,其中保存 和/或訪問該工作流實例。因此,本發明允許從基本工作流定義中定義具有自定義特性、自定義方法和自定義事件的新的工作流定義。
工作流提供者可創建/檢索工作流的實例,並且開發者可通過調用諸如特 性、方法、事件等類成員來與該實例交互。
圖8示出根據本發明的一個方面的訪問運行中的工作流的特定方法800。 首先,在810處,宿主應用程式可通過獲取工作流實例標識來訪問運行中的工 作流。隨後,在820處,可通過調用加載方法訪問該工作流實例,其中表格式 排列將工作流實例與關聯標識(ID)相對應。接著,在830處,宿主應用程式 可與工作流交互。在這種交互期間,且在840處,宿主可與工作流的類型的自 定義行為交互。例如,宿主可訂閱自定義事件來訪問該工作流實例,以便將該 工作流作為對象來操控。可通過編程和/或通過可視工具來定義工作流的豐富類 型。
為了為所公開的主題的各個方面提供上下文,圖9和圖10以及以下討論 意在提供對在其中實現所公開的主題的各個方面的合適環境的簡要、總體描 述。儘管以上主題是在運行於一個計算機和/或多個計算機上的電腦程式的計 算機可執行指令的一般上下文中描述的,但本領域的技術人員將認識到,本發 明還可結合其它程序模塊來實現。通常,程序模塊包括執行特定任務或實現特 定抽象數據類型的例程、程序、組件、數據結構等等。此外,本領域的技術人 員將意識到,本發明方法可用其它計算機系統配置來實現,這些配置包括單處 理器或多處理器計算機系統、小型計算設備、大型計算機以及個人計算機、手 持式計算設備(例如,個人數字助理(PDA)、電話、手錶......)、基於微處
理器或可編程消費類或工業電子產品等。所示出的方面還可在其中由通過通信 網絡連結的遠程處理器執行任務的分布式計算環境中實踐。然而,本發明的一 些(如果不是所有的)方面可在獨立的計算機上實踐。在分布式計算環境中, 程序模塊可位於本地和遠程存儲器儲存設備兩者上。
參考圖9,描述了用於實現本發明的各個方面的包括計算機912的示例性 環境910。計算機912包括處理單元914、系統存儲器916和系統總線918。系 統總線918將包括但不限於系統存儲器916的系統組件耦合至處理單元914。 處理單元914可以是各種可用處理器中的任何一種。雙微處理器以及其它多處 理器體系結構也可被用作處理單元914。系統總線918可以是幾種類型的總線結構中的任一種,包括採用任何種類 的可用總線體系結構的存儲器總線或存儲器控制器、外圍總線或外部總線、和 /或局部總線,該可用總線體系結構包括,但不限於,11位總線、工業標準體
繫結構(ISA)、微通道體系結構(MCA)、擴展型ISA (EISA)、智能驅動 器電子電路(IDE) 、 VESA局部總線(VLB)、外圍部件互聯(PCI)、通用 串行總線(USB)、高級圖形埠 (AGP)、個人計算機存儲器卡國際聯合會 總線(PCMCIA)以及小型計算機系統接口 (SCSI)。
系統存儲器916可包括易失性存儲器920和非易失性存儲器922。包含(例 如在啟動期間)在計算機912內的元件之間傳輸信息的基本例程的基本輸入/ 輸出系統(BIOS)存儲於非易失性存儲器922中。作為說明,而不是限制,非 易失性存儲器922可包括只讀存儲器(ROM)、可編程ROM (PROM)、電 可編程ROM (EPROM)、電可擦除ROM (EEPROM)或快閃記憶體。易失性存儲 器920包括隨機存取存儲器(RAM),其作為外部高速緩衝存儲器。作為說明, 而不是限制,RAM以多種形式可得,諸如同步RAM (SRAM)、動態RAM (DRAM)、同步DRAM (SDRAM)、雙數據率SDRAM (DDR SDRAM)、 增強型SDRAM (ESDRAM)、同步鏈環(Synchlink) DRAM (SLDRAM)以 及直接存儲器總線(Rambus) RAM (DRRAM)。
計算機912還包括可移動/不可移動、易失性/非易失性計算機存儲介質。 例如,圖9示出了盤存儲924。盤存儲924包括,但不限於,如磁碟驅動器、 軟盤驅動器、磁帶驅動器、Jaz驅動器、Zip驅動器、LS-100驅動器、快閃記憶體卡、 或記憶棒等設備。另外,盤存儲924可以包括與其它存儲介質分開或組合的存 儲介質,其包括,但不限於,諸如壓縮盤ROM設備(CD-ROM)、可記錄CD 驅動器(CD-R驅動器)、CD可重寫驅動器(CD-RW驅動器)或數字多功能 盤ROM驅動器(DVD-ROM)等光碟驅動器。為了方便盤存儲設備924與系 統總線918的連接,通常採用諸如接口 926等可移動或不可以動接口。
應該意識到,圖9描述了作為用戶與合適的操作環境910中所描述的基本 計算機資源之間的中介的軟體。這樣的軟體包括作業系統928。能存儲於盤存 儲924上的作業系統928用來控制並分配計算機系統912的資源。系統應用程 序930通過或是存儲於系統存儲器916或是存儲於盤存儲924上的程序模塊932和程序數據934利用作業系統928對資源的管理。應該意識到,此處描述 的各種組件可以與各種作業系統或作業系統的組合一起實現。
用戶通過(諸)輸入設備936向計算機912輸入命令或信息。輸入設備936 包括,但不限於,諸如滑鼠、跟蹤球、指示筆、觸摸墊等定點設備、鍵盤、話 筒、操縱杆、遊戲手柄、圓盤式衛星天線、掃描儀、TV調頻卡、數位照相機、 數碼攝像機、web攝像頭等。這些或其它輸入設備經由(諸)接口埠 938通 過系統總線918連接到處理單元914。(諸)接口埠 938包括,例如,串行 埠、並行埠、遊戲埠以及通用串行總線(USB)。(諸)輸出設備940 使用與(諸)輸入設備936同樣類型的埠中的一些埠。因此,例如,可以 使用USB埠來向計算機912提供輸入並且將計算機912中的信息輸出至輸 出設備940。提供輸出適配器942用來說明存在諸如監視器、揚聲器、以及打 印機等一些輸出設備940,以及需要專用適配器的其它輸出設備940。作為說 明而非限制,輸出適配器942包括提供輸出設備940與系統總線918之間的連 接手段的顯卡和音效卡。應該注意,其它設備和/或設備的系統(例如(諸)遠程 計算機944)提供輸入和輸出能力兩者。
計算機912可以採用與(諸)遠程計算機944等一個或多個遠程計算機的 邏輯連接而在聯網環境中操作。(諸)遠程計算機944可以是個人計算機、服 務器、路由器、網絡PC、工作站、基於微處理器的電器、對等設備或其它常 見的網絡節點等等,並且通常包括與關於計算機912所描述的元件中的許多或 所有元件。為了簡明起見,對於(諸)遠程計算機944隻描述了存儲器存儲設 備946。(諸)遠程計算機944通過網絡接口 948與計算機912邏輯連接,並 且然後通過通信連接950被物理連接。網絡接口 948包括諸如區域網(LAN) 和廣域網(WAN)等通信網絡。LAN技術包括光纖分布式數據接口 (FDDI)、 銅分布式數據接口 (CDDI)、乙太網/IEEE802.3、令牌環/IEEE 802.5等。WAN 技術包括,但不限於,點對點鏈路、諸如綜合業務數字網絡(ISDN)及其變 型等電路交換網絡、分組交換網絡、以及數字用戶線(DSL)。
(諸)通信連接950指的是用來將網絡接口 948與總線918相連接的硬體 /軟體。儘管通信連接950為了清楚說明起見被示於計算機912內,但它還可以 在計算機912外部。連接到網絡接口 948所必需的硬體/軟體包括(僅出於示例性目的)內部和外部技術,例如,包括常規電話級數據機、電纜調製解調
器和DSL數據機等的數據機、ISDN適配器、和乙太網卡。
圖IO是可用來實現本發明的工作流實現的示例計算環境1000的示意性框 圖。系統1000包括一個或多個客戶機1010。(諸)客戶機1010可以是硬體和 /或軟體(例如,線程、進程、計算設備)。系統1000還包括一個或多個服務 器1030。(諸)伺服器1030可以是硬體和/或軟體(例如,線程、進程、計算 設備)。伺服器1030可以容納線程以便通過採用例如此處描述的組件來執行 轉換。客戶機1010與伺服器1030之間的一個可能的通信可以採用適用於在兩 個或更多計算機進程之間傳輸的數據分組的形式。系統1000包括能用來幫助 (諸)客戶機1010與(諸)伺服器1030之間進行通信的通信框架1050。(諸) 客戶機IOIO可操作地連接到能被用來存儲對(諸)客戶機IOIO本地的信息的 一個或多個客戶機數據存儲1060。類似地,(諸)伺服器1130可操作地連接 到能被用來存儲對伺服器1030本地的信息的一個或多個伺服器數據存儲 1040。
以上已描述的包括各種示例性方面。當然,不可能為了描述這些方面而描 述每個可以想到的元件或方法的組合,但是本領域的普通技術人員可以認識到 可能會有許多進一步的組合與排列。因此,此處所描述的方面意在包括落入所 附權利要求的精神和範圍內的所有這些更改、修改以及變型。此外,就在詳細 描述或者權利要求中使用的術語"包括"的意思來說,這個術語意在以當術語 "包括"作為權利要求中的過渡詞使用時所解釋的那種方式表示為"包括在 內,,。
權利要求
1.一種包括以下計算機可執行組件的計算機實現的系統,所述組件包括向宿主(110)提供對工作流實例的訪問的訪問組件(120);以及在與所述工作流實例的數據交換期間調用自定義特徵的所述宿主(110)。
2. 如權利要求1所述的計算機實現的系統,其特徵在於,所述自定義特徵是用於強類型工作流的方法、特性和事件中的至少一個。
3. 如權利要求1所述的計算機實現的系統,其特徵在於,與所述工作流實 例相關聯的工作流可被展示為對象類型或類。
4. 如權利要求3所述的計算機實現的系統,其特徵在於,所述工作流的定 義可通過添加新成員來擴展。
5. 如權利要求1所述的計算機實現的系統,其特徵在於,與所述工作流實 例相關聯的自定義工作流定義在與所述宿主交換數據期間可被掛起。
6. 如權利要求5所述的計算機實現的系統,其特徵在於,所述系統還包括 檢索所述工作流實例的工作流提供者。
7. 如權利要求5所述的計算機實現的系統,其特徵在於,所述工作流實例 可通過所述宿主的動作而繼續。
8. 如權利要求5所述的計算機實現的方法,其特徵在於,具有基類的工作 流定義從所述基類中導出新的工作流定義。
9. 一種包括以下計算機可執行動作的計算機實現的方法,所述動作包括: 通過一工作流系統的訪問組件訪問工作流實例;以及在宿主與所述工作流實例進行數據交換期間調用自定義特徵。
10. 如權利要求9所述的計算機實現的方法,其特徵在於,所述動作還包 括基於與所述工作流實例相關聯的標識來請求所述工作流實例。
11. 如權利要求IO所述的計算機實現的方法,其特徵在於,所述動作還包 括驗證所述工作流實例的存在。
12. 如權利要求9所述的計算機實現的方法,其特徵在於,所述動作還包 括在所述宿主與所述工作流實例進行數據交換期間使用類成員。
13. 如權利要求9所述的計算機實現的方法,其特徵在於,所述動作還包括為所述工作流實例生成工作流狀態表示。
14. 如權利要求13所述的計算機實現的方法,其特徵在於,所述動作還包 括在所述宿主與所述工作流實例進行數據交換期間定義自定義特徵。
15. 如權利要求14所述的計算機實現的方法,其特徵在於,所述動作還包 括將自定義行為與同所述工作流實例相關聯的工作流定義或類型相關聯。
16. 如權利要求15所述的計算機實現的方法,其特徵在於,所述動作還包 括由所述宿主訂閱自定義事件。
17. 如權利要求16所述的計算機實現的方法,其特徵在於,所述動作還包 括通過編程為所述工作流實例定義豐富的類型。
18. 如權利要求17所述的計算機實現的方法,其特徵在於,所述動作還包 括通過添加新成員來擴展所述工作流定義。
19. 如權利要求18所述的計算機實現的方法,其特徵在於,所述動作還包 括調用保存方法以存儲所述工作流實例。
20. —種包括以下計算機可執行組件的計算機實現的系統,所述組件包括: 用於基於與工作流實例相關聯的自定義工作流定義來訪問所述工作流實例的裝置(120);以及用於從基本工作流定義中創建新的工作流的裝置(110)。
全文摘要
通過提供對實際工作流實例的訪問的訪問組件來對象化工作流和管理行為的意圖的系統和方法。本發明允許定義自定義特徵以用於運行時的交互。例如,自定義特徵(例如,強類型工作流)可包括一種或多種方法、一個或多個事件、一個或多個特性、一接口等等。因此,工作流可被展示為對象類型或類,其中新成員可被添加並且工作流可被擴展。
文檔編號G06F9/44GK101317153SQ200680044769
公開日2008年12月3日 申請日期2006年12月7日 優先權日2005年12月29日
發明者A·薩納布裡阿, C·米哈, I·西勒羅, M·哈德, N·科塔裡, P·E·梅比 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀