Amazon SWF 工作流程 - Amazon Simple Workflow Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon SWF 工作流程

什麼是工作流程?

使用 Amazon Simple Workflow Service (Amazon SWF),您可以將分散式非同步應用程式實作為工作流程。工作流程會協調和管理活動的執行,且活動可以跨多個運算裝置非同步執行,也可以具備循序和平行處理。

設計工作流程時,您可以分析應用程式來識別其元件「任務」。在 Amazon SWF 中,這些任務是以活動。活動的執行順序是根據工作流程的協調性邏輯所決定。

簡單工作流程範例:電子商務應用程式

例如,下圖顯示包含人員和自動化程序的簡單電子商務訂單處理工作流程。

範例工作流程概觀

客戶下單時,會啟動此工作流程。其中包含四個「任務」

  1. 確認訂單。

  2. 如果訂單有效,將會向客戶收取費用。

  3. 如果付款已完成,將送出訂單。

  4. 如果送出訂單,將儲存訂單詳細資訊。

此工作流程中的任務是「循序的」:必須先確認訂單,才能收取信用卡費用;必須先順利收取信用卡費用,才能送出訂單,而且必須先送出訂單,才能加以記錄。即使如此,Amazon SWF 支援分散式程序,所以可以在不同的位置執行這些任務。如果任務具有程式設計的性質,也可使用不同的程式設計語言或工具加以撰寫。

Amazon SWF 還支援平行處理任務的工作流程。平行任務會同時執行,而且可以由不同的應用程式或人類工作者獨立地執行。您的工作流程會在完成一或多個平行任務之後,做出應如何繼續的決策。

工作流程註冊和執行

設計協調性邏輯和活動之後,請向 Amazon SWF 將這些組件註冊為工作流程和活動類型。註冊時,您會為每種類型指定名稱、版本以及一些預設組態值。

Amazon SWF 只有已註冊的工作流程和活動類型才能用於。在電子商務範例中,您將註冊 CustomerOrder 工作流程類型,以及 VerifyOrder、ChargeCreditCard、ShipOrder 和 RecordCompletion 活動類型。

工作流程類型一經註冊後,即可供您不限次數地執行。「工作流程執行」為運作中的工作流程執行個體。在電子商務範例中,每個客戶訂單會啟動新的工作流程執行。

任何程序或應用程式,甚至是另一個工作流程執行,都可以啟動工作流程執行。在電子商務範例中,由何種類型的應用程式啟動工作流程取決於客戶如何下單。工作流程可能由網站或行動應用程式,或者客戶服務代表使用公司的內部應用程式來啟動。

使用 Amazon SWF,您可以關聯一個標識符(稱為workflowId,以便您可以將現有業務標識符集成到工作流程中。在電子商務範例中,可能會使用客戶發票號碼來識別每個工作流程執行。

除了您提供的標識符外,Amazon SWF 還會關聯一個唯一的系統生成的標識符 —runId— 用於每個工作流程執行。Amazon SWF 允許在任何給定時間運行具有此標識符的工作流程執行;儘管您可以執行相同工作流程類型的多個工作流程執行,但每個工作流程執行都有一個不同的runId

另請參閱

Amazon SWF 工作流程歷史記錄