使用 AWS Flow Framework 实施工作流程应用程序 - AWS Flow Framework 适用于 Java

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS Flow Framework 实施工作流程应用程序

使用 AWS Flow Framework 开发工作流程所涉及的典型步骤包括:

  1. 定义活动与工作流程合同。分析您的应用程序要求,然后确定所需的活动和工作流程拓扑。活动 处理所需的处理任务,工作流程拓扑 定义工作流程的基本结构和业务逻辑。

    例如,媒体处理应用程序可能需要下载一个文件,处理该文件,然后将处理后的文件上传到 Amazon Simple Storage Service (S3) 存储桶。此过程可分为四个活动任务:

    1. 从服务器下载文件

    2. 处理文件 (例如,将文件转码为其他媒体格式)

    3. 将文件上传到 S3 存储桶

    4. 通过删除本地文件来执行清除操作

    此工作流程将有一个入口点方法,并将实施一个按顺序运行活动的简单线性拓扑,与HelloWorldWorkflow 应用程序很相似。

  2. 实施活动和工作流程接口。工作流程和活动合同由 Java 接口 定义,使其调用惯例可由 SWF 预测,并在您实施工作流程逻辑和活动任务时为您提供灵活性。您的程序的各个部分可充当彼此数据的使用者,但不需要知道其他部分的许多实施详细信息。

    例如,您可以定义一个 FileProcessingWorkflow 接口,并提供针对视频编码、压缩、缩略图等的不同的工作流程实施。这些工作流程中的每个工作流程均具有不同的控制流程,并且可以调用不同的方法;工作流程启动程序不需要知道。通过使用接口,也可以使用稍后将替换为工作代码的模拟实施来测试工作流程。

  3. 生成活动和工作流程客户端。AWS Flow Framework 使您无需实施管理异步执行、发送 HTTP 请求、封送数据等操作的详细信息。相反,工作流程启动程序通过对工作流程客户端调用方法来执行工作流程实例,而工作流程实施通过对活动客户端调用方法来执行活动。框架在后台处理这些交互的细节。

    如果您使用的是 Eclipse 并且已配置项目(就像设置适用于 Java 的 AWS Flow Framework 中一样),则 AWS Flow Framework 注释处理器将使用接口定义来自动生成工作流程和活动客户端,以将一组相同的方法公开为相应的接口。

  4. 实施活动和工作流程宿主应用程序。您的工作流和活动实现必须嵌套在主机应用程序中,这些应用程序会轮询 Amazon SWF 以获取任务、收集任何数据并调用相应的实现方法。适用于 Java 的 AWS Flow Framework 包括 WorkflowWorkerActivityWorker 类,这两个类使得主机应用程序变得直接而简单。

  5. 测试您的工作流。适用于 Java 的 AWS Flow Framework 提供JUnit 集成,用于内联和本地测试您的工作流。

  6. 部署工作线程。您可以相应地部署工作线程,例如,您可以将工作线程部署到 Amazon EC2 实例或数据中心内的计算机。在部署并启动后,工作线程将开始轮询 Amazon SWF 以获取任务并按需处理任务。

  7. 启动执行。应用程序通过使用工作流程客户端调用工作流程的入口点来启动工作流程实例。您也可以使用 Amazon SWF 控制台启动工作流。无论您通过什么方式启动工作流实例,都可以使用 Amazon SWF 控制台监控正在运行的工作流实例,并检查正在运行、已完成和已失败实例的工作流历史记录。

AWS SDK for Java包含一组适用于 Java 的 AWS Flow Framework 示例,您可以浏览这些示例并按照根目录下 readme.html 文件中的说明操作来运行这些示例。此外,还有一组简单的应用程序演示了如何处理各种特定的编程问题,您可以从 AWS Flow Framework Recipes 获取这些应用程序。