谁能介绍一些关于规则引擎方面的书籍,论文参考用!

作者&投稿:容月 (若有异议请与网页底部的电邮联系)
徐建生论文著作的介绍~

1.重组融合蛋白GST-SLTIIeB表达条件的研究,扬州大学学报 1999.11 第4期 第一作者 2.利用PCR法鉴定产SLT-IIe在肠杆菌,中国预防兽医学报 第一作者 1999.9 第5期 3.禽源致病性大肠杆菌I型菌毛亚单位蛋白的功能与基因控制,动物医学进展 第一作者 1999 第二期 4.猪水肿病毒素B亚单位表面表达,中国预防兽医学报 第一作者 2002 第3期 5.选择优良菌株用于仔猪水肿病疫苗的改进,中国预防兽医学报 第一作者 2002 第4期 6.大肠杆菌F18菌毛的研究进展,预防兽医学进展 2001 第3卷 第一期 7.《微生物学基础》河海大学出版社 2000年11月 参编 8.《兽医免疫学》农业出版社 2004年8月 全国高等农业院校教材 参编

《气象雷达原理 》—焦中生

基于规则引擎的企业服务开发模式
陶晓俊,朱敏
(华东师范大学 信息科学技术学院 计算中心,上海 200062)
摘要:本文围绕规则引擎技术分离业务流程和业务规则的思想,探讨并提出一套有效使用规则引擎技术开发企业服务应用系统时所遵循的开发模式,其中包括设计一种基于规则引擎的企业服务模型;提出实际开发过程中紧密结合规则引擎思想,使用规则引擎技术实现企业服务应用的具体步骤和方法.
关键词:规则引擎 JSR-94 Rete算法 Drools
Pattern of Building Enterprise Services with Rule Engine
TAO Xiao-jun,ZHU Min
(Computer Center, East China Normal University, Shanghai, 200062, China)
Abstract:This article will study and advance a pattern which is based on the idea of rule engine for practical building enterprise services that using rule engine technology effectively and handy. The pattern includes a model of enterprise services based on rule engine, and the step and process of developing enterprise services using rule engine technology.
Key Words:Rule Engine JSR-94 Rete Arithmetic Drools
1. 引言
规则引擎是用以管理和自动实现业务规则的软件系统,其主要实现的功能是存储,分类和管理规则,验证规则的一致性,通过规则推断其它规则,联系规则和执行这些规则的应用程序,其中的规则主要是指企业或商务业务逻辑,法律条款,企业政策等.规则引擎概念的思想是从软件的应用逻辑中分离出商业规则,以实现商业应用的灵活性.在传统的企业服务应用程序开发模式下,业务逻辑被直接固定在应用程序代码中,这使得应用程序维护复杂并且代价昂贵,变化的商业规则和业务流程总是引起对应用程序的频繁修改,尤其面临动态商业模型和业务流程的挑战时,传统模式下开发的应用程序往往面临全面和代价高昂的修改,甚至设计变化.解决这个问题就需要采用新的开发模式,将业务逻辑从代码层剥离.使用规则引擎恰恰提供了一个将业务处理和业务规则处理分离,共用和统一管理维护业务规则的系统开发构架.本文以下探讨的就是基于规则引擎的企业服务应用开发模式,其中包括基于规则引擎的企业服务模型和基本的开发步骤和方法.
2. 基于规则引擎的企业服务模型
设计明确和有效的系统模型是企业服务系统得以顺利进行的前提.图1设计了一个简单的基于使用符合JSR-94标准的规则引擎及其模式开发的企业服务应用程序的体系结构.
图1
"图1"描述的企业服务体系分为三个部分:
应用程序/数据获得系统:捕获和存储应用程序提交的所有数据,是业务服务的使用者.主要功能是提交业务请求和处理业务判定.
业务服务:通过具体实现的可调用的网络服务器或者API,调用选定的规则引擎来执行业务规则逻辑或对业务规则逻辑进行运算,产生反馈信息和数据.同时也提供方便和有效维护业务规则逻辑的功能.
支持服务:提供业务服务使用者所提交的相关数据,即规则引擎执行业务规则或运算业务规则所需要的相关数据或应用程序或服务接口.
3. 基于规则引擎的企业服务开发模式中的步骤和方法
在基于规则引擎的企业服务开发模式中,至关重要的原则是:(1)分离工作流程和业务规则;(2)形式化地描述业务规则.在这个开发模式过程中,这两个原则贯穿始终.分离工作流程和业务规则的目的在于将关键的业务判断规则和业务事件响应提取出来,置于系统的公共部位(业务服务),供不同的应用程序工作流程使用,并且便于维护和管理.这是此模式下开发系统得以顺利进行的前提.形式化地描述业务规则的目的则是将业务规则以一种能够被规则引擎处理的形式描述和表示,使业务规则可被运算化,使应用程序可以按照即定义的约定通过一个服务层来访问这些规则.
以下提及和讨论的开发模式中的方法和原则都围绕着以上两个原则展开.
3.1 使用决策表提取规则
在基于规则引擎的企业服务开发模式中首先要解决的问题是明确企业应用中有哪些规则以及对应的业务判定.商业事务中条件元素的集合构成规则,规则决定判定和反馈,在散乱的企业业务中初步提取规则和对应的判定可以使用决策表的方法.

