写点什么

统一的规则引擎与过程

  • 2007-11-21
  • 本文字数:1105 字

    阅读完需:约 4 分钟

(工作流)商务过程管理系统与规则引擎携手并肩而来。过程定义语言(例如 XPDL Colored Petri Nets Pi-Workflow 或者 jPDL )用来在相对粗级别的抽象层次来描述一个过程。规则用来在工作流的上下文基础之上实现决策,例如决定谁来负责一个项目,当一个活动完成时应该通知谁,或者当一个活动拖延了应该做什么。

今天, JBoss Drools 团队的 Mark Proctor 和 Kris Verlaenen 发表了一篇文章:对使用工作流和规则进行声明式编程的看法。文章以 Mark 描述的工作引擎的下一个主要优势为开端:

当 前规则引擎业界的“惯用伎俩”是关注于无状态的决策服务,分离的工作流引擎在某些时候调出分离的无状态的规则引擎来辅助决策工作 —— 在经过了 30 年的研究与开发后,这是我们能够提供的最好的方案。数百万英镑的许可证无非是从一些工作流引擎的一个无状态 web service 调用而得到的美化的电子表格。不是贬低这个模型,实际上这个模型是非常有用的,但是规则引擎与工作流引擎在这种级别的集成最多只是表面上 的,而我们需要统一这些模型,使得这个模型达到更高的层次。

这篇文章是基于 jBPM 团队以前发表的一篇论文,该论文中的说法是"过程虚拟机(Process Virtual Machine)" (PVM)。概括地说,对于工作流来说PVM 就像对于Java 来说的字节码 —— 是一个独立于过程定义语言的过程执行引擎。Kris 介绍了 PVM+ 与规则引擎集成并与过程执行环境一起提供如下的优点:

  • 可以在过程定义中对规则建模
  • 可以在规则和过程之间共享数据(包括结构定义)
  • 统一审计
  • 简化了管理功能
  • 规则和过程的实例可以通过共享的上下文并行的对变化作出反应

PVM+ 是以过程为中心的 DSLs 的基础。Kris 例举了现有的 jBPM 语言 jPDL,与我们最近介绍的 PageFlow (在 web 页面中指定控制流的工作流语言)和 RuleFlow (一种处理有大量规则的流程的工作流语言) 一同作为样例实现语言。


Drools 4.0 规则引擎图

Kris 探讨了“工作条目处理器”的作用,它是负责执行处理实例的。Kris 对于依赖上下文采用不同的处理器的想法很感兴趣。这种方法可以用来克服一个由来已久的对基于规则和工作流的开发的批评——即难以测试:

一个工作流在它的生命周期的不同阶段会有不同的行为。例如,对于测试,处理器可以仅仅是简单的测试工作流的执行是否被记录了。在仿真时,做一些对某些应该被执行的工作条目的可视化工作,使得人们可以仿真完成 / 放弃这些工作条目。

查看英文原文 Unified Rules Engine and Processes - - - - - -

译者简介: 曹云飞,西安交通大学计算机软件硕士。现就职于 Ethos ,热衷于新技术的钻研,软件架构与敏捷开发,目前从事 Home Control 方面的工作。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-11-21 05:333279
用户头像

发布了 47 篇内容, 共 11.3 次阅读, 收获喜欢 3 次。

关注

评论 2 条评论

发布
用户头像
机器翻译的?
2021-07-14 09:33
回复
用户头像
机器翻译?
2021-07-14 09:33
回复
没有更多了
发现更多内容

云化XR,如何助力产业升级

3DCAT实时渲染

XR

知名互联网房屋租赁服务公司物联网关键业务迁移上云实践

EMQ映云科技

物联网 IoT 云服务 emqx 6月月更

NFT挖矿游GameFi链游系统开发搭建

薇電13242772558

智能合约 NFT

什么是XR扩展现实,XR云串流平台有哪些

3DCAT实时渲染

XR 云XR

CloudXR如何推动XR的未来发展

3DCAT实时渲染

CLOUDXR

边缘计算平台如何助力物联网发展

3DCAT实时渲染

边缘计算

Rust 如何实现依赖注入?

非凸科技

依赖注入 Trait 对象 编程语言‘ public

wallys/WiFi 6 (802.11ax) 4×4 MU-MIMO 5GHz QCN9074 Single Band Wireless Module

wallys-wifi6

CODING 正式入驻腾讯会议应用市场!

CODING DevOps

LeaRun.Java可视化拖拽编辑的BI大屏

力软低代码开发平台

“低代码”在企业数字化转型中扮演着什么角色?

优秀

低代码 数字化

云流化技术在汽车行业中的应用

3DCAT实时渲染

XR 云流化

充值满赠,IM+RTC+X 全通信服务「回馈季」开启

融云 RongCloud

NFT铸造交易平台开发详情

开发微hkkf5566

1 分钟 Serverless 搭建你的首个个人网站(完成就送猫超卡)

阿里巴巴云原生

阿里云 Serverless 云原生 网站

流批一体在京东的探索与实践

Apache Flink

大数据 flink 编程 流计算 实时计算

“阿里爸爸”最新Java面试指南,基础+框架+数据库+系统设计+算法

Java全栈架构师

Java spring 程序员 面试 架构设计

小程序容器技术,促进园区运营效率提升

Speedoooo

智慧园区 小程序容器 园区运营

如何使用物联网低代码平台进行服务管理?

AIRIOT

低代码 物联网 低代码开发平台 低代码,项目开发

墨天轮沙龙 | 清华乔嘉林:Apache IoTDB,源于清华,建设开源生态之路

墨天轮

数据库 国产数据库 apache 社区 Apache IoTDB

ABAP-发布Restful服务

桥下本有油菜花

abap

腾讯云的一场硬仗

ToB行业头条

wallys/WiFi 6 (802.11ax) 4×4 MU-MIMO 2.4GHz QCN9074 Single Band Wireless Module

wallys-wifi6

大学生研究生毕业找工作,该选择哪个方向?

C++后台开发

后端开发 应届生 C++后台开发 研究生 C++开发

实时渲染和预渲染有什么区别

3DCAT实时渲染

渲染 实时渲染

先写API文档还是先写代码?

Liam

Java 前端 Postman 后端开发 后端技术

GameFi链游系统开发NFT技术

薇電13242772558

NFT gamefi

【合集- 行业解决方案】如何搭建高性能的数据加速与数据编排平台

Alluxio

人工智能 互联网 金融 科技 电信

联想YOGA 27 2022,超强配置全面升级

极客天地

小程序容器与物联网结合的方式

Geek_99967b

小程序 物联网

日均 6000+ 实例,TB 级数据流量,Apache DolphinScheduler 如何做联通医疗大数据平台的“顶梁柱”?

白鲸开源

Apache 大数据 开源 Apache DolphinScheduler

统一的规则引擎与过程_Java_Gavin Terrill_InfoQ精选文章