(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf_第1页
(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf_第2页
(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf_第3页
(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf_第4页
(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机科学与技术专业论文)基于受限中文业务规则语言的brms的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东北大学硕士学位论文摘要 基于受限中文业务规则语言的b r m s 的设计与实现 摘要 业务规则是定义和约束企业业务结构和业务行为的规定和规范。而业务规则管理 系统( b r m s ) 对业务规则进行表述、维护、部署和执行,使得业务逻辑与应用程序 代码相分离。本文在j e s s 业务规则管理系统的基础上引入了中文业务规则语言,使得 业务规则具有受限自然语言的表达、开发和实施平台,大大提高了业务规则管理系统 的易用性,使得业务人员真正成为业务规则的主人。 本文围绕业务规则的生命周期,从业务规则的定义、生成、表述、执行方面研究 了业务规则管理的原理,提出了基于受限中文业务规则语言的轻型业务规则管理系统 的整体框架;本文深入研究了目前规则引擎常用的1 l e t e 算法,并提出了一种改进的 p e t e 算法,该算法同时基于前向链和后向链推理,使得推理更加灵活;本文建立了一 个三层业务规则语言框架,分别是面向业务人员的受限中文业务规则语言、面向软件 开发人员的面向对象业务规则语言、j e s s 规则引擎的业务规则语言c l i p s ;描述了各 层语言的功能、语法、语义以及各层语言间的转换关系。 基于改进的r e t e 算法和受限中文业务规则语言,阐述了如何设计基于受限中文业 务规则语言的业务规则管理系统( b r m s ) ,并且讨论了规则管理集成开发环境的实 现技术。 业务规则管理是一个复杂庞大的系统,本文只实现了一个小型的业务规则管理系 统,在设计上还不够完善,仍有许多工作有待今后的进一步努力,包括:将改进的r e t e 算法集成到规则引擎中;完善业务规则的句法模板;加强业务规则语言的适用范围和 翻译能力等等。 关键词:规则引擎;p e t e 算法;业务规则管理系统;业务规则语言框架;业务对象 模型 j e s s - i i 东北大学硕士学位论文a b s t r a e t d e s i g na n di m p l e m e n t a t i o no fb r m sb a s e do nc o n s t r a i n e dc h i n e s e b u s i n e s sr u l el a n g u a g e a b s t r a c t b u s i n e s sr u l ei sa r e g u l a t i o na n dc r i t e r i o no fd e f i n i n ga n dr e s t r i c t i n gb u s i n e s sl o g i ca n d b u s i n e s sa c t i o n , w h i l eb u s i n e s sr u l em a n a g e m e n ts y s t e m ( b r m s ) p l a yt h er o l eo f d e s c r i b i n g ,m a i n t a i n i n g ,d e p l o y i n g ,a n de x e c u t i n gb u s i n e s sr u l e ,w h i c hm a k e st h eb u s i n e s s l o g i cs e p a r a t e db ya p p l i c a t i o nc o d e t h i sp a p e rb r i n g sc h i n e s eb u s i n e s sr u l el a n g u a g eb a s e d o nt h eb u s i n e s sr u l em a n a g e m e n ts y s t e mj e s s ,w h i c hm a k e st h eb u s i n e s sr u l eh a v et h e p l a t f o r mo fc o n s t r a i n e dn a t u r a ll a n g u a g et ob ee x p r e s s e d ,d e v e l o p e da n di m p l e m e n t e d , i m p r o v e st h ea c c e s s i b i l i t yo fb u s i n e s sr u l em a n a g e m e n ts y s t e ma n dm a k et h eb u s i n e s s o p e r a t o r st ob et h em a s t e ro f b u s i n e s sr u l ei n d e e d t h i sp a p e rr e s e a r c h e st h ep r i n c i p l eo fb u s i n e s sr u l em a n a g e m e n tf r o md e f i n i t i o n , c r e a t i o n , d e s c r i p t i o na n de x e c u t i o no fb u s i n e s sr u l ec o n t a i n e di nt h el i f ec y c l eo fb u s i n e s s r u l e ,p r o p o s e saw h o l ef r a m e w o r ko fl i g h tb u s i n e s sr u l em a n a g e m e n ts y s t e mb a s e do n c o n s t r a i n e dc h i n e s eb u s i n e s sr u l el a n g u a g e t h i sp a p e rr e s e a r c h e st h er e t ea l g o r i t h m w h i c hi su s e df r e q u e n t l yi nt h er u l ee n g i n en o w a d a y sa n dp r o p o s e sa ni m p r o v e dr e t e a l g o r i t h mw h i c hi sb a s e dn o to n l yo nf o r w a r dc “n i n gb u ta l s oo nb a c k w a r dc h a i n i n ga n d m a k e st h er e a s o n i n gm o r ef l e x i b l e ;b u i l d sat h r e e - l a y e rc o n s t r a i n e db u s i n e s sr u l el a n g u a g e f r a m e w o r kw h i c ha r ec o n s t r a i n e db u s i n e s sr u l el a n g u a g ef o rb u s i n e s so p e r a t o r s ,b u s i n e s s r u l el a n g u a g ef o rs o f t w a r ed e v e l o p e r ,a n dc l i p sf o rj e s sw h i c hi sa tt h eb o t t o mo ft h e l a y e r s ;d e s c r i b e st h ef u n c t i o n , s y n t a x ,s e m a n t i cc u ea n dt h er e l a t i o n s h i po fh o wt oc o n v e r t t oe a c ho t h e ro f e a c hl a n g u a g el a y e ro f b u s i n e s sr u l el a n g u a g ef r a m e w o r k t h i sp a p e r e x p a t i a t e so nh o wt od e s i g nb r m sb a s e do i lc o n s t r a i n e dc h i n e s eb u s i n e s s r u l e l a n g u a g ea n dd i s c u s s e st h ei m p l e m e n t a t i o nt e c h n o l o g yo fi n t e g r a t e dd e v e l o p m e n t e n v i r o n m e n to f r u l em a n a g e m e n t b u s i n e s sr u l em a n a g e m e n ts y s t e mi sal a r g es y s t e ma n dt h i sp a p e r o n l yi m p l e m e n t sa s m a l lb u s i n e s sr u l em a n a g e m e n ts y s t e m t h ed e s i g no ft h es y s t e mi sn o ts op e r f e c ta n d t h e r ea r eal o to ft a s k st od oi n c l u d i n gt h ei n t e g r a t i o no ft h ei m p r o v e dr e t e a l g o r i t h m i m p r o v e m e n to ft h es y n t a xt e m p l a t eo fb u s i n e s sr u l e ;s t r e n g t h e n i n ga p p l i c a b i l i t yo ft h e i i i 东北大学硕士学位论文 a b s t r a c t b u s i n e s sr u l el a n g u a g ea n dt h ea b i l i t yo f t r a n s l a t i o no f b u s i n e s sr u l el a n g u a g e ,e t c k e y w o r d s :r u l ee n g i n e ,r e t ea l g o r i t h m ,b u s i n e s sr u l em a n a g e m e n ts y s t e m ,b u s i n e s s r u l el a n g u a g e ,b u s i n e s so b j e c tm o d e l ,j e s s i v 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取得的 研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰写过的 研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示诚 挚的谢意。 学位论文作者签名:赢旌凉 签字日期 :砂叮,了 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名:否 学位论文作者签名:蛾矛t 塬导师签名 签字日期:刀7 j 弓i 签字日期 东北大学硕士学位论文第一章绪论 第一章绪论 1 1 研究背景 在一个企业实体中,存在着各种各样的规则,因为是与业务相关,所以又称它们 为业务规则。业务规则分散在企业的各种角落,在以往的企业计算机系统中,业务处 理逻辑通常是被看成一个个过程写进了程序代码中,当某些需求和业务规则发生变化 时,必须修改原有代码,修改和维护的成本都相当高。 业务规则管理( b u s i n e s s r u l e s m a n a g e m e n t ,简称b r m ) 技术的出现彻底改变了 以过程形式处理业务逻辑的方式,它将业务规则的实现从具体的程序代码中抽取出来, 以结构化的业务规则数据来表示企业的业务行为,使得业务规则与企业的数据信息一 样成为企业的重要资产。与此同时,软件开发的习惯也开始因b r m 而改变。 基于业务规则的方法将大大缩短系统的开发时间,减少了编程的工作量,开发者 可以直接使用业务规则技术而无需了解更多的实现细节。业务规则像数据一样独立于 程序之外,业务人员可以使用行业术语而不是专业编程语言来编写规则。在国外主要 的b r m s 产品包括:i l o g 的j r u l e s 、f a i ri s a a c 的b l a z ea d v i s o r 、c o r t i e o nd e c i s i o n m a n a g e m e n ts y s t e m 和p r o d u c t i o ns y s t e m st e c h n o l o g y ( p s t ) 公司的o p s j 系统等等。 国内软件开发商的反应比较滞后。 这些b r m s 的规则引擎通常嵌入在垂直行业的企业应用软件中,诸如处理保险、 贷款申请等软件系统。如此一来,i t 系统的维护成本降低了,也提高了业务规则实施 的效率。这种处理方式的优点很明显:业务人员直接控制企业应用软件的运行规则, 用不着总是请求1 1 r 人员的支持,如果业务人员认为业务规则需要修改,他自己就可以 完成,完全不必等待开发人员对代码的复杂修改。图1 1 所示为业务规则管理系统的 整体框架结构。 1 2 国内外b r m s 产品发展现状 目前国际上主要的b r m s 产品包括i l o g 公司的j r u l e s ,y a s u 的q u i c k r u l e s 以 及j e s s 。以下分别说明: i l o g 公司的j r u l e s 产品【】:全球著名的软件组件供应商法国的i l o g 公司在2 0 0 3 年7 月推出了j r u l e s 4 5 版本。i l o gj r u l e s ( 商业规则工具) 提供一个软件组件,用 1 东北大学硕士学位论文第一章绪论 一 规则文件 剖在线雠 应 h 规 用 则 系 nr 引 统 擎 # 一 业务数据对象 。= = = 纠业务规则定制器 图1 , 1 业务规则管理系统整体框架 f i g 1 1w h o l ef r a m e w o r ko f b u s i n e s sr u l em a n a g e m e n ts y s t e m 户可以用规则来描述他的商业逻辑,并且可以正确运行这些规则。i l o g 最早于1 9 9 2 年推出r u l e s f o r c + + 产品,之后2 0 0 0 年开始推出j r u l e s 产品,到现在推出b u s i n e s s r u l e m a n a g e m e n ts y s t e m ,目前该系统在银行、保险、电信得等项目中得到广泛应用。i l o g 于2 0 0 2 年l o 月在北京成立办事处,目前其产品在中国的保险、电信、银行的项目中 己广泛应用。 y a s u 的q u i c k r u l e s l 2 l :y a s ut e c h n o l o g i e s 是一家美国的公司,专门从事商业规 则引擎技术的研究。公司于1 9 9 9 年成立,2 0 0 1 年开始推出q u i c k r u l e s 产品,目前已 经升级到2 6 ,并且分别提供j 2 e e 和n e t 两个平台的版本。 j e s s :j e s s 是1 9 9 5 年由美国s a n d i a 国家实验室成员e r n e s tj f r i e d m a n - h i l l 用j a v a 实现的规则引擎的产品,其主要用于专家系统。目前,j e s s 被广泛用于学术、工业、 商业等领域,是一个有着广阔发展前景的专家系统开发平台。自从问世以来有许多研 究技术人员不断地在j e s s 的基础上添加新的辅助功能。加拿大国家研究委员会信息 技术研究所的r a o r c h a r d 将模糊推理的功能加入到j e s s 中,推出了f u z z yt o o l k i t 。 今年7 月底推出的f u z z y t o o l k i t1 2 是目前的最新版本。 总体来说国际上对于规则管理平台的研究己经有1 0 年左右的历史,相关的商业化 产品的推出也有4 5 年的时问,目前己经形成了一个行业。特别在金融、保险、电子 商务等领域有广泛的应用。因此可以预测,此类产品今后几年在国内也会形成一个行 业。 最近几年,针对这些产品的推出,国际上出台了相关的行业标准。r u l e m l ( r u l e m a r k u pl a n g u a g e ) 规则标记语言是用于存储规则文件的x m l 格式标准【引。2 0 0 3 年, j a v ac o m m u n i t yp r o c e s s ( j c p ) 组织正式通过了j s r ( j a v a 规范要求) 9 4 号规范,为 2 东北大学硕士学位论文第一章绪论 规则引擎定义了j a v a 运行接口。 1 3 本文所做的工作 目前这些b r m s 产品的不足之处主要包括: ( 1 ) 规则引擎的推理算法基本上都来自于c h a r l e s f o r g y 博士于1 9 7 9 年提出的 r e t e 算法及其变体嗍,r e t e 算法是目前效率最高的一个前向链推理算法,其核心思 想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果。然而 这种算法只适合广度优先搜索,而且f e t e 算法是以空间换取时间的一个算法,占用大 量内存。如何提高规则引擎的推理效率,使规则推理更灵活仍是目前研究的重大问题。 ( 2 ) d r o o l s 5 】和j e s s 6 1 等规则引擎产品只提供基本的规则引擎接口,没有实现业 务规则管理的图形化界面,不支持类自然业务规则语言。如何让规则引擎能够理解自 然语言,这是研究的一个热点。 通过参考国内外的大量相关文献,研究前向链和后向链的推理原理,分析基于前 向链推理和后向链推理的业务规则管理系统的一些产品,我们发现这些产品一般都是 单纯基于前向链推理( 演绎) 或后向链推理( 归纳) 的。本文考虑一种将前向链和后 向链推理集成的扩展r e t e 算法,这种算法能够改进规则引擎在单纯前向推理和后向 推理时表现出来的不足,在一定程度上提高规则引擎的推理效率。 本文通过研究规则管理的原理,设计了一个三层的业务规则语言模型,实现了在 一定限制条件下的业务规则的自然语言输入,在此基础上开发出了图形化的规则管理 界面。 本文基于这种改进的r e t e 算法,基于三层业务规则语言模型设计并实现了一个 轻型业务规则管理系统。 1 4 本文的组织结构 第一章,绪论。主要介绍论文的研究背景,本文所做的工作以及论文的主要研究 思路。 第二章,从业务规则的整个生命周期过程( 包括业务规则的定义、生成、表述、 执行) 介绍了业务规则管理的原理,并介绍了业务规则语言框架的概念;介绍了规则 引擎的工作原理并分析了规则引擎在规则管理系统中的地位和作用;最后介绍了业务 规则管理系统的组成和运行的原理和机制。 第三章,分析和研究了规则引擎使用的两种推理算法:基于前向推理的算法和基 3 东北大学硕士学位论文第一章绪论 于后向推理的算法,分析了两种算法适用的范围和特点;研究了目前规则引擎普遍使 用的r e t e 算法的原理,它是一个基于前向链匹配的算法,分析了它的特点和不足。 基于r e t e 算法提出了一种改进的基于前向和后向混合推理机制的规则推理算法e r i ( e x t e n d e df e t ei n f c r e n c 宅) 。 第四章,分析了业务规则管理系统中规则语言框架建立的原理。提出了一个三层 的规则语言框架,以方便业务人员和软件开发人员进行规则制定的不同需求,分析了 建立它们之间映射的方法。 第五章,基于j e s s 规则引擎,建立了一个轻型业务规则管理系统。该系统设计 了受限中文业务规则语言,实现了受限中文业务规则语言的在线提示输入,建立了图 形化的规则管理界面,方便了用户的操作。 第六章为基于受限中文业务规则语言的b r m s 的实现与评价。 第七章为全文的总结。 4 东北大学硕士学位论文 g _ - 章业务规则管理的原理 第二章业务规则管理的原理 2 1 业务规则 2 1 1 业务规则的定义 业务规则目前尚无工业标准定义,g u i d eb u s i n e s sr u l ep r o j e c t 7 1 对业务规则的定 义是:“业务规则是描述和约束业务的语句,用来刻画业务的结构或控制和影响业务的 行为。”一个比较公认的定义是由业务规则组织( b r g , b u s i n e s s r u l e g r o u p ) 给出的, 它包含两个层面的理解:从企业业务的角度来看,“业务规则是支持企业决策,影响或 控制企业业务行为的指示”;从计算机信息系统的角度来看,“业务规则是一条语句, 它定义或约束业务的某些方面。其目的是对业务结构做出断言,或者对业务行为施加 控制和影响”。 一个业务规则包含一组条件和在此条件下执行的操作,它们表示应用程序中的一 段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复 杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制甜。业务规则 的理论基础是:设置一个或多个条件,当满足这些条件时合触发一个或多个操作。 在企业信息系统中,业务规则是一条陈述语句,对业务信息的数据、状态施加逻 辑或计算。而本质上业务规则表达“条件一动作”关系,即当某种条件满足时,执行 规定的动作。业务规则的实施过程统一表现为对条件的检测、以及在条件成立时的动 作执行。这里的动作可以是对数据或状态的约束性检查、或对数据和状态的变换等。 业务规则的属性包括名称、状态( 被提议的、有效的、被核准的、存档的) 、有效 日期和终止日期、业务规则描述、触发事件等。业务规则的主要形式有决策表、决策 树、规则语言和脚本。 决策表:以表格的形式表示业务规则,每一行表示一条规则,列表示条件或动作, 当所有条件满足时,执行动作。 决策树:将一组业务规则以树型结构来表示,每一个分支表示一条决策路径,叶 子节点表示结果或动作。 规则语言:使用类似自然语言的句法描述规则。目前有很多种规则语言,每种语 言适合解决某特定领域的问题,可以提供较好的性能。 5 东北大学硕士学位论文第二章业务规则管理的原理 脚本( 模版) :用于描述过程性的业务逻辑,是决策表、决策树、规则语言的基础。 如:i f t h e n e l s e 。 业务规则的应用特点如下: ( 1 ) 业务规则的非“固化性” 固化在程序代码中的策略和规则必然是僵硬的。客户的多态性和市场的多变性决 定了业务规则和策略的变化必然很频繁,如果规则的每次改变都要求对系统程序进行 “伤筋动骨”式的修改,那么系统的维护和升级必然代价昂贵,甚至难以维护。 ( 2 ) 业务规则的“逻辑性” 业务规则具有逻辑性,每条约束行为的业务规则至少包含两个部分:条件部分和 执行部分;,规则的条件涉及到对业务数据作用的判定,规则的执行涉及到对业务数据 的处理。所以规则不是简单的业务数据。 ( 3 ) 业务规则的“非过程性” 每条规则只能定义对一种现象的判断和操作,复杂的业务逻辑应该由多条规则协 同处理。规则的“非过程性”带来的好处是:每条规则的制定变得非常单纯,可以“就 事论事”,将复杂的过程处理平摊成一个个有条件的执行单元,实现了从简单到复杂的 知识积累过程。 ( 4 ) 业务规则的“事件触发性” 业务规则会根据相应的条件被触发执行,触发规则执行“事件”就是业务数据本 身。比如一套信用分析的规则集合,一旦客户信用记录信息进入系统处理,这组规则 将会被激活,并启动相应的分析过程。 ( 5 ) 业务规则的“非技术性” 业务规则是属于业务人员的,业务人员应该使用行业语言而不是专业技术语言( 如 程序语言、数据库语言、脚本语言等) 编写规则。 交给信息系统的业务规则具备下述五个特点; ( 1 ) 原子性( a t o m i c ) :一条业务规则应是不可再分的,否则就无法表达一个完 整的意思。 ( 2 ) 确定性( u n a m b i g u o u s ) :一条业务规则只有唯一确定的解释。 ( 3 ) 简洁性( c o m p a c t ) :业务规则通常是一条简短的语句。 ( 4 ) 一致性( c o n s i s t e n t ) :各业务规则对系统的描述是连贯一致、无冲突的。 ( 5 ) 相容性( c o m p a t i b l e ) :各业务规则采用的术语是经过统一定义的。 业务规则的分类方法不一而足,因分类角度和分类原则的不同而不同。站在信息 6 , 东北大学硕士学位论文第二章业务规则管理的原理 系统的角度,业务规则组织根据业务规则的内容将其分为三类:结构类规则( s t r u c t u r a l a s s e r t i o n s ) ,动作类规则( a e t i o n a s s e r t i o n s ) 和推导类规则( d e r i v a t i o n s ) ,见图2 1 。 图2 1 业务规则分类 f i g 2 1c l a s s i f i c a t i o no f b u s i n e s sr u l e s 2 1 2 业务规则的生成 业务规则的生成过程可用图2 2 来表示。 图2 2 业务规则的生成过程 f i g 2 2 c r e a t i o no f b u s i n e s sr u l e s 业务对象:在需求分析阶段,采用一些分析工具如u m l 等分析业务领域中存在 7 东北大学硕士学位论文 第二章业务规则管理的原理 的类,它们将被对应到信息系统中加以实现。业务规则管理系统保持与u m l 的接口, 读取业务规则涉及到的u m l 业务类。 事实模型:u m l 类图展示了业务对象的属性、方法以及业务对象之间的关系,称 为业务对象模型( b u s i n e s so b j e c tm o d e l ) 或事实模型。事实模型是业务规则形成和执 行的基础。业务规则的形成依赖事实模型,最后执行的结果表现为对业务对象属性的 修改和方法的调用。 业务规则语句:业务规则语句是对业务规则内容的表述,是业务分析人员用简单 易懂的规则语言,如类自然语言所表述的。在规则的自然语言表述中,业务对象是以 术语( t e r m ) 的形式存在的,如“贷款”、“账号”、“折扣”、“保险金额”等。术语来 自事实模型,并被映射到实际的程序代码中的对象。 规则模板:规则模板根据业务规则的分类,采用类自然语言的方式提供了几种常 用的业务规则形式,解决了自然语言书写规则的随意性问题,同时也方便了用户的书 写。另外,用户也可以建立新的模板,扩展规则表示的能力。 形式化的业务规则:这是一种比较低级的业务规则形式,由自然语言形式的规则 语句转化而来,也可以直接用这种语言书写业务规则。这种语言不是面向不懂程序设 计知识的最终用户,而是面向业务规则开发人员,它的表示能力比自然语言要强大和 灵活,一般用户经过适当的培训也是可以掌握的。 规则库:规则库是存贮业务规则语句及其属性信息的地方。规则库方便了业务规 则的集中管理。规则实现时,规则引擎从规则库中读取业务规则,加以执行。 2 1 3 业务规则的表述 在业务规则分类中,动作类和推导类规则反映了企业业务逻辑,控制系统的动态 变化。业务规则管理系统主要执行和管理这些规则。业务规则语句的基本结构为i f t h e n 。 部分通常称为左部( l h s l e f th a n ds i d e ) , 由若干模式( p a t t e r n ) 组成; 部分称为右部( r h s 。r i g h th a n ds i d e ) ,指明 当满足l h s 的模式时应当执行的操作。 业务规则的表述基于业务术语和业务事实。术语( t e r m ) 是在特定业务领域具有 明确定义的名词或名词短语,例如“客户”、“信用级别”。事实( f a c t ) 是对业务状态 的描述,例如“编号a 0 0 1 的客户信用额度为5 0 0 0 人民币”。实质上规则左部表示对 事实的判断,由若干事实序列组成,规则右部是对事实的修改和创建。考查事实需要 理解对象间的关系,为此我们建立业务对象模型( b o m ,b u s i n e s so b j e c tm o d e l ) 来描 8 东北大学硕士学位论文第二章业务规则管理的原理 述信息系统中存在的对象类型,以及它们之间的关系。b o m 是描述、理解和执行业 务规则的基础。业务规则使用的术语由b o m 定义,它描述的事实反映b o m 内业务 对象间的约束关系,执行的结果是新事实的创建,直接表现为对业务对象属性的修改 或方法的调用。从面向对象的编程角度来看,b o m 就是一个简化的类图,类图中有 类名、类的属性、类的方法等。这些要素都将是业务规则语言中的基本“词汇”。b o m 的来源可以是j a v a 对象模型、c 抖对象模型、x m ls c h e m a 、w e b 服务定义等。 假定我们有一个简单的宠物商店购物车应用程序,在这个应用程序中,顾客能够 在购物车中放入各种宠物和相关物品对象。这个应用程序的业务对象集合就可以有 s h o p p i n g c a r t ( 购物车) 、c u s t o m e r ( 用户) 、i t e m ( 条目) 和i t e m t y p e ( 条目类型) 这几个类。 表述业务规则语言就是业务规则语言。不难理解,企业的不同部门、不同分工的 人员,以及业务规则管理系统内部会采用不同的规则语言来表述规则,业务规则语言 大体有三个层次:非形式化( i n f o r m a l ) 描述、技术形式( t e c h n i c a l ) 描述和形式化 ( f o r m a l ) 描述。一般说来,规则的执行部件( 通常称为业务规则引擎b u s i n e s sr u l e e n g i n e ) 只能理解形式化的业务规则,如c l i p s 1 1 。但业务规则来自应用领域,因而 必须能够被非技术人员理解和编辑,他们倾向于非形式化的规则描述,如类自然语言。 技术形式描述是规则表述的中间形式,既便于理解,又具备一定的结构性。通常,业 务人员采用前一种方式表述规则,开发人员则多采用后两种方式。业务规则管理系统 提供了编译工具,将不同表述层次的业务规则转换为业务规则引擎的执行语言。 除了规则语言,业务规则还可以有其它的表述形式。例如在前面提到的决策表、 决策树等。 业务规则有一个非常明显的特性:单纯性。每个业务规则只描述自己特有的条件 和满足条件的操作,业务规则本身并不关心它与其他规则的关系,如优先关系、互斥 关系、包含关系等。每个业务规则可以有自己的属性,可以用来处理规则之间的相关 性,例如引擎可以使用规则的优先级来依序执行规则的操作用。 2 1 4 业务规则的执行 业务规则的实现可以有多种方式,主要分为下述四种。 ( 1 ) 程序代码 业务规则可以被直接写入程序代码中,或者单独开发成规则组件( r u l e c o m p o n e n t ) 的形式,在需要执行规则的地方加以调度。 9 东北大学硕士学位论文第二章业务规则管理的原理 ( 2 ) 规则引擎 规则引擎是专门的规则执行部件。与规则组件不同,规则引擎的开发不是为了实 现某个特定的规则,而是为定义、存储和执行规则提供一个通用的平台与环境。通常 它们作为应用服务平台( a p p l i c a t i o ns e r v i c e sp l a t f o r m ) 的一部分放在企业应用集成的 中间层。规则引擎在应用系统中的位置描述如图2 3 所示。 图2 3 规则引擎在应用系统中的位置 f i g 2 3 p o s i t i o no f r u l ee n g i n ei nt h ea p p l i c a t i o ns y s t e m 规则引擎能够提供绝大部分与规则的开发、执行相关的技术支持,企业人员只需 集中精力到规则在企业层面的制定与组织上。同时,规则引擎提供一个集中的规则库, 有助于企业人员管理、配置业务规则。另外,规则引擎有利于规则表述形式的统一。 它为规则的表述提供了一套完备的技术层面和非技术层面的规则语言,即使是不具备 计算机知识的企业人员也能够经过培训掌握,这在规则数量很多的时候是非常有用的, 它减少了规则理解时的困难与误解,有利于规则的定制和维护。 ( 3 ) 数据库 通过设计数据库模式、编写触发器等存储过程实现规则,这种方案使得规则的执 行靠近规则执行所需的数据,对于那些面向数据的规则来说无疑将使非常有利的。 ( 4 ) l o o k - u p 表格 规则的含义被其它特定进程加以分析,简化成表格的形式,应用程序只需读取表 格,间接地执行规则。对于那些追求速度,需要很快作出决定的应用程序来说,l o o k - u p 表格的方式非常适用。 2 2 规则引擎的工作原理 一个开放的规则引擎应该可以“嵌入”在应用程序的任何位置,不同位置的规则 引擎可以使用不同的规则集,用于处理不同的事实对象。此外,对使用引擎的数量没 ,1 0 东北大学硕士学位论文g _ - 章业务规则管理的原理 有限制。 规则引擎的基本机制是:对提交给引擎的事实对象进行检索,根据这些对象的当 前属性值和它们之间的关系,从加载到引擎的规则集中发现符合条件的规则,创建这 些规则的执行实例【9 】。这些实例将在引擎接到执行指令时、依照某种优先序依次执行。 规则引擎内部由下面几个部分构成:工作存储器( w o r k i n g m e m o r y ) ,用于存放被 引擎引用的事实对象集合;规则执行队列( a g e n d a ) ,用于存放被激活的规则执行实 例;静态规则区( r u l eb a s e ) ,用于存放所有被加载的业务规则,这些规则将按照某种 数据结构进行组织【9 】o 模式匹配器( p a t t e r nm a t c h e r ) 决定选择执行哪个规则,何时执 行规则;执行引擎( e x e c u t i o n e n g i n e ) 负责执行规则和其他动作。当工作区中的事实 发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行队列中的规则执 行实例。规则引擎的结构示意图如图2 4 所示。 图2 4 规则引擎的结构示意图 f i g 2 4s k e t c hm a po f r u l ee n g i n es t r u c t u r e 任何一个规则引擎都需要很好地解决规则的推理机制和规则匹配的效率问题。 当引擎执行时,会根据规则执行队列中的优先顺序逐条执行规则执行实例,由于 规则的执行部分可能会改变工作区的事实对象,从而会使队列中的某些规则执行实饲 因为条件改变而失效,必须从队列中撤销;也可能会激活原来不满足条件的规则,生 成新的规则执行实例进入队列。于是就产生了一种“动态”的规则执行链,形成规则 的推理机制。这种规则的“链式”反应完全是由工作区中的事实驱动的。 规则条件匹配的效率决定了引擎的性能,引擎需要迅速测试工作区中的数据对象, 从加载的规则集中发现符合条件的规则,生成规则执行实例。1 9 8 2 年美国卡耐基梅 隆大学的c h a r l e sl f o r g y 发明了一种r e t e 算法,很好地解决了这方面的问题。目前 世界顶尖的商用业务规则引擎产品基本上都是使用r e t e 算法。 东北大学硕士学位论文 第二章业务规则管理的原理 由于规则引擎是软件组件,所以只有开发人员才能够通过程序接口的方式来使用 和控制它,规则引擎的程序接口至少包含以下几种a p i :加载和卸载规则集的a p i ; 数据操作的a p i ;引擎执行的a p i 。开发人员在程序中使用规则引擎基本遵行以下5 个典型的步骤:创建规则引擎对象;向引擎中加载规则集或更换规则集;向引擎提交 需要被规则集处理的数据对象集合;命令引擎执行;导出引擎执行结果,从引擎中撤 出处理过的数据。使用了规则引擎之后,许多涉及业务逻辑的程序代码基本被这五个 典型步骤所取代。 2 3 业务规则管理系统 业务规则管理系统( b r m s ) 完成对业务规则的建立、管理、维护、部署、运行 等。b r m s 的技术基础源于传统的专家系统。它主要包括规则的形式化表示、规则编 程语言、规则匹配与执行。同时为适应企业应用环境,b r m s 进一步包含了业务规则 的开发环境、完整的业务对象模型、与其他系统部件的数据和指令接口、良好的组件 化结构等。总之,业务规则管理系统其实是一组工具集,它包括:规则引擎、规则库、 规则语言框架、规则管理集成开发环境。图2 5 为业务规则管理系统的基本结构。 访问控制 图圜 _ 二 国固 + 田 - i b+ 图2 5b r m s 基本结构 f i g 2 5b a s i cs t r u c t u r eo f b r m s - 1 2 东北大学硕士学位论文 第三章规则引擎r c 钯算法的研究和改进 第三章规则引擎r e t e 算法的研究和改进 在上一章中,我们提到,规则匹配与执行是业务规则管理系统b r m s 的一个重要 方面。而决定规则匹配效率高低的主要是规则引擎使用的规则匹配算法,因此提高规 则匹配的算法的匹配效率是一个非常关键的问题,目前规则引擎使用的算法有很多, 主要是基于演绎( 正向推理) 和归纳( 反向推理) 的规则匹配算法,例如d r o o l s 使用 的是r e t e 算法的一个j a v a 实现版本,是基于前向链推理机制的,j e s s 【l o 】也是采用 的r e t e 算法,它具有前向和后向的推理算法,但是只能进行单纯前向或后向推理。 p e t e 是目前使用较普遍并且效率较高的一个推理算法。p e t e 算法是基于专家系统的 产生式算法发展来以空间换取时间的一种规则推理算法。在这一章我们首先研究了 r e t e 算法的基础:产生式规则和正反向推理,然后我们深入研究了r e t e 算法的原 理,并提出了一个改进的p e t e 算法,它实现了前向链和后向链的集成。 3 1 产生式规则和正反向推理 产生式一词是美国数学家波斯特根据替换规则提出的,研究模型中的每一条规则 被称为一个产生式,又叫产生式规则。产生式的一般形式为:前件一后件。其中前件 就是前提,后件是结论或动作,前件和后件可以是由逻辑运算符a n d ,o r ,n o t 组 成的表达式。产生式规则的语义是:如果前件满足,则可得结论或者执行相应的动作, 即后件由前件来触发。所以,前件是规则的执行条件,后件是规则体。产生式除包括 逻辑蕴含式外,还包含各种操作、规则、变换、算子、函数等等。一个产生式规则就 是一个知识。用产生式不仅可以进行推理,而且还可以实现操作。 机器中运用产生式进行推理是用产生式系统来实现的。产生式系统由三部分组成: 产生式规则库、推理机和动态数据库( 知识库) 。产生式规则库也叫产生式规则集,由 领域规则组成,在机器中以某种动态数据结构进行组织。推理机也叫控制执行机构, 它是一个程序模块,负责产生式规则的前提条件测试或匹配,规则的调度与选取,规 则体的解释和执行。即推理机实施推理,并对推理进行控制,它也就是规则的解释程 序。动态数据库也叫全局数据库、综合数据库,它是一个动态数据结构,用来存放初 始事实数据、中间结果和最后结果等。 规则之间的控制流不是像传统语言程序中从一条语句向其下一条语句传递,而且 满足条件的规则虽可用但不一定立即执行,这将取决于产生式系统的冲突消解策略。 1 3 东北大学硕士学位论文第三章规则引擎f e t e 算法的研究和改进 这是传统语言逻辑程序与产生式系统行为特征的主要区别。如图3 1 所示为产生式系 统结构图。 图3 1 产生式系统结构图 f i g 3 1s b u c t u r eo f p r o d u c t i o ns y s t e m 产生式系统的推理可分为正向推理和反向推理两种基本方式【1 1 】。 正向推理是:根据在综合数据库中给出的己知事实,正向使用规则,即把规则的 前件同当前数据库的内容进行匹配来选取可用规则,若有多条规则可用,则按冲突消 解策略从中选择一条规则执行,将执行规则的结论添加到综合数据库中,直至问题求 解或没有可用规则。, 正向推理又称为自底向上推理( b o t t o m u pr e a s o n i n g ) 。因为它从底层的证据、事 实出发,由推理得到顶层的基于事实的结论。专家系统中的自底向上的推理类似于自 底向上的传统程序设计 反向推理是:根据在综合数据库中给出的假设,反向使用规则,即把规则的后件 同当前数据库的内容进行匹配来选取可用规则,若有多条规则可用,则按冲突消解策 略从中选择一条规则,将该规则的前件添加到综合数据库中,直至问题求解( 假设成 立所需要的全部证据和事实在数据库中) 或没有可用规则。反向链中,系统为了证明 或否定一个假设,通常会从用户那里引征证据。 正向推理允许用户主动提出有用的事实,在推理中解决对用户输入的信息作出反 应,而不必等到系统需要时才向用户提问。正向推理主要适合于目标不明确且“解空 间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论