使用CKRule规则引擎处理多变业务

本文探讨了在面对复杂多变的业务需求时,如何利用规则引擎简化规则修改过程。特别是针对那些来源于表格数据和非结构化规则的需求,CKRule规则引擎提供了灵活的解决方案。

1, 多变业务

开发系统时,有没有试过下面的情况,如果你试过,那可以考虑一下使用规则引擎了。

序号

问题

举例

1

业务规则来自于一个或多个表格

商店的会员积分表,停车场的计费标准,快递费的计算表,客户信用评分表

2

业务规则是客户自己写的,难以结构化。

工资计算办法,生产配方计算,保险计算,公式系统。

业务规则来自于表格,一般情况下表格有多个列,而这些列之间有条件和结果关系。如:

积分

会员等级

打折

0-100

普通会员

--

100-1000

白银会员

0.99

1000-5000

黄金会员

0.9

5000~

VIP

0.85

这三列中,积分和会员等级就是条件,而打折往往就是结果,通常都是通过条件找到结果,上述表格可以用数据表保存起来,但这个做法真不提倡,上表也许是用户随手搞的,可能过一两个月就会变。

这些基于表格的规则,可以理解为结构化的规则。

但用户常常都会有非结构化的规则要求软件公司实现的,如上表,客户增加如下要求:A,入黑名单的会员不打折,B,3月8日妇女节,女会员折上折98,C,商品X不参与打折。

那就不是表格式的规则了,可以理解为非结构化的规则。

事实上,非结构化的规则,简直就是用户随手编写的公式,也许很多会员系统已经处理了这些问题,但对于小开发团队或行业经验还不够丰富的团队来说,上面的要求就是“变态”,因为自己实现不了。

 

2,规则引擎

规则引擎就是为了处理复杂多变的业务而出现的,而把这些变化封装到规则引擎中,提供通用的接口,让实施人员或客户在不改变低层代码的前提下,可以比较简单地改变规则。

CKRule规则引擎并不是使用rete算法实现的,而是使用编译,即规则都是代码来实现,基于.Net4.0的C#语言编写的。

上面的问题,规则引擎都处理得非常好。对于表格式的数据,可定义决策表进行处理,对于非结构化的规则,就直接编写公式来处理。对表格式数据,需要先标出条件列和结论列,引擎扫描每一行数据,用条件列来判断条件是否正确,如果成立就执行结论列的数据。

而针对非结构化的规则,开发员可以在引擎中定义非常简化的关键字,对比逻辑和结论操作。并在业务系统调用这些定义,开发出适合当前业务系统的界面,提供友好,简单的公式编辑。在CKRule中,非结构化规则被称为客户规则池,其架构图如下:

从上图中,可以清楚看到,终端用户始终在业务系统上面操作非结构化的公式编辑,和测试编写的公式,保存之后被放在数据库中,终端用户是不需要与CKRule进行接触的,这一特点就是CKRule强大的客户规则池功能。

即使你遇到再无厘头的业务规则要求,都可以在CKRule中编辑好基础的元数据,然后在你的业务系统中编辑公式。这些公式是使用C#编译的,你可以非常简单地改变任何业务规则。如果开发员定义的关键字,比较逻辑和结论逻辑足够完善或客户公式足够简单,那把客户规则完全交给客户来编写,是绝对可行而且非常节约成本的事。

想了解CKRule的体系结构,案例和下载应用,请查看:

http://www.ckrule.com/

软件名称:CKRule规则引擎V1.0.9 *注意:请填写软件名称+ 有无插件:无插件 界面语言:多国语言 软件类型:国产软件 授权方式:免费版 软件等级: 软件大小:980 K 官方网址:http://www.ckrule.com/uploadfiles/CKRule1.0.9.zip 软件界面图:http://www.ckrule.com/Doc/cn/Files/sys.png 隶属栏目:编程开发 运行环境:win xp/win2003/win7/win8/win2008 标签 TAG:.Net规则引擎,业务规则管理 软件简介: CKRule是一个业务规则管理和复合事件处理的综合性引擎,可以将企业管理策略的定义,部署,管理和维护工作从核心代码中分离。 企业将深入的业务决策整合到程序,并把市场变化因素以业务规则的形式进行更新。而CKRule可大大降低程序维护的成本,促进业务程序实现更多准确和有效的商务决策。 【软件特点】 1, 允许决策逻辑独立于核心程序代码。 2, 允许技术开发员和业务专家共同定义和管理决策逻辑。 3, 能够在程序运行时,允许程序执行决策逻辑管理,提供规则编辑器和运行引擎。 4, 使用纯.Net CSharp开发,提供丰富API并允许使用所有.Net API,调用.Net类,方法,实现接口。 【软件功能】 【决策表】使用CKRule决策表,你可以使用表格的形式,非常直观地创建大量的规则。 【决策树】决策树表现形式相对简单、形象和生动,常常用于工作中。 【客户规则池】在客户规则池功能中,CKRule提供了各种各样的接口或控件,供业务系统使用,但CKRule对用户是透明的,用户始终是在使用业务系统中。 【口语式编辑器】口语式编辑器可以在CKRule内部及客户规则池中被调用,正如其名,其语法与口语表达基本相同。 与标准编辑器相比,口语式编辑器有大量的提示,这使规则编写变得非常容易,会使用Word就会使用口语式编辑器,无需任何技术基础,一学即会。 【中间件】 CKRule是一个规则引擎,是一个优秀的中间件,使用之后可以大大减少了底层代码的变动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值