规则1
规则2
……
规则i
条件1
条件值

条件2

……

条件j

判定1
是否反馈

判定2

……

判定k

表1
"表1"给出的是决策表的一般格式.参照"图一"所示模型,其中条件将成为系统中的数据域,条件值则是对应的数据,是支持服务管理和维护的对象,同时是应用程序/数据获得系统捕获和提交的对象.若干条件及其值的集合构成规则,是业务服务管理和维护的对象,也是规则引擎处理的根据.判定是业务服务通过规则引擎处理给出的反馈,最后由应用程序/数据获得系统接收.
下面使用一个企业决定销售人员当月销售奖金的例子来进一步说明决策表的使用:
A
B
C
D
E
F
G
1

rule1
rule2
rule3
rule4
rule5
rule6
2
achieveTarget
N
N
N
Y
Y
Y
3
saleVolume
preMonth
>=10k
<10k
=10k
4
warn
Y
N
N
N
Y
N
5
amortization
0%
1%
2%
2%
2%
3%
表2
表2中的"achieveTarget"表示条件"完成销售指标";"saleVolume"表示条件"销售额";"amortization" 表示判定"提成";"warn"表示判定"提出警告";"preVolume"表示数据"上月销售额".
在"表2"中,列A描述了应用中所涉及的条件和系统处理后的判定,与各个条件或者判定同行的单元格中的值组合构成列B至列G,列B至列G中的每一列都是通过决策表得以分离的规则,规则通过条件值集合和判定反馈值的形式得以描述.例如规则2(rule2)描述的业务规则是:若没有完成销售指标,且销售额大于上月销售额,那么不给警告,并且判定提成比率为1%.规则5(rule5)描述的业务规则是:若完成销售指标,且销售额小于或等于上月销售额,那么给予警告,并且判定提成比率为1%.在实际的应用中可以通过对企业成文或不成文商业规则的总结和归纳来生成决策表,在必要时,例如商业规则不明确时也可以通过对条件组合的穷举来制定决策表,在以后的开发过程中再进行精简.
分离商业规则是基于规则引擎开发企业应用的前提,它是基于规则引擎的企业服务开发模式中的第一步,也是必须和最重要的步骤.如果使用本文提供的决策表方法可以比较方便地分离业务逻辑和商业规则,比较清晰准确地描叙规则,并且具有与基于规则引擎的企业服务模型结合比较紧密的特点,这一特性使其可以对后续开发步骤中问题的解决提供有力支持.
3.2 分析和解决规则冲突.
在分离和提取出规则之后,必须考虑规则之间的冲突,这里提到的冲突主要是指由于规则之间同一条件的值域相交而引起的判定歧义.如果规则之间存在冲突而没有得到解决将造成判定结果的不确定,使规则引擎的处理不能正确进行.我们可以通过使用决策网格来侦测规则之间的冲突.具体的做法是将各条规则依次置于网格的行首和列首,网格中的每一个单元表示对应规则的交叉点,用以记录相交的规则或者规则集合为真时,反馈值是否发生歧义.判断规则是否冲突的依据是相交规则所包含条件值域的交集以及各个判定的反馈值,具体流程如"图2"所示:
图2
以2.1中得到的规则为例,使用决策网格分析对于判定amortization的反馈,各条规则之间的冲突情况,结果如"表3"所示.

