一种基于FreeMarker模板引擎的金融报文转换方法及系统技术方案

技术编号:32112319 阅读:28 留言:0更新日期:2022-01-29 18:55
一种基于FreeMarker模板引擎的金融报文转换方法及系统,担任了源系统与目标系统通讯中间件角色,由于源系统与目标系统两方的报文格式不一致,所以报文转换装置中间转换,即拆解源系统上送报文到Map中,经过目标系统的字典映射等方面转换后,将上送目标系统的报文内容与上送目标系统的FreeMarker报文模板进行组装,目标系统响应则是一种相应的逆操作。总而言之,FreeMarker模板在主数据集成交互中提供了更多的可扩展性,因为基于FreeMarker的特性,在进行主数据与目标系统集成时,不需要进行代码和接口的二次开发,就能方便快捷地实现特殊报文处理,使得源系统与目标系统的数据集成交互更加高效,并具有更好的可移植性。并具有更好的可移植性。并具有更好的可移植性。

【技术实现步骤摘要】
一种基于FreeMarker模板引擎的金融报文转换方法及系统


[0001]本专利技术涉及源系统与目标系统之间的金融报文转换技术,特别是一种基于FreeMarker模板引擎的金融报文转换方法及系统。

技术介绍

[0002]在当前信息技术快速发展的大背景下,金融行业尤其是银行系统也面临需要不断更新换代的问题。其中,作为银行信息科技中起支撑作用的目标系统,已经逐渐无法满足行业发展需要,各家银行纷纷开展新一代目标系统建设任务,由传统集中式技术架构向分布式、微服务、云计算领域更新换代。在新老目标系统替换过程中,由于与目标系统交互的源系统繁多且业务关系复杂,会造成项目整体开发难度大、替换进度慢等难点。本专利技术的报文转换系统主要用于解决各源系统调用目标系统报文接口不一致、报文转换效率低等问题,可以在最大程度减少源系统调用的目标系统服务接口的变化,对外围渠道提供的实时交易数据接口进行交易服务数据接口转换,满足各家银行快速上线目标系统,尽量降低源系统改动而带来的上线周期长的问题,保障顺利完成目标上线任务。其涉及到的开发工具FreeMarker是一种基于模板和要改变的数据,并用来生成输出文本(HTL网页、电子邮件、配置文件、源代码等)的模板引擎。模板编写为FreeMarker Template Language(FTL),它是简单的、专用的语言,不是像PHP那样成熟的编程语言。在模板中,可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。

技术实现思路

[0003]本专利技术针对现有技术的缺陷或不足,提供一种基于FreeMarker模板引擎的金融报文转换方法及系统。
[0004]本专利技术的技术解决方案如下:一种基于FreeMarker模板引擎的金融报文转换方法,用于源系统与目标系统之间的报文传输,所述源系统是金融交易报文的发起方,所述目标系统是所述金融交易报文的响应方,所述源系统的发起金融交易报文因不符合所述目标系统的响应要求而存在报文交互障碍,其特征在于,包括以下步骤以消除所述报文交互障碍:步骤A,源系统发送金融交易报文到金融报文转换系统的前置消息队列;步骤B,金融报文转换系统读取所述前置消息队列中的所述金融交易报文数据,根据交易码字段匹配FreeMaker模板引擎中预设模板进行报文转换;步骤C,将转换生成的目标系统格式的报文通过tuxedo适配层发送给目标系统。
[0005]步骤D,所述目标系统根据所述源系统的发起金融交易报文生成响应金融交易报文,并将所述响应金融交易报文发送到所述金融报文转换系统的应答接收队列;步骤E,所述金融报文转换系统对所述响应金融交易报文进行报文逆转换后返回到所述源系统。
[0006]所述步骤A中的消息队列对所述源系统的发起金融交易报文进行缓存处理,所述
缓存处理包括报文字段的映射缓存,报文值的映射缓存,以及全报文模板缓存,缓存采用初始化数据库加载到执行引擎中,由执行引擎调用缓存参数,完成使用缓存的目的。
[0007]所述步骤B中的报文转换采用以下3种方式中一种:只针对报文数据而不针对报文结构;只针对报文结构而不针对报文数据;报文结构和报文数据兼具。
[0008]所述步骤B中的报文转换包括以下具体步骤:步骤B1,创建一个Configuration对象,直接new一个对象,构造方法的参数就是freemarker对应的版本号;步骤B2,设置模板文件所在的路径;步骤B3,设置模板文件使用的字符集;步骤B4,加载一个模板,创建一个模板对象;步骤B5,创建一个模板使用的数据集;步骤B6,创建一个Writer对象,指定生成的文件名;步骤B7,调用模板对象的process方法输出文件;步骤B8,关闭流。
[0009]所述金融报文转换系统在启动时包括初始化freemarker模板路径,初始化配置依赖及类依赖,所述配置依赖路径为/mid/WebContent/WEB

