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

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

另请参阅