在亚马逊之前发布的一份白皮书和代码示例中,其中包含了对Amazon Simple Workflow Service(亚马逊简单工作流服务手册)的进一步改进措施。接下来就给大家介绍一下亚马逊改进后的SWF。

Amazon Simple Workflow Service(SWF)是:面向创造可扩展、弹性应用的工作流服务。

也就是说不论是在金融或者保险应用中的业务流程自动化,构建复杂的数据分析应用,还是管理云基础设施的服务中,亚马逊SWF能有效地协调应用中的每个处理步骤:

1)编写activity workers来实现工作流中的执行步骤;

2)编写decider来实现工作流中的协调逻辑;

3)在亚马逊SWF中注册activities和workflow,这个步骤可以通过编程或者亚马逊控制台来完成;

4)启动activities workers和deciders;

5)启动工作流的一个或者多个执行。每一个执行都是独立的,可以为每一个执行提供不同的输入数据;

6)在亚马逊的控制台上查看工作流的执行情况。可以过滤或者查看正在运行的以及已完成的execution。

但是由于缺乏示例和有关实现的最佳实践,搭建SWF应用并不是件容易的事。所以亚马逊新发布的白皮书对SWF做了进一步改进。覆盖了如下几类模式和实现的相关信息:

1)反复执行某一活动,包括:

指定次数循环重复执行某一活动;指定次数递归执行异步活动;在条件满足的情况下递归执行异步活动。

2)工作流逻辑的条件执行,包括:基于条件执行多个活动中的一个活动;基于条件执行一个更大群体中的多个活动。

3)异步执行的异常处理:处理异步代码(如活动)产生的异常以及通过try/catch/finally清理资源;处理其他异步代码调用另一个异步代码产生的异常;

4)工作流的信号传送:实现在执行前等待某一信号一定时间的工作流。

另外,白皮书还展示了在实现run方法中AsyncRunnable抽象的用法,即在每次重试的时候AsyncRetryingExecutor都会要求执行活动。

这份改进的SWF手册为之后实现新的定制工作流提供了一个绝佳的参考和起点。希望小编分享的内容能让你对亚马逊SWF有更深入的了解。