基于规则系统组织业务规则

大型组织AI自动化落地实战:业务系统集成与可审计性设计 企业级AI自动化并非大模型应用的简单延伸,而是面向多系统协同、强合规约束和实时性保障的工程实践。其核心在于将AI能力嵌入已有ERP、CRM、OA等异构系统边界内,通过低代码编排实现业务规则的可视化沉淀,并以字段级数据映射、全链路日志存证和区块链轻量存证构建可审计性闭环。技术价值体现在降低人工干预率、提升端到端时效、满足SOX/ISO 27001等审计要求;典型场景覆盖采购到付款(P2P)、智能巡检、三单匹配等高价值流程。本文聚焦真实生产环境中的系统对接策略、规则配置范式与故障排查逻辑,尤其突出‘老系统终端模 阅读详情
同步自: http://www.blogjava.net/AndersLin/archive/2006/06/30/55926.html
 
2007.12.20更新部分内容       
分析阶段的Use Case(User Story)除了Business Flow描述外,另一个重要的部分就是业务规则。组织和实现这些业务规则有不同的手段(将带来不同效益)。除传统的开发人员的代码实现外,越来越多系统开始使用规则系统来组织。 

对于应用规则引擎网络上著名的有两篇文章:《 Java规则引擎与其API应用详解》和《 企业平台中的业务规则引擎》
此外,JBoss也基于Drools推出了JBPM。Oracle也推出了自己的规则产品。 
  
不过在应用规则引擎前,需要了解四个问题: 
第一个问题是:什么算是业务规则?
我以为《Business Rules Applied》一书对Business Rule的分类比较合理: 
 

Constraint

A constraint can be a mandatory restriction or suggested restriction on the behavior of the business event. A mandatory constraint is a complete statement that expresses an unconditional circumstance that must be true or not true for the business event to complete with integrity.
Examples of mandatory constraints are:
A customer must not have more than 10 open orders at one time.
The total dollar amount of a customer order must not be greater than the customer’s single order credit limit amount.

Guideline

A guideline is a complete statement that expresses a warning about a circumstance that should be true or not true. A guideline does not force the circumstance to be true or not true, but merely warns about it, allowing the human to make the decision. Because a guideline only warns and does not reject, it provides a freedom of choice. An example of a guideline is:
A customer should not have more than 10 open orders at one time.

Action enabler

A complete statement that tests conditions and upon finding them true, initiates another business event, message, or other activity. That is, an action enabler initiates a new action external to the scope of the system or increment under study.
Examples of action enablers are:
If a customer order is valid, then initiate the Place Order process.
If a customer is high risk, then notify the customer services manager.
Action-enabler rules can be used in some commercial rules products to create an event-oriented sequence of workflow steps. It may be helpful to think of mandatory constraints and action enablers as opposites. Mandatory constraints stop an event from completing. Action enablers start an event.

Computation

A complete statement that provides an algorithm for arriving at the value of a term where such algorithms may include sum, difference, product, quotient, count, maximum, minimum, average.
An example of a computation rule is:
    The total-amount-due for an order is computed as the sum of the lineitem amount(s) for the order plus tax.

Inference

A complete statement that tests conditions and upon finding them true, establishes the truth of a new fact. Examples of inferences are:
If a customer has no outstanding invoices, then the customer is of preferred status.
    If a customer is of preferred status, then the customer’s order qualifies for a 20 percent discount.


 
需要强调一下的是(以下想法十分的不成熟):
规则中不应该处理业务流程(任何具有实际意义的业务操作),只有规则本身。包括:
A. 不在规则中更新Domain Object的属性;
B. 不访问Dao对象的创建,更新和删除的持久化工作;
C. 不访问Domain Service中任何涉及Domain Object更新、网络访问、文件操作和邮件操作等方法;
D. 只产生提供控制信息或者状态信息等runtime数据,由业务流程来完成A,B和C限制的行为。
 