rule1
rule2
rule3
rule4
rule5
rule6
rule1
NC
Y[1,2]
N
N
N
N
rule2
Y[1,2]
NC
Y[2]
N
N
N
rule3
N
Y[2]
NC
N
N
N
rule4
N
N
N
NC
Y[1]
N
rule5
N
N
N
Y[1]
NC
Y[1,2]
rule6
N
N
N
N
Y[1,2]
NC
表3
"表3"清晰地描述了各条规则之间的冲突情况,其中Y表示规则可能同时为真,并且有冲突,跟随其后的"[]"中指出具体发生冲突的判定名,判定序号或判定的描述;N表示规则没有冲突或者不可能同时发生.
在明确了规则之间的冲突关系之后,自然必须考虑如何解决冲突.在本文中我们提出三种解决规则冲突的方案:(1)优先级模式;(2)队列模式;(3)常用模式
优先级模式:设定规则的优先级顺序,在规则发生冲突时采纳较高优先级规则的判定反馈.有利于保持业务处理结果的长期稳定性,适用于业务处理规则比较明确的企业应用
队列模式:先进先出原则,即先使用原则.在一个时间段内集中批处理业务时,若发生规则冲突,则采纳先使用(前一次或第一次处理已使用)规则的判定反馈.有利于保证统一批次业务处理结果的一致性,适用于有业务高峰的企业应用.
常用模式:记录和参考业务处理中规则的使用频率(规则为真的频率),在发生规则冲突时采纳使用频率较高或较低的规则反馈.有利于根据业务开展情况灵活适用规则,适用于业务开展情况多变的企业应用.
在一个企业应用服务中,以上提出的规则冲突解决方案可以单一使用也可以结合使用,以构成企业应用的规则冲突解决机制.在没有采取规则冲突解决方案的情况下,一般规则引擎会采用LIFO (last in, first out)原则解决规则冲突,但是对于一个成功的基于规则引擎开发的企业应用,一套规则冲突解决机制是必不可少的.
3.3 形式化描述规则
规则集的冲突问题得到解决之后,基于规则引擎的企业服务开发模式的下一步是要形式化地描述规则,使其具有可代码化和可运算化的性质.当前的规则引擎一般都是基于Dr. Charles L. Forgy 于1979年提出的Rete算法(网络算法).Rete算法的基本思想是组织一个有效的辨别网络,通过数据在网络中的传播来过滤数据.Rete算法的具体做法是首先建立一个根结点(root node)作为数据对象进入辨别网络的入口,根据规则所包含的条件建立测试结点构成辨别网络,在网络的最底层构建若干终结点(terminal node)描述相应的规则.数据对象进入辨别网络之后经过途径结点,最终到达某个终结点,激活这个终结点所描述的规则.根据Rete算法的特性,要求将规则分割为LHS(left hand side)和RHS(right hand side),LHS由规则的条件部分组成,决定辨别网络中测试结点的生成,RHS由规则的判定部分组成,决定辨别网络中终结点的生成.
以2.1中得到的规则为例,可以采用在提取规则步骤中得到的决策表来解决问题,对于各个规则,其所在的列条件值构成它的LHS,判定反馈值则构成它的RHS.由此,每一条规则都可以被形式化地描述为:
形式化地描述规则为基于规则引擎的企业服务开发模式中后续的将规则代码化过程做了铺垫.
3.4 设计业务流程
与通常的设计模式相同,基于规则引擎的企业服务开发模式也包含和关注企业服务的业务流程设计.由于实现了业务流程与业务规则的分离,使得业务流程的设计得到很大的简化,业务流程中不再需要设计繁琐和庞大的条件判断,大大减轻了业务程序的负担.业务流程的设计原则应遵从"图1"描述的服务模型,设计方法则采用与以往设计模式相同的UML方法,在本文中不作详细的讨论,只以2.1中提出的例子为例,给出相应的业务流程活动图来直观说明分离业务流程与业务规则之后使得业务流程设计得到简化的程度.
图3
从"图3"中可以清晰地看到,业务流程已不包含业务逻辑,当业务逻辑改变时,不需要对业务流程作出改变.
3.5 业务规则代码化和业务流程代码化
代码化的步骤既是企业服务具体得到实现的过程,简而言之就是程序代码实现的过程.在这个过程中,需要遵从前序步骤的设计和结果,并且围绕"图1"描述的服务模型展开.在此以2.1中提出的例子为例,选用Java语言和"Drools"规则引擎来实现代码化.本文只给出需要实现的类及其简述,而不给出具体实现代码.
应用程序部分的实现
SellApplication.class 捕获数据,提交业务判定请求,接收反馈,实现业务流程.
SalesPerson.class 记录销售人员相关数据的数据对象.
FeedBack.class 记录判定和反馈数据.
支持服务部分的实现
AchieveTargetService.class 负责给出销售人员完成销售指标的情况.
SaleVolume.class 负责提供销售人员月和上月的销售额.
业务服务部分的实现
AmortizationService.class 接受业务判定请求,调用规则引擎服务,反馈判定
规则的代码化
以"表1"中的rule1为例,其对应"Drools" 规则引擎的代码如下
rule "rule1"
salience -100 //优先级设定
when //LHS
SalesPerson(achieveTarget == false, SaleVolume <= 100000)
$sa: SellApplication()
$fb: FeedBack()
then //RHS
fb.setWarn(true);
fb.setAmortization("0%");
sa.setFeedBack(fb);
end
4.结束语
本文提出的基于规则引擎构架的企业服务开发模式紧密地与规则引擎思想相结合,提出的步骤和方法能够很好地帮助开发人员在开发企业应用服务过程中分离业务流程和业务规则,明确业务规则,并且使得这些业务规则具有可描述化,可用化的性质,最终得以在应用服务中实现作用.虽然规则引擎的应用还不广泛,不深入,但是其概念和理论已经比较成熟,针对于企业服务应用,尤其在动态商业模式下的企业应用有着明显的优势.在实际的企业应用服务开发过程中,引入基于规则引擎构架的企业服务开发模式将使得企业服务应用具有更高的可维护性和更高的灵活性,具有推广使用的价值.
参考文献:
[1] Malcolm Chisholm.How to Build a Business Rules Engine [M]. USA:Morgan Kaufmann,2003.11
[2] Ian Graham.Business Rules Management and Service Oriented Architecture [M]. USA:Wiley,2007.01
[3] (美)伽玛 等著,李英军 等译.设计模式[M]. 北京:机械工业出版社,2005.06
[4] (美)迪达等 著,李宏东等 译,模式分类(原书第2版)[M]. 北京:机械工业出版社,2003.09

