

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

# 使用 實作工作流程應用程式 AWS Flow Framework
<a name="awsflow-developing-workflows"></a>

使用 開發工作流程所涉及的一般步驟 AWS Flow Framework 如下：

1. **定義活動和工作流程合約**。分析應用程式的需求，然後判斷必要的活動和工作流程拓撲。「活動」**會處理必要的處理任務，而「工作流程拓撲」**定義工作流程的基本結構和商業邏輯。

   例如，媒體處理應用程式可能需要下載檔案，並處理檔案，然後將處理好的檔案上傳至 Amazon Simple Storage Service (S3) 儲存貯體。這可以分為四個活動任務：

   1. 從伺服器下載檔案

   1. 處理檔案 (例如，將檔案轉碼為不同的媒體格式)

   1. 將檔案上傳至 S3 儲存貯體

   1. 刪除本機檔案以執行清理

   此工作流程會有進入點方法，並會實作可循序執行活動的簡單線性拓撲，這與 [HelloWorldWorkflow 應用程式](getting-started-example-helloworldworkflow.md) 十分類似。

1. **實作活動和工作流程界面**。工作流程和活動合約藉由 Java「界面」**定義，並透過 SWF 將其呼叫慣例設為可預測，然後讓您彈性實作工作流程邏輯和活動任務。您程式中的各個部分可做為彼此資料的取用者，但不需要完全了解其他部分的實作詳細資訊。

   例如，您可以定義 `FileProcessingWorkflow` 界面，並提供不同的工作流程實作進行影片編碼、壓縮、縮圖等。所有這些工作流程都可以有不同的控制流程，而且可以呼叫不同的活動方法；您的工作流程啟動者並不需要知道。透過使用界面，也可以使用稍後可取代為工作中程式碼的模擬實作來簡單地測試工作流程。

1. **產生活動和工作流程用戶端**。 AWS Flow Framework 不需要您實作管理非同步執行、傳送 HTTP 請求、封送資料等詳細資訊。相反地，工作流程啟動者會對工作流程用戶端呼叫方法來執行工作流程執行個體，而且工作流程實作會對活動用戶端呼叫方法來執行活動。框架會在背景處理這些互動的詳細資訊。

   如果您使用的是 Eclipse，而且已如 一樣設定專案[設定 AWS Flow Framework 適用於 Java 的](setup.md)，則 AWS Flow Framework 註釋處理器會使用界面定義來自動產生工作流程和活動用戶端，這些用戶端會公開與對應界面相同的一組方法。

1. **實作活動和工作流程主機應用程式**。您的工作流程和活動實作必須內嵌在輪詢 Amazon SWF 任務、封送任何資料並呼叫適當實作方法的主機應用程式中。 AWS Flow Framework 適用於 Java 的 包含 [WorkflowWorker](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/WorkflowWorker.html) 和 [ActivityWorker](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/ActivityWorker.html) 類別，可讓實作主機應用程式變得簡單明瞭。

1. **測試您的 workflow**. AWS Flow Framework for Java 提供 JUnit 整合，您可以用來在內嵌和本機測試您的工作流程。

1.  **部署工作者**。您可以視需要部署工作者，例如，您可以將工作者部署到 Amazon EC2 執行個體或資料中心的電腦。部署並啟動後，工作者會開始輪詢 Amazon SWF 任務，並視需要處理它們。

1.  **開始執行**。應用程式會使用工作流程用戶端呼叫工作流程的進入點，來啟動工作流程執行個體。您也可以使用 Amazon SWF 主控台啟動工作流程。無論您如何啟動工作流程執行個體，都可以使用 Amazon SWF 主控台來監控執行中的工作流程執行個體，並檢查工作流程歷史記錄是否有執行中、已完成和失敗的執行個體。

[適用於 Java 的 AWS SDK](https://aws.amazon.com/sdkforjava/) 包含一組 AWS Flow Framework 適用於 Java 範例的 ，您可以依照根目錄中 readme.html 檔案中的指示進行瀏覽和執行。還有一組配方 — 簡單的應用程式 — 示範如何處理各種特定的程式設計問題，這些問題可從[AWS Flow Framework 配方](https://aws.amazon.com/code/2535278400103493)取得。