(计算机软件与理论专业论文)规则引擎在电信结算摊分系统的应用及业务规则管理.pdf_第1页
(计算机软件与理论专业论文)规则引擎在电信结算摊分系统的应用及业务规则管理.pdf_第2页
(计算机软件与理论专业论文)规则引擎在电信结算摊分系统的应用及业务规则管理.pdf_第3页
(计算机软件与理论专业论文)规则引擎在电信结算摊分系统的应用及业务规则管理.pdf_第4页
(计算机软件与理论专业论文)规则引擎在电信结算摊分系统的应用及业务规则管理.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

华北电力大学硕士学位论文 摘要 本文以设计和开发一个实用、廉价的业务规则管理系统为主要应用目标,总结 了当前规则管理系统领域的相关技术。介绍了规则管理系统的总体架构,重点描述 了规则管理系统中的核心一规则引擎,详细介绍了规则引擎的定义和功能、架构、 推理和算法等。 在深入分析和研究国外多种业务规则管理系统产品技术、充分调研了电信运营 商的结算摊分业务的基础上,设计和开发了电信运营商结算摊分系统。该产品除了 具备同类产品的必备功能外,在提高实用性方面,实现7 使用用户熟悉的中文自然 语言定制业务规则,并使用规则模板技术方便了规则的定制。采用了大量能够提高 系统性能的数据预处理、缓存等技术,极大地提高了系统程序的执行速度。 关键词:业务规则管理系统,规则引擎,结算摊分,业务支撑系统 a b s t r a c t i n t h i sp a p e r , t h em a i np u r p o s ei st od e s i g na n dd e v e l o pa na p p l i e da n d l o w c o s tb 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 ) ,a n dt h er e s e a r c ho nb r m si s s u m m a r i z e d t h ef r a m eo fb r m si sd i s c u s s e d ,a n dr u l ee n g i n e ,t h ek e yt e c h n o l o g y o fb r m s ,i n c l u d i n gd e f i n i t i o na n df u n c t i o n ,f r a m ea n dd i s c u r s i o n ,a r i t h m e t i ci s d i s c u s s e di nd e t a i l b a s e do nd e e p l ya n a l y s i sa n dr e s e a r c ho no v e r s e a sb r m s p r o d u c t s ,f u l l ys t u d y t h es e t t l ea n da p p o r t i o nb u s i n e s so ft e l e c o mo p e r a t o r ,t h et e l e c o mo p e r a t o r s e t t l e & a p p o r t i o ns y s t e mi sd e s i g n e da n dd e v e l o p e d t h i sp r o d u c ti sp r o v i d e dw i t ha l l n e c e s s a r yf u n c t i o n so fo t h e rb r m sp r o d u c t s ,a n db e s i d e s ,t oi n c r e a s i n gi t s p r a c t i c a b i l i t y ,u s e rc a nu s ec h i n e s en a t u r el a n g u a g et od e f i n eb u s i n e s sr u l ei nt h i s s y s t e ma n du s et h eb u s i n e s sr u l et e m p l a t et e c h n o l o g yt od e f i n er u l ee x p e d i e n t l y i no r d e rt oi m p r o v et h ep e r f o r m a n c eo ft h es y s t e m s o m et e c h n o l o g yi su s e d z h a n gy a n h u i ( t h et h e o r yo fc o m p u t e rs o f t w a r e ) d i r e c t e db yp r o f l i nb i y i n g k e yw o r d s :b r m s ,r u l ee n g i n e ,s e t t l ea n da p p o r t i o n ,b u s i n e s ss u p p o r ts y s t e m 声明 本人郑重声明:此处所提交的硕士学位论文规则引擎在电信结算摊分系统的应用 及业务规则管理,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研 究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示了谢意。 学位论文作者签名:孟堑圭垦塑辇日期:三卑:! :! 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制荠保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播 学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:弘耗姊 1 日 期:兰翌! :! 导师签名:生搓壅 日期:坦z :! :竺 华北电力大学硕士学位论文 1 1 研究背景 第一章绪论 信息系统发展到今天,市场在交,客户需求在变,公司产品在变,工艺流程在 变,一些新的问题摆在了人们的面前。随着企业信息化程度的提高,业务对i t 的 依赖程度也越来越高,但i t 部门与业务部门之间的矛盾却始终存在:软件开发人 员善于编写代码,但他们对业务规则却知之甚少;同样,业务人员熟知业务规则, 但却很难将它们转换成详细的需求文档。这样,开发出来的信息系统怎样在较长的 时间内满足企业、市场和社会的瞬息万变呢? 纷繁复杂的变化背后,可以发现一个 共性的东西:那就是企业的业务规则在变。这是问题的关键,也是改进信息系统所 必须面对的根本。 进入到二十一世纪,业务规则正以神奇的力量渗透在企业的每个角落,它在企 业随处可见。与业务相关的操作规范、管理章程、规章制度、行业标准等东西,都 可以称为业务规则( b u s i n e s sr u l e s ,简称b r ) 。比如在当今的电信企业中,业务 规则就是电信运营商真正的资产,数据也许可以和不同的运营商共享,但公司本身 的策略,如促销策略,套餐策略,往往是决定盈利的非常重要的要素,这些都是掌 握在业务人员手中的宝贵财富。为了保持营运收入的增长,电信企业采取了各种扩 大营业范围不同的手段,发展了大量的业务代理商,这些代理商负责发展电信运营 商的业务( 以电信为例,如代理固定电话、a d s l 、小灵通等的新装) 、出售运营商 的产品( 如各种各样的电话卡、上网卡等) ,这样电信运营商就可以很大程度上专 心关注于他们需要做的事情( 如各种电信基础设施的规划、维护、建设等) ,而将 一些外围的业务外包给各种代理商,从而降低运营成本,增加收益,提高企业的核 心竞争力。同时由于涉及到不同的运营商网间结算问题,又要和其他电信运营商进 行网间费用的结算摊分。这个时候,就需要对部分盈利和代理商、运营商之间进行 结算摊分。 但是,在目前的很多企业中,业务规则大多数存在企业业务人员的大脑中,或 者程序手册、客户合同、供应商协议等非结构化的文档中。作为描述企业最重要特 征的业务逻辑没有被有效地管理和使用,导致好的经验无法积累,差的经验无法总 结。即使企业有了信息系统,规则逻辑也是作为一个过程写进了程序代码中,当业 务和需求发生变化的时候,不能做出相应的响应变化,必须伤筋动骨修改原有的程 序代码,修改和维护的成本都相当高,带来极大的不便。 比如电信运营商,在发展各种产品的代理业务的时候,和各种代理商签订了各 华北电力大学硕士学位论文 种各样的合同,合同中规定了很多结算摊分规则,而且这些业务规则都是以文本的 形式存在于纸上。每到一个帐期结束,结算周期到来的时候,就要动用大量的人力 物力进行统计、结算分析,将结算的结果摊分给代理商以及不同的运营商;但是即 使是这样,结算出来的数据也会存在准确性、实效性等各种各样的问题。 业务规则管理;业务规则管理( b u s i n e s sr u l e sm a n a g e m e n t ,简称b 删) 技术 随着业务规则的出现应运而生,正迅速成为解决上述问题的最佳实践方案。该技术 的出现彻底改变了以过程形式处理业务逻辑的方式,它将业务规则的实现从具体的 程序代码中抽取出来,以结构化的业务规则数据来表示企业的业务行为,使得业务 规则与企业的数据信息一样成为企业的重要资产。如果说一个业务规则是描述,约 束或控制某项业务的某个方面的话,那么业务规则管理就是企业在业务规则管理生 命周期内控制业务规则的一组策略和流程。与此同时,软件开发的习惯也开始因业 务规则管理技术而改变。业务规则像数据一样独立于程序之外,业务人员可以使用 行业术语而不是专业编程语言来编写规则,从而使企业的业务系统真正面向业务人 员。这样所带来的改变不仅仅是业务规则管理方式的改变,更带来了编程方式的改 变,产生了一种新的编程方式一基于规则的编程方法,实现了以可视化的方式响应 客户业务规则的构建与变更。 一个完整的业务规则管理系统包括规则的查询、规则生命周期管理、版本管理 以及规则模板等的管理。此时业务规则可以理解为一个应用系统的业务中动态的、 可变化的业务逻辑;我们可以把容易改变的业务逻辑从程序代码中分离出来,由规 则引擎来处理,当业务逻辑发生变化时,只需修改业务规则部分,而不需要修改业 务程序,从而可以快速适应不同的业务变化、降低软件的维护难度。业务规则管理 系统的基本原理是:用一个或多个规则引擎替换“固化”在程序不同位置的业务规 则( 逻辑) 的程序代码。被替换的业务规则( 逻辑) 存储在程序之外的规则库中;规则 库中的规则可以通过图形化规则管理工具实现定制、修改和部署。业务规则和规则 管理中的核心技术是规则引擎( r u l e se n g i n e ) 技术。可以理解,业务规则引擎其 实就是规则的触发器u ,。 规则引擎:规则引擎其实是一种软件的组件,嵌入在程序中其设计目的是为 了迅速高效地处理规则,并通过执行复杂的算法为评估和执行规则优化计算资源的 使用。应用程序通过向规则引擎提交数据或者对象来触发规则引擎,由规则引擎来 调用相应的业务规则,触发相应的应用程序的动作,对业务规则队列和队列中的数 据和对象做出相应的处理。 规则引擎的基本机制是:对提交给规则引擎的数据对象进行检索,根据这些对 象的当前属性值和它们之间的关系,从加载到规则引擎的规则对象中发现符合条件 的规则,创建这些规则的执行实例。这些实例将在引擎接到执行指令时、依照某种 优先序依次执行,最后输出执行结果口】。 2 华北电力大学硕士学位论文 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则,迫切需要分 离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中 心数据库或其他统一的地方,让它们能在运行时( 即商务时间) 动态地管理和修改, 从而提高软件系统的柔韧性和适应性,并且能够有效地延长业务应用程序的使用寿 命。规则引擎技术正是应用于上述动态环境中的一种解决方法。 1 2 论文主要从事的工作 在论文工作期间,主要从事以下几个方面的工作; 1 、查找大量资料,学习现代企业中业务规则的含义以及业务规则管理系统的 含义。 2 、通过和电信运营商的业务人员的交流、沟通,获取需求,归纳整理用于结 算摊分的业务规则 3 、查找规则引擎的相关资料,测试、比较各种规则引擎的优点、缺点以及性 能,权衡利弊,选择一个规则引擎。 4 、确定整个系统的数据模型设计和数据库设计。 5 、确定整个结算摊分系统使用的软件技术及软件架构。 6 、软件系统的编码、测试、实施以及维护。 1 3 论文的内容组织 第一章简要介绍本文的研究背景、研究目的、主要内容和组织结构。 第二章主要综述业务规则的定义、当前业务规则管理系统的发展现状及结构组 成,并详细说明了规则引擎的原理技术。 第三章首先介绍了电信运营商业务外包以及结算摊分系统的意义、系统架构设 计和采用的技术特点,并在该部分介绍了系统的功能特点和技术要点。 第四章详细阐述了结算摊分系统各个模块的详细设计及相关技术的实现要点。 第五章对比、总结并说明了结算摊分系统的应用前景以及和国内外同类产品比 较的特点。 在论文的最后对全文做了总结并说明了所从事的主要工作,指出了本文的创新 之处,并展望了下一步的研究方向。 3 华北电力大学硕士学位论文 第二章规则引擎及业务规则管理技术 2 1 什么是业务规则 对于银行、电信等对i t 依赖度非常高的企业而言,管理机构、竞争对手、客 户和整个市场情况不断带来各种变更,需要根据这些情况来制定不同的市场策略, 必须将这些变更及市场策略作为业务规则。业务规则专家组( b r g ) 规定了业务规则 的两个定义。第一个定义与业务观点相关,而第二个定义与i t 相关: l 、“从业务的角度看,业务规则是一种原则,包含在特定活动或范围内关于指 导、操作、实践或过程的行为规范。” 2 、“从信息系统的角度看,业务规则是一个定义或限制业务某些方面的声明。 业务规则旨在用于断言业务结构,或者控制或影响业务行为” 业务规则专家组对业务规则的定义是:“业务规则是描述和约束业务的语句, 用来刻画业务的结构或控制和影响业务的行为。”业务规则具有如下特性:申明性、 准确性、原子性、一致性、非冗余性。 业务规则实质上也可以理解为一组条件和在此条件下的操作,是一组准确凝练 的语句,用于描述、约束及控制企业的结构、运作和战略,是应用程序中的一段业 务逻辑。该业务逻辑通常由业务人员、企业的管理人员和程序开发人员共同开发和 修改。它的理论基础是:设置一个条件集合,当满足这个条件集合时候,触发一个 或者多个动作。以规则形式捕捉策略语句能提供极大的灵活性和良好的适应性,是 企业保持竞争优势的决定性因素“1 。 业务规则最基本的组成成份是用于表示它的语言,业务术语是人们用于定义事 物的工具,例如术语表。一个组织的本质和运行结构可以用相关的术语来描述,如 “客户下一个订单”。类似“数据不可以更新”这样的规则能够限定和控制企业的 某些行为。此外,利用业务规则可以从一种知识推导出另一种知识。 业务规则的属性包括名称、状态( 被提议的、有效的、被核准的、存档的) 、 有效日期和终止日期、业务规则描述、表达式、触发事件等。其主要形式有决策表、 决策树,规则语言和脚本等嘲,描述如下: l 、决策表:以表格的形式表示业务规则,每一行表示一条规则,列表示条件 或动作,当所有条件满足时,执行动作。 2 、决策树:将一组业务规则以树型结构来表示,每一个分支表示一条决策路 径,叶子节点表示结果或动作。 3 、规则语言:使用类似自然语言的句法描述规则。目前有很多种规则语言, 每种语言适合解决其特定领域的问题,可以提供较好的性能,但比图形化的表示难 4 华北电力大学硕士学位论文 于维护。 4 ,脚本( 模板) ;用于描述过程性的业务逻辑,是决策表、决策树、规则语言 的基础。如:i f t h e n e l s e 。 作为一个业务规则管理系统“灵魂”的业务规则,其应用特性如下: l 、业务规则的非“固化性”:固化在程序代码中的策略和规则必然是僵化的。 客户的多态性和市场的多变性决定了业务规则和策略的变化必然很频繁,如果规则 的每次改变都要求对系统程序进行“伤筋动骨”式的修改,那么系统的维护和升级 必然代价昂贵,甚至难以维继。 2 、业务规则的“逻辑性”;业务规则具有逻辑性,每条约束行为的业务规则至 少包含两个部分:条件部分和执行部分;规则的条件涉及到对业务数据作用的判定, 规则的执行涉及到对业务数据的处理。所以规则不是简单的业务数据。 3 、业务规则的“非过程性”:每条规则只能定义一种现象的判断和操作,复杂 的业务逻辑应该由多条规则协同处理。规则的“非过程性”带来的好处是;每条规 则的制定变得非常单纯,可以“就事论事”,将复杂的过程处理平摊成一个个有条 件的执行单元,实现了从简单到复杂的知识积累过程。 4 、业务规则的“事件触发性”:业务规则会根据相应的条件被触发执行,触发 规则执行的“事件”就是业务数据本身。比如套信用分析的规则集合,一旦客户 信用记录信息进入系统处理,这组规则将会被激活,并启动相应的分析过程。 5 、业务规则的“非技术性”:业务规则是属于业务人员的,业务人员应该使用 行业语言而不是专业技术语言( 如程序语言、数据库语言、脚本语言等) 编写规则。 在实际的业务规则需求中,一条业务规则通常是这样的:“如果( i f ) ”某些事 件发生或某些条件存在,“那么( t h e n ) ”就会发生某些事件,“否则( e l s e ) ”会发生 其他事件。每个i f t h e n e l s e 语句就是一条业务规则。每条规则都是说明性的, 而且可以与其他规则互相作用。 例如对于电信运营商的外包发展业务,一条实际的业务规则可能是: 如果( 产品类型一小灵通并且在网时长 i 三个月) 结算结果- 发展量2 5 该业务规则表达的意思是,一个代理商如果发展了一个小灵通业务并且在网时 长超过了三个月,那么电信运营商就支付给代理商2 5 元钱。 要将这种业务规则转换成可管理的规则,主要是一个规则表达式的翻译的问 题,因为规则引擎不能识别实际的中文规则表达式字符串,因此需要进行规则翻译。 而这恰恰是j a v a 与生俱来的优势,j a v a 语言擅长于处理各种字符串。 5 华北电力大学硕士学位论文 2 2 当前业务规则管理技术的发展 业务规则方法学提供了一种依照业务规则概念进行分析问题和解决问题的方 式,帮助人们发现规则、表现规则、管理规则、自动执行规则,建立规则运行机制, 最终目的是实现业务规则管理系统。使得简单的非技术性的概念容易被技术人员和 业务人员所理解,业务人员不必涉及数据模型、处理模型和对象模型即可直接面对 业务规则,同时更加深入地参与系统的需求分析、设计与实现。 业务规则存储在规则库中,完全独立于数据和程序。业务人员可以对业务规则 进行查询、添加、更新、统计、提交等操作,并且可以在线修改和测试业务规则。 业务规则可以不断积累、调整和共享,并能对规则进行版本管理,设定规则的有效 期,实现对业务行为的知识管理。系统的稳定性也因此得到了保障,系统的维护成 本大大降低。 数据库把程序与程序所处理的数据进行了分离,它的出现使得数据不依赖于程 序而独立存在,软件系统的升级无需对数据库系统进行改动,并产生了关系数据模 型、数据库操作语言、数据库查询语言等新概念,以及数据库系统分析员、数据库 开发人员、数据库系统管理员等新角色。与数据库的出现相对应,把业务逻辑从程 序代码中分离出来也将对软件的开发方式、软件的体系结构甚至软件开发的组织结 构都产生深远的影响。 业务规则管理将业务逻辑当作结构化的对象进行处理,使复杂的业务逻辑抽象 成一条条简单的业务规则,而将业务规则之间的复杂逻辑关系交给规则引擎去处 理,因此产生了业务规则引擎、业务规则库、业务规则开发方法学、业务规则管理 系统等新概念,以及业务规则系统分析员、业务规则开发人员和业务规则系统管理 员等新角色。 对于一个以追求利润为使命的企业组织来说,规则对其使命的完成起着关键作 用。一个组织的成功取决于及时有效的决策能力,而这种决策能力最终要变成策略 及规则去落实执行。策略和规则总是在不断变化,一旦把业务规则像数据样从程 序中剥离,业务规则易变的难题也就迎刃而解,其中理念的改变在于“用管理数据 的方式来管理业务规则”。业务规则管理系统的引入,使应用系统结构及其维护方 式发生了巨大的改变:基于业务规则的开发方法将大大缩短系统的开发时间;更加 适应系统业务逻辑的变化;开发者可以直接使用业务规则的技术而无需了解过多的 实现细节;大大减少了编程的工作量,减少了编程错误,使开发者更加关注系统本 身的业务需求:基于业务规则的开发方法还模糊了系统需求分析、设计和编程的界 限:业务规则库介于用户界面和数据库之间,系统具有更好的灵活性;基于业务规 则的系统开发比定制开发更能节省费用,同时能满足用户的个性化需求”1 。 6 华北电力大学硕士学位论文 业务规则管理技术相对来说已经很成熟了,并且目前国际上也有不少成熟产 品。不少软件开发商已经开始利用业务规则管理技术来开发商用软件,它们不仅能 够为用户搭建规则库,让用户随意添加自己的业务规则,而且会在一些针对行业的 应用中,将自己的行业经验以业务规则的形式加进去,为用户提供最佳实践经验。 据权威研究机构g a r t n e r “t h e2 0 0 2b u s i n e s sr u l ee n g i n em a r k e tm a g i c q u a d r a n t ”( m - 1 5 2 0 8 7 ) 的报告;“商业灵活性正主导着业务规则引擎( b u s i n e s s r u l e se n g i n e ,简称b r e ) 迅速向友好、实时性方向发展,灵活的业务规则技术的市 场渗透率将在2 0 0 7 年达到8 0 ( 2 0 0 0 年为2 0 ) ”【b 】。 2 0 世纪7 0 年代,斯坦福大学使用l i s p 语言开发的m y c i n 是第一个基于规则的 系统。该系统用于血液疾病的诊断,并推荐治疗方法,可以算做是一个专家决策系 统。该系统实现的主要理念是知识和控制的分离,将以规则表示的知识从用于评估、 执行的控制逻辑( 程序) 中分离出来,这是规则管理技术的启蒙时期。 2 0 世纪8 0 年代,基于规则的编程方法随着人工智能的研究热潮达到顶峰,那 时候有不少的开发者和组织购买商业化的规则引擎,但当时规则引擎性能很差,并 且不具备与当时主流系统的集成能力,使得基于规则的编程方法没有得到很好的应 用。按照g a r t n e r 的副总裁和研究主管j i ms i n u r 的话说:“由于早期的许多业务 规则产品都以人工智能领域和推理系统为基础,所以这个阶段的业务规则技术非常 复杂,运营和维护费用高昂,从而导致了这种技术的“垂死经历”。但是研究工作 仍在继续,基于规则的编程方法仍然在某些方面得到应用。 但是如今面向对象技术、分类机制、信息隐藏和封装、消息通信机制等技术的 广泛应用,为基于规则的程序提供了更好的集成和实现方式。尤其是面向对象机制 很好地解决了数据对象与数据操作对象( 即业务规则) 的关系,而业务规则管理技 术为对象之间的消息通信提供了触发机制,这使得对象模型和业务规则模型能够较 完美地结合在一起。此外,丰富的图形化业务规则管理工具以及商用业务规则引擎 的性能和稳定性的极大提高,使得此技术的市场渗透率不断提高。国外已经出现了 诸如i l o g 公司的j r u l e s 、j e s s 、d r o o l s 等规则引擎及其规则管理技术,这些技术 可以很好地应用于现有的信息系统中业务逻辑层的实现m 。 j a v a 的所有者s u n 公司一直大力推广j a v a 在企业中的应用,2 0 0 0 年1 1 月, j a v ac o m m u n i t yp r o c e s s ( 简称j c p ) 组织开始着手起草j a v a 规则引擎的a p i 标 准,即j s r9 4 规范。j s r9 4 在2 0 0 3 年1 1 月正式定稿,支持j s r9 4 标准的规则 引擎也几乎同时推向市场,包括i l o g 公司的j r u l e s 和b l a z e 公司的a d v i s o r “”。 一些处于领先地位的独立软件供应商,包括v e r s a t a 、i l o g 和b l a z e 都提 供了规则引擎系统,在w e b s p h e r e 的b r b e a n s 技术中也提供了规则引擎系统。这些 产品中比较有代表性的商用系统是i l o g 公司的i l o gj r u l e s 规则管理信息系统, 7 华北电力大学硕士学位论文 它是目前最为成熟,功能最为强大的商业产品,并且该公司也是j s r9 4 规范的积 极 图2 - 1i l o g 的b r m s 架构图 i l o g 公司的该产品具有完备的功能、较强的可靠性、可定制性和可扩展性。 该系统可以将规则自动部署为j 2 e e 、j 2 s e 或w e bs e r v i c e 应用程序,能够自动检 查规则,甚至可以通过w e b 浏览器编写、阅读和更新规则。在i l o g 的业务规则语 言框架中,定义了三种规则语言:业务动作语言( b a l ) ,使用自然语言语法编写规 则;技术规则语言( t r l ) ,采用伪代码形式编写规则;i l o g 规则语言( i r l ) ,使用 类似于j a v a 或x m l 的语法编写规则。在规则库中,具有规则版本控制、权限管理、 规则历史记录、锁机制等一系列的功能。在规则库实现上,采用直接绑定x m l 文档 的方法“l 】【l ”。 j a v a 平台是一个无所不在、包含各个领域的开源平台,并且由于j a v a 语言对 规则引擎的良好支持,j a v a 领域同样存在诸如j l i s a 、o p e n r u l e s 等优秀的开源规 则引擎,其中d r o o l s ( h t t p :d r o o l s o r g ,现已被j b o s s 收购,成了j b o s sr u l e s ) 就是其中的佼佼者“” 2 3 典型b r m $ 的结构 如图2 2 所示,一个典型的b r m s 系统主要由业务规则管理模块、业务规则持 久化模块( 规则库) 、规则引擎访问和控制模块以及规则语言四个模块构成。 8 华北电力大学硕士学位论文 图2 - 2b r m s 系统架构图 1 、其中规则管理模块是b r m s 的展现层,主要供b r m s 的用户和系统管理员使 用,用户可以在这里编辑、添加、删除业务规则,该部分要求易用性强,除了开发 人员外,不熟悉编程语言的业务人员也可以使用该部分模块实现业务规则的管理; 除此之外,还要求该模块具备一定的规则正确性校验功能。 2 、业务规则持久化模块用于存储业务规则、规则元数据( m e t ad a t a ) 以及与 规则相关的属性,采用持久化技术将用户编辑的规则保存起来,这里可以采用数据 库或者x m l 文件等技术保存业务规则,并且一般要提供规则和规则元数据的存储、 分类、查询、版本控制、权限控制、测试等工具。 3 、规则语言可以理解为针对规则引擎所使用的编程语言。规则语言一般也分 为两类:“面向程序技术”的规则语言,它技术性很强,可读性较弱,适合i t 技术 人员使用,一般不同的规则引擎都有不同的“面向程序技术”的规则语言语法;“面 向业务”的规则语言,它是业务人员使用的规则语言,类似于自然语言,通常需要 经过b r m s 的“翻译”之后转换成能够被规则引擎解析的语言。b r m s 必须具备这种 将业务人员的规则语言“翻译”成规则引擎能够解析的规则语言的机制。 4 、规则引擎模块是执行业务规则的软件组件,嵌入在程序中,是b r m s 的核心 元素,关于规则引擎的相关信息将会在接下来的一个章节中详细叙述。 9 华北电力大学硕士学位论文 2 4 规则引擎的原理 规则引擎是一个嵌入到应用程序中的软件组件,它的任务是在应用中开辟一片 工作区,在工作区中将当前提交给规则引擎的数据对象与加载在规则引擎中的业务 规则对象进行测试和比对,激活那些符合当前数据状态下的业务规则,然后根据业 务规则中声明的执行逻辑,触发应用程序中相应的操作,是用户编辑的业务规则和 业务数据根据某些条件进行匹配的区域,可以被认为是b r m s 的“引擎”。 由于j a v a 规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的 语义模块编写业务决策,规则引擎接受数据输入,解释业务规则,并根据规则做出 业务决策。因此从这个意义上来说,它是软件方法学在“关注点分离”上的一个重 要的进展“” 1 、基于规则的专家系统( 髓e s ) j a v a 规则引擎起源于基于规则的专家系统,基于规则的专家系统又是专家系 统的一个分支,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类 能理解的术语解释和证明它的推理结论。专家系统有很多分类:神经网络、基于案 例推理和基于规则系统等。而规则引擎则是基于规则的专家系统的一部分。r b e s 包括三部分:r u l eb a s e ( k n o w l e d g eb a s e ) 、w o r k i n gm e m o r y ( f a c tb a s e ) 和 i n f e r e n c ee n g i n e “”。规则引擎的系统结构图如图2 - 3 所示。 图2 _ 3 规则引擎结构图 如图2 3 所示,推理引擎主要由三部分构成:模式匹配器( p a t t e r nm a r c h e r ) 、 议程( a g e n d a ) 和执行引擎( e x e c u t i o ne n g i n e ) 推理引擎通过推理判断决定哪 些规则满足事实或目标,并授予规则优先级,满足事实或目标的规则被加入议程。 模式匹配器决定选择执行哪个规则,何时执行规则;议程管理模式匹配器挑选出规 1 0 华北电力大学硕士学位论文 则的执行次序;执行引擎负责执行规则和其他动作“”。 和人类的思维相对应,推理引擎存在两种推理方式。演绎法 ( f o r w a r d c h a i n i n g ) 和归纳法( b a c k w a r d - c h a i n i n g ) 。演绎法从一个初始的事实 出发,不断地应用规则得出结论( 或执行指定的动作) 。而归纳法则是根据假设, 不断地寻找符合假设的事实r e t e 算法是目前执行效率最高的一个 f o r w a r d - c h a i n i n g 推理算法,其核心思想是将分离的匹配项根据内容动态构造匹配 树,以达到显著降低计算量的效果,该算法于1 9 8 2 年美国卡耐基梅隆大学的 c h a r l e sl f o r g y 发明。目前世界顶尖的商用业务规则引擎产品基本上都使用r e t e 算法,以及开源领域最为著名的j b o s sr u l e s 。 r e t e 模式匹配算法描述:在模式匹配中利用推理机的时间冗余性和规则结构的 相似性,通过保存不断循环中匹配过程的状态来提高推理效率的一种模式匹配算 法。在模式匹配过程中,规则的前提中可能会有很多相同的模块,因此在匹配规则 前提时,将进行大量的重复运算,这样就带来时间冗余性问题。例如: r u l e l :i f ( a b ) a n ddo rct h e ne = 1 0 0 r u l e 2 :i f ( a b ) a n d ( b b ) o r ( b b 要进行三次计算,对b b ,m 2 = b c ,则规则可以改为; r u l e l :i f ( m 1 ) a n ddo rct h e ne = 1 0 0 r u l e 2 :i f ( m 1 ) a n d ( m 2 ) t h e ne = 2 0 0 r u l e 3 :i f ( ! ( m 1 ) o r ( m 2 ) ) t h e ne = 3 0 0 这样只有当a 或者b 发生变化的时候才重新计算m 1 ;同样只有当b 或c 发生变 化时,才需要重新计算m 2 。这样的推理避免了在每次进行模式匹配都重复计算相同 的表达式,而只要检测相关参数是否变化来决定是否更新表达式,即仅当添加或删 除事实时,匹配过程的状态才被更新。如果添加,删除事实的数量与事实和模式的 总数相比很小,那么匹配过程进行得很快。最糟糕的情况是,如果所有的事实都改 变了,那么所有的事实与所有的模式重新进行匹配。这样在推理过程中节省了大量 时间和开销,从而提高了推理效率“订“8 】。 根据此算法,推理引擎的推理步骤如下: ( 1 ) 将初始数据( f a c t ) 输入w o r k i n gm e m o r y ( 2 ) 使用p a t t e r nm a t c h e r 比较规则库( r u l eb a s e ) 中的规则( r u l e ) 和数 据( f a c t ) 。 ( 3 ) 如果执行规则存在冲突( c o n f l i c t ) ,则同时激活了多个规则,将冲突的 规则放入冲突集合。 ( 4 ) 解决冲突,将激活的规则按顺序放入a g e n d a 。 1 1 华北电力大学硕士学位论文 ( 5 ) 使用执行引擎执行a g e n d a 中的规则。重复步骤2 至5 ,直到执行完毕所 有a g e n d a 中的规则 上述即是规则引擎的原始架构,而使用j a v a 语言实现的规则引擎就是从该原 始架构演变而来的“】。 2 、规则引擎相关构件 规则引擎是一种根据规则中包含的指定过滤条件,判断其能否匹配运行时刻的 实时条件来执行规则中所规定的动作引擎。与规则引擎相关的有如下四个基本概 念: ( 1 ) 信息元( i n f o r m a t i o nu n i t ) :信息元是规则引擎的基本建筑块,它是一 个包含了特定事件的所有信息的对象。这些信息包括消息、产生事件的应用程序标 识、事件产生动作、信息元类型、相关规则集、通用方法、通用属性以及一些系统 相关信息等等。 ( 2 ) 信息服务( i n f o r m a t i o ns e r v i c e s ) :信息服务产生信息元对象。每个信 息服务产生它自己类型相对应的信息元对象。即特定信息服务根据信息元所产生的 每个信息元对象有相同的格式,但可以有不同的属性和规则集。一台机器上可以运 行许多不同的信息服务,还可以运行同一信息服务的不同实例。但是,每个信息服 务只能产生它自己类型相对应的信息元。 ( 3 ) 规则集( r u l es e t ) :顾名思义,规则集就是许多规则的集合。每条规则 包含一个条件过滤器和多个动作。一个条件过滤器可以包含多个过滤条件。条件过 滤器是多个布尔表达式的组合,其组合结果仍然是一个布尔类型的。在程序运行时, 动作将会在条件过滤器值为真的情况下执行。除了一般的执行动作,还有三类比较 特别的动作,它们分别是:放弃动作( d i s c a r da c t i o n ) 、包含动作( i n c l u d ea c t i o n ) 和使信息元对象内容持久化的动作。 ( 4 ) 队列管理器( q u e u em a n a g e r ) :队列管理器用来管理来自不同信息服务 的信息元对象的队列。 规则引擎的这些相关构件是如何协同工作的,如图2 4 所示。处理过程分为四 个阶段进行:信息服务接受事件并将其转化为信息元,这些信息元被传给队列管理 器,规则引擎接收这些信息元并应用它们自身携带的规则加以执行,直到队列管理 器中不再有信息元 华北电力大学硕士学位论文 图2 q 规则引擎处理过程协作图 规则引擎的工作机制,如图2 - 5 所示。规则引擎从队列管理器中依次接收信息 元,然后依规则的定义顺序检查信息元所带规则集中的规则。规则引擎检查第一个 规则并对其条件过滤器求值,如果值为假,所有与此规则相关的动作皆被忽略并继 续执行下一条规则。如果第二条规则的过滤器值为真,所有与此规则相关的动作皆 依定义顺序执行,执行完毕继续下一条规则。该信息元中的所有规则执行完毕后, 信息元将被销毁,然后从队列管理器接收下一个信息元。在这个过程中并未考虑两 个特殊动作:放弃动作( d i s c a r da c 、t i o n ) 和包含动作( i n c l u d ea c t i o n ) 。放弃 动作如果被执行,将会跳过其所在信息元中剩下来的所有规则,并销毁所在信息元, 规则引擎继续接收队列管理器中的下_ 个信息元。包含动作其实就是动作中包含其 它现存规则集的动作。包含动作如果被执行,规则引擎将暂停并进入被包含的规则 集,执行完毕后,规则引擎还会返回原来暂停的地方继续执行。这一过程将递归进 行啪1 。 华北电力大学硕士学位论文 图2 - 5 规则引擎工作机制 j a v a 规则引擎的工作机制与上述规则引擎机制十分类似,只不过对上述概念进 行了重新包装组合j a v a 规则引擎对提交给引擎的j a v a 数据对象进行检索,根据 这些对象的当前属性值和它们之间的关系,从加载到引擎的规则集中发现符合条件 的规则,创建这些规则的执行实例。这些实例将在引擎接到执行指令时、依照某种 优先序依次执行。一般来讲,j a v a 规则引擎内部由下面几个部分构成;工作内存 ( w o r k i n gm e m o r y ) 即工作区,用于存放被引擎引用的数据对象集合;规则执行队 列,用于存放被激活的规则执行实例;静态规则区,用于存放所有被加载的业务规 则,这些规则将按照某种数据结构组织,当工作区中的数据发生改变后,引擎需要 迅速根据工作区中的对象现状,动态调整规则队列中待执行规则的实例。j a v a 规 则引擎的结构示意图如图2 - 6 所示。 1 4 华北电力大学硕士学位论文 图2 - 6j a v a 规则引擎工作机制 当引擎执行时,根据规则执行队列中的优先顺序逐条执行规则,由于规则的执 行部分可能会改变工作区的数据对象,从而会使队列中的某些规则执行实例因为条 件改变而失效,必须从队列中撤销,也可能会激活原来不满足条件的规则,生成新 的规则执行实例进入队列。于是就产生了一种“动态”的规则执行链,形成规则的 推理机制。这种规则的“链式”反应完全是由工作区中的数据驱动的。 任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率 问题。规则条件匹配的效率决定了引擎的性能,引擎需要迅速测试工作区中的数据 对象,从加载的规则集中发现符合条件的规则,生成规则执行实例,然后输出匹配 结果m 1 。 华北电力大学硕士学位论文 第三章电信结算摊分系统 3 1 电信运营商外包业务介绍 计算机领域应该对业务外包毫不陌生电信运营商将很多业务交给代理商去 做,这可以看作是一种外部资源利用,即业务外包行为。电信运营商的这一行为非 常符合外包的定义:企业将某种创造价值较低的、非核心的任务及其控制权交由那 些能比自己更有效率、更有效果完成该任务的外部专业生产商,并与其形成资源互 补的战略联盟,以优化企业资源配置,实现企业自身持续性发展的一种战略管理活 动。其根本是企业立足于自身核心能力的建设,通过有效整合外部能力,获得长期 竞争优势。针对现代大型企业来说,外包可以带来如下优势: 1 、战术优势:降低和控制经营成本;减少非核心业务投资;获得现金注入; 获取内部缺少的资源;克服职能管理与失控的困难。 2 、战略优势;改善业务关注点;获取世界一流的先进技术;促进组织重组; 分担风险;释放资源用于其余目的。 3 、变革优势:为顾客带来更快、更新的解决方案;对日益缩短的产品生命周 期做出反应;重新确定与供应商及合作伙伴的关系;超越竞争者;以较低的风险进 入新的市场。 对电信运营商来说,当他们将装机发展、代理收费、代理维护、催缴欠费等业 务委托给一些电信代理商以后,电信运营商就可以专注于改进技术、指定最新的市 场策略、维护本地网线路等最主要的业务,从而降低企业的运营成本,提高企业在 市场中的竞争力。 针对不同类型的电信代理商,电信运营商为他们指定了不同的b s s ( b u s i n e s s s u p p o r t i n gs y s t e m ,业务支撑系统) 工号或缴费工号。由某个特定的工号录入的 装机数据或者缴费数据,可以认为是某个代理商所发展的业务,这是代理商的发展 量或者代理收费信息的依据,而给代理商支付酬金则根据电信运营商和代理商签订 的合同。 为了更好地阐述电信结算摊分业务,下面给出几个主要的业务术语。 1 、结算摊分:根据电信运营商和代理商之间签订的合同,结算摊分的流程是 先结算然后摊分( 按照合同中规定的分成,主要是网间结算的时候可能发生多方摊 分) 。所谓结算,就是根据电信运营商和代理商协商的酬金标准和代理商具体发展 业务的数量初步计算的支付费用金额,在这里一般是个数单价,这是电信运营商 需要支付的金额总数,但是因为可能存在别的分摊方,因此总结算金额不一定全部 华北电力大学硕士学位论文 被一个代理商获得;所谓摊分,是指根据结算标准将待摊分金额总数结算出来以后, 按照预先协商的比例进行酬金分成。对存在多种网间业务的电信运营商来说,摊分 无处不在 2 、帐务周期:简称帐周,即电信运营商的一个记帐周期,一般是一个自然月, 一个帐周结束,各种产品和业务的消费记录生成,运营商开始受理最终用户的缴费。 3 、话费催缴:终端用户存在各种各样的欠费情况,这其中包括欠费、呆帐和 滞纳金等。有一些代理商是专门代替电信运营商催欠费的,电信运营商根据催欠费 的金额和催欠费的种类按照比例付给酬金 4 、数据仓库:是指电信运营商的数据仓库,该系统涉及到的主要是b s s 系统、 o m 系统( 订单管理系统) 和计费系统,其中b s s 系统主要记录新装业务的相关属性, 比如装机e l 期、用户名和地址、价格计划、程控计划等;而计费系统主要记录终端 用户的消费记录和缴费情况等信息,以及欠费情况等。 3 2 结算摊分系统的设计 该软件系统的核心是电信运营商和代理商签订的合同,运营商支付给代理商的 酬金标准规定在合同中,并且和不同的代理商签订不同的合同。即使是同一种产品, 由于不同的市场策略和竞争策略,和不同的代理商也会指定不同的酬金结算标准 ( 业务规则) 。 在以前进行代理商酬金结算的时候,每个计费帐期结束后,电信运营商需要动 用大量的人力、物力和时间进行结算,不仅结算的周期比较长,而且非常容易出错。 建立信息系统以后,将这些业务规则写在程序代码中显然是不能够胜

温馨提示

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

评论

0/150

提交评论