可以帮你下载参考论文


关于保险公司的经营规则有简辟的介绍吗
保险公司的业务范围和经营规则(一)保险公司的业务范围1、财产损失保险,是指以存放在固定地点而且处于静止状态的物质财产及其有关利益为保险标的,以火灾、雷电、爆炸、气候灾难、及其他自然灾害事故为保险责任的保险。财产保险的主要种类包括:企业财产保险、家庭财产保险和涉外财产保险。2、责任保险,是指...

有关一些篮球犯规规则的基本解释
一般的篮球犯规规则:1、阻挡犯规:阻止持球或不持球的对方队员行进非法身体接触,就是阻挡犯规。2、拉人犯规:干扰对方队员移动自由的身体接触。这样的接触(拉人)能发生在身体的任何部位。3、非法用手犯规:在防守队员处在防守状态,并且手放置在持球或不持球的对方队员身体上并保持接触,以阻止其行进。

介绍一些篮球的规则(就是什么样算犯规,什么样不算犯规)
2013-01-03 有关一些篮球犯规规则的基本解释 1199 2019-11-07 篮球比赛规则中(技术犯规)(恶意犯规)(违体)都是怎么样的? 2014-04-21 打篮球怎么样的动作才算犯规?打篮球有哪些规则? 2 2011-03-08 怎么样的犯规算篮球5次犯规 走不算不算进5犯? 16 2014-04-25 打篮球怎么样的动作才算犯规?打篮球...

