2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Ruote,一款由 Ruby 写成的工作流引擎

  • 2010-10-24
  • 本文字数:1088 字

    阅读完需:约 4 分钟

ruote 是一款由 Ruby 写成的工作流引擎,由 John Mettraux,Keneth Kalmer,Torsten Schoenebaum 及其他贡献者共同完成。它已被诸如 ThoughtWorks 和 Rackspace等公司用于支持关键任务的整合

ruote 引擎可同时执行多个流程实例。流程实例是从 Ruby DSL 或 XML(或直接用 JSON)等流程定义中实例化的。流程定义描述了多个参与者间的工作顺序。参与者可以是用户,用户组,服务以及遗留系统等。

ruote 的流程定义描述了多个参与者间的工作顺序。通常,参与者的注册是在引擎启动时发生的,而流程定义则是在发起实例时被解析并转换成一个抽象语义树(简称“树” )并与相应的流程实例相关联。Ruote 主要能够读取三种流程定义:Ruby DSL,XML 和普通树(一般是 JSON)。流程定义中包含一个主流程定义,其中可包含一个或多个子流程定义。例如:

复制代码
<span> 1</span> require <span><span>'</span><span>ruote</span><span>'</span></span> <span># gem install ruote</span>
<span> 2</span>
<span> 3</span> pdef = <span>Ruote</span>.process_definition <span>:name</span> => <span><span>'</span><span>work</span><span>'</span></span> <span>do</span>
<span> 4</span> cursor <span>do</span>
<span> 5</span> concurrence <span>do</span>
<span> 6</span> reviewer1
<span> 7</span> reviewer2
<span> 8</span> <span>end</span>
<span> 9</span> editor
<span><strong>10</strong></span> rewind <span>:if</span> => <span><span>'</span><span>${not_ok}</span><span>'</span></span> <span># back to the reviewers if editor not happy</span>
<span>11</span> publish <span># the document</span>
<span>12</span> <span>end</span>
<span>13</span> <span>end</span>

在 ruote2.1 中,多个 worker 与引擎共享同一存储,而且参与者列表被持久化。ruote-couch 是使用 Apache CouchDB 实现的一种 ruote 存储。ruote-amqp 提供的 AMQP 参与者 / 监听器组合可用于将工作项分发给 AMQP 消费者进行处理,并通过 AMQP 启动流程。

ruote 实现了工作流模式的全系列

  • 顺序、并行、同步、互斥选择、简单聚合
  • 多重选择、结构化同步聚合、多重聚合、结构化鉴别器
  • 任意循环、隐式终止
  • 多实例模式
  • 延迟选择、交叉并行路由、里程碑
  • 任务取消、实例取消

ruote2.0 版是完全重写的,2.1 版的核心也是重写的。几个星期前,他们发布 了2.1.11 。此外,John 还启动了 volute 项目,这是一款状态机的实现。就“顺序工作流”和“状态机”间的差异,John 已在博客中阐述了他的见解。


查看英文原文: Ruote: A Workflow Engine Written in Ruby

2010-10-24 02:255659
用户头像

发布了 184 篇内容, 共 88.6 次阅读, 收获喜欢 8 次。

关注

评论

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

数据工程(二):数据需求管理,解锁信息宝藏的“指南针”

数造万象

工具 需求管理 数据工程

3CX的具体介绍

cts喜友科技

通信 通讯 云通讯

企业数智化首选!众多行业领先企业选择用友BIP,实现业务敏捷

用友BIP

从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署

华为云开发者联盟

云原生 华为云 gitops 华为云开发者联盟 企业号2024年7月PK榜

软工智库|低代码篇(三)——低代码开发平台如何实现?

电子标准院软工研究室

腾讯会议如何补充人数(充场)?大会议室如何建立?

区块链项目一站式包装孵化

远超美国!中国AI专利数量全球第一!商汤推出面向C端用户大模型“Vimi”,可生成分钟级视频!|AI日报

可信AI进展

人工智能

加入运动健康数据开放平台,共赢鸿蒙未来

HarmonyOS SDK

HarmonyOS

Royal TSX常见问题:解决远程桌面(RDP)连接错误

Rose

“内卷”的电商江湖:拼服务才有出路

Alter

「多模态大模型」解读 | 突破单一文本模态局限

Baihai IDP

程序员 AI LLMs 企业号 7 月 PK 榜 多模态大模型

IPv4与IPv6的区别终于有人讲清楚了!

IPIDEA全球HTTP

IP地址

企业数智化首选!上半年,众多头部民营企业选择用友!

用友BIP

寻找适合编写静态分析规则的语言

华为云开发者联盟

软件开发 华为云 静态分析 华为云开发者联盟 企业号2024年7月PK榜

三年级课堂上演投影仪“消失术“,英特尔与希沃有话说

E科讯

AI+采购丨精益每一步,敏捷每一刻,数智采购的进化之路

用友BIP

nuke破解版下载 mac影视后期特效合成软件

Rose

圣雄能源电石厂:“一机一码”,助力巡检新格局

草料二维码

设备巡检管理系统 草料二维码 设备巡检二维码 设备巡检系统 设备管理软件

下课10分钟,AI都做了什么?

E科讯

GreatSQL中 Insert 慢是什么情况?

GreatSQL

CorelDRAW Mac破解版,CorelDRAW序列号最新,cdr平面设计

Rose

Syncaila for Mac(多机位自动对视频音频同步工具) v2.1.4激活版

Rose

PPSSPPSDL for mac(PSP游戏模拟器)附PSP游戏安装包 v1.17.1激活版

Rose

AI+,企业最期待的是什么?

用友BIP

推特(twitter)涨粉提高关注量应该怎么做?如何让Twitter账号涨粉推特怎么涨粉?Discord怎么拉人?telegram怎么拉人?ins,油管,脸书怎么涨粉?有没有运营的比较成功的twitter大帐号?

区块链项目一站式包装孵化

推特是否能够买粉买赞?

区块链项目一站式包装孵化

财会监督 |合同风险管理:企业风险控制的精准锚点

用友BIP

全过程的区块链项目包装孵化都包含啥?

区块链项目一站式包装孵化

Ruote,一款由Ruby写成的工作流引擎_SOA_Jean-Jacques Dubray_InfoQ精选文章