(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf_第1页
(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf_第2页
(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf_第3页
(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf_第4页
(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)规则引擎在金融交易管理系统中的应用实现.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文摘要 摘要 随着经济的迅速发展,市场的快速变化导致商业业务规则的变化也加快起 来,所以对于i t 企业来说,这就要求设计出来的软件系统能够适应这种快速变 化。软件的开发周期和维护周期很长,这和适应当前快速变化产生了矛盾。规 则引擎的出现很好的解决了这一矛盾。规则引擎由推理引擎发展而来,是一种 嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并 使用预定义的语义模块编写业务决策。 本文就规则引擎的定义、体系结构、常用算法等进行详细论述,并且结合某 国际大型金融服务机构的实时交易管理系统特点,详细描述了规则引擎在此系 统上的设计及实现方式,包括业务规则、业务规则编译器、业务规则库、业务 规则处理器和业务规则执行的具体设计与实现。规则引擎的使用很好的解决了 运用传统系统架构时所遇到的系统耦合度高、适应行差的问题,使系统将业务 层代码彻底从系统中分离出来,单独开发维护,减低了系统的耦合度,极大的 提高了系统的适应性,降低了开发和维护成本。 关键词业务规则、规则引擎,金融交易管理系统、r e t e 算法 浙江大学硕士学位论文 a b s t r a c t a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fe c o n o m y ,t h em a r k e tc h a n g e ss or a p i d l yt h a tt h e b u s i n e s sr u l e sa r ef o r c e dt oc h a n g ef r e q u e n t l y t h i sr e q u i r e si tc o m p a n i e st od e s i g n s o f t w a r es y s t e m st h a tc a l la d a p tt ot h eq u i c kc h a n g ev e r yw e l l b u tt h el i f ec y c l eo f s o f t w a r ed e v e l o p i n ga n ds o f t w a r es u p p o r t i n ga r eb o t hv e r yl o n g ,w h i c hm e a l l st h e s o f t w a r ew i l le x p e r i e n c em u c hm o r ec h a n g e s s ot h e r ec o m e st h er u l ee n g i n e t h e r u l ee n g i n ec o m e sf r o mt h ei n f e r e n c ee n g i n ei nt h er u l e - b a s e de x p e r ts y s t e m t h e b u s i n e s sr u l e sa r ed e f i n e db yap r e d e f i n e dl a n g u a g e i ti sa l le m b e d d e dc o m p o n e n ti n t h ea p p l i c a t i o n ,w h i c hr e a l i z e st h es e p a r a t i o no ft h eb u s i n e s sr u l ea n dt h ep r o g r a m t h es e p a r a t i o ns t r a t e g yc a nm a k et h ea p p l i c a t i o ns y s t e ma d a p tt ot h eq u i c kc h a n g e v e r yw e l lw i t h o u ti n c r e a s i n gt h ec o s t t h i sp a p e re l a b o r a t e dt h ec o n c e p to fb u s i n e s sr u l e ,r u l ee n g i n e ,a n dt h er e l e v a n t a l g o r i t h m 。t h e ni te x p a n d e do nt h ed e s i g na n di m p l e m e n t a t i o no fa r o l ee n g i n eb a s e d o nac o n c r e t er e a lt i m ef i n a n c et r a n s a c t i o ns y s t e m ,i n c l u d i n gt h ed e s i g na n d i m p l e m e n t a t i o nf o rb u s i n e s sr u l e ,r u l ec o m p i l e r ,k n o w l e d g eb a s e ,r u l ep r o c e s s o ra n d e x e c u t i o nc o n t e x t t h er u l ee n g i n er e s o l v e st h ep r o b l e m so fh i g hd e g r e ec o u p l i n g a n dl o wa d a p t a b i l i t yo ft h eo l ds y s t e ma r c h i t e c t u r e t h er u l ee n g i n es e p a r a t e st h e b u s i n e s sr u l e sf r o mt h es y s t e ml o g i cl e v e lw i t hl o wd e g r e ec o u p l i n g ,h i g ha d a p t a b i l i t y , l o wc o s to fd e v e l o p m e n ta n dm a i n t e n a n c e k e y w o r d s b u s i n e s sr u l e s ,r u l ee n g i n e ,f i n a n c et r a n s a c t i o n ,r e t ea l g o r i t h m i i 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得浙:江大学或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文作者签名: 签字日期:砂,p 年月7 日 学位论文版权使用授权书 本学位论文作者完全了解浙江大学有权保留并向国家有关部门或机构 送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权浙江大学可 以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:fp 年 跏签名柏小沁 签字日期:1 f 争 月7 日 浙江大学硕士学位论文图目录 图目录 图2 1 基于规则的系统7 图3 1 该金融交易管理系统所处地位1 2 图3 2 金融交易管理系统架构1 4 图3 3 金融交易管理系统外部接口1 6 图3 4 系统模块划分1 7 图3 5m q 结构1 9 图3 6c o r b a 体系结构2 0 图3 7d a o 设计模式2 3 图4 1f r m 的体系结构2 5 图4 2 业务规则管理器结构2 6 图4 3 规则编译器2 9 图4 4 配置业务规则3 4 图4 5 业务规则r u l e 一交易步骤a c t i v i t y 一客户c l i e n t 3 5 图4 6 业务规则配置器数据库设计3 6 图4 7 处理业务规则3 7 图4 8 业务规则执行流程3 9 图5 1业务规则库数据库关系图5 l 图5 2 查找业务规则运行集合流程5 5 图5 3 业务规则调用5 8 图5 4 简单的r e t e 匹配网络6 0 1 i i 浙江大学硕士学位论文 表目录 表目录 表4 1 r b 文件和j a v a 文件的对比3 2 表4 2 优化前后执行规则序列对比4 0 表5 1 a c t i v i t yn a m e 与r b 文件的对应5 4 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 研究背景 更新业务流程的平均周期已经从1 9 8 0 年的8 4 个月缩短到了现在的6 个月甚 至更短,而且i t 解决方案交付周期也从3 0 个月缩短到了3 个月。业务流程的高 速变化让软件系统的实时更新出现了很大困难。所以业务软件系统的具有高度 的适应性和灵活性是十分重要的。但是如果当包含业务逻辑的代码隐藏在大量 其他代码中的时候,修改系统就变得缓慢、痛苦且易出错,这样就很难做到高 度适应性和灵活性。 人们希望业务逻辑不再成为业务软件系统中的应用层中的一个部分,把它分 离出来。也就是说在这种体系结构下,当业务逻辑发生变化是,系统的非业务 逻辑部分的设计和编码不需要进行改变。业务逻辑能够清晰的分离且由自己维 护,并随时准备现有的应用来调用。这种分离策略很大的提高了系统的适应性 和灵活性,也给系统的维护和升级带来很大的便利。 基于规则的专家系统的出现给开发人员以解决问题的契机,这就是规则引 擎。规则引擎由专家系统中的推理引擎发展而来的,是一种嵌入在应用程序中 的组件,将业务决策规则从应用程序代码中分离出来,并使用预定义的语义模 块编写业务决策规则。接受数据输入,解释业务规则,并根据业务规则做出业 务决策。 以一个具体的大型金融交易管理系统为例,该系统中涉及了金融领域的各种 交易,而这些交易业务的环境和流程不是一成不变的,随时都会发生变化,所 以该项目的灵活性和适应性是非常必要的。该项目中就使用了业务规则,把业 务决策从系统代码中分离出来,并且使用自定义的语言编写业务决策。这样就 做到了业务过程和系统代码的分离,提高了该项目的灵活性和适应性。 浙江大学硕士学位论文第1 章绪论 为了提高业务流程实现的抽象层次和灵活性,业务规则引擎可以部署在 s o a 框架内。这些规则引擎将业务流程内的决策从用编程语言完成的实际实现 隔离开来。 在今天的企业级软件中比较流行的是规则引擎和各种业务过程管理( b p m ) 系统。这类工具都承诺一件事:业务逻辑能够清晰的分离且由自己维护,并随 时准备现有的应用来调用【2 1 。 1 2 规则引擎的研究与发展现状 当下业务规则的应用正以神奇的力量渗透在企业的每个角落。本质上它并不 是那么神奇,我们可以在企业中随意的发现业务规则的应用【2 。不过目前国内的 企业中,业务规则的存在形式大都是非结构化的文档,比如存在于企业业务人 员的大脑中,或者反映在程序手册、或者在客户合同中描述、供应商协议等。 即使企业有了信息系统比如e r p ,业务规则逻辑大都写进了程序代码中,同应 用程序代码耦合在一起。当业务和需求发生变化的时候,不能快速的做出相应 的响应变化,而去修改原有的程序代码,效率低下,代价极大,从而影响了企 业的信息化建设,甚至企业的效益也受到很大的影响。 目前国外已经有很多的基于业务规则的企业信息系统。具有代表性的有 i l o g 公司的i l o gj r u l e s 和开源项目d r o o l s 规则引擎( 一种j a v a 规则引擎) 。 在过去一段时间内,由于规则引擎没有规范化,大部分的规则引擎开发有其 自有的a p i ,这使得其与外部应用程序交互集成不够灵活。当使用另外一种应用 产品时就需要重写应用程序逻辑和a p i 调用,代价十分大。因此,规则引擎工 业中标准的缺乏成为令人关注的重要方面。2 0 0 3 年1 1 月定稿并于2 0 0 4 年8 月 最终发布的j s r9 4 ( j a v a 规则引擎a p i ) 使得j a v a 规则引擎的实现得以标准化 3 1 。j a v a 规则引擎a p i 由j a v a x r u l e s 包定义,是访问规则引擎的标准的企业级 a p i 。通用的规则引擎a p i 能够在一定程度上允许客户程序使用统的方式和不 同厂商的规则引擎产品交互【1 1 1 。但是目前还没有关于规则定义的公共规范,每 2 浙江大学硕士学位论文第1 章绪论 个规则引擎都有各自的规则定义语言。这使得不同规则引擎之间的兼容性成为 问题。不过,随着业务规则的广泛应用,相信制定公共的标准和公共的业务规 则定义语言将是大势所趋。 1 3 研究内容及主要工作 在当今大型金融系统中,涵盖了金融交易的多种业务规则或者业务流程,而 这些业务规则的变化是十分迅速的。这就要求金融系统能够快速的应对这些业 务规则的变更。原有的一个金融交易管理系统,业务逻辑夹杂在系统代码当中, 维护代价相对较高。为了降低该系统开发维护的代价,提高了金融系统的灵活 性和适应性,我们需要为该金融系统实现了一个规则引擎,降低了系统的开发 和维护成本。 在这篇文章中,以一个大型跨国金融服务公司的金融交易管理系统为背景, 介绍了该系统的业务功能及其设计架构,并详细阐述了为金融系统设计的规则 引擎的设计模式及其实现方式。该规则引擎把金融的各种业务从该系统的应用 层分离出来,使用自定义的语言编写业务规则,通过规则引擎中的规则翻译器 转换成为j a v a 类,编译成为j a v ac l a s s 存储在数据库中,形成业务规则库。该 规则引擎同时提供了规则配置管理工具。用户可以根据自己的需要,选择是否 执行某个处理阶段的某些执行规则,或是改变执行的顺序,而不影响其他客户。 该金融系统引入规则引擎之后,很好的解决了旧系统架构的诸多问题,包括 较高的系统耦合性,较大的系统开发维护代价以及较差的适应性。该金融交易 系统在使用了规则引擎之后,对金融业务变化的适应性有了大幅度的提高,系 统稳定性和性能也随之增强。目前该系统的客户从原先的十多家,发展到现在 的上百家,业务涉及领域也从原先单纯的中间业务,发展到现在涉及股票、外 汇、现金等的大型交易平台,显然,规则引擎在该系统中扮演了十分重要的作 用。 3 浙江大学硕士学位论文第l 章绪论 1 4 论文组织结构 本文由五个部分组成: 第一部分详细介绍了规则引擎。包括规则引擎的简介、专家系统介绍、架构、 主要算法及主流的商用规则引擎产品。 第二部分详细描述了金融交易管理系统及其设计。分别介绍了金融交易管理 系统需求、设计架构。 第三部分详细阐述了针对该金融交易管理系统的规则引擎的总体设计思想, 包括业务规则管理系统、规则引擎总体架构、业务规则管理器、配置器、处理 器及业务规则执行流程。 第四部分详细描述了该规则引擎的实现,涵盖了业务规则管理库、业务规则 配置管理及业务规则执行这三个核心组件的实现方式。 文章的最后是对全文进行了总结和对未来工作的展望。 4 浙江大学硕士学位论文 第2 章规则引擎的研究与分析 第2 章规贝j l b i 擎的研究与分析 2 1 业务规则 一个业务规则( b u s i n e s sr u l e 5 1 ,简称b r ) 包含一组条件和在此条件下执 行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常由策略 管理者和业务分析人员开发和维护,有些复杂的业务规则也可以由i t 技术人员 使用相关i t 技术比如面向对象的技术语言或脚本来定制。业务规则的理论基础 是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作【3 1 。简单来 说,与业务相关的操作规范、规章制度、管理章程、行业标准等,都可以称为 业务规则或者商业规n 1 9 1 。 在j b o s sr u l e 中,规则的定义就是对商业知识进行编码。一条规则有 a t t r i b u t e s ,一个l h s ( l e f th a n ds i d e ) 和一个r h s ( r i g h th a n ds i d e ) 。j b o s sr u l e s 的前身是c o d e h a u s 的一个开源项目叫d r o o l s ( d r o o l s 是一个规则引擎,实现方 式是基于r e t e 算法的,为j a v a 量身定制的。具有了o o ( o b j e c to r i e n t e d ) 的 r e t e 算法,使得业务规则有了更自然的表达。最近d r o o l s 被纳入j b o s s 门下, 更名为j b o s sr u l e s ,成为了j b o s s 应用服务器的规则引擎。 业务规则专家组( b r g ) 规定了业务规则的两个定义。,一个与业务观点相 关,一个与i t 相关: “从业务的角度看,业务规则包含在特定活动或范围内关于指导、操作、实 践或过程的行为规范,是一种原则。” “从信息系统的角度看,业务规则旨在用于断言业务结构,或者控制或影响 业务行为,是一个定义或限制业务某些方面的声明。 2 2 规则引擎 规则引擎f 1 】的确切定义目前业界还存在一些争议,在j s r - 9 4 中也几乎没有 关于规则引擎的定义。参考文献【3 1 中是这样定义规则引擎的:规则引擎由推理引 5 浙江大学硕士学位论文第2 章规则引擎的研究与分析 擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序 代码中分离出来,并使用预定义的语义模块编写业务决策【3 】。接受数据输入,解 释业务规则,并根据规则做出业务决策。规则引擎的研究与应用始于二十世纪 7 0 年代,斯坦福大学用l i s p 开发的m y c i n 1 5 】是第一个基于规则的系统,用 于血液疾病的诊断,并给出推荐的治疗方法。规则引擎在这个系统中处于很重 要的地位,它是用来连接业务逻辑和应用系统的一个桥梁,把业务处理过程和 系统代码分割开来,降低整体系统的耦合性。 规则引擎必须先对业务规则进行解释,然后才能运行业务规则。实际上规则 引擎可以视为一种高性能的专用解释器,包含i f - t h e n 操作,在业务对象上运行 业务规则,然后返回运行结果及修改后的业务对象。目前世界顶尖的商用业务 规则引擎产品基本上都使用r e t e 算法,并支持演绎和归纳。 规则引擎由基于规则的系统( r u l e - b a s e ds y s t e m s ) 发展而来,是知识库 ( k n o w l e d g e b a s e d ) 系统的一个分支【1 6 】,属于人工智能的范畴。包括三部分: 知识库( k n o w l e d g eb a s e ) 、工作内存( w o r k i n gm e m o r y ) 和推理引擎( i n f e r e n c e e n g i n e ) 1 7 1 。结构如图2 1 所示: 6 浙江大学硕士学位论文 第2 章规则引擎的研究与分析 图2 1 基于规则的系统 知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、 整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的 集合,包括基本事实、规则和其它有关信剧1 8 1 。 推理引擎由三部分组成,规则解释器r u l ei n t e r p r e t e ,模式匹配器- p a t t e r n m a t c h e r 【8 1 、和议程a g e n d a 。模式匹配器从知识库中找出需要执行的规则并写入 议程;议程为这些规则赋予优先级,确定执行顺序;规则解释器执行这些规则 并输出运行结果。 推理引擎有两种推理方式,演绎和归纳。演绎法应用规则通过事实得出结论; 归纳法是根据定义的假设,查找符合该假设的事实。 使用演绎法的推理引擎的推理步骤如下: ( 1 ) 将初始数据输入至工作内存; ( 2 ) 使用模式匹配器将知识库中的规则和数据比较; 7 浙江大学硕士学位论文第2 章规则引擎的研究与分析 ( 3 ) 如果执行规则存在冲突,即同时激活了多个规则,将冲突的规则放入冲 突集合; ( 4 ) 解决冲突,将激活的规则按顺序放入议程; ( 5 ) 执行议程中的规则; ( 6 ) 重复步骤( 2 ) 至( 5 ) ,直到执行完毕议程中的所有规则,输出运行结果。 业务规则的执行顺序是根据执行议程中的优先级来决定的,当引擎执行规则 时,由于工作内存的数据对象会因为规则的执行而发生改变,这样执行议程中 的业务规则执行实例会发生动态的变化,可能增加也可能减少。于是就产生了 一种”动态的规则执行链,形成所谓的规则的推理机制。 2 3 专家系统 专家系统是由u i 、知识库、推理机、解释器、综合数据库、知识获取等6 个部分构成【l o 】。知识库用来存放知识和既定事实。专家系统的问题求解过程是 通过知识库中的知识来模拟专家的思维方式的,因此,知识库是专家系统质量 是否优越的关键所在,即知识库是一个具有智能特点的计算机程序,它的智能 化主要表现为能够在特定的领域内模仿人类专家思维来求解复杂问题【l 2 1 。 2 4 常用算法 2 4 1r e t e 算法 r e t e 算法是c h a r l e sf o r g y 在1 9 7 9 年的论文中首次提出的,针对基于规则知 识表现的模式匹配算法。r e t e 是一种前向规则快速匹配算法,规则数目与其匹 配速度无关。r e t e 是拉丁文,对应英文是n e t ,也就是网络。r e t e 算法通过形成 一个p e t e 网络进行模式匹配,利用基于规则的系统的两个特征,即时间冗余性 和结构相似性,来提高系统模式匹配的效率。其核心是将分离的匹配项根据内 容动态构造匹配树,根据匹配树来显著的降低计算量f 6 】。 8 浙江大学硕士学位论文第2 章规则引擎的研究与分析 r e t e 算法保存了过去规则匹配过程中的信息,以牺牲内存换取高速的策略。 r e t e 是一种进行大量模式集合和大量对象集合间比较的高效方法,通过这种方 法找出所有匹配各个模式的对象。r e t e 算法分为两个部分:规则编译( r u l e c o m p i l a t i o n ) ,运行时执行( r u n t i m ee x e c u t i o n ) 。规则编译阶段,算法的关键 是如何在p r o d u c t i o nm e m o r y 中生成一个高效的规则识别网络。根据业务对象产 生的运行时业务规则识别网络,在运行时执行这些规则,通过对冗余信息的纪 录,使得执行时间大幅度减少,提升匹配效率。 2 4 2l e a p s 算法 l e a p s ( l a z ye v a l u a t i o na l g o r i t h mf o rp r o d u c t i o ns y s t e m s ) 是一种最好的针 对o p s 5 规则集合产品系统编译器【7 1 。o p s 5 是一种正向链接专家系统。l e a p s 可以生成o p s 5 的最快的可执行的序列。l e a p s 的高效是因为它具有复杂的数 据结构和搜索算法来加速规则处理速度。l e a p s 算法使用了一种“l a z y ”方法来 评估条件( c o n d i t i o n s ) 。 2 5 规则引擎d r o o l s 简介 d r o o l s 是一个基于j a v a 语言的开源业务规则管理系统( b u s i n e s sr u l e s m a n a g e m e n ts y s t e m ,b r m s 4 ) ,实现了j s r 9 4 ,支持和j a v a 语言的互操作。 从4 0 版本中,d r o o l s 规则引擎实现了r e t e l 6 1 和l e a p s t j 匹配算法,遵循j s r 9 4 标准【1 9 】,并且在e c l i p s e 集成了的规则开发工具,便于开发、编译和调试自定义 的规则语言【2 0 1 。相比其以前的版本,为了适应业务人员的使用需求,新版本中 加入了基于a j a x 技术应用,用于w e b 页面式规则管理和版本控制。 d r o o l s 规则引擎由5 个主要组成部分: j s r 9 4 一对j s r 9 4a p i 接口的实现。 c o r e 一规则引擎核心,关联规则和事实,进行推理,并执行相应的动作; 9 浙江大学硕士学位论文第2 章规则引擎的研究与分析 c o m p i l e r 一规则编译器,将规则文件转换成可以被引擎理解执行的代 码: d e c i s i o nt a b l e 一决策表; i d e e c l i p s e 插件,可以实时编译自定义规则语言文件; 2 6 本章小结 一 本章从概念上依次对业务规则、规则引擎、专家系统进行了阐述。并且对主 流r e t e 和l e a p s 算法进行了概述,简要介绍了主流规则引擎d r o o l s 。 1 0 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 第3 章金融交易管理系统及其设计 3 1 金融交易管理系统介绍 该金融交易管理系统的应用背景是一家大型跨国金融公司开发的进行全球 金融交易的系统,交易类型包括证券、现金和外币兑换等。它能够为这些类型 的交易管理和处理实时的电子交易数据。这个系统使交易流程最大限度的电子 化,加快交易速度,减少交易过程中的错误,为金融交易管理系统提供一体的 电子化解决方案( s t p s t r a i g h tt r a d ep r o c e s s i n g ) 。 为该金融系统是和其他系统一起应用于交易管理中,图3 1 可以清晰的表示 出该系统所处的地位。 如图3 1 所示,该金融交易管理系统在整个交易管理过程中处在十分重要的 部分。它接收上游原始的交易数据,与相关系统交互后,对数据进行分析处理, 之后将数据传到下游。所以它在整个交易管理过程中起到了承上启下的重要作 用。 浙江大# 士学位论文第3 章金触交易营理系统盈其设计 图31 该金融交易管理系统所处地位 3 2 金融交易管理系统业务需求 该金融交易管理系统的设计需要满足一下的需求: f 1 1 为投资管理解决方案提供一个内部的直通的处理过程,包括交易信息获 取、处理、确认、结算: 为证券和外币等类型的交易提供实时的数据管理;能够接收来自多个不同的 交易数据来源,处理之后发送到不同的下游交易结算系统。交易信息的获取要 求金融交易管理系统能够与不同投资经理人( b r o k e r ) 的订单管理系统交互来接 收交易信息i 交易信息的处理要求金融交易管理系统能够实时地从外部数据系 统获取最新的实时数据并与其交互;交易信息的确认要求金融交易管理系统能 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 够与不同证券经纪人的交易系统交互来获得交易确认信息;结算通知功能要求 系统能够和银行托管系统( c u s t o d i a n ) 以及第三方信息系统进行相互通讯完成 最终的结算操作。 ( 2 ) 基于规则的处理过程( r u l e b a s e dp r o c e s s i n g ) :针对不同的交易类型有 较好的适应性;利于添加和更改新的交易处理逻辑; ( 3 ) 可以对交易事务进行修改和格式化,用来连接来自不同客户的数据; ( 4 ) 基于异常的处理:异常和交易错误可以定义优先级,用户可以把这些异 常放到事先定义好的组件中,然后可以对这些异常错误进行后续的处理,或者 交给人工进行人工交割; ( 5 ) 高度的可靠性; 在金融交易管理系统中,每个数据都是十分重要的,都与相当数量的美元相 对应。所以业务数据的丢失或重复的业务事务对于金融信息系统来说不可允许 的;这可能导致商业开销严重超支,引来高额的商业罚款,降低客户满意度等 系列灾难; ( 6 ) 高度的安全性: 显然的,安全性对于当今的金融信息系统至关重要。该金融交易管理系统通 过加密、身份认证、授权等手段保障系统安全性; ( 7 ) 基于浏览器的用户界面:提供一个有好的基于j a v a 的h t m l 界面给用 户操作,以达到松耦合、易操作、易维护的系统要求; 3 3 金融交易管理系统的设计 3 3 1 金融交易管理系统架构 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 金融交易管理系统采用基于中间件的分层体系结构,系统共有5 层,如图 3 2 所示t 馨产层 表示层 业务层 集成层 数据层 e e 回圉回 囵一圆 圆四回 回回回 回四回 图3 2 金融交易管理系统架构 客户层 客户层完成系统与用户的交互功能,接受用户输入,反馈处理结果。h t m l 页面是用户与系统的交互平台,通过s s l 保障会话安全;a p p l e t 和j a v a s c r i p t 使得交互方式内容更加生动,提高用户体验度。 表示层 表示层包含了j s p 页面、s e r v l e t 以及x s l t 。主要完成响应客户请求功能, 及与相应业务组件进行相互通讯。 1 4 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 业务层 业务层由面向消息的工作流组件组成,独立提供各自服务存在于系统中,运 用对m q 和c o r b a 技术运用,对交易消息提供了异步处理服务,增加了系统 的整体处理能力;业务层具有面向服务架构的s o a 特征,优化各个组件之间的 并行性,降低系统资源开销,提高系统整体的可靠性。 集成层 用于为业务层的各个业务功能组件间提供通讯支持,连接系统和系统外部资 源,如规则引擎数据库、外部系统等。 业务层中的各个工作流组件在处理各自交易消息时都需要执行大量的金融 业务逻辑。为了分离金融业务逻辑和其他系统代码,金融交易管理系统实现了 一个规则引擎,把业务逻辑作为单独的对象来维护,也就形成了业务规则。对 象持久层使业务层可以对数据库中的信息进行十分方便的访问和操作,实现业 务对象的持久化。交易管理系统通过实现了专门的数据访问接口( d a o ) ,隔 离业务对象处理和数据库访问的具体细节,形成一个对象持久层。 表示层和业务层通过m q 交互,而客户层和后台系统交互则使用c o r b a , 避免了对运行平台的依赖性,大大降低了各个工作流组件之间的耦合度,降低 维护升级代价,提高系统适应性。 数据层 管理包括业务规则库、数据库资源,外部系统。外部系统包括交易数据中心 系统、交易订单系统、交易档案管理系统需要与金融交易管理系统进行交互通 讯的所有资源。 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 3 3 2 金融交易管理系统外部接口 鼢。前 ,、 交易稽案镑毽 数霉审心系统 投资经壤人系统证券经纪人 二。; 。订颦赞瑾系羹| d 8 tt 删 一 7 傲鞋麓。 116p“b 7 。“,。 l j 毒毒 7 ,t f。 一 f 辞e l 墨嚣。: 订攀管理系绫 陌口 2 l 4 ”“”5 4 “ j 1厂i ;一一。彩,彰 ? l 鞯o 。 , 订荤镗瑷系统 m o m q 交翳系统k k l 绦冀踌童i 红幺e ,口i。 i , 图3 3 金融交易管理系统外部接口 如图3 3 所示,该金融交易管理系统面对的是多个外部订单管理系统,因 为系统面对的是成百的不同的投资经理人,他们会使用各自的订单管理系统, 不同的证券经纪人也会使用不同的交易系统。所以该金融交易管理系统提供了 不同的接口以供外部订单管理系统和其他交互系统使用。 交易信息的交互可以通过如下几种形式进行: 通过文件的传输和外部系统通讯; 通过数据库直接和外部系统交换数据; 通过自己的通讯a p i 接口( 支持不同的编程语言,如c + + 、j a v a ) ; 使用m q 或者c o r b a 外部系统进行消息传递。 3 3 3 金融交易管理系统内部模块划分 金融交易管理系统的内部功能模块如图3 4 所示: 1 6 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 囝团圆圆进幽邈幽毯幽进型 霹缴嬲戮嬲缵缪獭黝臻獬嬲骖翳獭弼嬲嬲嬲辫嬲臻饔搿嬲嬲鬻鬈嬲搿第罄l 5 嬲黪黟彬獭黝磷獬嬲辫勰弼獭弼繁缀嘲嬲獭嬲嬲黔微秽镳 罄交易事务管理模块凌 j lll r i 矗v ;j骚j ;v 拈j 孙 f l v 以麓q j “v 轴 粥0 i i v 以 陛。则锄。 菇滞, t _ _ _ i i l l i 11 f1 广 t1 嗣 囹 黟嬲嘲 囝囹囵 鬻憨磊麓 一 豳 jk i 1r 凇 ;彩z,j 臻 圈 ; 鼍 鼢 l 髯o r k s t a t i o nj 彬。| 。| 锈 o 静 一l ;交易缎簿菠 乳,0 。,删 :镟管理。 #喈 鼢 魄颜,? ,。弱 1 。、黼。l e n 七k ,# 2 囊! l ,勃最嚣3 | j s t | ,“”。”“4 。4 、t n t r 筹il 、? 交易信息记澈 图3 4 系统模块划分 交易事务管理模块:金融交易管理系统的核心,贯穿于整个交易的执行,在 交易的每个时期,负责各个模块之间的连接和通信,管理交易在每个处理时 期的状态。 交易信息捕获模块:顾名思义,就是捕捉来自客户的交易信息,验证这些信 息的合法性,之后转交给交易事务管理模块进行下一步的处理。 交易信息处理模块:执行业务规则,来验证( v a l i d a t i o n ) 、填充( e n r i c h m e n t ) 和转换( t r a n s l a t i o n ) 相应的交易数据。 浙江大学硕士学位论文笫3 章金融交易管理系统及其设计 信息确认模块:从工作站接收经纪人的指令,来对交易进行确认,决定交易 是否继续下去。 信息匹配模块:从信息确认模块和交易信息处理模块那里得到相应的数据对 交易进行不同层次的匹配,确认交易信息,处理交易错误。 交易信息记录管理模块:运行业务规则,生成必要的记录消息,并且把这些 消息发送到g a t e w a y # 1 。 交易结算模块:处理不同的交易请求( 包括交易建议、交易成交、交易修正 和交易取消) ,然后生成相应的交易结算消息,这种消息是国际通用的用于 金融证券通讯的s w i f t 数据格式,把生成的结算消息发送到下游,并且接 收下游的反馈,来更新交易状态。 交易结算反馈管理:接收并且验证s w i f t 消息,生成p a r t y ( a c k n a k ) 消 息,发送到下游系统,并且把下游系统的反馈发回给系统。 由上图可见,业务规则是贯穿于整个金融交易管理系统的各个阶段,在系统 中起着相当重要的作用。在金融交易的不同阶段,运行相应的业务规则,得到 相应的结果,根据运行结果再决定如何进入到下一阶段的处理过程。 3 3 3 金融交易管理系统的消息机制 该金融系统的不同模块可以运行在不同的服务器上,而每个模块对于交易的 处理过程、效率、方式都是不同的,所以如何处理好系统模块间的消息传递是 十分重要的。该金融交易管理系统运用了m q 技术和c o r b a 针对不同的消息 类型来处理消息传递f 2 4 】。 3 3 3 1 m q 概述 m q ( m e s s a g i n ga n dq u e u i n g ) 是由i b m 公司提供的一种商业消息服务中间 件,消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内 存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 序可独立地执行一它们不需要知道彼此的位置、或在继续执行前不需要等待接收 程序接收此消息。如图3 5 所示m q 体系结构。 m qs e r i e s 由一个消息传输系统和应用程序接口组成: 消息传输系统确保包括网络中不同系统上的工作流组件之间的消息传 递,并确保出现异常( 如网络故障或关闭) 后的消息恢复。 应用程序接口完成工作流组件( 应用程序) 和消息系统之间的通讯。 m qs e r i e s 为系统提供了如下三个良好的特性: 接口统一,适应多种平台 m q i ( m e s s a g eq u e u i n gi n t e r f a c e ) 在其支持的所有平台上是统一的。m q i 并不必关心m qs e r i e s 所处的系统平台,实现了服务的透明性。 消息处理不受时间约束 在生成和发送消息时,并不受时间的约束,增加了系统处理的灵活性。 支持分布式处理 交易消息基于事件的处理方式,具有事件处理,备份和恢复机制,能够保证 消息有且仅有一次传输。这些特点对于大型金融交易管理系统都十分的重要。 h o s t lh o s t 2 c o m p o n e n tc o m p o n e n tc o m p o n e n tc o m p o n e n t l+ + l c h a n n e l q u ( 朔l i oaq u e u eb一4 1 pq u e u e cq u e u e d 一 q u e u em a n a g e r q u e u em a n a g e r2 m qs e r v i c e n e t w o r k i n gs o f t w a r e 图3 5m q 结构 1 9 浙江大学硕士学位论文第3 章金融交易管理系统及其设计 金融交易管理系统需要与不同外部系统通讯,这些系统会使用各种不同的通 讯接口,例如m q 、d b 、文件、通讯a p i 等。该系统则会把外部的非m q 通讯 方式间接地转化为通过m q 进行通讯,达到系统的一致性。 3 3 3 2c o r b a 概述 c o r b a 公共对象请求代理体系( c o m m o no b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ) ,是对象管理组织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 为使不同 硬件软件产品间实现相互操作,而提出的一种中间件解决方案【2 l 】。换句话说, c o r b a 是一个分布式计算平台,基于面向对象处理过程。c o r b a 允许不同的 系统之间可以进行互操作,而不用关心对方的实现细节,包括物理地点、软件 平台、硬件平台以及编程语言实现等。如图3 6 所示c o r b a 体系结构: 图3 6c o r b a 体系结构 c o r b a 体系结构包括o r b ,接口定义语言,对象适配器,i d l 存根及框架, 静态调用接口,动态调用接口以及g i o p 和i i o p 两种通讯协议: 浙江大学硕士学位论文 第3 章金融交易管理系统及其设计 o l m 对象请求代理 c o r b a 的核心是o r b ,它提供对应的机制用于对象发送请求和接受响应。 在c o r b a 的规范中规定,o r b 负责完成所有通信。但这个规范中并没有说明 o r b 使用何种的具体方式实现相关操作。对于通信方来说本地对象和远程对象 都是透明的,不用去关心具体实现细节。 i d l 一接口定义语言 i d l 是一种描述性语言,定义对象是通过定义对象的接口来完成的。因此 i d l 通过对具体的编程语言的映射,使用相应的编程语言实现i d l 所定义的对 象,i d l 并不用来实现对象。 o b j e c ta d a p t e r 一对象适配器 o b j e c ta d a p t e r 对象适配器用于负责注册、激活及注销服务对象,它介于o r b 核心和对象实现之间。 i d ls t u b s i d l 存根& i d ls k e l e t o n i d l 框架 它们是对象服务客户端存根和服务器框架程序,i d l 编译器编译i d l 和相 应的实现程序,生成的对应于该编程语言的存根和框架。 d y n a m i ci n v o c a t i o ni n t e r f a c e ( d i i ) 一动态调用接口 采用d y n a m i ci n v o c a t i o ni n t e r f a c e ( d i d 方式,可在不知道服务对象接口的 情况下来获取相应服务对象的接口描述信息,然后o r b 创建出对应的客户请求 并发送至服务端,实现远程动态调用。 s t a t i ci n v o c a t i o ni n t e r f a c e ( s i i ) 一静态调用接口 静态调用接口s i i 基于i d l 存根,提供客户端程序调用应用对象服务的接 口。通过客户端存根程序发送用户请求到o r b ,通过客户端框架程序接收该用

温馨提示

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

评论

0/150

提交评论