关于篮球犯规规则介绍大全
关于篮球犯规规则介绍 1、技术犯规 对场上或球队席上的球队成员的没有体育道德的行为或违例的处罚,是技术犯规。在球成活球前,与对方队员发生非法的接触,也可判为技术犯规。2、打架犯规 比赛中或死球期间,队员、教练员或训练员打架,要登记技术犯规,不判给罚球,参加打架的人员应立即被驱逐。另根...

台球黑八规则介绍
黑八桌球,是一种运动,又叫黑八台球,又叫美式普尔(8球),关于它的规则呢知道多少呢?下面我给大家介绍关于台球黑八规则的相关资料,希望对您有所帮助。台球黑八标准规则 STANDARD RULES 定义:自由击球权 黑八桌球 1.一方犯规时,对方可将主球置于台面任意位置开始击球。2.线后自由球是指开球一方...

聚会首选,——规则简介
简介 月黑风高杀人夜,狼人杀应该算是如今最风靡的聚会游戏了。然而可能并不是所有人都精通这个游戏,故这里会简单地介绍一些基本规则,让萌新很快能上手,不至于边玩边问。同时还要声明下,因为是初学者教程,本篇仅涉及到4个神(预言家,女巫,猎人,白痴),更多神职狼牌,警长模式等会在下个进阶版...

有人能给我介绍一下篮球比赛的详细规则?
当球在球篮里的时候,防守队员不得触球。球碰板后对方不得碰球,直到球下落。被紧密盯防的选手:被防守队员紧密盯防的球员必须在5秒钟之内传球,运球或投篮,否则其队将失去控球权(NBA规则中无此规定)。球回后场:球队如已将球从后场移至前场,该球队球员便不能再将球移过中线,运回后场。

台球规则简单介绍(台球规则)
您好,我就为大家解答关于台球规则简单介绍,台球规则相信很多小伙伴还不知道,现在让我们一起来看看吧!1、美式普尔(8球)又称国标国标台...您好,我就为大家解答关于台球规则简单介绍,台球规则相信很多小伙伴还不知道,现在让我们一起来看看吧!1、美式普尔(8球)又称国标国标台球规则 定义:自由击球权...

猜灯谜游戏规则关于猜灯谜游戏规则介绍
3. 猜出的谜底必须符合谜目的要求,猜谜时必须严格在谜目指定的范围内寻找答案。如果答案超出了谜目的范围,即使扣得再准确,也不能算作正确答案。4. 猜灯谜的最后一个重要规则是,谜面的词义必须包含谜底的词义,而不能相反,即“小扣大”,违反这一规则即被称作“倒吊”。例如,“江、河、湖、海...

生活中举出一些关于“规则”的例子,你想做一个怎样的人?
生活中举出一些关于“规则”的例子,你想做一个怎样的人?我愿做个遵守规则的人什么是守规矩?“不以规矩,不能成方圆”这句话是战国亚圣孟子说的,意思是没有规(圆规之类的作图工具)与矩(折尺之类的作图工具),我们不能做好圆形或方形图案。规矩、规划,就是法规,是纪律,这个道理很明白,国...

凤翔县15867722893: 推荐关于独立游戏制作的书籍,希望包括了编程,引擎等方面的知识,教学类. -
主父施艽龙: 说实话,我很能理解你现在的处境,因为我当时也迷茫过,但现在不了. 我是学软件工程的,从大学刚入学就一心一意想学游戏编程,但苦于不知从何学起,但经过这么多年,我一直把自己的经验记着,想告诉后来人. 首先第一步被你说对了...

凤翔县15867722893: 想买几本企业管理书籍,里面要包括敬畏规则、规则意识等方面的内容.哪位朋友可以帮我推荐一下? -
主父施艽龙: 《合规——企业经营首要规则》;《制度决定一切》;《规则定成败》;《企业合规管理规范及指引》;《企业法律风险评估》.