第二个问题是:要确定的是否所有的控制逻辑都要用可定制的业务规则来解决?
答案很明显,并非所有的地方都需要。
很多控制逻辑细节都可以采用参数化配置来完成,采用参数配置对于提高性能也有好处。当然参数化配置意味着,对应的控制逻辑的业务边界是确定的。一旦面对高度客户化的业务逻辑,就需要采用规则系统了。
 
第三个问题是:如果要,那么我们需要一个什么类型的规则系统?
规则系统的分类(以下是我的分类):
根据功能,规则系统可以分两类:Formula系统和正统的rule系统。我把Formula系统看作是一个弱化的rule系统,只做公式计算,Excel用的最多的功能也是这个。
根据语言,规则系统可以分两类:编程语言系统和类DSL规则系统。类DSL规则系统更接近自然语言,更接近问题描述语言。
根据引擎,又可以分为脚本系统和推理系统。如JRule就同时支持两种技术:checklist和forward chain,当用checklist时就是一个脚本系统。BTW:Ajoo同学的JASKELL是一个不错的脚本系统。
使用什么的规则系统,取决于系统的需要。
更多的时候系统不需要做推理(因为设计的时候人都做了),一个脚本系统就可以满足需要,而一个弱化后的Formula系统更简单实用。
 
下面是我在javaeye上开的一个和这个有关的话题:
规则系统or脚本系统,自然语言,DSL or Java语言
 
第四个问题是:一旦确定了使用规则系统,该系统的受众是谁,即谁使用该系统?
受众是开发人员还是客户将是一个问题。
如果是开发人员,所要做的工作就是把设计好的对象映射到规则系统中,不需要额外的工作。而如果是客户,或许要多做些工作了。
问题的所在是:通常系统设计采用OO原则,而OO追求的是细粒度的设计,这点对于开发人员来说不是什么问题。但对于客户来说则不一样,客户看到的或者说说理解的对象模型(如果他能理解的话)是一个粗粒度的概念。于是我们不得不额外做些工作——封装不同对象(关联的)到一个对象中。
 
一旦使用了类DSL的规则系统,我们关心的就不是程序,而是一个问题描述。虽然类DSL规则系统最终将生成程序代码(利用代码生成技术),但是很明显,我们所关心的更接近于Use Case(User Story)。无论是开发人员还是客户都将更容易理解系统的行为。
 
 同样,因为采用的是代码生产技术——产生式编程(又拔了一个高度,hoho),综合效益显然(这个……广告语)。更多请参考《产生式编程》一书

 
实现自然语言转 DSL 的 3 种技术方案 首先需要根据领域知识和需求定义DSL语法。| negation其中,表示数字,negation表示取反,binaryExpr表示二元表达式,Operator表示运算符。 阅读详情

相关推荐

规则引擎原理与实战:规则引擎的DSL(Domain Specific Language)开发

1.背景介绍 规则引擎是一种用于处理规则和决策的软件系统,它可以帮助组织和执行规则,以实现复杂的决策流程。规则引擎通常用于处理复杂的业务逻辑和决策规则,例如金融风险评估、医疗诊断、供应链管理等。 规则引擎的核心概念包括规则、决策表、决策流程和规则引擎的DSL(Domain Specific Language,专门领域语言)。规则是规则引擎

AI天才研究院 1188

业务规则治理之规则DSL

背景 在业务部门,我们日常的工作模式是业务提供业务逻辑,我们通过”CRUD“将业务逻辑转成可执行的代码。业务逻辑出现分叉时,就加if-else来解决;当出现多个分支时,就用switch-case来解决;当出现成百上千的分支时,要怎么办? 第一阶段 版本一 简单的办法是通过策略模式,将不同的业务规则归类成一批批策略,每个策略下包含一些规则。不同业务场景选择一个或多个策略执行。这种方式有很好的扩展性,没有增加额外组件所以也有很强的维护性。问题是规则结构没有约束(标准)、规则也无法动态修改。 第二阶段 当工程里

