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:255713
用户头像

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

关注

评论

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

测试了多款AI智能体,哪款“自动干活”

Techinsight

Coze教程 第1章:Coze平台概述与测试应用前景

测试人

从 Oracle 到 TiDB,通过ETL工具,高效实现数据拉通

谷云科技RestCloud

oracle 数据同步 ETL TiDB 数据集成平台

AI训练必看!2025年十大最佳数据采集代理推荐

不觉心动

爬虫 数据采集 AI+数据

使用FIDO2实现LUKS磁盘加密的技术解析

qife122

LUKS 磁盘加密

基于 Web 的网上物流系统:对接快递鸟开放平台的全链路解决方案

快递鸟

CMDB配置漂移治理方案

智象科技

自动化 CMDB IPMI SNMP协议 自动采集

通义灵码+支付 MCP:30 分钟实现创作打赏智能体

阿里巴巴云原生

阿里云 云原生 通义灵码

什么是安全密钥,它是如何工作的

运维有小邓

mfa 多因素身份验证

[VLDB 2025]阿里云大数据AI平台多篇论文被收录

阿里云大数据AI技术

flink 阿里云 VLDB 多模态慢查询

澳鹏MediGo医疗大模型数据开发平台:解码智慧医疗的数据基因

澳鹏Appen

医疗AI 智慧医疗 医疗大数据

智能运维新范式:自动化如何提升企业IT效率

智象科技

自动化 智能运维 告警系统 告警规则 一体化智能运维

企业如何选择RPA?一文了解RPA工具

Techinsight

AI 云驱动产业智能化跃迁

Baidu AICLOUD

AI 昆仑芯 百度百舸 具身智能

客户实测第一!智象一体化运维平台脱颖而出

智象科技

ITSM CMDB 智能运维 一体化运维

通义灵码+支付 MCP:30 分钟实现创作打赏智能体

阿里云云效

阿里云 云原生 通义灵码

【顶会论文】时序数据库 Apache IoTDB 论文获 VLDB 2025 录用,集群秒级扩容性能“解密”

Apache IoTDB

Karma无线安全工具:探针响应与网络诱捕技术解析

qife122

网络安全 渗透测试

实测多家AI智能体感想,哪款能够自动执行任务?

Techinsight

CMDB升级!多插件协同,深度发现资源

智象科技

CMDB 一体化平台 一体化智能运维 深度发现 发现资源

初识 ASH —— 打开数据库的「月光宝盒」

老纪的技术唠嗑局

运维 oceanbase

在LXC容器中安装Bitwarden密码管理器的完整指南

qife122

Docker Bitwarden

零代码改造!LoongSuite AI 采集套件观测实战

阿里巴巴云原生

阿里云 云原生 LoongSuite

TDengine IDMP 上线监控,只需几分钟:5 个场景实证

TDengine

人工智能 大数据 tdengine idmp

如何让后端工程师愿意写文档?API管理的好处

谷云科技RestCloud

API 集成平台 API文档 API管理 ipaas

让天下没有难查的故障:2025 阿里云 AI 原生编程挑战赛正式启动

阿里巴巴云原生

阿里云 云原生 变成挑战赛

让天下没有难查的故障:2025 阿里云 AI 原生编程挑战赛正式启动

阿里云云效

阿里云 云原生 云原生编程挑战赛

一体化运维平台自动化模块:3 大场景解放运维双手

智象科技

自动化 智能运维 自动化运维 一体化智能运维平台

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