INF/env/context/mid.xml;所述类依赖路径为spc.webos.util.SystemUtil;所述初始化freemarker模板包括配合freemarker的懒加载策略,在每支交易第一次使用的时候对应的freemarker模板被加载到系统缓存中,之后再调用该交易则会从缓存中读取模板信息以提高交易性能。
[0010]所述金融报文转换系统在初始化时,包括按交易配置好各交易源系统报文结构到目标系统报文结构的映射关系,并导入到数据库中,同时加载到应用缓存区。
[0011]所述步骤B中的报文转换为只针对报文结构而不针对报文数据的报文结构转换,所述金融报文转换系统按交易配置好各交易源系统报文结构到目标系统报文结构的映射关系,并导入到数据库中,同时加载到应用缓存区;当所述金融报文转换系统接收到做完字段映射以及字典码转换的报文后,先从源系统报文头中找到该报文的交易码,通过交易码,从应用缓存中找到该交易的报文结构映射关系后按照以下流程开始转换:读取源系统报文stdfix标签下的内容,按报文定长头的映射关系对数据补位并转换为目标系统定长头放到报文开始;读取源系统报文stdxmlreq标签下的内容,按XML报文头的映射关系将数据转换到目标系统XML报文头中;读取源系统报文request下XML报文体的所有内容,按该交易XML报文体配置的映射关系将数据转换到目标系统XML报文体中;然后组装目标系统报文,先将目标系统XML报文头和目标系统XML报文体组装,合并到目标系统XML报文结构中,然后将目标系统定长头和目标系统XML报文合并为整体报文;根据配置在整体报文前加上报文长度位,然后将该报文通过通讯适配器Tuxedo发送到目标系统。
[0012]一种基于FreeMarker模板引擎的金融报文转换系统,其特征在于,包括包括与报文转换装置分别连接的报文接收装置、报文发送装置和FreeMarker模板引擎;
所述报文接收装置从源系统接收报文数据到消息队列;消息队列MQ是一种应用程序对应用程序的通信方法,应用程序通过写和检索出入列队的针对应用程序的数据来通信,而无需专用连接来链接它们,队列的使用除去了接收和发送应用程序同时执行的要求;所述报文转换装置启动时会初始化FreeMarker模板路径,初始化依赖配置及依赖类,配置及初始化方法包括配合FreeMarker的懒加载策略在每支交易第一次使用的时候,对应的FreeMarker模板会被加载到系统缓存中,之后再调用该交易则会从缓存中读取模板信息以提高交易性能,报文转换装置是担任了源系统与目标系统通讯中间件角色,由于源系统与目标系统两方的报文格式不一致,所以报文转换装置中间转换,即拆解源系统上送报文到Map中,经过目标系统的字典映射等方面转换后,将上送目标系统的报文内容与上送目标系统的FreeMarker报文模板进行组装,目标系统响应则是一种相应的逆操作;所述报文发送装置通过Tuxedo通信选择JAVA的方式调用Jolt连接池,所述Jolt通用调用包需要通过配置文件来进行配置,根据协议文档的内容,获取Tuxedo服务返回的各个数据项,将生成的统一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FreeMarker模板引擎的金融报文转换方法,用于源系统与目标系统之间的报文传输,所述源系统是金融交易报文的发起方,所述目标系统是所述金融交易报文的响应方,所述源系统的发起金融交易报文因不符合所述目标系统的响应要求而存在报文交互障碍,其特征在于,包括以下步骤以消除所述报文交互障碍:步骤A,源系统发送金融交易报文到金融报文转换系统的前置消息队列;步骤B,金融报文转换系统读取所述前置消息队列中的所述金融交易报文数据,根据交易码字段匹配FreeMaker模板引擎中预设模板进行报文转换;步骤C,将转换生成的目标系统格式的报文通过tuxedo适配层发送给目标系统。2.根据权利要求1所述的基于FreeMarker模板引擎的金融报文转换方法,其特征在于,包括:步骤D,所述目标系统根据所述源系统的发起金融交易报文生成响应金融交易报文,并将所述响应金融交易报文发送到所述金融报文转换系统的应答接收队列;步骤E,所述金融报文转换系统对所述响应金融交易报文进行报文逆转换后返回到所述源系统。3.根据权利要求1所述的基于FreeMarker模板引擎的金融报文转换方法,其特征在于,所述步骤A中的消息队列对所述源系统的发起金融交易报文进行缓存处理,所述缓存处理包括报文字段的映射缓存,报文值的映射缓存,以及全报文模板缓存,缓存采用初始化数据库加载到执行引擎中,由执行引擎调用缓存参数,完成使用缓存的目的。4.根据权利要求1所述的基于FreeMarker模板引擎的金融报文转换方法,其特征在于,所述步骤B中的报文转换采用以下3种方式中一种:只针对报文数据而不针对报文结构;只针对报文结构而不针对报文数据;报文结构和报文数据兼具。5.根据权利要求1所述的基于FreeMarker模板引擎的金融报文转换方法,其特征在于,所述步骤B中的报文转换包括以下具体步骤:步骤B1,创建一个Configuration对象,直接new一个对象,构造方法的参数就是freemarker对应的版本号;步骤B2,设置模板文件所在的路径;步骤B3,设置模板文件使用的字符集;步骤B4,加载一个模板,创建一个模板对象;步骤B5,创建一个模板使用的数据集;步骤B6,创建一个Writer对象,指定生成的文件名;步骤B7,调用模板对象的process方法输出文件;步骤B8,关闭流。6.根据权利要求1所述的基于FreeMarker模板引擎的金融报文转换方法,其特征在于,所述金融报文转换系统在启动时包括初始化freemarker模板路径,初始化配置依赖及类依赖,配置依赖路径为/mid/WebContent/WEB

INF/env/context/mid.xml;所述类依赖路径为spc.webos.util.SystemUtil;所述初始化freemarker模板包括配合freemarker的懒加载策略,在每支交易第一次使用的时候对应的freemarker模板被加载到系统缓存中,之后再调用该交易则会从缓存中...

【专利技术属性】
技术研发人员:关文涛王洋李冰孔祥锦
申请(专利权)人:云南南天电子信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1