xsgnzb的专栏 1703

【人工智能】自然语言转换成 DSL的技术方案

在本文中,我们将探讨将自然语言转换为领域特定语言(DSL)的三种可行技术方案。我们将分析这些技术方案的原理,以及提供一些代码实例。

AI天才研究院 1万+

DSL:基于规则系统组织业务规则

分析阶段的Use Case(User Story)除了Business Flow描述外,另一个重要的部分就是业务规则。组织和实现这些业务规则有不同的手段(将带来不同效益)。除传统的开发人员的代码实现外,越来越多系统开始使用规则系统来组织。  对于应用规则引擎网络上著名的有两篇文章:《Java规则引擎与其API应用详解》和《企业平台中的业务规则引擎》 此外,JBoss也基于Drools推出了JBPM

joeyshi的专栏 2826

GB28181 信号检索及目录组织结构 ( 三 )

GB28181 信号检索及目录组织结构 上一节, 下级平台已经注册到上级平台, 接着上级平台需要检索下级平台的信号, 比如上级平台需要能够随时查看某区域的 摄像头信号, 首先需要获取下级平台信号的列表, 然后才能调取对应的信号, 本节讲述GB信号检索, 及如何通过树形结构展示这些信号, 重点讲述目录结构组织关系, 因为我发现对这部分网络上讲解的很少, 讲的也不清楚 按照惯例, 后面会提交学习源码, 这里只对关键代码进行分析。 ...

Lonely_Bird的博客 3396

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9178

基于规则系统java,基于规则系统组织业务规则

ConstraintA constraint can be a mandatory restriction or suggested restriction on the behavior of the business event. A mandatory constraint is a complete statement that expresses an unconditional cir...

weixin_39830588的博客 199

FISCO BCOS平台的用户权限控制与分类管理

在区块链技术日益广泛应用的今天,如何管理与控制不同用户的权限,确保系统的安全性与高效性,成为了区块链平台不可忽视的一部分。FISCO BCOS作为一款高效的联盟链平台,通过细粒度的权限控制机制,提供了对不同用户权限的有效管理。本文将深入探讨FISCO BCOS如何实现用户的权限控制,并对不同用户进行分类与权限管理。FISCO BCOS平台通过精密的权限控制机制,不仅提供了对用户表和系统表的细粒度权限管理,还通过工具与接口为开发者和管理员提供了便捷的权限配置与查询功能。

2201_75798391的博客 1061

EA工具学习使用笔记 ———— 业务规则建模

业务规则建模是一种定义和管理业务规则的方法,通过构建规则模型帮助理解业务策略并明确业务行为。该模型包含业务规则包、领域模型、规则任务等核心元素,支持规则流的可视化表达(如起始点、判断条件和终止点等)。建模流程包括创建组织包、定义规则、建立领域模型、绘制规则活动图,最终将规则分配到具体任务。示例展示了一个汽车租赁系统,通过10条具体业务规则(如年龄限制、租金计算等)演示了如何将规则与业务流程关联,实现业务决策的精确化和流程优化。这种建模方式能提升团队沟通效率,减少业务误解,并为系统开发提供模块化解决方案。

永远的菜鸡小詹的博客 899

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

【虚拟仿真】Unity3D中实现对大疆无人机遥控器手柄按键响应

最近项目中需要用到大疆无人机遥控器对程序中无人机进行控制,遥控器是下图这一款:博主发现接入手柄这块的可以参考的内容非常少,对于大疆遥控器的控制更是没有。博主经过一番研究,终于理通了这块的遥控器摇杆数据的控制。并且将解决思路分享出来,希望对大家有所帮助。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2819

后台调用编码规则

// 如果单据编码为空,则调用编码规则生成一个编码,否则不能通过verifyNumber方法的校验 if (com.kingdee.util.StringUtils.isEmpty(billInfo.getNumber())) { IMetaDataLoader imeataLoader = MetaDataLoaderFactory.getLoca

