




已阅读5页,还剩67页未读, 继续免费阅读
(计算机科学与技术专业论文)基于规则引擎的反洗钱系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于规则引擎的反洗钱系统的设计与实现 摘要 当今,洗钱犯罪日益成为国际社会面临的一大公害,给世界各 国带来了严重的损失和影响。因此,完善法律法规,建立反洗钱机 制,并通过科技手段打击洗钱犯罪,是我国金融工作中一项重要而 紧迫的任务。然而目前的反洗钱系统存在着因规则复杂可疑量化不 完整,数据量大时处理效率低下等诸多问题。急需在业务和技术上, 有所改进以适应新的形势和监管要求。 规则引擎是一种根据规则中包含的指定过滤条件,判断其能否 匹配运行时刻的实时条件来执行规则中所规定的动作的引擎,在大 量的数据上应用复杂规则时,特别有效。因此,本文提出基于规则 引擎设计和实现反洗钱系统,在实际工作中做了以下有益尝试: 1 依据我国相关法律法规规定,尤其是可疑规则,进行了监测 模型的量化。以“了解客户”为出发点,对客户特征进行了 风险度量指标的设计。并提出了完整的反洗钱工作处理流程。 2 基于j a v a 的开源规则引擎j b 0 s sr u l e s ,设计了系统的核心 组件一规则引擎,用于反洗钱规则的推理和监测。 3 规则管理,统一的文件定义方式和判定策略,可支持规则的 可视化定义和编辑。 4 将采用规则引擎技术和采用存储过程进行规则监测的效率 进行了对比,验证了基于规则引擎建设反洗钱系统的技术先 进性和可行性。 本反洗钱系统已经在某商业银行中得到了应用,高效准确地帮 助业务人员完成了问题数据的筛选和采集,极大地提高了反洗钱工 作的效率和质量。 关键词:反洗钱;规则引擎:r e t e 算法;j 1 3 0 s sr u l e s ; d e s i g na n di m p l e m e n t a t i o no fa na m l s y s t e mb a s e do nr u l ee n g i n e q l r r e n t l y ,m o n e y l a u n d r yc r i m eh a si n c r e a s i n g l ys o c i a l e f f b c to f p o l i u t i o n i i lt h ei n t e m a t i o n a lc o m m u n i t y - i tb r i n g sm u c hl o s i n ga n d i m p a c st oa l jo fl h ew o r l d t h e r e f o r e ,a ni m p o n a n ta i l du 唱e n tm i s s i i nt h ef i n a n c ew o r ki 1 1o u rc o u n t r yi si m p m v i n gt h el a w sa n dr e g u l a t i o n s , c s t a b l i s h i n g 劬t i m o n e yl a u n d e r i n gm e c h a n i s m ,a n dw es h 叫l ds t r i k e a g a i n s tt h em o n e y l a u n d r yc r i m et h r o u g ht h ei i l f o m l a t i o nt e c h n o i o g y m e a n s h o w e v e r t h e r ea r el o t so fp r o b l e m si na n t i m o n e yl a u n d e r i n g s y s t e m f 0 re x a m p l e ,t h em l e sc o m p l i c a t i o n sr e s u l t si nm en o n s t a n d a r d s 惦p i c i o u sm o n i t o r i n 岛t h ed e t e c t i o n i si l l e f ! f e c t i v ew h e nm a t c h i n g m a s s i v ed a t a s oi tn e e d si m p r o v e m e n tb o t ho f b u s i n e s sa n dt e c h n o l o g y u 唱e n t l y ,t oa d a p tt on e ws i t u a t i o n 柚dr e q u i r e m e n t0 fs u p e r v i s i o n r u l ee n 百n ei sa ne n g m et h a td e a d e st h ef a c tw h e t h e rc a nm a t c h t h e e a lt j m e c o n d i t i o nw h e n “n l n n i n g , d e p e n d i n go n t h ef i l t e r c o n d i t i o n si i l c l u d e di nt h er u l e s t h e ni tc a r r i e so u tt h ei i 】【o v e m e n t s p r e _ d e f i n e di 1 1t h em l e s i tw i 儿b cv e r ye f f i c i e n tw h e nu s i n gc o m p l i t e d m l e si i l l a r g e a m o u n td a t ae n v i r o n m e n t h e n c c , a d e s i g n a n d i m p l e m e n t a t i o no fa n t i - m o n e yk l u n d e r i n gs y s t e mb a s e do nt h e 邢l e e n g i n ei sc o n c e i v e d t h e r ea r caf e wb e n e f i c i a la t t e m p t si nt h i sa r t i c l eo n b o t hd e s i g n i n ga n di m p l e m e n t i n g : 1 w ee s t a b l i s h e dt h em l em o n i t o 血gm o d e l ,e s p c c i a l l ys u s p i c i o l l s m l e s ,b a s e do no u rc o u m r yr e l a t e dl a w sa n dr e g u l a t i o n s t a l 【i n g ”踟o wy 0 u rc u s t o m e r i i 勰p o i i l to fd e p a n i l r c ,w ed e s i g n e dr i s k r a n 】( f o rc u s o m e r t sc h a 豫c t e r i s t i c a n dp u tf o f w a r da ni n t e g r a e d w o r ka o wo fa n t i m o n e yl a u n d e 血g 2 w e d e s i g n e dt h ec o r em o d u l eo fs y s t e m r u l ee n g i n e ,a c c o r d i n g t oj b o s sr u l e st h a ti sa no p e ns o u r c eo fj a v a i tu s e df o r a n t i - m o n e yl a u n d e r i n gm o n i t o r i n g 加di n f e r r i n g 3 r u l em a n a g e m e n ts u p p j i e su n i t e dm l ed o c u m e n td e f i n i t i o na n d m o n i t o r i n gs t r a t e g y , a l s oc a ns u p p o r tv i s u a ld e f i n i t i o na n d m o d i f i c a t i o no f 九j l e s 4 w ec o m p a r e dt h ee f f i c i e n c yo fr u l em o n i t o r i n gb yu s i n gm l e e n g i n et ou s i n gp m c e d u r e ,v e r i f i e dt h ea d v a n t a g ea n df e a s i b i l i t y o ft h ea n t i m o n e yl a u n d e r i n gs y s t e mb a s e do nm l ee n g i n e t h i sa m t i - m o n e yl a u n d e r i n gs y s t e mh a sb e e nu s e di nc e n a i n c o m m e r c i a lb a i i l 【1 th e l p e dt of i l t e 血g 柚dc o l l e c t i n gt h es u s p i c i o u sd a t a e f f i c i e n t l ya n da c c i l r a t e iy i ti m p r o v e dt h ee f f i c i e n c ya n de f f e c to ft h e a n t i m o n e yi 丑u n d e r i n gw o r k k - 显yw o r d s :a m l ;r u l ee n g i n e ;r e t ea j g o r i t h m ;j b o s sr u i e s 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:墨圭! ! 整日期:丝d :垒2 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅 和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印 或其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密 论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:塞垫遂 导师签名: 日期: 速! :生2 日期: 垒型2 1 垒至 北京邮电大学碗i :研究生学位论文 1 1 反洗钱背景 第一章绪论 1 1 1 洗钱犯罪 洗钱行为指的是犯罪分子将非法收入合理化的方法和行为。犯罪导致了洗 钱,同时洗钱使犯罪行为得到了资金的支持。随着贩毒、恐怖和贪污受贿等行 为的猖獗,洗钱行为在金融行业也越来越多。 据国际金融行动特别工作组f a t f 的统计,1 9 9 6 年全球洗钱的数额达到全 世界国内生产总值的2 至5 ,在6 ,0 0 0 亿到1 5 ,0 0 0 亿美元之间。而近年来, 洗钱犯罪有愈演愈烈之态势,据估计,目前世界洗钱数额高达1 5 ,0 0 0 亿至2 8 ,0 0 0 亿美元。在一些国家,洗钱总额甚至超过政府预算,并最终导致政府对宏观经 济失控。 从我国来看,国家外汇管理局研究报告对1 9 9 7 年至1 9 9 9 年中国资本外逃 情况的估算显示,三年内中国累计外逃资金约5 0 0 多亿美元;而国内学者用间 接法测算结果表明,这三年中资本外逃额高达1 0 0 0 亿美元,远高于外管局的公 开估算数据,在这些巨额外流资金中,其中很大比例的资金是通过洗钱方式流 到境外。有学者认为,近几年我国每年洗钱的数额高达2 0 0 0 亿元人民币,相当 于国内生产总值2 的水平,其中走私收入洗钱约为7 0 0 亿元人民币,官员腐败 收入洗钱超过5 0 0 亿元人民币,其余的是一些外资企业和一些私营企业以逃避 国家监管和税收为目的转移到境外的收入。仅2 0 0 3 年3 月至2 0 0 4 年9 月,国 家外汇管理局就收到可疑外汇资金交易报告1 7 0 5 万笔,报告金额9 7 2 亿美元 也有些学者认为,这一数额仍有低估的可能。由于洗钱犯罪隐蔽性非常强,相 关数据也只能进行估算和推测,但上述估算数据无疑表明,当前我国的洗钱犯 罪非常严重,洗钱已经成为我国国民经济中的一块毒瘤,严重干扰了我国宏观 经济和金融部门的稳定运行。 由此可见,洗钱给世界各国带来了严重的损失和影响。而究其根源,从国 际国内已积累的大量反洗钱实践经验来看,洗钱者易在金融法律体系尚不健全 的国家和地区活动,并趋于选择成本低、安全性高、风险小、便捷性强的方式, 例如目前在我国,金融机构尤其是商业银行已成为洗钱的主要渠道。 第l 页 北京邮电大学硕l 研究生学位论文 1 1 2 反洗钱行动 面对危害如此巨大的洗钱犯罪,各国纷纷出台反洗钱相关的法律法规,同 时国际上通过区域合作来对洗钱犯罪进行打击。 在上世纪8 0 年代末成立了专门的反洗钱组织f a t f ( f i n 卸c e a c i 佻kf o r c c , 国际金融行动特别工作组1 在世界范围内打击洗钱犯罪。f a ,r f 于1 9 9 0 年给出了 反洗钱4 0 建议,并于2 0 0 3 年做了修正,同时补充了9 条反恐融资建议。 与此同时,1 9 9 8 年联合国通过了联合国禁止非法贩运麻醉药品和精神药物公 约) ( 简称维也纳公约) ,2 0 0 0 年通过了联合国打击跨国有组织犯罪公约 ( 简称巴勒莫公约) 。 中国在反洗钱方面也做了很大的努力。2 0 0 3 年1 月3 日中国人民银行颁布 了人民银行1 ,2 ,3 号令,加大金融机构对于反洗钱的监管力度。为了适应反 洗钱的需要,十届全国人大常委会第二十四次会议2 0 0 6 年1 0 月3 1 日下午表决 通过了中华人民共和国反洗钱法,自2 0 0 7 年1 月1 日起施行。中国人民银 行2 0 0 6 年1 1 月6 日第2 5 次行长办公会议通过了 设计一 编 码,然而业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化, 业务规则往往嵌在系统各处代码中;对程序员来说,系统已经维护、更新困难, 更不可能让业务人员来管理。 基于规则的专家系统的出现给开发人员以解决问题的契机。规则引擎由基 于规则的专家系统中的推理引擎发展而来。 2 1 2 基于规则的专家系统( i m e s ) j a v a 规则引擎起源于基于规则的专家系鲥4 1 ,而基于规则的专家系统又是 专家系统的其中一个分支。专家系统属于人工智能的范畴,它模仿人类的推理 方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的 推理结论。为了更深入地了解j a v a 规则引擎,下面简要地介绍基于规则的专家 系统。r b e s 包括三部分:r u l eb 笛“l 【n o w l e d g cb a ) 、w o r k j n gm e m o 畎f a c tb a s c ) 和i i l f c r e n c ce n 百n c 。它们的结构如图2 1 所示: 第5 页 北京邮电人学硕l 研究生学位论文 图2 一l 基于规则的专家系统构成 如上图所示,推理引擎包括三部分:p a t t e mm a t c h e r 、a g c n d a 和e x e c i l t j o n e n 百n e 。p a t t e mm a t c h e r 决定选择执行哪个规则,何时执行规则;a g e n d a 管理 p a t t e m m a “c h e r 挑选出来的规则的执行次序;e x c c i i t i o ne n 舀n e 负责执行规则和 其他动作。 2 1 3 规则引擎的相关构件 与规则引擎相关的有四个基本概念,为更好地理解规则引擎的工作原理【5 】, 下面将对这些概念进行逐一介绍。 1 信息元( i n f 0 咖a t i o nu n i t ) 信息元是规则引擎的基本建筑块,它是一个包含了特定事件的所有信息的 对象。这些信息包括:消息、产生事件的应用程序标识、产生事件、信息元类 型、相关规则集、通用方法、通用属性以及一些系统相关信息等等。 2 信息服务( i n f 0 册a t i o ns e r v j c e s ) 信息服务产生信息元对象。每个信息服务产生它自己类型相对应的信息元 对象。即特定信息服务根据信息元所产生每个信息元对象有相同的格式,但可 以有不同的属性和规则集。需要注意的是,在一台机器上可以运行许多不同的 信息服务,还可以运行同一信息服务的不同实例。但无论如何,每个信息服务 只产生它自己类型相对应的信息元。 3 规则集( r u i es e o 顾名思义,规则集就是许多规则的集合。每条规则包含一个条件过滤器和 多个动作。一个条件过滤器可以包含多个过滤条件。条件过滤器是多个布尔表 达式的组合,其组合结果仍然是一个布尔类型的。在程序运行时,动作将会在 条件过滤器值为真的情况下执行。除了一般的执行动作,还有三类比较特别的 动作,它们分别是:放弃动作( d i s r da c t i o n ) 、包含动作( i n d u d ea c t j o n ) 和使信 息元对象内容持久化的动作。 第6 页 北京邮电大学硕i 研究生学位论文 4 队列管理器( q u e u em a n a g e r ) 队列管理器用来管理来自不同信息服务的信息元对象的队列。 下面将研究规则引擎的这些相关构件是如何协同工作的。 如图2 2 所示,处理过程分为四个阶段进行:信息服务接受事件并将其转 化为信息元,然后这些信息元被传给队列管理器,最后规则引擎接收这些信息 元并应用它们自身携带的规则加以执行,直到队列管理器中不再有信息元。 画甲甲 崮白由 l 呻声旨w 可同 - li r u l e e 蛐e 图2 2 处理规程协作图 2 1 4 规则引擎的架构及推理机制 规则引擎的架构【6 】如图2 3 所示: 第7 页 北京邮电大学硕i :研究生学位论文 图2 3 规则引挈工作机制 规则引擎的推理步骤如下: 1 将初始数据( f 犯) 输入至工作内存( w o r l 【i n gm e m o r y ) 。 2 使用模式匹配( p a t t e mm a “c h c r ) 将规则库( r u l 鼯r e p o s i i o r y ) 中的规则 ( m l e ) 和数据( f a c t ) 比较。 3 如果执行规则存在冲突( c o n f l i d ) ,即同时激活了多个规则,将冲突的 规则放入冲突集合。 4 解决冲突,将激活的规则按顺序放入议程( a g e n d a ) 。 5 执行议程( a g e n d a ) 中的规则。重复步骤2 至5 ,直到执行完毕议程 ( a g c n d a ) 中的所有规则。 当引擎执行时,会根据规则执行队列中的优先顺序逐条执行规则执行实例, 由于规则的执行部分可能会改变工作区的数据对象,从而会使队列中的某些规 则执行实例因为条件改变而失效,必须从队列中撤销,也可能会激活原来不满 足条件的规则,生成新的规则执行实例进入队列。于是就产生了一种“动态” 第8 页 北京邮电大学硕j j 研究生学位论文 的规则执行链,形成规则的推理机制。这种规则的“链式”反应完全是由工作 区中的数据驱动的。 规则引擎的内部处理过程如图2 4 所示,规则引擎从队列管理器中依次接 收信息元,然后依规则的定义顺序检查信息元所带规则集中的规则。如图所示, 规则引擎检查第一个规则并对其条件过滤器求值,如果值为假,所有与此规则 相关的动作皆被忽略并继续执行下一条规则。如果第二条规则的过滤器值为真, 所有与此规则相关的动作皆依定义顺序执行,执行完毕继续下一条规则。该信 息元中的所有规则执行完毕后,信息元将被销毁,然后从队列管理器接收下一 个信息元。在这个过程中并未考虑两个特殊动作:放弃动作( d i s c a r d 觚i o n ) 和 包含动作( i n d u d ca d i o n ) 。放弃动作如果被执行,将会跳过其所在信息元中接 下来的所有规则,并销毁所在信息元,规则引擎继续接收队列管理器中的下一 个信息元。包含动作其实就是动作中包含其它现存规则集的动作。包含动作如 果被执行,规则引擎将暂停并进入被包含的规则集,执行完毕后,规则引擎还 会返回原来暂停的地方继续执行。这一过程将递归进行。 图2 4 规则引擎工作机制 j a v a 规则引擎的工作机制【_ 7 】与上述规则引擎机制十分类似,只不过对上述 概念进行了重新包装组合。j a v a 规则引擎对提交给引擎的j a v a 数据对象进行检 索,根据这些对象的当前属性值和它们之间的关系,从加载到引擎的规则集中 发现符合条件的规则,创建这些规则的执行实例。这些实例将在引擎接到执行 指令时、依照某种优先序依次执行。一般来讲,j a v a 规则引擎内部由下面几个 部分构成:工作内存( w o r “n gm e m o r y ) 即工作区。用于存放被引擎引用的数据 对象集合;规则执行队列,用于存放被激活的规则执行实例;静态规则区,用 于存放所有被加载的业务规则,这些规则将按照某种数据结构组织,当工作区 第9 页 北京邮电人学硕i :研究生学位论文 中的数据发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行 队列中的规则执行实例。j a v a 规则引擎的结构示意如图2 5 所示。 图2 5j a v a 规则引擎工作机制 任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效 率问题。规则条件匹配的效率决定了引擎的性能,引擎需要迅速测试工作区中 的数据对象,从加载的规则集中发现符合条件的规则,生成规则执行实例。1 9 8 2 年美国卡耐基梅隆大学的c h a r l e slf o r g y 发明了一种r e t c 算法【8 j 1 9 j ,很好地解 决了这方面的问题。目前世界顶尖的商用业务规则引擎产品基本上都使用r e t c 算法。 2 2j a v a 规则引擎a p i 规范( j s r - 9 4 ) 2 2 1j a 阳规则引擎规范的制订 过去大部分的规则引擎开发并没有规范化,有其自有的a p i ,这使得其与 外部程序交互集成不够灵活。转而使用另外一种产品时往往意味需要重写应用 程序逻辑和a p i 调用,代价较大。规则引擎工业中标准的缺乏成为令人关注的 重要方面。j c p ( j a v ac o 皿u n j t yp r o c 髂s ) 组织通过了j a y ar u l ee n g i n ea p i 规范 ( j s r 一9 4 ) 1 1 0 l 的最后草案。在2 0 0 3 年1 1 月定稿,并于2 0 0 4 年8 月最终发布了 j s r 9 4 ( j a v a 规则引擎a p i ) ,使j a v a 规则引擎成为了规则引擎的业界标准。 实现客户程序与规则引擎的交互。j s r 9 4 规范定义了独立于厂商的标准a p i , 开发人员可以通过这个标准的a p i 使用j a v a 规则引擎规范的不同产品实 现。 第l o 页 北京邮电丈学硕j 瑁f 究生学位论文 这个规范并没有强制统一规则定义的语法,因此,当需要将应用移植到其 他的j a v a 规则引擎实现时,可能需要变换规则定义。此接口集包括了规则的 载入、执行及管理等功能,由b e a 、i b m 等厂商推动支持,同时也有大量的开 源实现。j a v a 规则引擎将业务决策从应用程序中分离出来,并使用预定义的语 义模块编写业务决策。j a v a 规则引擎接受数据输入,解释业务规则,并根据规 则做出业务决策i l ”。 j a v a 规则引擎a p i 由i a v a 】【m l e s 包定义,是访问规则引擎的标准企业级a p i 。 j a v a 规则引擎a p i 允许客户程序使用统一的方式和不同厂商的规则引擎产品交 互,就像使用j d b c 编写独立于厂商访闯不同的数据库产品一样。j a v a 规则引 擎a p i 包括创建和管理规则集合的机制,在规则集中添加,删除和修改对象的 机制,以及初始化,重置和执行规则引擎的机制。值得注意的是,j s r 9 4 只是 一组规范,各个规则引擎厂商可以在规范的基础上实现具体的规则引擎,从而 保证不同厂商产品的兼容性和在其上开发的产品的可移植性。 2 2 2j a v a 规则引擎a p i 体系结构 j a v a 规则引擎a h 分为两个主要部分:运行时活动a p i ( t h er u n t i m ec l i e n t a p r ) 和规则管理a p i ( t h em l c sa d m i n i s t r a t i 咖a p d 【1 2 j1 1 3 1 。规则管理活动包括实例 化规则引擎和装载规则。而运行时包括操作工作内存( w o r k i n gm e m o r y ) 和执行 规则。在j 2 s e 环境中使用j a v a 规则引擎,需要在代码中执行以上所有的活动; 在j 2 e e 环境中,j a v a 规则引擎的规则管理是应用服务器的一部分。j s r 9 4 的参 考实现包括了一个j c a 连接器,用于通过j n d l 获得一个r u l e s e n r i c e p f o v i d c r 。 2 1 2 3 规则管理a p i 规则管理a p i 在j a v 驭九i l e s a d m j n 中定义,包括装载规则以及与规则对应 的动作( 执行集e x e c u t i 蚰t s ) 以及实例化规则引擎。规则可以从外部资源中装 载,比如说u r l ,h i p u ts t r c 锄s ,x m ls t r e a m s 和r e a d e 塔等等。同时管理a p i 提供了注册和取消注册执行集以及对执行集进行维护的机制。使用a d m i n 包定 义规则有助于对客户访问运行规则进行控制管理,它通过在执行集上定义许可 权使得未经授权的用户无法访问受控规则。 管理a p l 使用类r u l e s e r v 硫p m v i d c r 来获得规则管理( r u i e a d m i n i s 仃a t o r ) 接 口的实例。规则管理接口提供方法注册和取消注册执行集。规则管理器 ( r u l e a d m i n i 咖b d r ) 提供了本地和远程的r u l e e x e c l l t i o n s e t p f 0 v i d 盯。在前面已提 及,r u l e e x 咖t i o n s e l p r o v i d e r 负责创建规则执行集,规则执行集可以从如x m l s 胁m s ,i n p u t s t r e a m s 等来源中创建。这些数据来源及其内容经汇集和序列化后 第l l 页 北京邮电大学硕 二研究生学位论文 传送到远程的运行规则引擎的服务器上。大多数应用程序中,远程规则引擎或 远程规则数据来源的情况并不多见,为了避免这些情况中的网络开销,a p i 规 定了可以从运行在同一j v m 中规则库中读取数据的本地 r u i e e x e c u t i o n s e t p r o v i d c r 。 规则执行集接口除了拥有能够获得有关规则执行集的方法,还有能够检索 在规则执行集中定义的所有规则对象。这使得客户能够知道规则集中的规则对 象并且按照自己需要来使用它们。 2 2 4 运行时a p i 运行时a p i 定义在j a v a x m l 韶包中,为规则引擎用户运行规则获得结果提 供了类和方法。运行时客户只能访问那些使用规则管理a p l 注册过的规则,运 行时a p i 帮助用户获得规则对话并且在这个对话中执行规则。 运行时a p i 提供了对厂商规则引擎a p l 实现的类似于j d b c 的访问方法。 规则引擎厂商通过类r u l e s e n r i c c p r o v i d c r ( 类r u l c s e r v i c e p m v i d e r 提供了对具体 规则引擎实现的运行时和管理a p i 的访问) 将其规则引擎实现提供给客户,并 获得r u l e s e r v i c c p r o v i d e r 唯一标识规则引擎的u r l 。u r l 推荐标准用法是使用 类似“c o m m y c o m p 扑y m y m i e s e n 舀n e m l e s r u l e s e r v j c c p r o v i d e r ”这样的i l l t c m e t 域名空间,这将有助于访问u r l 的唯一性。类r u l e s e i c e p m v i d e r 内部实现了 规则管理和运行时访问所需的接口,所有的r u l e s e r v i c c p r o v i d e r 要想被客户所 访问都必须用r u l e s e 九r i c c p m v i d e r m 柚a g e r 进行注册。注册方式类似于j d b c a p i 的d r i v e r m 锄a g 盯和d r i v c r 。 运行时接口是运行时a p i 的关键部分。运行时接口提供了用于创建规则会 话( r u l e s e s s i o n ) 的方法,规则会话如前所述是用来运行规则的。运行时a p i 同 时也提供了访问在辩r v i c cp m v i d c r 注册过的所有规则执行集 ( r n l e e x c c u t i 伽s e t s ) 。规则会话接口定义了客户使用的会话的类型,客户根据自 己运行规则的方式可以选择使用有状态会话或者无状态会话。 无状态会话的工作方式就像一个无状态会话b c 姐。客户可以发送单个输入 对象或一列对象来获得输出对象。当客户需要一个与规则引擎间的专用会话时, 有状态会话就很有用。输入的对象通过a d d o b j e c c o 方法可以加入到会话当中, 同一个会话当中可以加入多个对象,对话中已有对象可以通过使用 u p d a t e o b j e c t o 方法得到更新,只要客户与规则引擎间的会话依然存在,会话中 的对象就不会丢失。 第1 2 页 北京邮电大学硕 。研究生学位论文 r u l e e x e c i i t j o n s e t m e t a d a t a 接口提供给客户让其查找规则执行集的元数据 ( m e t a d a t a ) 。元数据通过规则会话接口( r u l e s e 邻i 咖i n t e r f a c c ) 提供给用户。 2 2 5 安全问题 规则引擎a p l 将管理a p i 和运行时a p i 加以分开,从而为这些包提供了较 好粒度的安全控制【1 4 j 。规则引擎a p i 并没有提供明显的安全机制,它可以和 j 2 e e 规范中定义的标准安全a p i 联合使用。安全可以由以下机制提供,如j a v a a u t b e n t j c a t i a n da u t h o 血a t i s e i v i c c ( j a a s ) ,t l l ej a v a 田,p t o 伊a p h ye x t e n s i ( j c e ) ,j a v as e c i i r cs o c k e te x t c n s i o n ( j s s e ) ,或者其它定制的安全a p i ,j a a s 能被用来定义规则执行集的许可权限,从而只有授权用户才能访问。 2 2 6 异常日志 规则引擎a p l 定义了j a v 缸,n 1 1 e s r u l e e x c c p i i 咖作为规则引擎异常层次的根 类,所有其它异常都继承于这个根类。规则引擎中定义的异常都是受控制的异 常( c h c c k c de x p t i o n s ) ,所以捕获异常的任务就交给了规则引擎。规则引擎a p i 没有提供明确的日志机制,但是它建议将j a v al 0 9 百n g a p i 用于规则引擎a p i 。 2 3j b o s sr u l e s 介绍 j b o 蹒r u l c s 是一个基于r c t c 算法( 同时支持k a p 算法) ,专为j a v a 语言 所设计的开源规则引擎【1 5 】。r c t e 算法应用于面向对象的接口将使基于商业对象 的商业规则的表达更为自然。j b o 豁r u l e s 是用j a v a 写的,但能同时运行在j a v a 和n c t 上。j b o 鲻r u l 嚣被设计为可插入式的语言实现。目前规则能用j a v 丑 p y t h o n 和g r v y 实现。 2 3 1j b o 豁r 皿l e s 的结构 一条规则是对商业知识的编码,包括一个前件( a 血t 戗剃c n t ) ,和一个后件 ( c o 惦c q u e n t ) 1 1 6 j 。下图2 6 描述了j b o s sr u l e s 的结构: 第1 3 页 北京邮电大学硕i j 研究生学位论文 ( r u i e s ) 图2 _ 6j b o r u l e s 的架构 ( f a c l s ) 知识库( p r o d u d i o nm e m o r y ) :是规则的集合,存储各类模拟人类问题求解 的产生式规则。一个规则包括前件和后件两部分。 前件m t e c c d e n t ) :又称条件部分、模式部分或左部( k f th a n ds i d e ,l h s ) , 是规则触发的条件,可为一个或一组条件。 后件( c o n s e q u e n t ) :又称右部( r i g l l th a n ds i d e ,r h s ) ,是规则触发时要执 行的一系列行为。 工作内存( w o r “n gm e m o 忉:是应用于规则的事实的全局存储区域,它保 存系统的当前状态。 模式匹配( p a t t 锄m a t c h c r ) :是对新的数据或修改的数据进行规则匹配的过 程通过比较事实和规则的模式部分,决定选择执行哪个规则。模式匹配器是 基于规则的推理机的关键,它决定了推理机的推理效率。 推理机( i n f c 咖c ce n 百n e ) :推理的过程主要是通过决定哪些规则满足事实, 即进行模式匹配,并授予规则优先级,满足事实或目标的规则被加入议程。推 理机有两种推理方式:正向推理( 归纳法) 和反向推理( 演绎法) 。正向推理 是从事实到结论的推理,反向推理是从假设,即要证明的结论,到事实的推理。 议程( a g c n d a ) :管理被匹配规则的执行。推理机创建的一个规则优先级表, 这些规则都匹配工作内存中的事实。被触发规则的动作可能会产生新的事实, 新的事实也被加入工作内存【切。 第1 4 页 北京邮电人学硕j :研究生学位论文 2 j 2j b o s sr u i 姻的原理 j b o s sr u l c s 分为两个主要的部分,构建( a u t h o r i n g ) 和运行时( r u n t i m e ) 1 1 酊。 构建的过程涉及到d r i 或x m l 规则文件的创建,它们被读入一个解析器, 使用j ”汀u t3 语法进行解析。解析器对语法进行正确性的检查,然后产生一种 中间结构“d c s c r ”:d e s c r 用a s t 来描述规则。a s t 然后被传到p a c l 【a g e b u i l d e r , 由p a c k a g b u i l d e r 来产生p a c k a g e d 对象。p a c k a g c b u j l d e r 还承担着一些代码产 生和编译的工作,这些对于产生p a c k a g c 对象都时必需的。p a c k a g c 对象是一个 可以配置的,可序列化的,由一个或多个规则组成的对象。下图2 7 阐明了上 述过程。 图2 7 构建过程 图2 8 运行时过程 第1 5 页 日囱 厂;回 国;孽 北京邮电大学硕l j 研究生学位论文 r u l e b a s e 是一个运行时组件,它包含了一个或多个p a c l 【a g e 对象。可以在 任何时刻将一个p a c k a g e 对象加入或移出r u l e b a s e 对象。一个r u l e b a s e 对象 可以在任意时刻实例化一个或多个w o r k j n g m e m o r y 对象,在它的内部保持对这 些w o r k j n g m e m o r y 的弱引用。w o r k i n g m e m o r y 由一系列子组件组成。当应用 程序中的对象被a s s e n 进w o r k i n g m e m o r y ,可能会导致一个或多个a c t i v a t i o n 的产生,然后由a g c n d a 负责安排这些a c t i v a t i o n 的执行。图2 8 说明了上述过 程。 主要有三个类用来完成构建过程:d r i p a r r ,x m i p a r r ,p a c k a 邸b u i i d e r 。 两个解析器类从传入的r e a d e r 实例产生d e s c ra s t 模型。p a c k a g e b u i l d e r 提供 了简便的a p i ,使你可以忽略那两个类的存在。这两个简单的方法是: 。a d d p a c i 【a g e f r o m d r l ”和“a d d p a c k a g e f r o m x m l ”,两个都只要传入一个r e a d e r 实例作为参数。下面的例子说明了如何从c l 嬲s p a t h 中的x m l 和d r l 文件创建一 个p a c k a g c 对象。注意:所有传入同一个p a c k a g e b u i l d e r 实例的规则源,都必 须是在相同的p a c k a g e 命名空白j ( n a m 鹊p a c c ) 中。 p a c k a g c b u i l d e r 是可以配置的,使用p a c k a g e b u i l d e r c o n f i g i l m t i o n 。通常, 你可以指定另一个p a r c i tc l 弱s i j 0 a d e r 和用什么编译器( c o m p i l e r ) ,默认是e c l i p j d t 。 2 j j 冲突解决策略 当处理知识的时候,可能很多规则都被激活,规则的结果被连续触发,因 此必须在激活队列中排序l 唧。因为触发结果可以操作知识,所以规则的触发顺 序是重要的。根据不同的触发顺序可能发生不同的最后结果。将顺序应用在激 活规则上就叫做冲突解决策略。每个规则库都有一个冲突解决策略链来决定规 则的优先级。 j b o 豁r u l e s 提供了下面这些冲突解决策略: 1 显著原则s a l i e c e ( s a i i e n c c c o n f l j c t r e l v e r ) 每个规则都有一个整数类型的显著性( 强l i e n c c ) 属性,缺省值是零,这个整 数可以取正值也可以取负值。显著原则是优先级的一种形式,具有较高显著性 值的规则在激活队列中会得到较高的优先级。当冲突发生的时候,例如,对当 前的激活有多于一个的显著性匹配值,那么就返回这些冲突的子列表。 2 最近原则r e c c n c y ( r e c e n c y c o n n i c t r e l v e r ) 第1 6 页 北京邮电丈学硕上研究生学位论文 最近原则就是看分配给激活状态中每个事实的计数器。计数器值最高的激 活将放在议程的顶部。 3 首位原则p r i m a c y ( p r i i n a c y c 伽f l i d r e s o l v e r ) 首位原则就是看分配给激活状态中每个事实的计数器。计数器值最低的激 活将放在议程的顶部。 4 先进先出原则f i f o ( f i f o c o n f l i c t r e s o l v e r ) 一种由激活顺序决定的基于深度的策略。新激活放在议程的顶部,因为每 个激活都分配了唯一的数字,所以这种策略不会发生冲突。 5 后进先出原则u f o ( l i f b c o n n i d r e l v e r ) 一种由激活顺序决定的基于宽度的策略。新激活放在议程的底部,因为每 个激活都分配了唯一的数字,所以这种策略不会发生冲突。 6 复杂度原则c 伽n p l “i t y ( c o m p l e x i t y c o n f l i d r e l v e r ) 这是一个基于特殊性并且考虑冲突规则复杂度的策略。规则越复杂,比如 有更多条件,就越特殊,不考虑参数。特殊
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小额借款项目抵贷款合同书范本3篇
- 西宁市租赁房屋协议3篇
- 淮安市物流公司保洁劳务合同协议4篇
- 合法种植养殖合同范本
- 别墅灯具采购合同范本
- 出租鼓楼摊位合同范本
- 选调生乡镇基层锻炼心得分享发言材料
- 跨境电商跨境物流发展趋势展望
- 游戏产业创新模式市场分析评估研究报告
- 2025年全等三角形试卷及答案
- 陕西省中考数学历年(2016-2022年)真题分类汇编专题8四边形及答案
- 新概念第一册重点句型300句
- GB/T 923-2009六角盖形螺母
- GB 19761-2009通风机能效限定值及能效等级
- 学会关心-教育的另一种模式课件
- 药物的结构性质与生物活性
- etap学习帮助-chapter17保护视图star
- 少年中国说五线谱乐谱
- 国际公法学-第三章国际法与国内法的关系
- 广东广州市番禺区教育局招考聘用公办中小学临聘教师17人(必考题)模拟卷
- (高职)企业财务会计电子课件完整版PPT全书电子教案
评论
0/150
提交评论