SWIFTNet基金管理系统-毕业论文_第1页
SWIFTNet基金管理系统-毕业论文_第2页
SWIFTNet基金管理系统-毕业论文_第3页
SWIFTNet基金管理系统-毕业论文_第4页
SWIFTNet基金管理系统-毕业论文_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

厦门大学本科毕业论文本科毕业论文(科研训练、毕业设计)题 目:SWIFTNet基金管理系统姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日35SWIFTNet基金管理系统摘要随着基金产业的迅速发展,交易量不断成长,分销通路也不断多样化。由于原本的交易处理方式耗费了大量的人力和成本,再加上日趋激烈的市场竞争和日益严谨的政策法规,基金分销商面临着巨大的市场竞争压力。因此,降低人力成本与错误率一直都是基金业者所面临的挑战和努力的目标。SWIFT致力于推动与改进基金业务流程自动化与直通化,并处于全球领先地位。其SWIFTNet Fund平台通过将行业标准和SWIFTNet信息网络融合在一起,从而推动基金产业自动化和直通化处理,提高人均生产效率,从而缓和了这种竞争压力。各金融机构原有交易管理系统使用的交易资料文件格式与SWIFTNet网络传送的交易资料文件格式不同,本系统完成了它们之间的相互转换工作。而且为金融机构提供了方便、快捷的WEB管理系统,从而利用了SWIFTNet Fund平台的优越性,提高了金融机构的交易处理效率。关键字SWIFTSWIFTNet基金SpringWebWork管理系统SWIFTNet Fund SystemAbstract With fund industry rapidly developing, transaction amount raises a lot. And because of old transaction method requiring a lot of people and other cost, and vehement competition, fund industry is confronted with large competition stress. So reducing people cost always is the fund industys challenge and aim. SWIFT is the industry-owned co-operative supplying secure, standardised messaging services and interface software to nearly 8,100 financial institutions in 207 countries and territories. Its SWIFTNet Fund platform combine the fund standard and the SWIFTNet network, improving the fund transaction efficiency, and reducing the people cost.The transaction document formats between the original transaction system and the SWIFTNet network are different. This system provides the possibility to complete the conversion between those two document formats, and offers a convenient WEB management system. Thus, it makes the best use of the capability of the SWIFTNet Fund platform,and improves the transaction efficiency.Keywords SWIFT SWIFTNet Fund Spring WebWork Management System目录第一章绪论11.1、课题研究背景11.2、项目研究内容及其研究意义21.3、论文组织结构2第二章基本概念42.1、项目中所用到的Spring特性42.2、项目中所用到的WebWork特性42.3、项目中所用到的Hibernate特性52.4、项目中所用到的XML特性52.5、项目中所用到的FreeMarker特性52.6、项目中所用到的其他技术5第三章系统设计63.1、SWIFTNet Fund网络框架63.2、系统的模块划分63.2.1、交易资料文件送出的转换73.2.2、资料文件接收的转换8第四章系统实现104.1、交易资料文件解析模块104.1.1、模块目标104.1.2、设计实现114.2、交易资料信息过滤模块154.3、传送文件的产生模块154.3.1、模块目标154.3.2、设计实现164.4、交易信息的保存模块174.5、资料文件接收处理模块184.6、Web管理系统模块184.6.1、模块目标184.6.2、设计实现194.7、自定义栏位显示模块214.7.1、模块目标214.7.2、设计实现214.8、项目部署224.9、系统的运行结果23第五章结束语33总结33下一步工作33参考文献34致谢语35ContentsChapter1 Introduction11.1 Background11.2 Project Introduction and Means21.3 Thesis Hierarchy2Chapter2 Basic Concepts42.1 Spring Reference42.2 WebWork Reference42.3 Hibernate Reference52.4 XML Reference52.5 FreeMarker Reference52.6 Other Used Technologies Reference5Chapter3 System Design63.1 SWIFTNet Fund Network Framework63.2 System Modules Design63.2.1 Outgoing Files Conversion73.2.2 Incoming Files Conversion8Chapter4 System Implementation104.1 Transaction Files Parsing Module104.1.1 Module Objective104.1.2 Design and Implementation114.2 Transaction Information Filter Module154.3 Transmit Files Productor Module154.3.1 Module Objective154.3.2 Design and Implementation164.4 Transaction Information Saving Module174.5 Incoming Files Parsing Module184.6 Web Management System184.6.1 Module Objective184.6.2 Design and Implementation194.7 Custom Layout Display Module214.7.1 Module Objective214.7.2 Design and Implementation214.8 Project Deploy224.9 System Runtime Result23Chapter5 Conclusion and Perspective33Conclusion33Future Improvement33References34Acknowledges35第一章绪论1.1、课题研究背景2003年底,亚洲地区除日本之外,散户委托管理的资产总值估计约达3,670亿美金。亚洲是全世界资产管理成长最迅速的地区,预测年增长率可达14%。估计到2008年,亚洲的基金分销资产总值将倍增至7,000亿美金1。银行业者或基金公司在处理国外基金分销作业时,一直以来都是依赖大量的人工与传真作业来进行,而传真作业流程不仅琐碎费时,且容易因传送内容不清楚而需再次由人工电话确认,耗费更多的人力与成本。据估计,基金管理产业每年因昂贵的人工作业以及因作业流程疏漏而赔偿的损失金额高达数十亿美元。2由于多样化的分销通路、日趋激烈的市场竞争、不断成长的交易量、日益严谨的政策法规,基金分销商不仅要面临市场竞争的压力,在不增加人力的情形下,却又要处理大量的基金业务量,因此,降低人力成本与错误率一直都是基金业者所面临的挑战和努力的目标。以及系统架构愈趋开放等因素,将基金处理自动化作业流程,朝向以成本效益与高弹性化架构方向发展。健全而规模灵活的处理平台意味着可以在较低新增成本的情况下加入新客户,并可以更准确和快速地向客户汇报,人工处理及出现错误的成本也将降低。SWIFT(Society for Worldwide Interbank Financial Telecommunications)是国际银行金融电信协会的缩写,该协会成立于1973年底,是一家为全球207个国家或地区近8100家金融机构提供安全信息服务和接口软件的金融行业合作组织。SWIFT致力于推动与改进基金业务流程自动化,并处于全球领先地位。推动交易流程自动化和直通化,即是在整合相关系统后,只要将基金相关资料一次输入,到完成结算与交割作业上,均无需人工介入调整,一切作业均自动化处理。自2001年起,SWIFT已带领欧洲和亚太地区超过80个经销商、基金经理人或代理机构(Transfer Agent),每月交换超过20万笔的交易指示(Orders)、交易确认(Confirmations)及结算表(Statements)3。SWIFTNet Fund是通过将行业标准和SWIFTNet信息网络融合在一起从而推动基金产业自动化处理和直通处理的SWIFT信息解决方案。这种服务满足了欧洲和亚太地区的跨界基金分配流量的需求,并且它是基于新的UNIFI(ISO20022)和FIN(ISO15022)标准的合并体,包括开户和维护、下定单、状态和确认、传输、存款和交易报告、价格报告、现金流量等。SWIFT在Sibos2004的年会上正式宣布,基金业者现在可以使用SWIFTNet Fund基金平台进行处理交易作业、报价和现金流量报表的实际操作。目前已签订使用SWIFTNet Fund的亚洲基金业者包括:JF资产管理、富达投资亚太区、景顺投资管理亚洲公司、国泰世华银行、达亚信托公司、远东国际商业银行、汇丰证券伦敦香港新加坡、宝源投资管理卢森堡亚洲区、大华银行、华侨银行、台新银行、美林投资管理及全球花旗银行。41.2、项目研究内容及其研究意义本项目的目标在于构建一套遵循SWIFTNet Fund基金平台协议的富有扩展性的基金交易管理系统。此系统的前版本已经在中国台湾台新银行正式上线运作,统计结果表明该银行的人均生产效率有了显著的提高,为企业创造了丰厚的价值。SWIFTNet Fund平台简单地说就是在遵循SWIFT协议的原则上,由各家基金公司与银行等金融机构作为终端,各终端通过某种设备(比如SAA网关)连接在SWIFTNet网络上,构成一种特有的专属网络平台。在SWIFTNet网络中传输的数据格式是固定的,由SWIFT组织制定,任何想加入该平台的金融机构都必须要遵循该协议。但由于各金融机构原有交易管理系统使用的数据格式各不相同,且与SWIFT协议不同。所以必须在原有交易管理系统与SWIFTNet网络之间进行数据格式转换,才能够享受SWIFTNet Fund平台带来的优越性。本项目就是为了实现这种数据格式相互转换而设计开发的。由于各金融机构原有的交易管理系统使用的数据文件格式各不相同,此项目前版本仅仅是针对台新银行所定制的系统,并不适合其他金融机构的需求。但由于大多数金融机构采用类似的服务器系统,数据文件格式也具有一定的相似性(比如说,台湾地区很多金融机构采用IBM AS400平台)。为此,本项目希望把原有系统更加模块化,甚至抽象出其中一些模块成为独立的可灵活配置的模块组件,以便可以通过简单的配置就能符合大多数金融机构的应用需求。本项目的开发具有重要的研究意义,在兼顾各金融机构原有状况的前提,以最小改变原有交易管理系统的代价,把原有系统与SWIFTNet Fund平台连接起来,使得各金融机构享受该平台带来的优越性,推动基金交易流程的自动化与直通化,加快基金处理效率,从而使得基金产业得到快速的发展。1.3、论文组织结构本论文主要分为五大部分:第一章为绪论,主要介绍了本论文的课题背景、研究的主要内容和文章组织结构。在课题研究背景介绍中主要阐述了目前基金行业所面临的巨大竞争压力与挑战,SWIFT组织为缓和这种压力,提供了SWIFTNet Fund这种信息解决方案,推动与改进基金业务流程自动化和直通化。本文的主要研究内容就是建立一套遵循SWIFTNet Fund协议的系统,连接各金融机构原有交易管理系统与SWIFTNet网络,使得各金融机构能够享受到SWIFTNet Fund平台带来的优越性。第二章为基本概念,主要介绍了项目开发过程中所用的几种主要技术,以及各种技术的适用范围与在本项目中的用法。第三章为系统设计,主要介绍了本项目的系统总体设计。遵循模块化设计方法,本项目可分为两个部分,一部分处理交易资料文件送出的格式转换工作,另一部处理资料文件(交易资料文件与回复信息文件)接收的格式转换工作。两大部分中又各分为几个具体的模块,各个模块实现了各自的功能。第四章为系统实现,主要介绍了项目中各个模块的具体设计与实现,着重介绍了各个模块的设计思想,综合应用各种技术解决实际问题。最后,以系统实际使用步骤为例,简要地说明了系统的运行结果。第五章为结束语,主要为技术总结,然后提出下一步的工作方向。本项目通过各种自定义的配置达到了适应大多数金融机构的应用需求,提高了市场应用价值。下一步的工作方向将是改善配置的自定义方式,提高自定义配置的适用范围,进一步提高市场应用价值。第二章基本概念本项目采用JDK1.4技术编译,应用了Spring1.2.8、WebWork2.1.7和Hiernate3.1等框架技术。项目中还大量地使用了XML技术,以完成各种配置管理与系统需求。并使用了FreeMarker模板技术用于生成各种交易文件。并采用JUnit来做单元测试,结合Spring与DbUnit做整合测试。最后,根据最终项目采用的数据库类型(支持SQL Server与Oracle),利用Ant进行项目部署。2.1、项目中所用到的Spring特性Spring是一种开源框架,主要优势之一就是其分层架构,由7个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式组成。Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。本项目中用到了Spring的核心容器模块、上下文配置模块、DAO与ORM技术。各模块作用简介如下5:核心容器提供了Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量。Spring ORM提供了若干个ORM框架工具,其中包括JDO、Hibernate和iBatis SQL Map等。所有这些都遵从Spring 的通用事务和 DAO 异常层次结构。2.2、项目中所用到的WebWork特性WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork2.*已经被拆分成了Xwork1和WebWork2两个项目。Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截器(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNLthe Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。WebWork2建立在Xwork之上,处理HTTP的响应和请求6。本项目中,把Spring与WebWork结合起来用,主要使用WebWork来完成V(视图)和C(控制)的工作,使用Spring来完成M(模型)的工作。从而很好地发挥各个框架技术的各自长处,也为本项目提供了很好的扩展性与健壮性。2.3、项目中所用到的Hibernate特性Hibernate是一个免费的开源Java包,提供了一种优秀的数据持久化技术(ORM),为数据库操作与实现多数据库系统提供了便利7。本项目中,使用了Spring框架提供的DAO与Template(HibernateTemplate)技术支持,更加简化了数据持久化的操作。2.4、项目中所用到的XML特性XML是一种可扩展的标记语言。本项目充分利用了这种可扩展性,利用XML语言来定义文件格式、映射关系等配置,从而得到一种灵活、简便且极具扩展性的配置设计方法。2.5、项目中所用到的FreeMarker特性FreeMarker是一种优秀的模板技术,也利用了OGNL这种的表达式语言8。利用这种模板技术可以轻松地定义各种模板文件,从而产生各种目标需求文件。在本系统中的传送文件产生模块,大量了使用此技术,给项目开发带来了便利。2.6、项目中所用到的其他技术在项目开发过程中,我们用JUnit进行单元测试,严格把握好测试案例的正确性与完整性,为项目开发提供了坚实的基础。同时,还采用DbUnit技术进行数据库操作方面的测试。DbUnit是专门用于数据库方面的整合测试,提供了丰富的数据库数据初始化、清除、断言操作等功能9。项目开发过程中,我们利用Ant技术,达到了自动化测试,自动集成、部署等功能,通过不断的集成部署与自动测试,为项目的开发提供了一个坚实的基础。第三章系统设计3.1、SWIFTNet Fund网络框架SWIFTNet网络的大致处理流程如图3-1所示。各金融机构在原有交易管理系统服务器与SWIFTNet网络之间架上了一个网络接口专属服务器(比如SAA网关),该服务器将检查、发送与接收电文资料,只有遵循SWIFTNet协议的电文资料才能够通过。各金融机构都有SWIFT组织给予的一个统一的代号(BIC),电文资料上携带着发送方与接收方的代号信息,因此网络接口服务根据这些信息能够准确地把电文资料送达对方的网络接口服务器,从而送达对方原有交易管理系统中。图3-1SWIFTNet Fund网络框架图当一家金融机构从原有交易管理系统发出一笔交易资料文件后,通过我们的系统转换成遵循SWIFTNet协议的电文资料文件,再从该金融机构的网络接口服务器(SAA)发出,通过SWIFTNet网络送达接收方机构。同样地,当有其他金融机构发送交易资料文件或回复信息给该金融机构时,资料文件会送到该金融机构的网络接口服务器,我们的系统将把接收到的资料文件转换成符合该金融机构原有交易管理系统的数据文件,送达原有交易管理系统进行下一步处理。本系统完成了金融机构原有交易管理系统与SWIFTNet网络接口专属服务器系统之间的数据格式互相转换工作,同时还提供了老式的交易处理方式(传真)。3.2、系统的模块划分系统的目标是为了实现资料文件在金融机构原有交易管理系统与SWIFTNet网络接口专属服务器系统之间的互相转换。因此,系统可分成两大部分:一部分负责交易资料文件送出的转换工作,另一部分负资料文件(交易资料文件与回复信息文件)接收的转换工作。3.2.1、交易资料文件送出的转换、流程说明交易资料文件送出的处理流程如图3-2所示。金融机构原有交易管理系统产生交易资料文件,此文件一般为文本文件,并遵循一定的数据格式。接着,文件解析器将资料文件解析成具有一定业务逻辑规则的业务对象。根据交易原则与SWIFT协议,过滤掉不合法的业务对象或者修改相关状态信息。然后,将业务对象传给交易传送文件产生器,产生符合SWIFT协议的电文资料文件和传真文件(用于老式交易方式)。最后,利用数据持久化技术将业务对象存储到数据库系统当中。图3-2交易资料文件送出的处理流程图、模块划分根据业务流程需要,可将该部分划分成以下几个模块:交易资料文件解析模块、交易资料信息过滤模块、传送文件(SWIFT电文资料文件与传真文件)的产生模块和交易资料信息的保存模块。各模块主要的实现目标如下:交易资料文件解析模块,从不同的交易资料文件格式中抽象出格式模板,并用XML文件来配置格式模板,以达到通过配置不同文件格式信息的方式来解析不同的交易资料文件,得到实际的交易资料信息的目的。紧接着,定义交易资料信息与具有业务逻辑的业务对象之间的映射关系,将交易资料信息填充到实际的业务对象中,从而得到系统需要的业务对象。交易资料信息过滤模块,依据一定的过滤规则过滤非法的交易信息,并对合法的交易信息做一定的处理。比如,过滤重复的交易信息资料;针对交易补单资料信息的某些状态修改等。传送文件的产生模块,主要产生两种用途的传送文件,一种用于SWIFTNet网络传送的文件,另一种用于传真的文件。为了兼顾老式交易方式(传真)的原因,此模块产生了用于传真的文件。交易资料信息保存模块,利用数据持久化技术,将携带合法交易信息的业务对象,存储到数据库系统中。3.2.2、资料文件接收的转换、流程说明资料文件接收的处理流程如图3-3所示。当SAA(SWIFTNet网络接口专属服务器网关)收到信息文件后,将信息文件存于某个预定的目录之中。我们将用某一程序来监控这一特定目录,当发现有信息文件存在时,将处理该文件,处理完成后将资料文件移到备份目录进行备份。处理信息文件时,首先读取文件的某部分信息(XML文件),判断出文件的消息类型,然后交给相应的信息处理程序来处理。目前处理的消息类型有:ACK/NAK消息、状态报告消息和不同类型的交易资料文件(申购、赎回和转换)等。图3-3接收资料文件的处理流程图、模块划分根据业务流程需要,可将该部分划分成以下几个模块:目录监控模块、ACKNAK消息处理器、状态报告消息处理器和三种不同类型的交易信息处理器。各模块实现的目标如下:目录监控模块,监控某一特定的目录,如果发现有文件(XML格式)存在,则读取文件某部分信息,判断出该文件的消息类型,并交给相应的消息处理器进行下一步处理。ACKNAK消息处理器,主要负责处理ACK/NAK消息,并记录下其他信息,以便系统其他模块使用。状态报告消息处理器,主要负责处理状态报告消息,记录下各交易文件的送出状态,以便系统使用。交易信息处理器(交易类型有三种申购、赎回和转换),负责将交易资料文件转换成原有交易管理系统使用的数据文件,并存放在预设的目录中,以便其他程序将它送入原有交易管理系统。第四章系统实现4.1、交易资料文件解析模块4.1.1、模块目标图4-1资料文件解析流程图此模块希望通过使用配置信息把交易资料文件上的数据转换成系统需要的业务对象,转换的处理流程如图4-1所示。首先,将交易资料文件的数据格式的配置文件(XML格式)解析成一个数据格式配置对象。文件解析器读取数据文件的内容,根据格式配置对象提供的信息将数据文件解析成暂时的数据对象。类似地,将数据与业务对象之间的映射关系配置文件(XML格式)解析成一个映射配置对象。然后,对象转换器将上一步得到的暂时数据对象,根据映射配置对象提供的映射关系将暂时的数据对象所携带的数据信息填充到业务对象的相应位置上,从而得到符合业务逻辑的业务对象。4.1.2、设计实现虽然各家金融机构原来交易管理系统产生的数据文件格式各不一样,但由于都遵循一定的格式模式,所以我们可以从中抽象出格式模板。图4-2某资料文件部分截图某金融机构的交易资料文件部分内容如图4-2所示。此文件的数据内容遵循一定的数据格式,每一行都以特定的两位数字开头,每一行都代表着不同的信息。比如说,第一行以“00”开头,代表一个交易批次的开始,接下来的8位代表交易日期,相应地最后一行以“99”开头,代表一个交易批次的结束。第二行以“01”开头,代表一笔具体交易的开始,相应地往后有一行以“09”开头,代表这笔具休交易的结束。我们可以从大量的不同金融机构的交易资料文件格式中抽象出格式模型,并将这种模型用XML文件表示出来,这样就可以通过配置XML不同节点或者不同属性值来达到获得不同数据格式的目的。可能的配置文件如图4-3所示。图4-3交易资料文件的格式配置文件的部分截图图4-4格式配置文件中的Subscription结点部分截图交易资料文件格式配置文件以configure为根结点,目前只有一个orderBatches子结点,代表一个交易批次,同时也为以后的扩展留有空间。orderBatches下有properties和orderBatch子结点。properties下有property子结点,代表该交易批次的一些属性,还可以定义属性的名称、数据类型、在当前行中的起始位置和结束位置,如果该属性是日期或者数字,还可以定义数据的格式。属性信息集既可以与行的开始信息处于同一行,也可以另起新行。orderBatch代表一笔具体的交易,下有properties、subscription、redemption和switch子结点(代表三种不同交易:申购、赎回、转换),subscription、redemption与switch结点的结构是类似的。以subscription结点为例(图4-4所示),结点下有properties、orderDetails、extendAttrs结点,分别代表交易资料中的属性、具体交易信息和额外的一些交易信息。而orderDetails由orderDetail子结点构成,orderDetail结点下只有properties子结点,代表交易资料中有很多交易记录,具体的交易记录信息由properties下的proerty子结点记录着。同样地,extendAttrs由extendAttr子结点构成,extendAttr结点下只有properties子结点,代表交易的额外信息,具体信息同样由properties结点下的property子结点记录着。每一重要子结点都有一个全局唯一的开始标志(start),交易资料文件中的某行数据以该开始标志开头,则接下来的信息携带着该结点所代表的信息。代表交易批次和具体交易的结点需要结束标志(end),表示该交易批次或者具体某笔交易的结束。而其他子结点不需要结束标志,即该结点默认对应于资料文件中的某一行。具体的信息提取规则都是由property子结点的具体信息决定的(pos和len),同时还记录着信息的数据类型与格式信息。有了如上的格式配置文件之后,我们就可以定义一个格式配置对象来存储格式配置信息(图4-5所示)。同样地,我们需要定义一个暂时的数据对象(RDPOrderBatch)来存储解析出来的数据信息(图4-6所示)。RDPOrderBatch含有props、subsOrder、redemOrder和switchOrder等信息。props是Map类型,存储属性的名称与值。其他三个都是RDPOrders类型,代表不同的交易类型(Subscription、Redemption和Switch)。RDPOrders含有props、orderDetails和extendAttrs等信息。props同样存储着属性信息。orderDetails与extendAttrs都是Map类型,存储着相应的名称与RDPOrderDetail(或RDPExtendAttr),具体的名称代表不同的意义,名称由格式配置文件中定义(见图4-4中orderDetail结点的name属性)。RDPOrderDetail与RDPExtendAttr中都含有name和props信息。图4-5Configuration(格式配置)类图图4-6RDPOrderBatch(暂时数据对象)类图有了格式配置对象之后,就可以解析出交易文件每一行代表的实际数据信息,同时存储到暂时的数据对象当中,为下一步处理作准备。而此时得到的数据对象,并不是我们系统真正需要的业务对象,因为他不符合一定的业务逻辑规则,不能很好地应用到系统的处理流程中。因此,我们需要将暂时的数据对象转换成业务对象。因此,我们需要定义其中的转换规则(映射关系),图4-7为某映射配置文件的截图。图4-7某映射配置文件截图截图中内容体现出了映射关系配置文件设计的所有内容。以class为根结点,并以name属性作为标识,size属性的值是一个OGNL表达式,代表实例的数量。class下有暂时只有property子结点,property有name和value属性,name代表该业务对象的一个字段名,value是也是一个OGNL表达式,代表它在暂时数据对象(RDPOrderBatch)中的位置。每一个property结点代表着一种映射关系,利用OGNL技术可以很轻松地填充好业务对象,从而得到符合系统需求的遵循一定业务规则的业务对象。4.2、交易资料信息过滤模块此模块的主要作用是依据预定的过滤规则过滤掉非法交易信息,并对合法的交易信息做一定的处理,主要的任务是对补单的交易资料进行过滤处理。比如,过滤掉重复的交易信息资料;针对交易补单资料信息的某些状态修改等。此模块所要处理的数据是由上一模块解析得到的业务对象,一个业务对象实际上代表着一笔交易记录。我们将根据业务对象上所携带的信息,按照一定的规则在数据中搜索信息,以判断此业务对象是否合法与状态如何。如果是补单(为前次交易批次的修改资料),则对补单与主单(原交易批次)的状态进行一些设定,以便更符合系统的业务需求。如果此业务对象携带了非法信息,则直接抛弃该对象,并记录于日志中以便检验。4.3、传送文件的产生模块4.3.1、模块目标此模块的目标是产生用于交易的传送文件,文件的传送方式有两种,一种用传真传送,另一种用SWIFTNet网络传送。传真方式是老式交易方式,系统兼顾了目前还使用传真方式进行交易的金融机构。传送文件的产生流程如图4-8所示。共有四种文件产生器:FaxHtmlCreator、SubscriptionXMLCreator、RedemptionXMLCreator和SwitchXMLCreator。文件产生器接收一个业务对象(OrderBatch,代表一笔具体交易记录),利用FreeMarker技术读取模板文件,填充数据信息,并按照一定的产生规则产生用于传送的交易文件。图4-8传送文件产生流程图4.3.2、设计实现此模块目前只支持A股交易文件的产生。交易文件的格式有一定的要求且不变。比如传真文件(Html文件)中资料的显示顺序与格式、Subscription和Redemption类型交易文件的大小不能超过10K,Switch交易文件一项交易产生一个文件等。由于交易文件都具有一个模板,因此我们采用FreeMarker这种优秀模板技术,该模板技术比Velocity模板技术更加强大,使用上更加简便,扩展性更好。图4-9SWIFT消息文件模板部分截图首先,根据FreeMarker的语法规则定义好各种模板文件(图4-9为Switch交易文件的模板的部分截图)。接着,利用FreeMarker技术读取模板文件,并给予数据模型信息(模板的数据源),处理之后我们将得到目标交易文件的实际内容,我们将该内容写到实际的文件中,就得到了用于传送的交易文件。用于传真的传送文件(Html文件)应该注意与实际传真情况的配合(比如,一般用A4纸接受信息),因此我们就应该在Html文件中的恰当位置进行空白填充,以起到虚拟换页的作用。因此我们对每一行文字、每一行表格的高度都有严格的要求。Subscription与Redemption类型的交易文件的产生方式类似,且交易文件的大小不能超过10K(目前设定)。我们采用了回调接口(Callback)模式,定义了一个公共的文件产生器,由这两种文件产生器来调用,通过回调接口传入各自的特殊信息。为了解决文件大小不能超过10K的问题,我们注意到交易文件(如图4-10所示)中间的某部分结点是重复的(代表一系列的交易信息),因此我们将模板文件分成头部、中间和尾部三部分。图4-10为一个Subscription交易文件的整体截图,我们把结点独立出来作为中间部分,把前面的部分归为头部,把后面的部分归为尾部。我们分别计算出头部和尾部的大小(字节数),当产生一个中间部分时,如果与头部、尾部之和的总大小小于10K则接受此结点内容,否则,将当前总内容写入一个文件,把当前结点的内容与头部、尾部的内容组合成一个新的文件内容,按照此规则产生一系列大小不超过10K的交易文件。Switch交易文件格式要求一笔具体交易信息产生一个交易文件,因此我们只需要定义好模板文件,根据交易信息循环产生交易文件。图4-10Subscription交易文件4.4、交易信息的保存模块系统采用的数据持久化技术为Hibernate3.1,这是一种出色的数据持久化技术。由于系统采用Spring框架技术,固我们可以使用Spring DAO的Template支持。我们定义的DAO类可要简单地扩展于HibernateDAOSupport类,从而享受HibernateTemplate技术带来的便利性,我们所要做的只是在Spring的配置文件中定义一个HibernateTemplate的Bean。4.5、资料文件接收处理模块系统的实现目标是为了实现资料文件在金融机构原有交易管理系统与SWIFTNet网络接口专属服务器系统之间的互相转换。上面所有的模块实现了交易资料文件送出的转换与资料保存工作,此模块是为了实现资料文件接收的转换工作,接收到的资料文件分为两类,一类为回复信息文件,另一类为交易资料文件。目前,此模块处理的资料文件有5种类型:ACK/NAK,StatusReport,SubscriptionConfirmation,RedemptionConfirmation、和SwitchConfirma-tion。这些信息都是采用XML文件的格式,我们定义了相应的处理类。图3-3为此模块的处理流程图。SWIFTNet网络接口专属服务器接受到资料文件后,将文件存于某个预定的目录当中。我们定义了一个程序(IncomingMessageProcess)用于监控此目录,当发现此目录中有文件存在时,程序会提取该文件,并从文件的某个结点信息判断出资料文件的类型,再分派到该信息类型的处理器进行下一步处理。文件处理器从资料文件中提取相关结点的信息,组装成VO(Value Object),传递到文件产生器产生适合原有交易管理系统的交易资料文件,并存放于另一预定的目录当中,同时把相关信息记录到数据库系统中。文件处理器处理完该交易资料文件后,将其移到某一预定目录中进行备份。4.6、Web管理系统模块4.6.1、模块目标基金交易处理的另一重要过程就是检验交易资料信息的合法、完整性。因此,我们采用了B/S模式,为客户提供了一个统一的WEB管理系统。管理系统所实现的功能结构如图4-11所示。图4-11WEB功能结构图当交易数据文件被解析成业务对象,并保存到数据库系统中后,我们就可以登录管理系统,可以在界面上轻松地管理各种交易处理行为(Multiple Order模块)。我们可以查看新进来的交易记录(Pending页面),放行或者拒绝交易行为。当交易记录被放行后,会陆续接收到各种回应信息,当交易记录符合某种取消条件时,我们也可以对该交易进行取消操作,从而取消一笔交易记录。另外,我们可以查看到处于各种处理状态的交易记录(Released、Rejected、Canceled和Replaced页面)。当某笔交易被放行后(通过SWIFTNet方式),会陆续接收到各种回复信息,我们可以于Order Confirmation模块的界面中轻松查看各种信息。为了兼顾某些金融机构仍采用老式传真交易方式的情况,本系统也支持了以传真方式的放行处理,同时可以单独对以传真方式传送的交易进行管理(FAX Record模块)。系统中也提供了信息管理系统中必不可少的报表统计功能(Reports模块)。最后,系统提供了一个后台管理模块(Administration模块)。管理用户访问权限、金融公司基本信息管理与自定义的栏位显示管理(Custom Layout Management页面)。4.6.2、设计实现此模块充分利用了Spring1.2.8与WebWork2.1.7相结合的技术。遵循Spring接口编程方式,我们为各种功能提供了各自统一的接口,并于Spring IoC容器中进行统一管理,采用DI技术为WebWork的Action提供各种管理类。系统提供的统一接口有:统一的查询接口(ISwiftNetFundService),用于查询处于各种状态的交易资料;统一的处理操作接口(ISwiftNetFundFunctionAction),用于实现对基金交易的各种处理,如放行、拒绝、取消等;统一的报表查询接口(ISwiftNetFundReport),提供了多种报表统计功能。在对交易处理的时候涉及到两种传送方式,因此也为两种传送方式各自提供了一个统一接口(IFaxCenter和ISwiftNetMessageCenter)。所有的管理系统中基本上都有权限管理模块,用于管理用户的访问权限。本系统的权限管理采用权限组权限管理的模式,不同的权限组被赋予了不同的访问权限。不同的用户被归纳到不同的权限组当中,相应地享有该权限组所拥有的所有权限。用户管理模块对外提供了一个统一接口(IUserManager),提供了各种与用户相关的操作功能。同时,也提供了另一个统一接口(ISecurityService),提供了各种与权限检验相关的操作功能。在编码上,我们提供了4个基础基类,作用如表4-1所示。系统提供了自定义栏位显示的功能(具体见下一节),即如果某一页面显示的是具体的交易资料信息,则处理该页面的Action应该继承于BaseCustomLayoutAction基类。各种交易处理操作的Action应该继承于BaseHandleAction基类。其他的Action基本上继承于BaseProtectedAction基类,它提供了权限检验的功能。表4-1四种基本基类的各自作用基类名称基类作用CommonAction普通基类,拥有登陆用户的基本信息BaseProtectedAction基本的受保护基类,不但拥有登陆用户的基本信息,而且能够进行访问权限的判断BaseCustomLayoutAction基本的自定义页面显示基类,从BaseProtectedAction继承而来,增加了可以自定义显示栏位的功能。BaseHandlerAction基本的交易处理基类,从BaseProtectedAction继承而来。同时,还拥有一些其他状态信息用于操作后的地址转向我们利用了WebWork的AOP编程方式,自定义了一系统列的拦截器(Interceptor,类似于Web的Filter),用于记录登录用户信息、用户访问权限检验和系统国际化等处理。4.7、自定义栏位显示模块4.7.1、模块目标在页面中显示于同一表格内的栏位信息属于同一逻辑范围内,同一逻辑范围内还存在另外一些栏位信息。不同的客户可以具有不同的需求,希望查看的栏位的信息也不尽相同。此模块的目标实现了让客户自行管理每个表格的显示栏位,以适应各自金融机构的不同需求。图4-12三种常见表格形式常见的表格形式有三种,如图4-12所示。表格A是最普通的一种,一个栏位对应一种信息;表格B中一个栏位对应两种信息,中间用分隔符隔开(在这里为“/”);表格C是表格A的一种复杂形式,多了一级表头,相当于三个栏位对应两种信息。此模块提供了一种统一的配置方式以适应不同表格形式的需求,同时也提供了一个统一的接口(IUILayoutManager)来处理各种配置管理与查询。4.7.2、设计实现为了实现此模块的目标,我们定义了三个类(TableLayoutConfig,ColumnConfig和FieldConfig),图4-13为它们的类图。图4-13自定义栏位显示类图三种类的作用如下:TableLayoutConfig代表一个自定义的表格对象,存储着表格名称(name),逻辑范围名称(tableName)和所有要显示的栏位信息(ColumnConfig对象列表),同时,还有一个指示是否为多行表头的表格的标志(mu

温馨提示

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

评论

0/150

提交评论