giianhui的专栏 1768

DB文件在编程中的作用及示例代码

通过使用DB文件,我们可以实现数据的持久化存储,并能够高效地进行数据的增删改查操作。在本文中,我们以SQLite数据库为例,演示了如何使用Python语言创建和操作DB文件的示例代码。在实际的编程中,我们可以根据具体的需求和使用的数据库系统来进行更复杂的操作和优化。通过使用DB文件,我们可以实现数据的持久化存储,确保数据在程序关闭后也能被保留,并且能够高效地进行数据检索和更新。在本文中,我们将探讨DB文件的作用,并提供一些示例代码展示如何在编程中使用DB文件。上述代码中,我们使用SQLite提供的。

CodeSpark的博客 1821

Ckrule业务规则管理系统简介

1.   简述 Ckrule业务规则管理系统(BRMS)是一个集成的应用程序存储、管理、执行和测试的平台,允许组织定义、部署、监控和维护运营系统使用的各种复杂决策逻辑。Ckrule BRMS 独立于核心应用程序代码提取并管理决策逻辑,以便可以跨整个组织轻松理解、维护和重用这些决策逻辑。 Ckrule BRMS由下图4个部分组成: 各部分功能明细如下:

ckrule的专栏 1639

【传感器模块项目实战】自动驾驶/机器人相关传感器原理及标定

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、IMU二、相机三、激光雷达四、轮速里程计五、GPS/RTK六、毫米波雷达总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【自动驾驶相关传感器原理及标定】**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、IMU IMU惯导系统的特性(imu_calc函数功能) IMU运行的

qq_35635374的博客 1232

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。

StevenChen的博客 7875

PowerDesigner 业务处理模型( BPM ) 说明

一.BPM 简介 业务处理模型(Business Process Model:BPM)是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型,并使用流程图表示从一个或多个起点到终点间的处理过程、流程、消息和协作协议。通过BPM可以描述系统的行为和需求,可以使用图形表示对象的概念组织结构,然后生成所需要的文档。作为一个概念层次的模块,BPM适用于应用系统的系统分析阶段,完成系统需求分析和逻辑设...

ijavagos 1275

基于PUMA实现DOA估计-附Matlab代码

具体而言,PUMA算法将接收的信号分别在时域和频域上进行处理,并结合平稳合成(SS)和平稳子空间(SSP)方法,以提高估计精度。该算法将传统的基于协方差矩阵的最大似然(ML)和最小二乘(LS)方法扩展到了非均匀线性阵列(ULA)上,并通过对信号分离和DOA估计的优化,达到了高精度和高分辨率的效果。方位角(DOA)估计是信号处理中的一个重要问题,它的目的是确定从多个传感器接收到的信号的方向。本文将介绍如何使用基于PUMA的方位角估计算法来实现DOA估计,并附有相应的Matlab代码实现。

Byte_O_O的博客 496

12个月AI职业转型:从业务痛点出发的系统性实践路径

AI转型不是学习大模型原理,而是掌握将业务问题转化为可执行AI工作流的能力。其核心在于理解业务语义与数据语言的映射关系,构建规则与概率推理协同的混合决策系统,并实现技术方案与组织流程的深度咬合。这一过程强调数据可用性优于完美性、本地化部署保障合规性、小时级反馈驱动持续进化。适用于具备3–8年行业经验、手握真实业务问题与数据源的中坚从业者,目标是交付可测量、可嵌入、可进化的AI效能闭环。本文即围绕‘12个月AI转型’与‘业务痛点’两大热词,展开面向工程落地的分阶段实践指南。

weixin_29704001的博客 311

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 基于规则系统组织业务规则
下一篇: 写在Tapestry 升级成为Apache一级项目之时
林仪明
博客等级 码龄25年 313粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值