新闻资讯
看你所看,想你所想

Ckrule规则引擎

Ckrule规则引擎

Ckrule规则引擎

Ckrule规则引擎是一种嵌入在应用程式中的组件,实现了,并使用预定义的语义模组编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。CKRule是一个业务规则管理和複合事件处理的综合性引擎,可以将企业管理策略的定义,部署,管理和维护工作从核心代码中分离。企业将深入的业务决策整合到程式,并把市场变化因素以业务规则的形式进行更新。而CKRule可大大降低程式维护的成本,促进业务程式实现更多準确和有效的商务决策。简单来说,规则引擎就是为了将业务决策从应用程式代码中分离出来处理複杂多变的业务而出现的,而把这些变化封装到规则引擎中,提供通用的接口,让实施人员或客户在不改变低层代码的前提下,可以比较简单地改变规则。

基本介绍

  • 中文名:Ckrule规则引擎
  • 性质:嵌入式组件
  • 作用:将业务决策分离出来
  • 性能:综合性引擎

做法说明

规则引擎厂家大量採用rete算法来作为规则引擎的核心技术,各个厂家都是以实现rete算法作为产品的标榜。
而另一种做法就是使用编译来实现,即编写出来的规则是可以生成代码的。
CKRule并不是使用rete算法的,而是使用编译,即规则都是代码来实现,基于.Net4.0的C#语言编写的。
Rete是基于记忆体的处理,而编译则是基于编译器,是可以直接执行的代码。因此从直观感受来看,编译会比算法要快。不过编译也带来语法学习成本的问题,要使用CKRule就要掌握基本的C#语法。

软体评价

Ckrule规则引擎,引用IBM一位技术专家的说法是这样的:
“业务软体系统通常要处理複杂的重複任务。这些系统是使用专用业务规则编码的,用于完成这些任务,但必须能够灵活适应变化。为了简化开发,允许快速部署更改,人们创建了规则引擎,独立于过程代码执行业务规则,允许在无需修改底层代码的前提下更改规则。”

软体用途

1、 纯csharp编写
CKRule使用纯CSharp编写,任何有CSharp编程基础的技术人员都可以非常简便地使用该工具。
除.Net4.0 Framework外,无需安装任何客户端或伺服器程式,如Biztalk,Oracle Client等等。
技术员可以使用最简单的IF/THEN语句维护规则。
2、 决策表
使用CKRule决策表,你可以使用表格的形式,非常直观地创建大量的规则。
这些规则类似一个列表形式,如Excel编写的一个列表,即使不熟悉计算机技术的业务专家也方便设定。
而作为CKRule作为中间件可以从资料库读取决策表并载入,实现了业务系统与规则引擎的完美隔离。
3、 决策树
决策树表现形式相对简单、形象和生活,也常常用于工作中,但因为大部分的业务系统都基于关係型资料库,保存树型数据非常不方便,
决策树上面的结点的运算也相当的困难。
CKRule解决了这个问题,可以比较简便地实现。
4、 客户规则池
允许终端用户输入用户定义的表达式,用最简单有效的方法来表达业务规则。
例如有如下的规则: 买IBM Thinkpad430,有9拆优惠。
那幺,在业务系统中可以这样输入:
IsBrand(“IBM”),Discount(0.1,”ThinkPad430”)
这个输入的动作是在业务系统中实现的。在客户规则池功能中,CKRule提供了各种各样的接口或控制项,供业务系统使用,但CKRule对用户是透明的,用户始终是在使用业务系统中。客户规则池生成的规则会保存在资料库中,调用CKRule时才会载入。
5、 口语编辑器
口语式编辑器可以在CKRule内部及客户规则池中被调用,正如其名,其语法与口语表达基本相同。
与标準编辑器相比,口语式编辑器有大量的提示,这使规则编写变得非常容易,会使用Word就会使用口语式编辑器,无需任何技术基础,一学即会。
口语式编辑器允许客户程式直接调用,这大大提供了业务系统规则编写的友好性。
6.中间件的架构体系
6.1.架构
CKRule就一个规则引擎,C#编写,可编译,是一个中间件的角色,目标是为了减少底层代码的变动。如此可知,对CKRule的使用,是集中在逻辑处理,使用CKRule的一般都是处理複杂多变的业务,即业务系统与中间件的关係。而如果业务系统是三层结构的,那幺就是业务逻辑层调用 CKRule的。CKRule可以藉助CKRemote的远程能力独立为一个Remoting或WCF伺服器,而业务系统的套用逻辑层使用Remoting或WCF调用这个服务。
6.2调用
套用服务层对CKRule的调用集中在RuleFacade接口,需要传入原业务系统定义的对象(下称BusinessEntity)和规则包的名称。CKRule不会直接引用BusinessEntity,为了独立与业务逻辑,CKRule有对象定义,可以定义传入传出属性。
整个对象库就是用来定义与BusinessEntity对应属性和类。通过下表,可以更清晰两者的关係。
一般而言,不可以把CKRule当成一个代码编译器,虽然这个工具有这个能力,但要与Visual Studio等IDE对比,那是自取其辱了。
作为规则中间件,CKRule最大的作用是快速改变规则或公式,同时有一个异常强大的功能是允许业务系统开发商快速开发出规则池,以便最终给终端用户自行编写规则。规则池的使用另有文章介绍。
7.套用範围
CKRule适用于各大行业,比如:1.CKRule在HIS医保登记中的使用 2.使用CKRule实现促销管理系统(一) 3.使用CKRule实现PVC配方计算(三) 4.使用CKRule实现PVC配方计算(一) 5.使用CKRule实现工资计算(工资项和公式) 6.某系统的积分管理业务

适用人群

如果您的企业遇到如下的情况,那幺你适合使用规则管理:
1, 经常变,业务系统需要直接回响变化,快速实现。
常见的情况有促销系统,企业根据市场形势,经常变化促销的策略,业务系统就要快速回响。
2, 多样化决策,业务系统需要适应企业的商务模型和提供的产品/服务。
常见的情况有工资系统,企业会根据自身的需要,不断调整自己的内部管理模式,以适应公司的产品和服务。

软体特点

1、 允许决策逻辑独立于核心程式代码。
2、允许技术开发员和业务专家共同定义和管理决策逻辑。
3、能够在程式运行时,允许程式执行决策逻辑管理,提供规则编辑器和运行引擎。
4、使用纯.Net CSharp开发,提供丰富API并允许使用所有.Net API,调用.Net类,方法,实现接口。
5、能够实现您表达式求值快速化,以及pvc配方计算,通过Ckrule规则引擎,还能方便您促销管理

转载请注明出处海之美文 » Ckrule规则引擎

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com