Amazon Simple Workflow Service
开发人员指南 (API 版本 2012-01-25)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

什么是 Amazon Simple Workflow Service?

通过 Amazon Simple Workflow Service (Amazon SWF) 可轻松构建在分布式组件中协调工作的应用程序。在 Amazon SWF 中,任务表示的是由您的应用程序组件所执行的逻辑工作单位。在应用程序中协调任务涉及依据应用程序逻辑流程管理任务间的依赖性,时间安排和并发性。Amazon SWF 可使您完全控制任务的执行和协调,而不必担心底层复杂性,例如跟踪它们的进度和维护它们的状态。

使用 Amazon SWF 时,可以实施工作程序来执行任务。这些工作程序可在云基础设施(例如 Amazon Elastic Compute Cloud (Amazon EC2))或您自己的本地设施上运行。您可以创建长时间运行任务,或可能或失败、超时或需要重新启动的任务,亦或者可以创建可能通过不同吞吐量和延迟来完成的任务。Amazon SWF 在任务准备好后存储和分配任务、跟踪其进度并维护其状态(包括完成时的详细信息)。要协调任务,应编写可从 Amazon SWF 获得每个任务最新状态的程序,然后使用该程序启动后续任务。Amazon SWF 持久保持应用程序的执行状态,以便使该应用程序能够灵活应对单个组件的故障。借助 Amazon SWF,您可以独立执行、部署、扩展和修改这些应用程序组件。

Amazon SWF 能够支持各种不同的应用程序需求。它适用于一系列需要任务协作的使用案例,包括媒体处理、Web 应用程序后端、业务处理流程和分析管道。

开发选项

有多种方式可通过 Amazon Simple Workflow Service 实现工作流程解决方案。

AWS 开发工具包

适用于 Java、.NET、Node.js、PHP、PHP2、Python 和 Ruby 的 AWS 软件开发工具包支持 Amazon SWF,可简便地在您选择的编程语言中使用 Amazon SWF HTTP API。

您可以利用这些库暴露的 API 开发决策程序、活动或工作流程启动程序。此外,还可通过这些库访问可视性操作,以使您可开发您自己的 Amazon SWF 监控和报告工具。

要下载任何 AWS 软件开发工具包,请访问 http://amazonaws.cn//code

有关每个软件开发工具包中 Amazon SWF 方法的详细信息,请参阅所使用的软件开发工具包的语言特有的参考文档。

下面是可用的 AWS 开发工具包文档列表。

AWS Flow Framework

AWS Flow Framework 是一种增强型开发工具包,用于编写可在 Amazon SWF 上作为工作流程运行的分布式异步程序。它可用于 Java 和 Ruby 编程语言,并提供了可简化复杂分布式程序编写的类。

借助于 AWS Flow Framework,您可以使用预配置的类型将工作流程定义直接映射到程序中的方法。

AWS Flow Framework 支持面向对象的标准概念(例如,基于异常的错误处理),这样就可更方便地实现复杂工作流程。您可以完全在自己首选的编辑器或 IDE 中创建、执行和调试使用 AWS Flow Framework 编写的程序。有关详细信息,请参阅 AWS Flow Framework 网站。

以下是 AWS Flow Framework 文档的链接:

AWS Flow Framework 示例代码

除了 AWS Flow Framework 文档中显示的代码段外,还可在以下位置获取完整、可下载的代码示例:

HTTP 服务 API

Amazon SWF 提供可通过 HTTP 请求访问的服务操作。您可以使用这些操作直接与 Amazon SWF 通信,还可以使用这些操作以任何可通过 HTTP 与 Amazon SWF 通信的语言来开发自己的库。

您可以使用服务 API 开发决策程序、活动工作程序或工作流程启动程序。您还可以通过 API 访问可视性操作,以开发您自己的监控和报告工具。

有关如何使用 API 的信息,请参阅 发出 HTTP 请求。有关 API 操作的详细信息,请参阅 Amazon Simple Workflow Service API Reference

开发环境

您需要设置适用于您将使用的编程语言的开发环境。例如,如果您打算使用 Java 进行 Amazon SWF 开发,则需要在每个开发工作站上安装 Java 开发环境,例如,适用于 Java 的 AWS 开发工具包。如果您使用 Eclipse IDE 进行 Java 开发,您可能还要考虑安装 AWS Toolkit for Eclipse。Toolkit 是一种 Eclipse 插件,可增加对 AWS 开发有用的功能。

如果您的编程需要需要运行时环境,您需要在运行这些过程的每个计算机上设置该环境。

本页内容: