Amazon SWF 工作流 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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 Workflow 历史记录