凤翔县15867722893: 有没有人介绍一些比较好的SEO搜索优化引擎方面的书籍?最好是与网站内容编辑相关的,越详细越好,免费的 -
主父施艽龙: 这你看看zac的《seo-实战密码》,里面有几张是对站内笔记有关的,比如关键词,内链等等.

凤翔县15867722893: 有哪些关于搜索引擎原理方面的书? -
主父施艽龙: 对于搜索引擎, 我只调查过一段时间的Lucence. 相关书籍如下 1. Lucene in Action 作者:Michael McCandless ,Erik Hatcher ,Otis Gospodnetic 著 出 版 社:Manning Publications2.Lucene分析与应用

凤翔县15867722893: 谁可以给我介绍几本PS、PHP、SEO的书?要比较使用的那种. -
主父施艽龙: 我给点简单的建议吧,从你自己选的书的角度上来看,你在PS,PHP,SEO方面都还是新手,所以你选择入门级的教材,其实入门级的教材,要求都不高,比如PS,你只需要了解图层啊,渲染啊,蒙版啊之类的东西是什么就好了,然后你了解了...

凤翔县15867722893: 哪位朋友请介绍一下Loadrunner方面书有哪些比较好? -
主父施艽龙: iqsssmtr您好!列出几本:Zadrozny 《J2EE性能测试》Boutne,K.C 《客户机/服务器系统测试》J.Mers 《计算机软件测试技巧》Jones,C.《软件评估、基准测试与最佳实践》...希望能有所帮助! 建议到软件测试一些网站找一找,非常多

凤翔县15867722893: 谁能推荐一些关于CRM方面的经典书籍? -
主父施艽龙: CRM方面的书籍有很多的,这里给你介绍几本书参考下: 《客户关系管理:网络经济中的企业管理理论和应用解决方案》主编:王广宇 经济管理出版社 2001 《客户关系管理与数据挖掘》主编:朱爱群 中国财政经济出版社 2001 《客户关系管理――网络经济中的企业管理理论和应用解决方案》,王广宇,经济管理出版社 《客户关系管理》(美)迈克尔·坎宁安 华夏出版社 2004

凤翔县15867722893: 谁能帮我推荐一些关于计算机方面的书籍
主父施艽龙: 1 《计算机导论》是必须要看的,它主要讲解计算机历史和发展,以及硬件一些相关知识 2 信息处理员的培训技术一定要看,它教你怎样使用OFFICE软件和一些计算机常用知识 3 如果想学编程从C开始看起

凤翔县15867722893: 小弟想从事游戏运营的工作,需要一些关于游戏运营与管理类的书籍.有没有哪位大大推荐一下哈. -
主父施艽龙: 游戏运营和管理主要就是实践,和企业管理一方面得书籍,毕竟游戏运营主要靠电脑和大型服务器,会这方面得技术就很好了,运营和管理主要适用于大型网游,运营的话主要是资金的流动和服务器的管理及游戏数据的各种参数的调整,中国的游戏运营还不成熟,你可以多看看关于大型主机维护管理和服务器这方面的书,管理的话一般就是在线客服和数据调控,以及检测各种参数是否正常,发布各种系统消息,a.LINUX服务器安全策略详解b.网络服务器配置完全手册c.服务器配置全攻略(珍藏版)d.网络安全基础,这方面得书看看就行,如果你懂程序就更好了.

凤翔县15867722893: SEO书籍推荐 -
主父施艽龙: 这方面专门的书籍没有,有的也都是一些价值粗制滥造的,因为国内SEO高手寥寥可数,实战派的就更少了.但是大体来讲,SEO主要三方面:SEO技术——即SEO细节优化 SEO策略——因为SEO技术现在大家基本都知道了,高手讲究的是策略 SEO执行力——SEO真正和高手对垒,最后拼的就是执行力了,有了技术和策略,执行力最关键.你现在可能对SEO技术已经有了了解了,但是可能还不系统,或者还有很多疑惑,或者还有还多模棱两可的地方.因此建议你吧你学到的系统起来.然后接下来就是学习SEO策略和SEO执行力了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网