写点什么

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

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

关注

评论

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

东莞理工大学-第四届“火焰杯”软件测试高校就业选拔赛颁奖典礼

测吧(北京)科技有限公司

测试

区块链开发:链接未来的技术之桥

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

车家互联再获重磅突破,小度携手极越开启智能生活无限畅联新体验

新消费日报

上传图片到京东api接口的申请步骤有哪些特别之处?

技术冰糖葫芦

AI 模型编译器 API 开发

Web前端开发技术:图像与多媒体文件

不在线第一只蜗牛

前端 Web 图像处理

韩山师范学院-获第四届“火焰杯”软件测试开发选拔赛全国奖项

测吧(北京)科技有限公司

测试

华为云耀云服务器L实例助力企业行稳致远

平平无奇爱好科技

Python读取Ansible playbooks返回信息

不在线第一只蜗牛

Python sql 表单设计

通过亚马逊云科技云存储服务探索云原生应用的威力

亚马逊云科技 (Amazon Web Services)

云原生 S3 ebs 云存储服务 EFS

DAZ Studio for Mac(专业三维人物动画制作工具) 4.20.0.17永久激活版

mac

苹果mac Windows软件 DAZ Studio Pro 3d人物动画制作软件

软件测试/人工智能|探究 LangChain 核心模块:PromptsModelsParsers

霍格沃兹测试开发学社

开启数字化转型新纪元,华为云引领轻量应用服务器创新

平平无奇爱好科技

如何获取item_question_answer-淘宝评论问答列表api接口

技术冰糖葫芦

AI 模型编译器 API 文档 COMSOL Multiphysics

PDF Expert for Mac(PDF编辑阅读转换器)v3.7.1永久激活版

mac

PDF Expert 苹果mac Windows软件 PDF 编辑器和注释器

快速渡过新手期!华为云服务器让小程序开发的试错成本更低

平平无奇爱好科技

如何运用AppLink平台中的数据连接器组件

RestCloud

MySQL APPlink

性能优化的一般策略及方法

不在线第一只蜗牛

性能优化 优化 优化策略

软件测试/人工智能|什么是LangChain,这篇文章告诉你

霍格沃兹测试开发学社

软件测试/人工智能|LangChain Memory模块:开启语言数据的存储与回忆之旅

霍格沃兹测试开发学社

如何正确选型低代码、无代码、aPaaS平台?有这几个重点

互联网工科生

低代码 无代码 aPaaS

创业有术,烧钱有道丨华为云为初创企业指明发展之路

平平无奇爱好科技

凭实力碾压友商!中小企业网站建设盲选华为云这款轻量应用服务器

平平无奇爱好科技

高效聚合 | AIRIOT智慧虚拟电厂管理解决方案

AIRIOT

智慧电厂 智慧工厂 数字化工厂

助力企业实现更简单的数据库管理,ATOMDB 与 TDengine 完成兼容性互认

TDengine

tdengine 时序数据库

厦门理工学院五名学子获第四届“火焰杯”软件测试开发选拔赛全国奖项

测吧(北京)科技有限公司

测试

数字化红利进入“下半场” ,华为云耀云服务器L实例全力构建中小企业磁力场

平平无奇爱好科技

初创企业太“烧钱”?华为云轻量应用服务器激活创业新思维

平平无奇爱好科技

长春工业大学-在2023年全国大学生“火焰杯”软件测试大赛中喜获佳绩

测吧(北京)科技有限公司

测试

轻量应用服务器为何是小程序开发“黄金搭档”?华为云给出完美答案

平平无奇爱好科技

GPTs大受欢迎但问题多,企服软件厂商的AI Agent更被B端客户器重

王吉伟频道

AI Agent AI智能体 RPA Agent GPTs RPA智能体

SourceTree 4.1.5(Git客户端工具)

Geek_幻墨成诗

sourcetree SourceTree Mac

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