QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

亚马逊推出 Simple Workflow Service 手册

  • 2013-01-25
  • 本文字数:1236 字

    阅读完需:约 4 分钟

亚马逊刚刚发布了一份白皮书与代码示例,其中包含了 Amazon Simple Workflow Service 手册

Amazon Simple Workflow Service(SWF)是

……面向创造可扩展、弹性应用的工作流服务。不论是金融或者保险应用中的业务流程自动化,构建复杂的数据分析应用,还是管理云基础设施的服务,亚马逊 SWF 能可靠地协调应用中的每个处理步骤。

SWF 的最大优点在于,它是完全管理的服务,用户不需要在硬件或管理维护上进行任何额外的投资,即,不需要进行调优、打补丁或升级。它提供了简单的 API,并允许在 EC2 或任何联网的计算机上执行工作流步骤。SWF 基于轮询(Polling)实现,因此运行在内部(企业内部)的程序可以向 SWF 轮询以获取新的任务。最后,AWS 管理控制台还可以为工作流提供当前状态及执行历史的详细报告。

SWF 的实现要求给新的 / 现有的应用增加决策(decider)代码,该代码通过指定工作顺序、分时、故障条件来定义工作流的协作逻辑。另外还需要实现活动(activities),即用来执行工作流每一步的组件。决策程序和活动组成工作流。一旦决策程序和活动就位,SWF 服务代表应用协调所有工作。

尽管 AWS SWF 有这些优点,但由于缺乏示例和有关实现的最佳实践,搭建 SWF 应用并不是件容易事。亚马逊新发布的白皮书填补了这个空白。该白皮书提供大量工作流模式的实施范例,并提供了实现这些模式的代码。白皮书覆盖了如下几类模式和实现的相关信息:

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

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

同步执行多个活动,包括:

  • 固定数目活动的分支聚合
  • 动态决定活动数目的分支聚合
  • 分裂多个活动并使用第一个完成的活动的执行结果

工作流逻辑的条件执行,包括:

  • 基于条件执行多个活动中的一个活动
  • 基于条件执行一个更大群体中的多个活动

人工完成一个活动任务:人工活动实现

异步执行的异常处理:

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

重试执行失败的异步代码:

  • 重试某项活动直到成功,或者重试达到一定的次数
  • 注解一个活动以便框架可以通过使用时间递增重试策略进行自动重试,即,每次重试间隔增长,在达到指定值后停止
  • 通过 RetryDecorator 类实现时间递增重试,即在运行时指定重试策略,也可按需修改
  • 通过 AsyncRetryingExecutor 类实现指数重试,即允许运行时指定重试策略。另外,白皮书还展示了在实现 run 方法中 AsyncRunnable 抽象的用法,即,在每次重试的时候 AsyncRetryingExecutor 都会要求执行活动。
  • 实现定制的重试策略

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

新发布的 SWF 手册为实现新的定制工作流了提供了了一个绝佳的起点。

查看英文原文 Amazon Provides Simple Workflow Service Recipes


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-25 02:103201

评论

发布
暂无评论
发现更多内容

经验说丨华为云视频Cloud Native架构下实践

华为云开发者联盟

架构 微服务 华为云 CloudNative

开发实战:Float如何保留2位小数

worry

【并发编程】- 内存模型篇

双木之林

并发编程

量化交易自动炒币软件开发系统

产品经理训练营-第一周作业

羽室

产品经理训练营-第一章作业

泡面加煎蛋

IO系列专题分享 - 概览

公众号:程序猿成神之路

io

个人选择理财产品有哪些好方法

v16629866266

干货丨深度迁移学习方法的基本思路

博文视点Broadview

《原神》运维自动化的探索与实践

OpsMind

运维 运维自动化

如何构建高效可信的持续交付能力,华为云有绝活!

华为云开发者联盟

软件 DevOps 持续交付 华为云

场外OTC交易APP系统软件开发

系统开发

产品经理训练营第一周作业

Empty

产品经理训练营 极客大学产品经理训练营

第一次作业提交

涅米丶

作业-week1

赝品

开发实战:LocalDateTime转RFC3339格式

worry

Java 程序经验小结:消除GC触及不到的过期对象引用

后台技术汇

28天写作

Spring 源码学习 15:finishBeanFactoryInitialization(重点)

程序员小航

spring 源码

雪天专注行路思考一则

石君

冥想 28天写作

产品经理训练营 学习起点

DB

当前岗位的理想岗位模型

白生

产品0期-第一周作业

曾烧麦

产品训练营

4K高清视频下载(4K视频素材下载)图文教程

科技猫

下载器 4k高清视频下载 4k视频素材下载 8k视频下载 高清视频下载

6道tomcat面试题,最后两道难倒我了

田维常

面试

一种分表平滑扩容方案

非著名架构师

这样提问,大牛才会为你解答(提问的智慧)

yes

AI无人机出手,让输电线路巡检更“聪明”!

华为云开发者联盟

华为云 modelarts 视觉处理

Soul学习笔记---运行 soul-examples-http(二)

fightingting

Soul网关

Soul 学习笔记---soul 数据同步的浅显分析(四)

fightingting

Soul网关

一字一句的让你彻底掌握JavaScript中的回调函数

华为云开发者联盟

JavaScript 大前端 同步 回调函数

产品经理训练营

纳豆卡玛

求职 岗位要求 职能描述

亚马逊推出Simple Workflow Service手册_亚马逊云科技_Boris Lublinsky_InfoQ精选文章